OK S3: Строим Систему Сами

Базы данных и системы хранения

Собственный S3

Архитектурные паттерны
Оптимизация производительности
Распределенные системы
Хранилища

Доклад принят в программу конференции

Целевая аудитория

Описанные в докладе решения и опыт могут оказаться полезными архитекторам и разработчикам распределённых сервисов хранения данных, особенно S3-подобных и/или на основе Cassandra вне зависимости от используемых языков и платформ.

Тезисы

Одноклассники уже длительное время эксплуатируют собственные распределённые отказоустойчивые хранилища данных. Для хранения и обработки почти эксабайта бинарных данных (видео, фото, музыка и др.) используются one-blob-storage и one-cold-storage. В качестве транзакционных хранилищ развёрнуты десятки нагруженных кластеров NewSQL на базе Cassandra, распределённых по трём или пяти дата-центрам. Мы успешно переживаем аварии вплоть до выхода из строя дата-центра без деградации обслуживания, в том числе в час пик.

Помимо своих систем, мы эксплуатируем множество готовых продуктов для хранения артефактов сборки и тестирования, библиотек, образов, пакетов, логов, бэкапов и т.д. Единственным общим знаменателем в качестве подключаемого бэкенда хранения для всех этих сервисов является Amazon S3. S3 предоставляет высокоуровневый API для работы с объектами, а также обладает развитой экосистемой инструментов и SDK для многих языков.

Мы рассмотрим реализацию совместимого с S3 сервиса в Одноклассниках поверх уже существующих NewSQL и хранилища блобов: архитектуру и схему данных, особенности и компромиссы, оптимизации и производительность, а также встреченные по пути сложности и неожиданности.

Вадим Цесько

Одноклассники

Начал свой путь в IT/CS в 2004 с создания систем гидроакустики и исследовательских проектов по статическому анализу кода на C/C++. Затем переключился на распределённые системы и разрабатывал высоконагруженные распределённые сервисы на Java/Scala в Яндекс.Вертикалях. Сейчас в роли ведущего разработчика Платформы Одноклассников продолжает распределённое дело. Попутно ведёт курсы по NoSQL и Highload-системам.

Одноклассники

Одна из крупнейших социальных сетей и высоконагруженных проектов на Java в Европе.

Видео