YDB — это распределённая отказоустойчивая реляционная база данных с открытым исходным кодом, которая сочетает высокую доступность, масштабируемость и производительность. Вместе с сопутствующим стеком serverless-технологий YDB позволяет организовать систему хранения и обработки данных для самых сложных и требовательных приложений.
Также YDB — это платформа для создания инфраструктурных компонентов. Мы предлагаем пользователям не только надёжные транзакции поверх таблиц, но и готовые решения на основе самого движка: персистентные очереди, федеративные запросы, сетевые диски для виртуальных машин (Yandex Network Block Store) и другое.
YDB обеспечивает строгую согласованность с помощью распределённых транзакций. Они могут охватывать данные, находящиеся в разных таблицах или в одной таблице на множестве узлов. Число узлов может достигать десятков тысяч.
YDB использует детерминированные транзакции в качестве этапов выполнения пользовательских транзакций с дополнительной оркестрацией и блокировками.
Строковая таблица в БД может быть шардирована по диапазонам значений первичного ключа. Каждый шард таблицы отвечает за свой диапазон первичных ключей. Диапазоны ключей, обслуживаемых разными шардами, не пересекаются. Различные шарды таблицы могут обслуживаться разными серверами распределённой БД (в том числе расположенными в разных локациях), а также могут независимо друг от друга перемещаться между серверами для перебалансировки или поддержания работоспособности шарда при отказах серверов или сетевого оборудования.
В YDB автоматически создаётся индекс по первичному ключу, поэтому выборки с условием по первичному ключу всегда выполняются эффективно, затрагивая только требуемые строки. Выборка с условием, наложенным на одну или несколько неключевых колонок, как правило, приводит к полному сканированию таблицы. Для того чтобы такие выборки были эффективными, нужно использовать вторичные индексы. В текущей версии YDB реализованы синхронные и асинхронные глобальные вторичные индексы.
Поиск k ближайших соседей (k-NN) — это задача оптимизации, которая заключается в нахождении k ближайших точек к точке запроса. Это может быть полезно в различных приложениях, таких как классификация изображений, рекомендательные системы и многое другое.
Решение задачи k-NN разбивается на два крупных подкласса методов: точные и приближённые.
Полнотекстовые индексы — это экспериментальный тип вторичных индексов, которые предоставляют возможности быстрого текстового поиска. Основная идея полнотекстового индекса заключается в сохранении сопоставления терминов со строками, которые содержат эти термины.
Яндекс — одна из крупнейших ИТ-компаний в России. Мы развиваем самую популярную в стране поисковую систему и создаём сервисы, которые помогают людям в повседневных делах. С их помощью можно искать информацию в интернете, слушать музыку, выбирать товары и места, заказывать еду, перемещаться по городу и делать многое другое. Яндекс предлагает также продукты для бизнеса.