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 в Яндексе, затем в Платформе Одноклассников, а теперь и в VK. Сейчас в роли главного инженера технологической платформы VK продолжает распределенное дело. Попутно преподаёт NoSQL базы данных и высоконагруженные системы в VK Education.

VK

Развивает сервисы, которые помогают миллионам людей решать повседневные задачи онлайн

Видео