Обзор перспективных баз данных для highload
В этом докладе я рассмотрю несколько перспективных, на мой взгляд, баз данных, которые пока еще не очень популярны, но которые определенно ждет успех в будущем, особенно для 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 нацелен именно на вас. База данных сама масштабируется на выделенные узлы, сама поддерживает заданный фактор репликации, может работать в нескольких ДЦ, и многое другое.
В докладе я подробно расскажу об этих решениях и о существующих в данный момент альтернативах, с обзором достоинств и недостатков соответствующих систем.