Статьи 2024

Шины данных для очень больших инсталляций, или Почему большим компаниям сложно с опенсорсом

Database internals

В статье рассматриваются особенности эксплуатации опенсорсных шин данных (на примере Apache Kafka) в очень больших производственных инсталляциях, характерных для крупных предприятий. Автор приводит подробное сравнение с YDB Topics, анализируя вопросы масштабируемости, отказоустойчивости, стоимости оборудования и операционного управления. Описаны архитектурные подходы к обеспечению высокой доступности, оптимизации TCO, автоматизации, балансировке нагрузки и резервированию ресурсов, а также выделены проблемы open source-решений при работе на масштабах enterprise. Материал будет полезен тем, кто проектирует инфраструктуру передачи данных в крупных компаниях и сравнивает модели open source и кастомных корпоративных платформ.

Статья предназначена для технических менеджеров, архитекторов корпоративных ИТ-систем, системных администраторов, DevOps-инженеров и специалистов по эксплуатации крупных распределённых систем.

Стоит ли бояться serializable-транзакций больше, чем труднонаходимых багов?

General

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

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

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

Practice

В статье подробно описывается эволюция производительности очереди сообщений YDB Topics. Автор сравнивает архитектурные особенности YDB Topics с Apache Kafka и Pulsar, анализирует причины отказа от Kafka, а также рассказывает о технических инструментах нагрузочного тестирования и пути к оптимизации узких мест. Приведены конкретные результаты производительности YDB Topics после проведённых оптимизаций, а также рассказано о внедрении Kafka API для максимальной совместимости с существующим софтом и облачными сценариями использования. Статья иллюстрирует комплексный подход к обеспечению высокой производительности и надёжности потоковых очередей на масштабах интерпрайз-уровня.

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

Миграции схемы данных YDB с Flyway и распределенные блокировки

Practice

Статья посвящена поддержке и особенностям работы Flyway для управления миграциями схемы данных в YDB. Описывается процесс настройки Flyway с YDB как через Java/Gradle, так и через CLI, а также принцип работы основных команд: baseline, migrate, info, validate, repair и clean. Особое внимание уделено механизму распределённых блокировок для предотвращения конкурентного применения миграций — показано, как это реализовано в YDB по сравнению с другими СУБД.

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

database/sql: плохой, хороший, злой

Database internals

В статье проведён подробный разбор эволюции стандартной библиотеки Go для работы с базами данных (database/sql), особенностей её применения в распределённых системах, таких как YDB, и трудностей, возникающих при реализации и эксплуатации соответствующих драйверов. Рассматриваются архитектурные решения, внедрённые в YDB, а также специфические проблемы — управление соединениями, ретраи, контексты, параметры запросов, обработка ошибок, совместимость с концепциями SQL и Go. Автор делится опытом создания и доработки database/sql-драйвера для YDB, описывает ретроспективу изменений в Go и связанные с этим инженерные вызовы, а также демонстрирует особенности интеграции и инструменты отладки. Материал полезен для всех, кто внедряет или сопровождает СУБД в экосистеме Go и интересуется лучшими практиками подключения к распределённым базам.

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

Как Яндекс создал свою шину данных, чтобы передавать сотни гигабайт в секунду

Database internals

Статья рассказывает о причинах появления и архитектуре собственной шины данных Яндекса — YDB Topics — опенсорсного решения, способного передавать сотни гигабайт в секунду. На фоне проблем масштабирования и эксплуатации при использовании Apache Kafka, команда Яндекса разработала модульную шину поверх YDB с поддержкой высоких гарантий целостности, автоматического масштабирования и эффективного управления правами доступа. Подробно описаны архитектурные решения, отличия от Kafka и Pulsar, сценарии использования (федерация, кросс-ДЦ), а также особенности, такие как Erasure-кодирование для экономии места и масштабируемость с автоматизированным управлением.

Статья предназначена для инженеров по инфраструктуре, DevOps, архитекторов, а также всех, кто интересуется построением высоконагруженных систем передачи данных и open source-решениями в enterprise.

Поддержка диалекта YDB в инструменте миграции Liquibase

Practice

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

Статья предназначена для разработчиков, инженеров данных и DevOps-специалистов, использующих YDB и Liquibase.

Перенести проверенную схему бэкапа больших данных из S3 в Yandex Cloud: опыт Битрикс24

Use cases

В статье на реальном кейсе компании Битрикс24 описан опыт миграции масштабируемой схемы резервного копирования и инкрементальной репликации файлов с AWS S3 в облако Yandex Cloud. Автор поэтапно разбирает эволюцию архитектуры, методы инкрементального и realtime-бэкапа, подходы к отложенному удалению файлов и реализации асинхронной обработки событий с использованием очередей, воркеров и серверless-технологий. Особое внимание уделено переходу на YDB с режимом совместимости с DynamoDB, мониторингу системы и автоматическому масштабированию ресурсов. Статья содержит практические советы по сохранению надёжности, минимизации ручного труда и оптимизации стоимости хранения больших объёмов данных при переходе между облачными провайдерами.

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

Когда одного Postgres'a мало: сравнение производительности PostgreSQL и распределенных СУБД

Testing

Сравнение производительности PostgreSQL и распределенных СУБД

В статье проведено практическое сравнение производительности PostgreSQL и распределённых СУБД YDB и CockroachDB на троих одинаковых физических серверах с использованием бенчмарка TPC-C при различных сценариях отказоустойчивости. Эксперимент подтверждает, что PostgreSQL крайне эффективна на одиночном сервере, но наличие синхронной репликации становится серьёзным ограничением по производительности и задержкам при увеличении числа нод. Распределённые СУБД показывают чуть ниже tpmC на такой же инфраструктуре, но демонстрируют лучшую отказоустойчивость, масштабируемость и предсказуемые задержки транзакций. В статье также приведён разбор инженерных "узких мест", подробные параметры тестов и практические рекомендации для выбора архитектуры.

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

Обновление кешей сервисов в реальном времени с помощью YDB CDC на примере Yandex Monitoring

Database internals

Yandex Monitoring: обновление кешей сервисов в реальном времени с помощью YDB CDC

Летом 2023 года Егор Литвиненко (старший разработчик Yandex Observability Platform) рассказывал на Saint Highload в Санкт‑Петербурге о пути внедрения YDB CDC для обновления данных в сервисах, чтобы решить проблему инвалидации кешей. В этой статье будет вся история внедрения с теорией, вопросами, ответами, ошибками, о которых он говорил на выступлении.

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