Обзор перспективных баз данных для highload

Storage Доклад 45 минут Юрий Насретдинов Storage(зал Васнецов) :   Jun 17 18:15
Юрий Насретдинов
Работал в нескольких компаниях, большую часть карьеры (5 лет) проработал в компании Badoo на должности PHP/Go-программиста «платформы». Занимался рефакторингом и поддержкой большой инфраструктуры (несколько тысяч серверов) и кодовой базы (единицы миллионов строк кода) на PHP. Сделал несколько open-source проектов — lsd (замена scribe от фейсбука), soft mocks (реализация API, совместимого с runkit, на чистом PHP) и phpcf (форматтер кода для PHP).
В этом докладе я рассмотрю несколько перспективных, на мой взгляд, баз данных, которые пока еще не очень популярны, но которые определенно ждет успех в будущем, особенно для highload-проектов. Я расскажу о Tarantool, ClickHouse и CockroachDB, о том, как они устроены, и почему я считаю, что они в будущем станут стандартом де-факто, как раньше был MySQL, а сейчас — MongoDB.



Коротко о каждой из них:
1. Tarantool — разработка mail.ru, позволяющая обрабатывать до 1 млн транзакций в секунду на одном ядре процессора за счет «конвейерной» архитектуры. В данный момент SQL не поддерживается, но можно писать хранимые процедуры на LuaJIT, что позволяет делать сложные выборки и преобразования, не жертвуя производительностью.
2. ClickHouse — это real-time аналитическая база данных от Яндекса с поколоночным хранением данных и невероятной производительностью работы. Основной язык запросов — SQL. Авторами заявляется скорость вставки на уровне 100 мб/сек и скорость сканирования в 1 млрд строк в секунду. Также поддерживается работа в кластере с репликацией и шардированием, приближённые выборки по части данных, ограниченные джойны и многое другое.
3. CockroachDB — база данных от создателей Google Spanner. Авто-масштабируемая распределенная SQL-база данных, написанная на Go и использующая RocksDB для хранения данных на диске. Если вы устали от необходимости ручного шардирования и отсутствия распределенных транзакций в SQL-базах данных и от неконсистентности и неуправляемости NoSQL-решений, то CockroachDB нацелен именно на вас. База данных сама масштабируется на выделенные узлы, сама поддерживает заданный фактор репликации, может работать в нескольких ДЦ, и многое другое.

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


Презентация
Постоянная ссылка на доклад: https://devconf.ru/offer/310