• Оглавление
  • Начало работы

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

Полное объяснение того, как работает YDB, получилось бы слишком объемным. Ниже вы можете ознакомиться с несколькими основными моментами, а затем продолжить изучение документации, чтобы узнать больше.

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

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

Кластеры YDB обычно работают с shared nothing архитектурой на обычном оборудовании. Уровни вычислений и хранения являются разнёсенными. Они могут работать как на отдельных наборах узлов, так и быть совмещёнными.

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

Более подробная информация об общей архитектуре YDB объясняется в разделе документации о кластерах YDB.

Иерархия

Иерархия

С точки зрения пользователя, всё внутри YDB организовано в иерархической структуре с использованием каталогов. Она может иметь произвольную глубину в зависимости от того, как вы решили организовать свои данные и проекты. Хотя YDB не имеет фиксированной глубины иерархии, как в других реализациях SQL, она все равно будет знакома, поскольку именно так выглядит любая виртуальная файловая система.

Таблица

Таблица

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

Разделение по нагрузке

Разделение по нагрузке

Data shard автоматически разделяются на большее количество при увеличении нагрузки. Они автоматически объединяются в нужное количество, когда пиковая нагрузка уходит.

Разделение по размеру

Разделение по размеру

Data shard также автоматически разделяются при увеличении размера данных. Они автоматически сливаются обратно, если достаточное количество данных будет удалено.

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

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

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

Внутреннее устройство распределенного хранилища

Внутреннее устройство распределенного хранилища

YDB не полагается на сторонние файловые системы. Она хранит данные, работая непосредственно с дисковыми накопителями как блочными устройствами. Поддерживаются все основные типы дисков: NVMe, SSD или HDD. За работу с конкретным блочным устройством отвечает компонент PDisk. Уровень абстракции выше PDisk называется VDisk. Также есть специальный компонент, называемый DSProxy, между таблеткой и VDisk. DSProxy анализирует доступность и характеристики дисков и выбирает, какие диски будут обрабатывать запрос, а какие нет.

Прокси распределенного хранилища (DSProxy)

DSProxy

Геораспределенная и отказоустойчивая конфигурация YDB обычно охватывает 3 датацентра или зоны доступности (Availability Zone - AZ). Когда YDB записывает данные на 3 зоны доступности, он не отправляет запросы на явно некорректные диски и продолжает работать без прерываний даже если одна зона доступности и диск в другой зоне доступности потеряны.