Компания Skype выпустила релиз Skytools 3.0 [3], открытого набора инструментов для организации репликации, поддержания серверов горячего резерва и автоматического восстановления после сбоя для кластеров СУБД PostgreSQL. Skytools используется для обеспечения работы крупнейшего в мире PostgreSQL-кластера, обслуживающего базу абонентов Skype (более миллиарда пользователей). Код проекта в большей части написан на языке Python (имеются компоненты на Си) и распространяется [4] в рамках лицензии BSD.
В состав [5] пакета входит фреймворк PgQ, позволяющий организовать работу отвечающих требованиям ACID (атомарность, согласованность, изолированность, долговечность) очередей запросов. Очереди отвечают требованиям транзакционной модели, могут быть организованы сразу к нескольким хостам, поддерживают включение процедур. Для репликации используется Londiste - простая и надёжная реализация системы асинхронной репликации на уровне таблиц, базирующаяся на использовании очередей PgQ и поддерживающая такие интересные функции как двустороннее сравнение таблиц и начальное копирование таблиц в неблокирующем режиме.
Ключевые новшества [6] Skytools 3:
Дополнительно можно отметить релиз [7] фреймворка Pyrseas [8], предназначенного для сопровождения СУБД PostgreSQL и автоматизации операций по обновлению структуры данных. Pyrseas преобразует стандартную схему со структурой БД и сопуствтующие метаданные в формат YAML или JSON, более пригодный для использования в системах контроля версий. Используя представление в формате YAML, Pyrseas обеспечивает генерацию SQL для выполнения синхронизации структуры одной БД с другой (т.е. можно легко внести изменения в структуру и распространить их на другие БД). Поддерживается PostgreSQL 8.4, 9.0 и 9.1. Код проекта написан на языке Python и распространяется [9] под лицензией BSD.
Ссылки:
[1] http://htfl.ru/cat-news-postgresql
[2] http://htfl.ru/cat-news-obnovlenie-po
[3] /out.php?link=http://wiki.postgresql.org/wiki/SkyTools
[4] /out.php?link=http://pgfoundry.org/projects/skytools
[5] /out.php?link=http://skytools.projects.postgresql.org/skytools-3.0/
[6] /out.php?link=http://skytools.projects.postgresql.org/skytools-3.0/doc/skytools3.html
[7] /out.php?link=http://permalink.gmane.org/gmane.comp.db.postgresql.announce/1992
[8] /out.php?link=http://pgfoundry.org/projects/pyrseas
[9] /out.php?link=https://github.com/jmafc/Pyrseas