Компания Postgres Professional выпустила обновление Postgres Pro Shardman (версия 17.6.1 на базе Postgres Pro Enterprise 17.6). Этот релиз фокусируется на трёх направлениях: унификации безопасности данных (RLS), оптимизации планировщика для OLTP-нагрузок и усилении защиты сетевого периметра кластера.

Для DBA и архитекторов, строящих распределённые системы, ключевыми нововведениями стали поддержка Row-Level Security на уровне всего кластера, новые режимы изоляции транзакций и возможность полного шифрования трафика без сторонних инструментов.
1. Ускорение планирования одношардовых запросов (Fast Path)
В распределённых СУБД накладные расходы на построение плана выполнения запроса могут быть существенными.
В версии 17.6.1 внедрена оптимизация Fast Path. Суть механизма заключается в раннем анализе входящего запроса. Если система определяет, что запрос обращается к данным, расположенным строго в одной секции, она пропускает стандартные тяжеловесные этапы распределённого планирования.
Вместо этого запрос напрямую перенаправляется на соответствующий узел данных.
Это даёт:
существенное снижение задержек (latency) для простых запросов;
снижение нагрузки на CPU координатора за счет исключения лишних вычислений плана;
повышение пропускной способности кластера в OLTP-сценариях, где преобладают точечные операции чтения и записи.
2. Безопасность данных: распределённый RLS
Долгое время Row-Level Security (RLS) оставался прерогативой монолитных инсталляций. В новом релизе Shardman реализована полная поддержка RLS для глобальных и сегментированных таблиц.
Теперь политики безопасности применяются прозрачно для всего кластера. Это критически важно для мультитенантных приложений (SaaS, банкинг, госсектор), где данные физически разнесены по узлам кластера, но требуют централизованного и гранулярного управления доступом к конкретным записям (независимо от их расположения).
Пример использования
Синтаксис остается стандартным для PostgreSQL, но теперь он работает в контексте распределённой базы:
-- Включаем RLS на сегментированной таблице
ALTER TABLE accounts ENABLE ROW LEVEL SECURITY;
-- Создаем политику: менеджер видит только свои счета
CREATE POLICY account_managers ON accounts
TO managers
USING (manager = current_user);При выполнении SELECT * FROM accounts на любом узле кластера Shardman автоматически применит фильтр ко всем шардам, участвующим в выборке.
3. Согласованность: CSN и новые режимы READ COMMITTED
Для корректной работы распределённых транзакций Shardman использует CSN (Commit Sequence Number) — глобальный счётчик последовательности фиксации транзакций.
В обновлении добавлены два режима уровня изоляции READ COMMITTED:
С поддержкой CSN-снимков. Гарантирует строгую согласованность чтения во всём кластере, предотвращая аномалии «грязного чтения» и рассинхронизации времени на узлах.
Без CSN-снимков. Классическое поведение.
Управление осуществляется параметром enable_csn_snapshot_for_read_committed. Это даёт администраторам гибкость в выборе баланса между строгостью изоляции и производительностью.
4. Администрирование и эксплуатация (shardmanctl)
Утилита управления кластером shardmanctl и демон shardmand получили ряд улучшений для Ops-инженеров:
Rolling Restart. Команда shardmanctl restart rolling позволяет перезагружать узлы кластера по очереди с минимальным временем простоя, корректно учитывая состояние лидеров и реплик.
Улучшенный бэкап. Исправлена проблема, когда при создании резервной копии (shardmanctl probackup backup) лидер мог переключиться в режим Read-Only. Теперь утилита корректно ожидает готовности узлов.
Парольные политики. Введены параметры shardman.extended_password_policies, позволяющие исключать системных пользователей (роботов) из политик блокировки и репликации событий авторизации, а также разрешать им доступ к резервным серверам (Standby). Это предотвращает ситуации, когда блокировка технической учётной записи на одном узле парализует работу кластера.
5. Комплексная безопасность и шифрование
Одно из самых значимых изменений релиза — кардинальный пересмотр подхода к защите сетевого взаимодействия. Ранее для защиты трафика между узлами распределённого кластера администраторам часто приходилось настраивать внешние средства (VPN, stunnel, SSH-туннели), что усложняло архитектуру и эксплуатацию.
Начиная с версии 17.6.1 шифрование доступно для всех интерфейсов
Межшардовое взаимодействие. Весь транспортный трафик между узлами данных теперь может быть зашифрован на уровне СУБД.
Управляющий канал BiHA. Механизм высокой доступности (Built-in High Availability) получил поддержку защищённого режима работы.
Внешние интерфейсы. HTTP-интерфейсы управления и мониторинга также поддерживают SSL.
Как обновиться
Обновление доступно для пользователей Postgres Pro Shardman. Перед обновлением рекомендуется ознакомиться с полным списком изменений в Release Notes, так как присутствуют изменения в поведении параметров конфигурации (например, shardman.sync_schema теперь доступен только суперпользователям).