Компания Skype выпустила релиз Skytools 3.0 (http://wiki.postgresql.org/wiki/SkyTools), открытого набора инструментов для организации репликации, поддержания серверов горячего резерва и автоматического восстановления после сбоя для кластеров СУБД PostgreSQL. Skytools используется для обеспечения работы крупнейшего в мире PostgreSQL-кластера, обслуживающего базу абонентов Skype (более миллиарда пользователей). Код проекта в большей части написан на языке Python (имеются компоненты на Си) и распространяется (http://pgfoundry.org/projects/skytools) в рамках лицензии BSD.
В состав (http://skytools.projects.postgresql.org/skytools-3.0/) пакета входит фреймворк PgQ, позволяющий организовать работу отвечающих требованиям ACID (атомарность, согласованность, изолированность, долговечность) очередей запросов. Очереди отвечают требованиям транзакционной модели, могут быть организованы сразу к нескольким хостам, поддерживают включение процедур. Для репликации используется Londiste - простая и надёжная реализация системы асинхронной репликации на уровне таблиц, базирующаяся на использовании очередей PgQ и поддерживающая такие интересные функции как двустороннее сравнение таблиц и начальное копирование таблиц в неблокирующем режиме.
Ключевые новшества (http://skytools.projects.postgresql.org/skytools-3.0/doc/sky...) Skytools 3:
- Поддержка каскадных очередей, позволяющих сохранить идентичные копии содержимого очередей на нескольких узлах;
- Новый управляющий демон pgqd (ticker), поддерживающий обслуживание одним процессом нескольких PgQ БД;
- Улучшения системы репликации Londiste:
- Реализация параллельного копирования, позволяющая выполнить процесс начальной синхронизации таблиц одновременно для нескольких узлов (в ветке 2.x для распараллеливания порождались дополнительные процессы);
- Команда EXECUTE, позволяющая запустить любой SQL-скрипт на всех узлах;
- Поддержка слияния очередей репликации от различных партицированных БД, что позволяет организовать мультимастер репликацию для непересекающихся данных (shared-nothing multimaster replication);
- Автоматическое создание таблиц и последовательностей (sequence) через импортирование структуры с базового узла;
- Возможность подключения дополнительных обработчиков для обработки событий (например, можно определить свой метод партицирования);
- При репликации целевая таблица может иметь другое имя (опция --dest-table);
- Новая интерактивная консоль администратора - qadmin, которая позволяет вместо длинных опций командной строки управлять системой через ввод команд. Поддерживается автодополнение набора команд через нажатие клавиши "табуляция".
Дополнительно можно отметить релиз (http://permalink.gmane.org/gmane.comp.db.postgresql.announce...) фреймворка Pyrseas (http://pgfoundry.org/projects/pyrseas), предназначенного для сопровождения СУБД PostgreSQL и автоматизации операций по обновлению структуры данных. Pyrseas преобразует стандартную схему со структурой БД и сопуствтующие метаданные в формат YAML или JSON, более пригодный для использования в системах контроля версий. Используя представление в формате YAML, Pyrseas обеспечивает генерацию SQL для выполнения синхронизации структуры одной БД с другой (т.е. можно легко внести изменения в структуру и распространить их на другие БД). Поддерживается PostgreSQL 8.4, 9.0 и 9.1. Код проекта написан на языке Python и распространяется (https://github.com/jmafc/Pyrseas) под лицензией BSD.
URL: http://permalink.gmane.org/gmane.comp.db.postgresql.announce...
Новость: http://www.opennet.me/opennews/art.shtml?num=33381