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

Методы и подходы к тестированию распределённой базы данных

Testing

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

Затем Виталий углубляется в архитектуру тестового сценария для хаос-тестирования, рассматривая все этапы — от разработки генераторов и сценариев нагрузки до создания инструментов для внешнего воздействия на систему.

Вы узнаете, как с помощью характеристик safety и liveness можно выявлять дефекты в системе. Доклад будет полезен разработчикам в тестировании, интересующимся тестированием распределённых систем.

Слайды

Стоимостный оптимизатор в YDB — как, зачем и почему?

Database internals

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

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

В этом докладе Павел Велихов расскажет, как команда разработала стоимостный оптимизатор, какие задачи он решает и как YDB выглядит на фоне конкурентов в OLTP, OLAP и HTAP-сценариях.

Слайды

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

Транзакционная работа с топиками. Архитектура и сравнение решений в Apache Kafka и YDB

Database internals

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

В докладе Алексея Николаевского рассматриваются:

  • Понятия топика, транзакционной записи и чтения.
  • Решение задачи решардирования с сохранением порядка и exactly-once обработки в Apache Kafka и YDB.
  • Архитектуры транзакций в обеих системах.
  • Сравнение производительности транзакций.

Слайды

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

Как объединять данные из разных СУБД и делать это эффективно

Overview

Анализ данных, распределённых по различным системам хранения, таким как реляционные СУБД и CSV-файлы в S3, представляет собой сложную задачу. При небольшом объёме данных можно использовать скрипты для последовательного чтения и объединения информации в оперативной памяти. Однако с увеличением объёмов и сложности данных такой подход становится неэффективным.

В таких случаях на помощь приходят СУБД и движки обработки запросов с федеративными возможностями. Они позволяют использовать выразительный SQL для описания аналитических операций и эффективно обрабатывать большие объёмы данных из различных источников.

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

Слайды

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

Гарантии доставки сообщений в YDB Topics

Database internals

Александр Зевайкин(Руководитель группы) продемонстрировал базовые проблемы ненадежной передачи данных и способы борьбы с ними: повторы и дедупликацию. На примере паттернов микропроцессорной архитектуры он проиллюстрировал гарантии доставки: at-most-once, at-least-once, exactly-once.

В завершение выступления Александр показал детали реализации гарантий доставки на примере двух брокеров очередей сообщений: Kafka и YDB Topics.

Слайды

Интеграция распределенных SQL-хранилищ с Java-фреймворками на примере YDB

Database internals

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

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

Слайды

Гарантии доставки сообщений в YDB Topics

Database internals

Александр Зевайкин (Руководитель группы) рассмотрел основные проблемы ненадёжной передачи данных и методы борьбы с ними: повторы и дедупликацию. Александр на примере паттернов микропроцессорной архитектуры продемонстрировал гарантии доставки: at-most-once, at-least-once, exactly-once.

Александр с докладом «Гарантии доставки сообщений в YDB Topics» выступал на конференциях Saint HighLoad++ 2024 и ИТ-Пикник 2024:

В заключение Александр на примере двух брокеров очередей сообщений — Kafka и YDB Topics — показал детали реализации гарантий доставки.

Слайды

Шардированный не значит распределенный: что важно знать, когда PostgreSQL мало

Testing

Евгений Иванов (Старший разработчик) и Олег Бондарь (CPO YDB) рассказали, чем отличаются распределённые СУБД от шардированных. Особое внимание уделили тому, почему решения, подобные Citus, не являются ACID в случае широких транзакций. В конце выступления на примере бенчмарка TPC-C показали, что в PostgreSQL вертикальное масштабирование ограничено ботлнеком в синхронной репликации, и сравнили производительность PostgreSQL и распределённых СУБД CockroachDB и YDB.

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

Слайды

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

Database internals

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

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

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

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

Слайды

YDB Topics: история взаимоотношений с Kafka

Database internals

Шина данных уровня Яндекса требует нестандартных решений. Александр Зевайкин (Руководитель группы) рассказал о том, как появился сервис YDB Topics и какие оптимизации были в нём применены. Также Александр описал архитектуру YDB Topics и объяснил, почему было принято решение отказаться от Kafka.

В завершение вы узнаете, как команда YDB реализовала Kafka API в режиме serverless.

Слайды

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