Выпуск кластерной СУБД Postgres-XL 9.5

2016-04-20

Состоялся релиз СУБД Postgres-XL 9.5 R1, основанной на технологиях PostgreSQL и предназначенной для создания кластерных систем, хорошо подходящих как для обработки транзакций в реальном времени (OLTP), так и для создания крупных баз для анализа больших наборов данных (решения для бизнес-аналитики). Код СУБД Postgres-XL распространяется под свободной лицензией Mozilla Public License 2.0.

Кодовая база нового выпуска Postgres-XL полностью синхронизирована с PostgreSQL 9.5.2. Новая версия также примечательна улучшением средств обеспечения высокой доступности и полной поддержкой таких расширенных возможностей, как индексы BRIN и сжатие индексов JSONB и GIN. Предоставляемые в Postgres-XL средства массивной параллельной обработки данных (MPP, Massively Parallel Processing) позволяют добиться почти линейного увеличения масштабируемости при выполнении многих видов запросов.

Например, при решении задач бизнес-аналитики 16-узловой кластер на базе Postgres-XL демонстрирует в 16 раз более высокую производительность по сравнению с отдельным сервером PostgreSQL и при этом успешно проходит BI-тесты TPC-H. При оценке производительности обработки транзакций в реальном времени (OLTP) при помощи теста pgBench 4-узловая конфигурация Postgres-XL по сравнению с одним сервером на базе PostgreSQL продемонстрировала рост обработки транзакций в секунду на 230% при увеличении задержек в 70% для типовых запросов SELECT. Для запросов UPDATE скорость обработки возросла на 130% при росте задержек на 56%.

Некоторые особенности СУБД Postgres-XL:

  • Соответствие требованиям ACID (атомарность, согласованность, изолированность, надежность) на уровне всего кластера;
  • Поддержка механизма многоверсионности для обеспечения одновременного конкурентного доступа к БД (MVCC);
  • Распределённая модель хранения, при которой каждый узел хранит и обрабатывает отдельную порцию данных. При записи данные равномерно распределяются по разным узлам хранения, что позволяет более эффективно использовать кэширование и распределять нагрузку при чтении;
  • Расширенная модель разграничения доступа, позволяющая организовать в рамках одного кластера несколько виртуальных СУБД, закреплённых за разными арендаторами (Multi-tenant);
  • Поддержка большинства штатных возможностей PostgreSQL, в том числе средств работы с данными в формате JSON и hstore;
  • Высокая масштабируемость - при необходимости наращивания размера базы или при увеличении нагрузки достаточно подключить новые узлы в кластер;
  • Оптимизация кластера как для приложений с большой интенсивностью записи, так и для программ, в которых преобладают операции чтения;
  • Средства обеспечения отказоустойчивости через развёртывание запасных узлов (slave), которые примут нагрузку в случае выхода из строя основного узла.