Релиз инструментариев для PostgreSQL: Skytools 3.0 и Pyrseas 0.5.0
Компания Skype выпустила релиз Skytools 3.0, открытого набора инструментов для организации репликации, поддержания серверов горячего резерва и автоматического восстановления после сбоя для кластеров СУБД PostgreSQL. Skytools используется для обеспечения работы крупнейшего в мире PostgreSQL-кластера, обслуживающего базу абонентов Skype (более миллиарда пользователей). Код проекта в большей части написан на языке Python (имеются компоненты на Си) и распространяется в рамках лицензии BSD.В состав пакета входит фреймворк PgQ, позволяющий организовать работу отвечающих требованиям ACID (атомарность, согласованность, изолированность, долговечность) очередей запросов. Очереди отвечают требованиям транзакционной модели, могут быть организованы сразу к нескольким хостам, поддерживают включение процедур. Для репликации используется Londiste - простая и надёжная реализация системы асинхронной репликации на уровне таблиц, базирующаяся на использовании очередей PgQ и поддерживающая такие интересные функции как двустороннее сравнение таблиц и начальное копирование таблиц в неблокирующем режиме.
Ключевые новшества Skytools 3:
- Поддержка каскадных очередей, позволяющих сохранить идентичные копии содержимого очередей на нескольких узлах;
- Новый управляющий демон pgqd (ticker), поддерживающий обслуживание одним процессом нескольких PgQ БД;
- Улучшения системы репликации Londiste:
- Реализация параллельного копирования, позволяющая выполнить процесс начальной синхронизации таблиц одновременно для нескольких узлов (в ветке 2.x для распараллеливания порождались дополнительные процессы);
- Команда EXECUTE, позволяющая запустить любой SQL-скрипт на всех узлах;
- Поддержка слияния очередей репликации от различных партицированных БД, что позволяет организовать мультимастер репликацию для непересекающихся данных (shared-nothing multimaster replication);
- Автоматическое создание таблиц и последовательностей (sequence) через импортирование структуры с базового узла;
- Возможность подключения дополнительных обработчиков для обработки событий (например, можно определить свой метод партицирования);
- При репликации целевая таблица может иметь другое имя (опция --dest-table);
- Новая интерактивная консоль администратора - qadmin, которая позволяет вместо длинных опций командной строки управлять системой через ввод команд. Поддерживается автодополнение набора команд через нажатие клавиши "табуляция".
Дополнительно можно отметить релиз фреймворка Pyrseas, предназначенного для сопровождения СУБД PostgreSQL и автоматизации операций по обновлению структуры данных. Pyrseas преобразует стандартную схему со структурой БД и сопуствтующие метаданные в формат YAML или JSON, более пригодный для использования в системах контроля версий. Используя представление в формате YAML, Pyrseas обеспечивает генерацию SQL для выполнения синхронизации структуры одной БД с другой (т.е. можно легко внести изменения в структуру и распространить их на другие БД). Поддерживается PostgreSQL 8.4, 9.0 и 9.1. Код проекта написан на языке Python и распространяется под лицензией BSD.
© OpenNet