Релиз Skytools 3.0, инструментария для PostgreSQL, используемого в инфраструктуре Skype
18 марта 2012 года
Компания 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.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.