В команде YMatrix 2 из 5 топ-контрибьюторов Greenplum (ключевые разработчики, менявшие исходный код), на которых приходится примерно 20% вклада в R&D GreenPlum. Ядро команды разработки состоит из 30+ разработчиков, занимающихся развитием основных фичей.
Как продукт, YMatrix представляет из себя активно развивающийся форк GreenPlum 7 с большим количеством доработок и изменений.
Что особенно хотелось бы отметить:- MARS3 — гибридный колоночно‑строчный формат хранения, реализованный через структуру LSM Tree (Log‑Structured Merge Tree), которая позволяет хранить данные в отсортированном виде по указанным полям;
- Domino — потоковая репликация данных для обеспечения высокой доступности;
- MXShift — инструмент для полной, инкрементальной или условной миграции данных между кластерами GreenPlum/YMatrix в кластер YMatrix;
- MXVector — все вычисления производятся в векторизованном виде. В сценариях с большими объёмами данных это значительно повышает скорость выполнения запросов;
- YMatrix Cloudedition — раздельное хранение и вычисление данных. Позволяет хранить бинарные файлы в Object Storage.
Подготовка к тестированиюНаши подопытные:
- Open Source GreenPlum 6.27.1 — последняя open source версия GP6;
- Open Source GreenPlum 7.2;
- CloudBerry 1.6.0;
- YMatrix 6.6.
Тесты, которые проводились:Тестирование проводилось на одинаковых настройках ОС, за исключением использования cgroups v1 и cgroups v2.
Базовые настройки кластера также совпадают для всех дистрибутивов:- max_connections=400,
- max_prepared_transactions=400,
- gp_resource_group_memory_limit=0.9.
Настройки ресурсных групп выставлялись одинаковые, с поправкой на изменившийся формат конфигурации, за исключением ситуаций, когда тесты падали по памяти. В таком случае выставлялось значение concurrency, при котором тест отрабатывал без ошибок.
Для YMatrix тестирование проводилось сразу на 8 сегментах на хост, чтобы результаты были сравнимы.
Стенд тестирования по методике НТ MPP-движков: ВМ в Яндекс Cloud следующего сайзинга: