Видеозаписи

Видеозаписи с конференций и вебинаров. Материалы разделены по категориям и размечены тегами:

Overview

– обзорные материалы, знакомящие с YDB и технологиями, которые применяются в ней.

Use cases

– кейсы использования YDB.

Practice

– практика использования YDB.

Database internals

– подробный разбор внутренней реализации YDB или её отдельных частей и механизмов.

Releases

– обзор новых возможностей, вышедших релизов YDB.

Testing

– кейсы тестирования производительности YDB и сравнения с другими одноклассовыми СУБД.

General

– материалы общего направления.

YDB — параллельная асинхронная репликация в распределенной базе

Database internals

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

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

Из доклада вы узнаете:

  • Почему традиционный вариант хранения логов не подходит для распределенной БД?
  • Что такое топики и как они помогают в хранении логов?
  • С какими проблемами использования топиков для хранения логов столкнулась команда YDB и как их решала?
  • Как обеспечить запись данных в целевой кластер при работе с распределенными транзакциями?

Слайды

YDB Java SDK: борьба за производительность

Overview

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

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

Слайды

Искусство бенчмаркинга распределённых баз данных на примере YDB

Testing

Евгений Иванов ( Старший разработчик ) рассказал, какие проблемы производительности нашли в популярных бенчмарках Yahoo! Cloud Serving Benchmark (YCSB) и Benchbase TPC-C. Как их исправили и как теперь используют эти бенчмарки, чтобы находить узкие места в YDB и делать оптимизацию. И насколько, согласно этим бенчмаркам, YDB опережает своих основных конкурентов CockroachDB и YugabyteDB, которые тоже являются распределёнными СУБД с открытым исходным кодом.

Доклад будет интересен как разработчикам приложений, которым требуется надёжная СУБД, так и людям, интересующимся распределёнными системами и базами данных.

Слайды

Реализовать OLAP: как мы делали колоночное хранение в YDB

Overview

Database internals

YDB – это платформа, которая умеет обрабатывать большой поток быстрых транзакций (OLTP, Online Transaction Processing). Команда, в которой работает Софья Новожилова (занимается развитием аналитического направления платформы YDB) захотела научить YDB обрабатывать другой тип запросов — аналитические (OLAP, Online Analytical Processing).

Из доклада вы узнаете ответы на вопросы:

  • Достаточно ли просто поменять систему хранения, упаковать данные по колонкам, чтобы получить профит?
  • Зачем это было нужно и какая польза от таких расширений системе в целом?

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

Слайды

database/sql: плохой, хороший и злой. Опыт разработки драйвера для распределенной СУБД YDB

Database internals

В Golang есть пакет database/sql, который предоставляет универсальный интерфейс общения с базами данных. С течением времени database/sql сильно изменился и далеко ушёл от своего первоначального вида, он стал намного удобнее и функциональнее, но так было не всегда. Команда YDB работала с драйвером для YDB, начиная с версии Golang v1.11, и сталкивалась с различными трудностями в процессе эксплуатации в продакшнах пользователей.

В этом ретроспективном докладе Алексей Мясников (руководитель команды разработки клиентских библиотек YDB) расскажет о том, какие недочеты были в пакете database/sql, во что это выливалось при эксплуатации и как он становился все лучше от версии к версии Golang.

Доклад будет интересен разработчикам и пользователям драйверов в стандарте database/sql, а также пользователям распределенной базы данных YDB, разрабатывающим свой код на языке Golang.

Слайды

YDB-оптимизации производительности под ARM

Testing

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

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

Слайды

YDB Topic Service: как мы повышали производительность очереди сообщений

Database internals

Testing

5 лет назад Яндекс перешел с Kafka на собственную разработку поверх YDB. С тех пор Yandex Topic Service сильно подрос по нагрузке и вышел в Open Source. В этом докладе Александр Зевайкин (Технический лидер) рассказывает про ускорение YDB Topic Service и приводит сравнение с конкурентами.

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

Слайды

Особенности шин данных для очень больших инсталляций на примере YDB Topics

Database internals

Шины передачи данных используются практически везде, но использование шин данных в очень больших инсталляциях на тысячи серверов накладывают особые требования для работы и приводят к отличиям в работе систем. Алексей Дмитриев (Технический менеджер) показывает на примере YDB Topics, в чем заключаются эти отличия, как они влияют на архитектуру и эксплуатацию.

Доклад будет интересен разработчикам и командам эксплуатации, особенно в компаниях больших размеров.

Слайды

Поиск по образцу на последовательностях строк в БД

Database internals

