Стоимостный оптимизатор в YDB — как, зачем и почему?

Базы данных и системы хранения

YDB

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Ничто так не бесит аналитиков и разработчиков, чем когда тормозит сложный запрос в СУБД. Ответственность за все это несет оптимизатор запросов. В этом докладе узнаем, как современный оптимизатор помогает БД не тормозить и что удалось уже реализовать в оптимизаторе YDB.

Целевая аудитория

Разработчики СУБД, пользователи СУБД, DBA, дата-инженеры.

Тезисы

Недавно мы добавили стоимостный оптимизатор в YDB, зачем мы это сделали и какие задачи он поможет решать?

YDB создавалась как OLTP-система для поддержки высоконагруженных проектов с большим объемом транзакций. Обычно в таких системах запросы довольно простые, хотя все равно попадаются и аналитические запросы со значимым количеством соединений таблиц. Такие запросы довольно сложно оптимизировать вручную, и на помощь приходит стоимостный оптимизатор. Многие наши конкуренты, такие как CockroachDB, TiDB, Yugabyte добавили стоимостные оптимизаторы к своим продуктам.

Но несколько лет назад мы также решили добавить колоночное хранение и сложную аналитику в YDB. В этом сценарии качественный стоимостный оптимизатор становится просто необходим, и требования к нему намного более серьёзные, чем в сценарии OLTP. Причем, поддерживая сразу строчное и колоночное хранение в одной СУБД, можно перейти в режим HTAP, где пользователь даже не знает, где будет исполняться его запрос — сверху строчного или колоночного хранилища — это решает как раз оптимизатор запросов.

В этом докладе мы расскажем о том, как мы написали свой стоимостный оптимизатор для этих сценариев, какая у него текущая функциональность на данный момент, сравнимся с конкурентами в области OLTP- (CockroachDB, Yugabyte), OLAP- (GreenplumDB, Teradata, Oracle Exadata, Trino) и HTAP- (TiDB) решений и расскажем о планах развития.

Руководитель команды оптимизатора YDB.
Некоторые прошлые проекты: Enosys Integration Server (сейчас часть Oracle), Sedna XML DBMS, система Texterra (Институт Системного Программирования), SciDB MPP DBMS, News360, Huawei GaussDB, TigerGraph.

Yandex Cloud

Строят публичную облачную платформу Yandex Cloud, чтобы дать компаниям доступ к технологиям и сервисам, которые проверены нагрузками Яндекса. Продукты Yandex Cloud — это масштабируемая инфраструктура, сервисы хранения данных, инструменты машинного обучения и средства разработки.

Видео

Другие доклады секции

Базы данных и системы хранения