Видеозаписи 2022

Эволюция акторной системы

Database internals

Существует несколько подходов к созданию эффективных многопоточных приложений на С++. В YDB была выбрана модель акторов, и с нуля создана собственная акторная система. С тех пор прошло более 7 лет, и сегодня акторная система работает на десятках тысяч серверов. Чтобы пройти путь к созданию сложных модульных распределенных систем с помощью модели акторов команде YDB пришлось решить множество проблем.

В докладе Алексей Станкевичус (Руководитель групп разработки распределенного хранилища YDB) рассказал о некоторых из них:

  • как совместить интерактивную нагрузку и фоновые задачи в одном приложении;
  • как обеспечить гарантии latency и высокую утилизацию;
  • как изолировать подсистемы и обойтись без резервирования CPU.

И, конечно, Алексей рассказал, почему выбрали именно модель акторов.

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

Слайды

Считаем число просмотров видео для десятков миллионов пользователей в день

Use cases

Обычные продуктовые фичи могут стать нетривиальной задачей на больших масштабах. Иван Соколов (Руководитель службы видеохостинга (Внешний Дзен)) рассказал, как были спроектированы две системы подсчёта пользователей: общее число просмотров видео и количество текущих зрителей live-трансляций.

В докладе Иван рассказывает о решении следующих задач:

  • близкое к realtime время обновления счётчиков;
  • возможность горизонтального масштабирования;
  • отказоустойчивость при выпадении части мощностей.

Доклад будет интересен разработчикам и аналитикам Video on Demand-сервисов.

Слайды

Миллион RPS в YDB: история одного переезда Метрики

Use cases

В Яндекс Метрике существует сборка визитов пользователей на сайте, для этого необходимо хранить историю всех событий и склеивать их друг с другом на лету. Для этого использовалась конвейерная распределенная система, со своим самописным локальным хранилищем и своей логикой репликации и шардирования. По мере роста нагрузки команда, в которой работает Александр Прудаев (Старший разработчик), уперлась в производительность отдельного шарда, при этом продолжать наращивать их количество без принципиальной перестройки архитектуры было крайне болезненно.

Александр в рамках доклада рассказал:

  • Почему остановились на YDB, как переезжали, что сломали.
  • Как научились работать с таблицей в 40ТБ и 1 миллионом запросов в секунду.
  • Как тестировали и масштабировали.

Доклад рассчитан на разработчиков среднего уровня и выше.

Слайды

YDB: мультиверсионность в распределенной базе

Database internals

Андрей Фомичев (Руководитель YDB) рассказал про особенности выполнения распределенных транзакций, и что нужно делать, чтобы их поведение было привычным для пользователя, а также раскрыл особенности реализации MVCC в YDB:

  • MVCC поверх LSM-деревьев.
  • Как удалось сделать MVCC с консистентными снапшотами в распределенной базе данных.
  • Почему выбрали глобальные, а не локальные таймстемпы.

Доклад подойдет всем, кто интересуется распределенными системами, базами данных.

Слайды

Q&A про Open Source YDB и планы на будущее

Overview

Андрей Фомичев (Руководитель YDB), Олег Бондарь (CPO YDB) и Сергей Пучин (Руководитель группы) выступили на Q&A-сессии, поделились планами на будущие и ответили на вопросы слушателей.

Также в докладе:

  • Кратко о том, что такое YDB.
  • История развития YDB: от первого коммита 10.01.2014 до выхода за пределы Yandex.
  • Про выход в Open Source.

Выступление будет интересно тем, кто хочет глубже понять некоторые аспекты реализации и работы YDB.

Дедупликация 5 миллионов событий в секунду на YDB в АппМетрике

Use cases

Доклад Артема Исмагилова (Разработчик Яндекс.Метрики) раскрывает детали перехода АппМетрики на YDB. Из доклада Артема вы узнаете:

  • Как была устроена прошлая версия сервиса: физические сервера с состоянием в оперативной памяти, сохраняемым на диск и самодельной репликацией.
  • Подходы к реализации новой версии, которые рассматривали.
  • Почему выбрали именно YDB для реализации новой версии сервиса.
  • С какими трудностями столкнулись и как их преодолели: большой поток событий, необходимость транзакционной обработки событий, удаление старых данных из базы.
  • Как уменьшили нагрузку на YDB в 10 раз, добавив фильтр блума в виде отдельной таблицы YDB.
  • Что еще предстоит сделать.

Доклад будет интересен разработчикам высоконагруженных бэкендов.

Слайды

Просто о сложном: как работает драйвер распределенной базы данных YDB

Database internals

Драйвер распределенной базы данных существенно отличается от драйверов традиционных (нераспределенных) баз данных. Главная отличительная особенность распределенных баз данных - необходимость работать со множеством нод СУБД. Для равномерной нагрузки на ноды БД в YDB используется как клиентская, так и серверная балансировка. Для баз данных, работающих в режиме 24/7 и допускающих различные сценарии отказа, драйвер должен быть готов к ошибкам разного рода. Это влияет на то, каков должен быть драйвер распределенной базы данных.

В докладе Алексей Мясников (руководитель команды разработки клиентских библиотек YDB) рассказал про опыт разработки драйверов для распределенной БД на разных языках, про проблемы, с которыми сталкивались, и как их решали или митигировали, а также про вынесенные уроки и принятые решения. Доклад будет интересен разработчикам, интересующимся высоконагруженными системами.

Слайды

Интервью с Андреем Фомичевым

Overview

Андрей Фомичев (Руководитель YDB) рассказал о том, как он пришел в разработку баз данных, с чего начиналась YDB, и что предшествовало её появлению.

Open Source трибуна. YDB в Open Source — что это такое?

Overview

Яндекс понимает важность опенсорса, выпускает собственные открытые продукты и поддерживает сообщество. Олег Бондарь (CPO YDB) рассказал о выходе YDB в Open Source, о сообществе платформы, а также о балансе между потребностями внутренних и внешних пользователей.

Доклад будет интересен всем, кто интересуется распределенными базами данных.

Практические примеры использования Change Data Capture в YDB

Practice

Андрей Фомичев ( Руководитель YDB ), Максим Зиналь ( Архитектор YDB ), Ильназ Низаметдинов ( Руководитель группы ), Тимофей Кулин ( Разработчик ) объяснили, что такое Change Data Capture (CDC), и какие задачи с помощью него можно решить сейчас и в перспективе. Основной упор в вебинаре сделан на практику: продемонстрировано, как с помощью CDC поддерживать актуальное состояние кэша базы данных оперативной памяти приложения. Пример выполнен в виде программы на языке Go, в ней также показаны приёмы работы с YDB Go SDK.

В вебинаре:

  • включение CDC для таблицы;
  • прослушивание потока изменений;
  • работа с CDC, c использованием командного интерпретатора YDB CLI.

Управляемый сервис YDB: настройка, применение, мониторинг

Practice

Применение YDB как управляемого сервиса позволяет разработчикам и архитекторам сосредоточиться на бизнес-задачах, а команда Yandex Cloud возьмёт на себя заботы о надёжности, производительности и ресурсной эффективности баз данных.

В вебинаре Максим Зиналь ( Архитектор YDB ) показал:

Предыдущая
Следующая