Крупнейшая профессиональная конференция для разработчиков высоконагруженных систем

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

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

YDB

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

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

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

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

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

Тезисы

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

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

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

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

Павел Велихов

Yandex.Cloud (YDB)

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

Yandex.Cloud (YDB)

YDB — это распределённая отказоустойчивая Distributed SQL база данных с открытым исходным кодом, которая сочетает в себе высокую доступность и масштабируемость со строгой согласованностью и транзакциями ACID. Она поддерживает одновременное выполнение транзакционных (OLTP), аналитических (OLAP) и потоковых нагрузок.

Видео

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

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