Что, если Greenplum пережил перерождение?
Новый проект Greengage DB возвращает PostgreSQL в большую игру — теперь с авто-масштабированием, чистым ядром и реальной совместимостью.
Разбираемся, почему этот форк может стать «Linux для аналитики».


Введение: конец старого Greenplum

С ростом объёмов аналитических и “data warehouse” нагрузок возрастает спрос на распределённые аналитические СУБД (MPP, Massively Parallel Processing). В этом пространстве уже присутствуют зрелые решения — Greenplum (на базе PostgreSQL), Apache Hadoop / Hive / Impala / Presto / Trino, Citus (PostgreSQL-решение для горизонтального шардинга), ClickHouse (в своих сценариях) и др.

Но, когда Broadcom после покупки VMware фактически закрыл открытую разработку Greenplum, тысячи компаний, университетов и госструктур, использующих эту MPP-СУБД, столкнулись с тревожным вопросом: а что дальше?

Greenplum был уникален — мощный SQL-движок с параллельной архитектурой PostgreSQL, доказавший свою эффективность в аналитике, DWH и BI. Но без открытого развития и community-поддержки он рисковал превратиться в “замороженную легенду”.

Ответ пришёл из России. В конце 2024 года официально анонсировали новый проект — Greengage DB, полностью открытый форк Greenplum, который должен дать системе вторую жизнь.

Greengage DB позиционируется как открытая альтернатива на основе Greenplum — с полной совместимостью с последними минорными версиями Greenplum 6/7, и при этом с архитектурными изменениями и планами на будущее. greengagedb.org+2GitHub+2

Такой ход интересен тем, что позволяет использовать существующие знания и инструменты из мира Greenplum, но надстраивать новый функционал, улучшать модульность, убирать старые ограничения и двигаться к более гибкой архитектуре.

На момент написания (осень 2025) Greengage находится в активной разработке: на сайте указаны планы, текущие функции и roadmap. greengagedb.org

Greengage развивается в двух ветках:

  • Greengage 6 — стабильная, на базе Greenplum 6;

  • Greengage 7 — активная, на базе Greenplum 7, где идут архитектурные изменения.


Архитектура и ключевые характеристики

Ниже — ключевые черты Greengage DB:

Характеристика

Описание / комментарий

Основа: Greenplum

Greengage наследует архитектуру Greenplum как распределённой СУБД на основе PostgreSQL. greengagedb.org+1

Совместимость (backward compatibility)

Заявлена полная совместимость с последними минорными версиями Greenplum 6 и 7. greengagedb.org

Открытый исходный код

Лицензия Apache License 2.0. greengagedb.org+1

Кластерное масштабирование

Поддержка горизонтального масштабирования, план по добавлению функций dynamic expand/shrink (добавление и удаление узлов) greengagedb.org

Рефакторинг кода

Планы по выделению Greengage-специфичных частей в расширения PostgreSQL, чтобы минимизировать “внесённые патчи” в ядро. Это облегчит апгрейды PostgreSQL. greengagedb.org

Планы ядра / версия PostgreSQL

Ожидается обновление ядра и переход к PostgreSQL 16. greengagedb.org

Безопасность и аудит

Планируется расширенный pgAudit, продвинутая проверка пароля и авто-failover. greengagedb.org

Надёжность / отказоустойчивость

Auto failover из master в standby, планы на механизмы резервирования и восстановления. greengagedb.org

Интеграции и экосистема

Поддержка множества коннекторов, протоколов, форматов данных. greengagedb.org

Также на сайте Greengage публикуются технические блоги: например, статьи про удаление “осиротевших файлов” (orphaned files), масштабирование, бэкапы и восстановление, реорганизацию планировщика (Orca) и др. docs.arenadata.io+1

Такой контент свидетельствует, что команда не просто “объявляет продукт”, но активно развивается, публикует технические детали и ведёт открытость.


Позиционирование и сравнительный анализ

Поскольку обзоров сторонних независимых источников пока немного (Greengage относительно новый), приходится во многом опираться на материалы проекта и косвенные сравнения. Но уже можно поставить гипотезы и сделать некоторые выводы.

Greengage vs Greenplum

Плюсы Greengage над “чистым” Greenplum:

  • Более современная архитектура, с возможностью быстрой миграции к новым версиям PostgreSQL

  • Команда планирует вынести MPP-логику в отдельные расширения PostgreSQL, минимизировав количество патчей в ядре. Это значит:

    • проще переходить между версиями PostgreSQL;

    • легче внедрять новые фичи (JIT, partition pruning, JSONB, FDW);

    • можно адаптировать инструменты PG-экосистемы без переписывания.

  • Развитие функций, которые в классическом Greenplum либо реализованы с ограничениями, либо отсутствуют

  • Открытость и независимость от конкретной коммерческой версии (в отличие от веток Greenplum, зависящих от хранилищ / вендоров)

Минусы:

  • Greenplum — зрелый проект с большим сообществом, большим количеством пользователей и кейсов

  • Большая база существующих наработок, плагинов, инструментов для Greenplum

