YDB

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

Эластичность и масштабируемость
YDB создана с учётом требований к высокой производительности и может обрабатывать миллионы транзакций в секунду и петабайты данных для критически важных, интерактивных приложений. Система легко расширяется простым добавлением серверов.
Простота в использовании
Система сочетает в себе строгую согласованность, поддержку ACID-транзакций, высокую производительность, возможность загрузки больших объёмов данных, привычный SQL-диалект и поддержку JSON API.
Отказоустойчивость
YDB спроектирована для работы в трёх зонах доступности и обеспечивает работоспособность даже в случае выхода из строя одной из них.
Автоматическое восстановление после сбоев
Автоматическое восстановление после сбоя диска, сервера или даже центра обработки данных без влияния на работу приложений.
Доступность в любом облаке
YDB доступна для самостоятельного развёртывания, в том числе при помощи Kubernetes, локально, в облачных средах или в качестве управляемого сервиса Яндекс Облака.
Открытый исходный код
Система лицензирована под Apache 2.0.
Нет рисков, не требуется привязка к облаку или поставщику.

Кейсы наших клиентов

Яндекс Маркет

Корзина — один из ключевых компонентов любой торговой площадки или интернет-магазина.

Использование YDB в качестве базы данных позволило Яндекс Маркету выдержать стократное увеличение нагрузки на «Корзину» при соблюдении строгих гарантий времени отклика.

При этом миграция осуществлялась силами одного разработчика в течение месяца.

Варианты использования

Кеш с SQL-интерфейсом
Быстрый отклик и масштабируемость пропускной способности позволяют использовать YDB одновременно в качестве онлайн-базы данных и предварительно посчитанного кеша. Возможности SQL значительно повышают удобство использования и позволяют проводить оперативную аналитику данных в кеше. Например, сайты туроператоров и агрегаторов путешествий могут использовать базу данных для кеширования результатов поиска авиабилетов или туров, а также для пересчёта цен и проверки сезонной доступности.
Работа с внезапным ростом нагрузки
Эластичность YDB позволяет быстро изменять количество ресурсов, выделенных базе данных, чтобы обеспечить необходимую пропускную способность в соответствии с нагрузкой. Вы можете легко увеличить или уменьшить количество вычислительных ресурсов в зависимости от предстоящих нагрузок, например, на «Чёрную пятницу» или для маркетинговых кампаний.
Централизованная система учёта запасов
YDB обеспечивает строгую целостность транзакций. Это позволяет предоставлять консистентные данные о запасах на всех складах и торговых объектах, и делает YDB подходящим решением для электронной коммерции, приложений складской или транспортной логистики.

Как это работает

Архитектура YDB

Мы используем стандартное оборудование: обычные серверы и архитектуру «shared nothing», разделяем уровни вычислений и хранения данных, строим систему на основе логических компонентов — таблеток.

Иерархия

Для удобства организации таблиц существует возможность создания директорий по аналогии с файловой системой.

Таблицы

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

Автоматическое шардирование по нагрузке

При увеличении нагрузки таблетка автоматически разделяется.

Автоматическое шардирование по размеру

При росте объёма данных таблетка автоматически разделяется.

Автоматическая балансировка

YDB равномерно распределяет таблетки между узлами, перемещает загруженные таблетки с загруженных узлов. Отслеживаются показатели процессора, памяти, сети.

Устройство Distributed Storage

Весь код для работы с блочными устройствами мы пишем сами, не используем готовые драйверы. Компонент PDisk отвечает за работу с блочным устройством. Над PDisk находится слой абстракции VDisk. Между таблеткой и VDisk находится специальный компонент — DSProxy. Он анализирует доступность и характеристики работы диска и на их основании может принять решение об исключении диска из работы.

DSProxy

YDB пишет данные в три зоны доступности, не шлёт запросы на заведомо плохие диски и продолжает работать даже после отказа одной зоны доступности и одного диска.

С чего начать

Docker

Загрузите актуальную публичную версию Docker-образа:

docker pull cr.yandex/yc/yandex-docker-local-ydb:latest

Перед запуском создайте рабочую директорию, и выполните из неё запуск:

docker run -d --rm --name ydb-local -h localhost -p 2135:2135 -p 8765:8765 -p 2136:2136 -v $(pwd)/ydb_certs:/ydb_certs -v $(pwd)/ydb_data:/ydb_data -e YDB_DEFAULT_LOG_LEVEL=NOTICE -e GRPC_TLS_PORT=2135 -e GRPC_PORT=2136 -e MON_PORT=8765 cr.yandex/yc/yandex-docker-local-ydb:latest

Перейдите к статье Начало работы — Самостоятельное развертывание — Docker в документации YDB для получения детальной информации.

В двух словах про YDB

Присоединяйтесь к сообществу

GitHub

Telegram

Twitter

YouTube