Конференция завершена. Ждем вас на HighLoad++ в следующий раз!

Пишем Key-Value СУБД на Go

GolangConf: Hardcore

GolangConf: Hardcore

Доклад отозван

Мнение Программного комитета о докладе

Что может быть увлекательнее оптимизации запросов к БД? Написать свою базу данных с шардированием и отказоустойчивостью! Вот уж где нам пригодятся все эти алгоритмы и структуры данных!

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

Продвинутые гоферы.

Тезисы

Создание СУБД на Go — сложная задача по двум причинам:
1. в Go плохо со средствами обобщенного программирования;
2. производительность Go не дотягивает до языков, традиционно используемых для написания СУБД — C, C++, Java.

Да, на Go уже написаны несколько СУБД, самая известная из которых — CockroachDB. И да, показать в одном докладе процесс создания продукта такого масштаба невозможно.

Но мы не привыкли отступать!

Для СУБД нам нужны:
1. Надежный производительный движок хранения. Движков на Go написано уже несколько, но все они, насколько известно автору, вдохновлены LSM Tree, со всеми его плюсами и минусами. Мы пойдем другим путем!
2. Сетевой доступ к хранимым данным. Это, на самом деле, самая простая из задач, но и тут есть о чем рассказать.
3. Система кластеризации с обеспечением отказоустойчивости — никому в XXI веке не нужна односерверная Key-Value СУБД.
4. Система управления кластером. Вывод серверов из кластера, ввод новых, ребалансировка... Очень увлекательно!
5. Клиент с поддержкой шардирования.

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

30+ лет профессионального стажа. Полжизни в эксплуатации. Последние 9 лет пишет на Go.

YADRO

YADRO создает все, без чего невозможно представить современную связь и интернет: системы хранения данных, серверы, коммутаторы, базовые станции 2G/4G и сети операторской связи — от прототипов и «железной» реализации до ПО. Если вы пишете софт в большой российской IТ-компании или банке, с высокой вероятностью ваши сервисы крутятся, а данные ваших клиентов хранятся на их оборудовании. Пожалуй, одни из самых интересных исследовательских задач для C++-, Go-разработчиков и инженеров по тестированию вы встретите у них.

Видео