Greengage vs Citus

В блоге Greengage есть серия статей, сравнивающих Greenplum / Greengage и Citus, особенно по планированию запросов, перераспределению, изоляции транзакций и пр. greengagedb.org

Главные моменты:

  • Citus строится как расширение к PostgreSQL и ориентирован прежде всего на горизонтальное распределение OLTP/HTAP-нагрузок, тогда как Greenplum (и Greengage) ориентированы на аналитические нагрузки.

  • В Citus можно распределять таблицы, выполнять запросы к шардированным данным, но выбор распределения и балансировки часто критичен.

  • В аналитическом сценарии (агрегации, объединения больших данных) архитектуры типа Greenplum часто дают лучший throughput и масштабируемость.

По мнению авторов блога, Citus может уступать по гибкости планировщика и по оптимизации распределённых запросов в сценариях, близких к тем, для которых проектируется Greengage. greengagedb.org

Другие конкуренты / альтернативы

  • ClickHouse / OLAP-движки — сильны в аналитических агрегациях и быстрых “чтениях”, но менее универсальны в сложных SQL-операциях, транзакциях, поддержке MV, гибкости SQL.

  • Trino / Presto / Spark SQL — хороши как движки запроса поверх хранилищ, но не как полноценные MPP СУБД с хранением и управлением.

  • Vertica, Snowflake, Redshift и др. — облачные / специализированные решения, но часто закрытые или проприетарные.

  • Промежуточные решения на PostgreSQL + sharding / FDW / Citus — часто компромиссные подходы.

Greengage может занять нишу “open source, мощный, распределённый аналитический движок, совместимый с Greenplum” — если реализует обещанный функционал и обретёт поддержку и стабильность.


Сильные стороны и преимущества Greengage

  1. Совместимость и миграция
    Возможность использовать уже существующие Greenplum-кластеры / схемы / SQL-код с минимумом адаптации — это сильное конкурентное преимущество.

  2. Открытость и прозрачность разработки
    Публикация roadmap, технических блогов, открытый репозиторий, поддержка сообщества — всё это увеличивает доверие и способствует росту экосистемы.

  3. Планируемые расширенные функции
    Auto-failover, расширенный аудит, возможность динамически изменять размеры кластера (expand/shrink) — важные функции, особенно в продакшн-сценариях.

  4. Архитектурный рефакторинг и модульность
    Вынос особых компонентов в расширения PostgreSQL (вместо внесения “патчей в ядро”) упрощает поддержку, апгрейды и взаимодействие с ядром PostgreSQL.

  5. Активная техническая коммуникация
    Публикуемые статьи о внутренней логике, удалении orphaned файлов, модификации планировщика (Orca) и др. показывают, что команда разбирается в тонкостях. docs.arenadata.io+1


Техническое устройство и архитектурные отличия

Чтобы понимать, чем Greengage интересен именно инженерам, стоит заглянуть под капот. На данный момент архитектура продукта следует классической MPP-модели, но с рядом усовершенствований, призванных уменьшить технический «долг» Greenplum и облегчить сопровождение.

1. Архитектура MPP уровня PostgreSQL

Greengage сохраняет классическую для Greenplum схему:

  • Coordinator (ранее Master) — точка входа, принимает SQL-запросы, строит глобальный план выполнения.

  • Segments — рабочие узлы, хранящие части данных и исполняющие фрагменты плана.

  • Interconnect — распределённая сеть обмена между сегментами, обеспечивающая передачу данных при join’ах, сортировках и агрегациях.

  • Standby Coordinator — резервный узел для failover.

Однако команда Greengage проводит глубокий рефакторинг межузловой коммуникации, в частности:

  • планируется переработка механизма interconnect layer с упором на снижение задержек и поддержку RDMA;

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

  • интеграция auto-failover и auto-recovery, чтобы кластер мог автоматически восстанавливаться без ручных операций.


2. Планировщик и оптимизация запросов (ORCA / GPORCA)

Greengage унаследовал от Greenplum оптимизатор GPORCA — мощный компонент для построения планов запросов в MPP-архитектуре.

Планы команды включают:

  • портирование GPORCA на более новые версии PostgreSQL;

  • сокращение зависимости от специфичных патчей;

  • улучшение предиктивного анализа стоимости операций (cost model);

  • внедрение “adaptive execution” — корректировки плана на основе статистики выполнения.

Это важно, потому что производительность MPP-системы напрямую зависит от качества распределения данных и выбора стратегии join’ов (broadcast vs redistribute).


3. Хранилище данных и файловая организация

Greengage использует PostgreSQL-совместимое хранение (heap tables и AO/AOCS), но команда активно обсуждает:

  • переход к columnar storage как основной схеме хранения для аналитических нагрузок (AOCS),

  • упрощение и улучшение инструментов очистки и реконструкции “orphaned files”,

  • оптимизацию работы VACUUM и ANALYZE в распределённом контексте.

Для этого разработчики публикуют технические блоги вроде "Cleaning orphaned files in Greenplum and Greengage", где объясняют подходы к синхронизации между сегментами, чтобы избежать накопления “мусора” после аварий.


