CockroachDB 1.0 — кластерная Open Source-СУБД с поддержкой SQL готова к production
Иллюстрация с сайта 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.
TiDB 1.0 — крупный релиз распределённой Open Source-СУБД с протоколом, совместимым с MySQL
В СУБД CockroachDB 1.1 улучшили возможности для администраторов и производительность
PostgreSQL 10: свободную СУБД значительно улучшили для распределённого использования 1
MariaDB 10.2.6 — первый стабильный релиз свободной СУБД из ветки 10.2 1
CrateDB 2.0 — распределённая СУБД с поддержкой SQL для машинных данных
POWA — анализатор нагрузки СУБД PostgreSQL на основе pg_stat_statements 2
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
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 теореме…