Популярность и главный недостаток PostgreSQL
PostgreSQL входит в четверку самых популярных СУБД в мире. Если у традиционных лидеров — Oracle, Microsoft и MySQL — общий тренд нисходящий, то PostgreSQL во всем мире продолжает расти. В России многие компании используют те или иные форки PostgreSQL, то есть альтернативные версии на основе открытого кода, модифицированные для специфических задач.
Ключевой недостаток этой СУБД в том, что она имеет ряд исторически сложившихся архитектурных ограничений. Так, PostgreSQL устанавливается на конкретный физический сервер, и масштабировать такую систему за его пределы трудоемко, дорого и не вполне эффективно. Затруднительно также распределить одну большую базу данных между несколькими серверами – существующие решения такой задачи нарушают совместимость с PostgreSQL, а значит, и с использующими ее бизнес-приложениями.
«Сложность задачи заключалась в том, что нужно было одновременно добиться качественного скачка по производительности и масштабируемости российских решений и при этом сохранить обратную совместимость. На практике реализовать такой подход крайне непросто. Тем не менее, именно в нашей машине третьего поколения нам удалось этого добиться», — заявил генеральный директор «Тантор Лабс» Вадим Яценко.
Как Tantor XData Gen3 решает эту проблему
В архитектуре этой машины баз данных другой подход: вычислительные ресурсы и хранилище разделены. Ядро базы данных работает на серверах, где сосредоточены процессоры и память, а система хранения «живет» на других серверах.
Это дает ключевое преимущество, которого нет в классическом PostgreSQL: независимое масштабирование вычислений и хранения. Иными словами, можно отдельно наращивать вычислительные мощности и отдельно объем хранилища в зависимости от того, какие нагрузки и в какие периоды необходимо обрабатывать для бизнеса.
Например, если у компании растёт нагрузка на аналитические запросы или другие ресурсоёмкие вычисления (сложные отчёты, агрегации, машинное обучение), можно масштабировать только вычислительную часть. Если же бизнес активно накапливает данные, будь то транзакции, логи или события, и растут объёмы хранилища, то можно расширять только дисковую подсистему, не трогая вычислительные узлы. В классическом PostgreSQL такой гибкости нет.
Однако, если физически разделить эти части, между ними должна быть качественная и быстрая связь, иначе сама идея такого разделения работать не будет.
Эту задачу решает RDMA-сеть — специализированная сеть с очень низкой задержкой, которая позволяет максимально быстро обмениваться данными между вычислительным уровнем и уровнем хранения напрямую, минуя CPU и ОС.
«Это одна из ключевых технологий в нашей архитектуре, и именно поэтому мы сравниваем свое решение с Exadata: Oracle использует очень похожий подход. До нас в России так с PostgreSQL никто не делал. Да и если говорить шире, таких решений в принципе немного», — поделился Вадим Яценко.
Чтобы реализовать такую архитектуру, команде пришлось серьезно переработать сам PostgreSQL, глубоко разделив уровни вычислений и хранения. Объем доработок оказался очень большим: речь идет примерно о 1,5 млн строк дополнительного кода.
«Для нас было принципиально важно сохранить обратную совместимость с обычным PostgreSQL. И это удалось. Машина третьего поколения может работать, например, с 1С: приложение взаимодействует с ней так же, как с обычной PostgreSQL-базой. В этом и есть один из ключевых результатов: бизнес-приложения, которые уже умеют работать с PostgreSQL, могут использовать нашу систему без изменений», — отметил Вадим Яценко.
Кроме того, для корпоративных клиентов в МБД Tantor XData Gen3 реализован целый набор технологий, которые обеспечивают устойчивую работу под высокой нагрузкой. Среди них: конвейерная запись WAL, параллельная обработка запросов на всех узлах кластера, механизм CSN для повышения производительности при высокой конкуренции транзакций, а также инструменты балансировки нагрузки и управления соединениями.
Отдельную роль играет Tantor RAC (Real Application Clusters) — технология отказоустойчивости и балансировки, которая работает по схеме с одним пишущим и несколькими читающими узлами. В случае сбоя система автоматически переключается на реплику с минимальным временем простоя, а добавление новых читающих узлов увеличивает общую пропускную способность.
Аппаратной основой Tantor XData Gen3 стали процессоры AMD EPYC. За счет большого числа ядер, высокой пропускной способности памяти и поддержки современных интерфейсов ввода-вывода они обеспечивают необходимую мощность для обработки смешанных нагрузок в масштабных информационных системах.
Таким образом, инженеры смогли одновременно сохранить полную совместимость, добавить масштабируемость и получить систему, которая уже работает как полноценная гибридная HTAP-платформа, то есть может одновременно обрабатывать и транзакционные, и аналитические нагрузки.
В «Тантор Лабс» позиционируют новое решение как полноценную альтернативу Oracle Exadata, SAP HANA и IBM Netezza. Платформа рассчитана на компании, для которых критичны непрерывность бизнес-процессов, работа под высокой нагрузкой и возможность масштабировать ИТ-инфраструктуру без архитектурных ограничений.
К машине уже возник большой интерес. О полноценной промышленной эксплуатации речь пока не идет, но уже идут тесты Gen3 на реальных системах.
«Прошлый год у нас был посвящен таким испытаниям. Среди них были и аналитические системы, и смешанные сценарии, то есть разный набор задач. В прошлом году мы предоставляли машину только из нашего ЦОДа, то есть фактически не передавали ее клиентам во внешний контур. А сейчас уже клиенты ждут, когда смогут взять решение к себе и начать полноценно его тестировать в своей инфраструктуре», — рассказал Вадим Яценко.







