Содержание
Tantor Polar разделяет вычисления и хранение, сохраняя полную совместимость с PostgreSQL. Это решает задачу, где классическая архитектура упирается в пределы одного сервера или страдает от сложностей репликации и шардирования при росте нагрузки. Новая машина Tantor XData Gen3 на базе Polar показывает 250 тыс. TPS в TPC-B и 2,6 млн NOPM в TPC-C, что ставит её в один ряд с Exadata по транзакционной производительности. Классический PostgreSQL использует shared-nothing подход, при котором каждый экземпляр работает со своими данными, и при масштабировании приходится либо покупать более мощный сервер, либо настраивать сложную репликацию и шардирование на уровне приложения. Polar убирает это ограничение за счёт общей файловой системы, но при этом остаётся совместимым с существующим кодом и инструментами. При выборе решения важно понимать, что такая архитектура подходит для задач с высокой транзакционной нагрузкой, где требуется быстро добавлять вычислительные ресурсы без остановки и без перераспределения данных.
Как устроена архитектура
В основе лежит shared-storage модель: несколько вычислительных узлов работают с одним общим блочным хранилищем через RDMA. Главный узел пишет WAL и страницы данных, реплики читают те же данные напрямую. Это убирает необходимость копировать данные при добавлении реплики и снимает классические проблемы shared-nothing и shared-memory архитектур. RDMA позволяет узлам обращаться к памяти друг друга напрямую, минуя операционную систему и снижая задержки. WAL (журнал упреждающей записи) фиксирует изменения до их применения к страницам данных, что обеспечивает надёжность. Реплики не хранят собственную копию данных, а получают только метаданные WAL по RDMA. LogIndex позволяет проигрывать изменения страниц по требованию в многопоточном режиме, а не последовательно. Лаг репликации держится в пределах нескольких миллисекунд даже при интенсивной записи. WAL pipelining собирает фиксации транзакций в очередь и сбрасывает их пакетно. Это устраняет конкуренцию за блокировки и ввод-вывод, которая в обычном PostgreSQL становится узким местом при высокой TPS. CSN-механизм заменяет поиск по CLOG на сравнение за O(1), ускоряя проверку видимости при MVCC. MVCC (многоверсионное управление параллельным доступом) позволяет транзакциям видеть согласованный срез данных без блокировок. При принятии решения о внедрении стоит учитывать, что архитектура требует стабильной RDMA-сети и квалифицированной настройки; в противном случае преимущества по лагу репликации могут не проявиться. Также важно проверить, что используемые расширения PostgreSQL протестированы в среде Polar, поскольку shared-storage модель меняет некоторые внутренние механизмы работы с файлами.
Хранение и файловая система
Tantor PolarFS — доработанная версия PolarFS — даёт доступ к блочному устройству поверх NVMe-oF с RDMA. Используется O_DIRECT и libaio, поэтому страничный кеш ОС не занимает память, а до 75 % RAM можно отдать под buffer pool. Собственная реализация fsync и оптимизации под RDMA позволяют держать высокую пропускную способность без типичных для Linux ограничений. NVMe-oF обеспечивает доступ к удалённым накопителям по сети с низкими задержками, близкими к локальным дискам. Хранилище масштабируется независимо от вычислений: при нехватке места или IOPS добавляют диски или узлы NVMe-oF, не трогая вычислительные серверы. При нехватке CPU или памяти — добавляют вычислительные узлы. Такая гибкость важна для задач, где профиль нагрузки меняется со временем. При выборе решения следует оценить, насколько критична возможность независимого масштабирования: для систем с неравномерной нагрузкой это снижает затраты на оборудование. Однако нужно учитывать, что PolarFS является относительно новой файловой системой, поэтому требуется тщательное тестирование на отказоустойчивость при сбоях сети или дисков.
Производительность на TPC
В TPC-B система показала 250 тыс. TPS на конфигурации XData Gen3. В TPC-C результат достиг 2,6 млн NOPM. Эти цифры получены на реальном оборудовании с RDMA-сетью и общим хранилищем, а не в синтетических условиях. TPC-B и TPC-C — стандартные бенчмарки, имитирующие банковские и складские транзакции соответственно; высокие результаты показывают, что Polar эффективно справляется с интенсивной записью и конкуренцией. Важно, что совместимость с PostgreSQL остаётся 100 %. Приложения и инструменты не требуют переписывания. Ограничения проявляются в сценариях, где требуется строгая консистентность на уровне всего кластера или когда приложение активно использует специфичные расширения, не протестированные на Polar. При решении о внедрении стоит сравнить эти показатели с текущей нагрузкой: если система уже близка к пределам одного сервера, переход может дать значительный запас. В то же время необходимо запланировать нагрузочное тестирование именно под свои запросы, поскольку синтетические тесты не всегда отражают реальные паттерны доступа.
Как это выглядит в российских условиях
В РФ оборудование с RDMA и быстрыми NVMe-oF доступно, но требует квалифицированной настройки сети и хранения. Tantor Polar даёт возможность строить системы, сопоставимые по мощности с Exadata, без покупки проприетарного стека Oracle. Для команд, уже работающих с PostgreSQL, переход на Polar снижает риск vendor lock-in и упрощает горизонтальное масштабирование без шардирования на уровне приложения. При этом нужно учитывать, что Polar — относительно новая разработка. В production стоит закладывать время на тестирование под реальной нагрузкой, особенно при использовании нестандартных расширений и сложных запросов к большому объёму данных. Для задач с предсказуемой транзакционной нагрузкой и требованием к высокой доступности это один из немногих вариантов, который позволяет оставаться в экосистеме PostgreSQL и при этом уйти от ограничений одного сервера. Дополнительным фактором выбора становится наличие специалистов, способных поддерживать RDMA-инфраструктуру; при их отсутствии затраты на обучение или внешнюю поддержку могут превысить выгоду от масштабирования.
Источник
Это краткий разбор материала Habr. Полная версия с примерами кода, схемами и деталями реализации — в оригинале: Tantor Polar снимает потолок PostgreSQL.
Курс по теме — Каталог курсов Школы Больших Данных


