Представлена распределённая СУБД Citus 13.0, реализованная в форме расширения к PostgreSQL 17

от автора

Команда разработчиков из компании Citus Data (принадлежит Microsoft) представила распределённую СУБД Citus 13.0. Проект реализован в формате расширения к PostgreSQL 17. Исходный код проекта написан на языке C и опубликован на GitHub под лицензией GNU Affero General Public License v3.0.

Решение Citus обеспечивает горизонтальное масштабирование PostgreSQL в кластере на базе типового оборудования и позволяет разносить данные по узлам при помощи шардинга (sharding) с настройкой разделения на уровне столбцов и схемы хранения.

По данным OpenNET, для приложений кластер СУБД Citus выглядит как один большой сервер PostgreSQL, объединяющий ресурсы образующих его узлов.

Основные изменения в версии Citus 13.0:

  • переход на использование ветки PostgreSQL 17.

  • возможность использования в распределённых запросах функции JSON_TABLE() для преобразования данных из формата JSON в реляционное представление, с которым можно работать как с обычными таблицами PostgreSQL;

  • поддержка синтаксиса «MERGE… WHEN NOT MATCHED BY SOURCE»;

  • возможность определения метода доступа для распределённых секционированных таблиц при помощи выражения «CREATE TABLE… USING», а также изменения метода доступа через «ALTER TABLE… SET ACCESS METHOD»;

  • добавлена поддержка указания в распределённых секционированных таблицах автоматически генерируемых столбцов идентификации;

  • разрешено применение ограничений‑исключений в распределённых секционированных таблицах;

  • решены проблемы с синхронизацией ролей между узлами;

  • улучшено распределение данных для шардинга при добавлении новых узлов в кластер;

  • в команду «EXPLAIN» добавлены опции «MEMORY» и «SERIALIZE», при помощи которых можно определить размер использованной памяти и время, потраченное на преобразование данных для передачи по сети.


ссылка на оригинал статьи https://habr.com/ru/articles/881084/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *