Postgres-XL

Бесплатно
Открытый исходный код
Linux

Сайт: www.postgres-xl.org

Postgres-XL — распределённая реляционная система управления базами данных с открытым исходным кодом, основанная на PostgreSQL и предназначенная для горизонтального масштабирования и обработки больших объёмов данных. Проект развивался как расширение возможностей PostgreSQL для распределённого выполнения запросов, балансировки нагрузки и обеспечения параллельной обработки транзакций в кластерах из множества узлов. Архитектура Postgres-XL включает координирующие узлы и узлы хранения данных, что позволяет разделять данные по шардированным таблицам и выполнять распределённые операции при сохранении совместимости с клиентскими интерфейсами PostgreSQL.

Система ориентирована на сценарии, требующие высокой пропускной способности при выполнении сложных аналитических и OLTP-запросов, а также на случаи, когда необходимо масштабирование за пределы одного сервера без значительных изменений в приложениях. Postgres-XL реализует механизмы распределённой транзакционной согласованности, планирования запросов и перемещения данных между узлами, сохраняя большинство характеристик PostgreSQL, включая поддержку SQL, типов данных и расширяемости через плагины и пользовательские функции.

  • Архитектура: клиентский интерфейс совместим с PostgreSQL; координирующие узлы распределяют запросы и собирают результаты; узлы хранения (даты-нод) хранят шардированные данные.
  • Шардирование: поддерживает горизонтальное разбиение таблиц по ключам (hash sharding), что обеспечивает распределение данных и параллельную обработку запросов.
  • Распределённое выполнение запросов: планирование выполнения запросов с распределением подзадач между узлами, агрегация и слияние результатов на координаторе.
  • Транзакции и согласованность: обеспечивает транзакционную согласованность между узлами, поддерживая ACID-семантику в распределённой среде с использованием механизмов координации и блокировок.
  • Масштабирование и балансировка нагрузки: добавление узлов позволяет увеличивать ёмкость хранения и вычислительную мощность; система распределяет запросы по доступным нодам.
  • Совместимость с PostgreSQL: сохраняет знакомый SQL-диалект, сетевые протоколы и многие расширения PostgreSQL, облегчая миграцию приложений.
  • Администрирование и управление: включает средства для управления кластером, репликации метаданных и мониторинга состояния узлов; возможны инструменты для резервного копирования и восстановления.
  • Типичные сценарии использования: аналитические и гибридные OLTP/OLAP-нагрузки, приложения с большими объёмами данных и требованиями к горизонтальному масштабированию, распределённые дата-центры и многопользовательские сервисы.
  • Ограничения и особенности: архитектурные компромиссы в сравнении с одиночным PostgreSQL в части задержек на межузловые операции; сложность настройки и эксплуатации распределённого кластера требует квалифицированного администрирования.
Подробнее