Новости и события » Hi-Tech » Первый стабильный выпуск отказоустойчивой СУБД CockroachDB

Первый стабильный выпуск отказоустойчивой СУБД CockroachDB

Состоялся первый стабильный выпуск распределенной СУБД CockroachDB, позволяющей создавать высоконадежные горизонтально масштабируемые хранилища. При помощи CockroachDB можно создавать географически распределенные системы, отличающихся высокой живучестью и не зависящие от сбоев дисков, узлов и даже выхода из строя целых центров обработки данных. Ситуации сбоев обрабатываются автоматически и работа восстанавливается с минимальными задержками. При этом CockroachDB гарантирует целостность ACID-транзакций, предоставляет возможность использования SQL для манипуляции с данными, позволяет вносить изменения в схему хранения на лету, поддерживает индексы и внешние ключи.

CockroachDB разработан под впечатлением от технологий Google Spanner и F1, но в отличие от них является полностью открытым продуктом. Код проекта написан на языке Go и распространяется под лицензией Apache 2.0. Из наиболее подходящих для CockroachDB применений отмечается организация хранения данных приложений, от которых требуется постоянная доступность и целостность данных, а также гибкая масштабируемость (расширение сводится к добавлению новых узлов, которые автоматически включаются в кластер).

CockroachDB предоставляет средства для автоматической репликации, ребалансировки хранилища, обнаружения сбоев и восстановления, при минимальной настройке и обслуживании, что отлично подходит для создания распределенных хранилищ и облачных решений, развертываемых поверх нескольких центров обработки данных. Система обработки транзакций соответствует требованиям ACID. Обмен данными между узлами производится с использованием шифрование, аутентификация выполняется на основе SSL-сертификатов, для клиентов предусмотрена система разделения привилегий. Для приложений предоставляется высокоуровневый SQL API (урезанное подмножество SQL), совместимый с клиентскими драйверами для PostgreSQL.

Из ограничений CockroachDB отмечается плохая пригодность для решений, требующих очень низкого времени отклика при выполнении операций записи и чтения. CockroachDB также раньше не был адаптирован для нагруженных систем обработки аналитической информации (OLAP), манипулирующих сразу большими срезами данных, и был плохо оптимизирован для выполнения сложных SQL-запросов со слиянием нескольких таблиц (JOIN). В версии CockroachDB 1.0 разработчики попытались решить проблемы со сложными запросами и представили новый движок распределенного выполнения запросов, допускающий выполнение операций JOIN над данными, распределенными по разным узлам. Новый движок позволяет добиться линейного ускорения аналитических запросов при добавлении новых узлов в кластер. Новая система уже используется в компании Baidu для обработки БД, расширяющейся примерно на 2 миллиардов записей в день.

На низком уровне данные хранятся в формате RocksDB (вариант LevelDB) в виде связок ключ/значение с разбивкой на сегменты, охватывающие определенный диапазон данных (по умолчанию размер сегмента - 64MB). После заполнения сегмента данные разбиваются на два новых сегмента, каждый из которых охватывает более узкий диапазон значений, и этот процесс разбиения производится непрерывно. При наличии нескольких узлов образуемые новые сегменты автоматически распределяются на узлы, на которых больше свободных ресурсов. Ребалансировка производится с использованием P2P-протокола gossip, который помогает поддерживать информацию о доступных адресах узлов и состоянии их ресурсов.

Для обеспечения отказоустойчивости данные реплицируются на несколько узлов, на основе которых строится кластер без единой точки отказа, способный работать в режиме multi-active. Для обеспечения непротиворичивости реплик при записи используется метод достижения консенсуса на основе алгоритма Raft. Для обеспечения непротиворечивости операций чтения используется собственный алгоритм синхронизации на основе временных меток. В рамках одной транзакции могут охватываться данные с разных узлов. При репликации данных учитывается топология кластера - дубликаты создаются с учетом обеспечения резервирования разных серверов, стоек и ЦОД.


RTX 5080 станет первой видеокартой нового поколения от Nvidia

RTX 5080 станет первой видеокартой нового поколения от Nvidia

Инсайдер Kopite7kimi сообщил, что Nvidia сначала выпустит видеокарту GeForce RTX 5080, а после выйдет более производительная RTX 5090. В случае с RTX 40 все было наоборот, сначала в продаже появился флагман RTX 4090, потом подтянулись решения попроще. Судя...

сегодня 12:35

Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх