nixp.ru v3.0

19 марта 2024,
вторник,
07:05:12 MSK

11 мая 2017, 12:36

CockroachDB 1.0 — кластерная Open Source-СУБД с поддержкой SQL готова к production

Логотип Cockroach Labs
Логотип Cockroach Labs
Иллюстрация с сайта Cockroach Labs

Вчера компания Cockroach Labs объявила о первом финальном релизе своего Open Source-детища — реляционной СУБД, ориентированной на использование облачными (cloud native) приложениями, — CockroachDB 1.0.

Cockroach Labs была основана в 2015 году выходцами из Google, работавшими над Google File System, BigTable и распределённой базой данных Google Spanner. В неё инвестировали руководители или основатели Hortonworks, CoreOS и Cloudera. Создаваемая этой компанией СУБД CockroachDB призвана предоставить распределённое и отказоустойчивое решение, «совмещающее богатство функциональности SQL с горизонтальной доступностью, привычной для NoSQL».

Будучи очень простой в масштабировании, которое работает «из коробки» и не требует специальной настройке, CockroachDB распределяет данные по разным узлам таким образом, что гарантирует их восстановление в случае падения части кластера и расширяя общее доступное пространство при добавлении новых узлов. При этом СУБД обеспечивает полную поддержку консистентных ACID-транзакций, а для упрощения адаптации среди приложений поддерживает клиентские драйверы для СУБД PostgreSQL (хотя её реализация SQL несколько отличается от доступной для PostgreSQL). Поскольку физически в CockroachDB данные хранятся парами ключ-значение (на базе RocksDB), в ней реализован специальный SQL-шлюз, преобразующий пользовательские SQL-запросы в операции для работы с KV (key-value). Исходный код CockroachDB написан на языке Go и распространяется под свободной лицензией Apache License 2.0.

Среди пользователей СУБД CockroachDB в production называются Baidu и Heroic Labs. С русскоязычной инструкцией по созданию кластера на базе CockroachDB можно ознакомиться здесь, а по её разворачиванию в рамках Docker-контейнеров, управляемых Kubernetes, — в блоге компании «Флант». Официальное руководство по установке СУБД с ссылками на архивы для загрузки опубликовано на сайте разработчика.

Постоянная ссылка к новости: http://www.nixp.ru/news/14024.html. Дмитрий Шурупов по материалам Cockroach Labs.

fb twitter vk
Багов

SQL поверх key-value… Звучит странновато, особенно в связи со всякого рода join-ами. Интересно, какие оптмимизации/абстракции для этого использованы. Погляжу, как будет не лень.

Дмитрий Шурупов

Сам их SQL описан в https://www.cockroachlabs.com/docs/sql-statements.html

А по поводу архитектуры и внутреннего устройства есть такой подробный документ: https://github.com/cockroachdb/cockroach/blob/master/docs/design.md — именно в нём вы найдёте интересный вам раздел «Data mapping between the SQL model and KV».

Багов

Спасибо, туда я уже сходил — это не лениво :)
Всё же интереснее «* planning» секции. Там всякое про генераторы, два потока… А вот как конкретно они сделали планировщик, чтобы подгружать правильные значения, держать какие-то индексы с набором соответствующих ключей консистентными. А то с ходу — просто контр-пример CAP теореме…