Задача поиска по образцу на последовательности строк БД может возникать в различных сферах деятельности. Например, в финансовой аналитике — поиск определённых паттернов изменения цены акций. Для реализации таких запросов к базам данных в стандарте SQL:2016 была введена конструкция MATCH_RECOGNIZE. Евгений Зверев (Разработчик) рассказывает о реализации MATCH_RECOGNIZE в YDB: о том, как это работает под капотом, какие подходы и алгоритмы реализованы, с какими сложностями столкнулась команда.

Отдельная часть выступления посвящена отличиям в обработке аналитических запросов на табличках и обработке на потоках «живых» данных. Доклад будет интересен разработчикам БД, дата-аналитикам, а также всем, кто интересуется поиском по образцу на больших данных.

Слайды

Из pytest в Go. Тестовое окружение на фикстурах

Testing

Фикстуры позволяют писать очень лаконичные тесты и не отвлекаться на подготовку окружения. Тимофей Кулин (Разработчик) рассказал, как перенёс идеологию фикстур из pytest в Go и разработал библиотеку fixenv, которая сокращает код тестов и улучшает их читаемость.

Доклад будет интересен разработчикам на Go и тимлидам.

Слайды

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

Overview

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

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

Overview

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

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

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

Database internals

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

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

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

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

Слайды

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

Use cases

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

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

  • близкое к 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 ) рассказал про опыт разработки драйверов для распределенной БД на разных языках, про проблемы, с которыми сталкивались и решали или митигировали, а также про вынесенные уроки и принятые решения. Доклад будет интересен разработчикам, интересующимся высоконагруженными системами.

Слайды

Как клиенты облака используют YDB Serverless

Use cases

Антон Коваленко (Технический менеджер) поделился клиентским опытом использования YDB. В докладе:

  • Что такое YDB.
  • YDB как Serverless-платформа.
  • За что клиенты выбирают YDB.

Слайды

Большой таблеточный взрыв

Overview

Современная распределённая БД, как и сама Вселенная, состоит из мельчайших частиц. Из частиц, которые мы называем таблетками, строится петабайтная вселенная данных Yandex Database. Андрей Фомичев ( Руководитель YDB ) рассказал о том, какую задачу решают таблетки, как они обеспечивают согласованные изменения данных и отказоустойчивое хранение, а также как мечты помогают нам создавать новые технологии космического масштаба, не ограничиваясь стандартными решениями.

Миграция приложения с PostgreSQL на Yandex YDB Serverless. Производительность, стоимость, риски.

Use cases

Practice

В исследовании, которое провела команда Yandex YDB, рассмотрены аспекты миграции Е-commerce приложения, изначально разработанного для PostgreSQL, на Yandex YDB. Основная тема исследования — сравнение производительности и стоимости решений на PostgreSQL и YDB.

В докладе показано:

  • Что нового в Cloud Functions. Глеб Борисов.
  • Как клиенты облака используют Yandex Database Serverless. Антон Коваленко ( Технический менеджер ).
  • Миграция приложения с PostgreSQL на Yandex Database Serverless. Производительность, стоимость, риски. Александр Смирнов ( Технический эксперт ).

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

Слайды

Распределенная трассировка с помощью Jaeger и YDB. Опыт Auto.ru и Yandex Cloud.

Use cases

Мы активно используем Jaeger как инструмент распределенной трассировки, и при росте нагрузки встал вопрос эффективности хранения и обработки данных. В докладе мы расскажем, как выбирали базу для хранения трейсов Jaeger и про дальнейший опыт эксплуатации Jaeger и YDB в Auto.ru и Yandex Cloud. Решение стало популярным внутри Яндекса, и мы выпустили Jaeger-драйвер для YDB в Open Source. Появление YDB Serverless дало пользователям возможность сэкономить, и мы хотим поделиться результатами тестов Jaeger с YDB Serverless.

Слайды

Мультиарендный подход Яндекса к построению инфраструктуры работы с данными

Database internals

Времена, когда для экземпляра базы данных выделялся отдельный компьютер, давно прошли. Сейчас повсюду управляемые решения, поднимающие необходимые процессы в виртуальных машинах. Для вычислений применяется еще более прогрессивный подход — «бессерверные вычисления», например AWS Lambda или Yandex Cloud Functions. И уж совсем на острие прогресса находятся бессерверные БД.

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

Слайды

Serverless: публичный запуск YDB

Overview

Сервис YDB вышел в общий доступ. Теперь можно выбрать режим работы с выделенными серверами или бессерверный режим.

В докладе:

  • Выход сервиса YDB в общественный доступ.
  • Запуск нового продукта YDB Serverless.
  • Новые возможности YDB.
  • Ценообразование YDB и YDB Serverless.

YDB — как выжать 10K IOPS из HDD и вставить в таблицу 50K записей на одном ядре

Use cases

Из доклада вы узнаете об успешном использовании YDB в качестве бэкэнда для распределенной трассировки Jaeger от представителей Auto.ru и Яндекс.Недвижимости, а также об архитектуре распределенного сетевого хранилища в YDB.

