http://postgresmen.ru/articles/view/25
Масштабирование PostgreSQL: готовые решения от Skype
Автор: Иван Золотухин
Совсем недавно компания Skype выложила в открытое пользование под лицензией BSD ряд своих наработок, анонсированных прошлым летом на конференции, посвященной 10-летию PostgreSQL. Эти решения позволяют полностью решить проблемы масштабирования и резервирования OLTP систем, а также организовать необходимую синхронизацию с OLAP базами данных, решив таким образом 2 самых основных проблемы, с которыми сталкиваются разработчики баз данных при построении высоконагруженных систем. В пресс-релизы об этом событии вошли лишь краткие описания продуктов от Skype, поэтому возникла необходимость описать более подробно те возможности, которые появились у разработчиков и администраторов баз данных PostgreSQL.
PL/Proxy
PL/Proxy представляет собой прокси-язык для удаленного вызова процедур и партицирования данных между разными базами. Основная идея его использования заключается в том, что появляется возможность вызывать функции, расположенные в удаленных базах, а также свободно работать с кластером баз данных (например, вызвать функцию на всех узлах кластера, или на случайном узле, или на каком-то одном определенном).
Чем PL/Proxy может быть полезен? Он существенно упрощает горизонтальное масштабирование системы. Становится удобным разделять таблицу с пользователями, например, по первой латинской букве имени -- на 26 узлов. При этом приложение, которое работает непосредственно с прокси-базой, ничего не будет замечать: запрос на авторизацию, например, сам будет направлен прокси-сервером на нужный узел. То есть администратор баз данных может проводить масштабирование системы практически независимо от разработчиков приложения.
PL/Proxy позволяет полностью решить проблемы масштабирования OLTP систем. В систему легко вводится резервирование с failover-ом не только по узлам, но и по самим прокси-серверам, каждый из которых работает со всеми узлами.