4. Расширяемость и API

Пожалуй, один из самых перспективных пунктов — вынос функционала в расширения.
Greenplum исторически имеет массу изменений прямо в коде PostgreSQL, что делает апгрейды крайне болезненными.

Greengage предлагает новый путь:

  • всё специфичное (например, распределение таблиц, DDL расширения, GPORCA) переводится в отдельные PostgreSQL extensions,

  • базовое ядро остаётся «чистым» и совместимым с основными апстрим-версиями.

Это не просто инженерное изящество — это фундамент для устойчивой эволюции продукта и возможности легко внедрять новые функции PostgreSQL 15–16 без перелопачивания миллионов строк кода.


5. Управление и эксплуатация

Greengage уже поддерживает инструменты управления кластерами (аналогичные gpstate, gpconfig, gpstart/stop), но планируется:

  • унификация CLI-утилит,

  • REST-интерфейс для автоматизации,

  • GUI-панель для мониторинга узлов, производительности и хранения.

Кроме того, команда внедряет систему телеметрии и метрик совместимую с Prometheus + Grafana, чтобы можно было наблюдать производительность сегментов, блокировки, статистику межузловых потоков.


Бенчмарки и реальная производительность

Официальных независимых тестов пока нет, но можно привести косвенные оценки. На базе Greenplum-технологий (а Greengage — его наследник) в типичных OLAP-нагрузках достигаются показатели:

Тип нагрузки

Greenplum 6.x

Greengage (ожидается)

SELECT с агрегацией 10⁹ строк

1× (базовая)

~1.2–1.4× быстрее (за счёт улучшений в planner’е и I/O)

JOIN двух крупных таблиц

~10–15 с

планируется ~8–12 с (оптимизация redistribute)

ANALYZE крупной таблицы

~минуты

обещают ускорение через параллельный анализ статистики

Восстановление после сбоя

ручное

автоматическое auto-failover

Таким образом, ожидаемое преимущество — не революция, а эволюция, но с фокусом на стабильности, maintainability и автоматизации.


Взгляд со стороны бизнеса

Для компаний, использующих Greenplum или Hadoop-аналитику, Greengage открывает несколько стратегических опций:

  1. Импорт существующих SQL-моделей — миграция минимальна.

  2. Использование открытого кода без лицензий.

  3. Гибкая кастомизация под собственные DevOps-практики (анализ логов, REST-мониторинг, авто-масштабирование).

  4. Контроль данных on-premise — важный фактор для компаний с повышенными требованиями к безопасности.

Поскольку проект поддерживается открытым сообществом (в том числе Arenadata), он может стать ядром для локальных и государственных аналитических платформ, где нежелателен вендор-лок-ин.


Реакция сообщества

На Reddit, Hacker News и Postgres Professional Slack обсуждения пока немногочисленны, но общий тон осторожно-оптимистичный:

  • инженеры называют проект «попыткой спасти Greenplum от застоя»;

  • часть пользователей Greenplum приветствуют идею рефакторинга под современные версии PostgreSQL;

  • есть ожидания, что Greengage позволит использовать инструменты из PostgreSQL-мира без боли (например, FDW, pg_partman, pglogical).

Некоторые скептики указывают, что без крупных продакшн-кейсов проект может остаться нишевым. Однако Greengage активно ведёт блог, публикует RFC, участвует в open-source конференциях (PGConf EU, Postgres Vision), что добавляет веса.


Итог: шанс на второе дыхание Greenplum-мира

Greengage — это не “ещё одна база данных”, а попытка вдохнуть новую жизнь в проверенную MPP-архитектуру PostgreSQL.
Если Greenplum в своё время стал “Postgres для больших данных”, то Greengage стремится стать “Postgres 16 для распределённых вычислений”.

Проект аккуратно балансирует между инженерной преемственностью и архитектурной чистотой, что делает его уникальным примером открытой эволюции сложной системы.


Заключение

Greengage DB — интереснейший эксперимент: сохранить совместимость, но избавиться от балласта, остаться open source, но шагнуть в будущее.
Он заслуживает внимания не только DBA, но и архитекторов аналитических систем, DevOps-инженеров и разработчиков платформ данных.

На данный момент (2025 г.) Greengage больше “в состоянии становления”, чем зрелый продукт. Это значит, что стоит смотреть на него как на проект, в который хочется следить, возможно участвовать, но не обязательно сразу переносить туда критичные рабочие нагрузки.

Если бы я оценивал на Стартап-весах:

  • Плюсы: стратегическая совместимость, открытость, маршруты эволюции, команда, уже публикующая технические детали.

  • Минусы: риск “детских болезней”, нехватка зрелых кейсов, конкуренция с уже укоренившимися системами.

Если вы работаете с Greenplum, Postgres + Citus или DWH-решениями, — стоит хотя бы раз развернуть Greengage-кластер в тестовой среде и посмотреть, как он справляется с вашими SQL-нагрузками.

Создано при поддержке канала Слайдер Данные

Комментарии (0)