Слайды

YDB: Distributed SQL база данных Яндекса

Database internals

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

  • Модель транзакций и уровни изоляции.
  • Особенности SQL-диалекта Yandex Query Language (YQL).
  • Многошаговые транзакции и механизм оптимистичных блокировок.
  • Эффективное выполнение запросов к распределенным БД в целом.
  • Основные факторы, влияющие на производительность запросов.
  • Стандартные практики работы с YDB, в том числе инструменты для разработчика.

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

Слайды

YDB — эффективная альтернатива традиционным noSQL-решениям

Overview

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

В докладе подробно разобраны следующие свойства YDB:

  • Автоматический split/merge шардов.
  • Автоматическое восстановление после сбоев за время обнаружения отказа.
  • Синхронная репликация данных, в том числе в геораспределенной конфигурации данных.
  • Механизм serializable-транзакций между записями базы данных.

Слайды

YDB at Scale: опыт применения в высоконагруженных сервисах Яндекса

Use cases

Представители Auto.ru, Яндекс.Репетитора, Алисы и Condé Nast рассказали, почему они выбрали YDB и как эта СУБД помогает развивать их продукты.

Вы узнаете:

  • Как YDB хранит гигабайты данных умных устройств.
  • Почему разработчики Алисы выбрали YDB для хранения логов.
  • Какие преимущества есть у YDB перед Cassandra и MongoDB.

Слайды

Распределенные транзакции в YDB

Database internals

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

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

Слайды

YDB: распределенные запросы в облаках

Database internals

Сергей Пучин ( Руководитель группы ) рассказал про применяемую модель транзакций и уровни изоляции, особенности SQL-диалекта Yandex Query Language (YQL), параметризацию и подготовку запросов, многошаговые транзакции и механизм оптимистичных блокировок. Также в докладе затронуты общие вопросы эффективного выполнения запросов в распределенных базах данных и рассмотрены основные факторы, влияющие на производительность запросов, и стандартные практики при работе с YDB.

В докладе разобраны сценарии использования YDB под высокими нагрузками внутри Яндекса:

  • Турбо-страницы. YDB используется для хранения метаданных.
  • Яндекс.Коллекции. YDB используется для хранения истории о рекомендациях пользователям.
  • Яндекс Облако. YDB является основным хранилищем метаданных для системных сервисов и сервисов управления пользовательскими данными: Yandex Object Store, Yandex Message Queue.

Слайды

Распределенные транзакции в YDB

Database internals

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

Из доклада вы узнаете:

  • Как реализован ACID механизм.
  • Какие есть уровни изоляции.
  • Как работают распределенные транзакции.
  • Что такое таблетки и как они устроены.

Слайды

YDB — как мы обеспечиваем отказоустойчивость

Database internals

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

Владислав Кузнецов ( Старший разработчик ) рассказал о том, как YDB хранит данные с избыточностью и как YDB решает задачу распределенного консенсуса.

Слайды

Три доклада о YDB с about:cloud

Overview

Use cases

Database internals

  1. YDB: платформа распределенных систем хранения данных, критичных к задержкам. Рассказ о YDB, как о платформе, на которой можно строить различные системы хранения и обработки данных. На платформе YDB построены:
  • LogBroker (аналог Apache Kafka).
  • Real-time Map Reduce (обработка потоков данных).
  • Хранение временных рядов в системе мониторинга.
  1. YDB: Distributed SQL база данных. Рассказ о YDB как базе данных. Из доклада вы узнаете:
  • Что такое "Таблетка" и какими свойствами она обладает.
  • Как работают распределенные транзакции в YDB и что такое детерминированные транзакции.
  • Что такое YQL и чем он отличается от SQL.
  1. YDB: сетевое блочное устройство. Рассказ о Network Block Store — сервисе виртуальных дисков, на которых работают все виртуальные машины Yandex Cloud. В докладе подробно разобрано:
  • Устройство File System (Файл/директория, Операции с метаданными, Индекс блоков).
  • Устройство Block Device (Хранение блоков данных, интерфейс взаимодействия).
  • Работа с QEMU/KVM (Virtio-очереди, Виртуализация процессора, режим паравиртуализации).

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

Как проверить систему, не запуская ее

Testing

Системы, которые мы разрабатываем, становятся сложнее с каждым днем. И кажется, что нет спасения от вездесущей сложности, которая проникает во все. Один из аспектов этой сложности — конфигурация. С одной стороны, конфигурация сильно влияет на стабильность и доступность системы, с другой — проверке ее корректности уделяется очень мало внимания. В докладе рассказ о том, как тестируются конфигурации и насколько это полезно.

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

Слайды

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