The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Первый стабильный выпуск отказоустойчивой СУБД CockroachDB"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
"Первый стабильный выпуск отказоустойчивой СУБД CockroachDB" +/
Сообщение от opennews (ok), 11-Май-17, 12:58 
Состоялся (https://www.cockroachlabs.com/blog/cockroachdb-1-0-release/)...первый стабильный выпуск распределённой СУБД CockroachDB (https://www.cockroachlabs.com/), позволяющей создавать высоконадёжные горизонтально масштабируемые хранилища. При помощи CockroachDB можно развернуть географически распределённые системы, отличающиеся высокой живучестью и не зависящие от сбоев дисков, узлов и даже выхода из строя целых центров обработки данных. Ситуации сбоев обрабатываются автоматически и работа восстанавливается с минимальными задержками. При этом CockroachDB гарантирует целостность ACID-транзакций, предоставляет возможность использования SQL для  манипуляции с данными, позволяет вносить изменения в схему хранения на лету, поддерживает индексы и внешние ключи.

CockroachDB разработан под впечатлением от технологий  Google Spanner (http://research.google.com/archive/spanner.html) и F1 (http://research.google.com/pubs/pub38125.html), но в отличие от них является полностью открытым продуктом. Код проекта написан на языке Go и распространяется (https://github.com/cockroachdb/cockroach/) под лицензией Apache 2.0. Из наиболее подходящих для  CockroachDB применений отмечается организация хранения данных приложений, от которых требуется постоянная доступность и целостность данных, а также гибкая масштабируемость (расширение сводится к добавлению (https://www.cockroachlabs.com/docs/start-a-node.html) новых узлов, которые автоматически включаются в кластер).


CockroachDB предоставляет средства для автоматической репликации, ребалансировки хранилища, обнаружения сбоев и восстановления, при минимальной настройке и обслуживании, что отлично подходит для создания распределённых хранилищ и облачных решений, развёртываемых поверх нескольких центров обработки данных. Система обработки транзакций соответствует требованиям ACID (https://en.wikipedia.org/wiki/ACID). Обмен данными между узлами производится с использованием шифрования. Аутентификация выполняется на основе SSL-сертификатов. Для клиентов предусмотрена система разделения привилегий (https://www.cockroachlabs.com/docs/privileges.html). Для приложений предоставляется высокоуровневый SQL API (https://www.cockroachlabs.com/docs/learn-cockroachdb-sql.html) (урезанное подмножество SQL (https://www.cockroachlabs.com/docs/sql-grammar.html)), совместимый (https://www.cockroachlabs.com/docs/install-client-drivers.html) с клиентскими драйверами для PostgreSQL.

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

На низком уровне данные хранятся (https://github.com/cockroachdb/cockroach/blob/master/docs/de... в формате  RocksDB (https://www.opennet.ru/opennews/art.shtml?num=38499) (вариант LevelDB (https://www.opennet.ru/opennews/art.shtml?num=31325)) в виде связок ключ/значение с разбивкой на сегменты, охватывающие определённый диапазон данных (по умолчанию размер сегмента - 64MB). После заполнения сегмента данные разбиваются на два новых сегмента, каждый из которых охватывает более узкий диапазон значений, и этот процесс разбиения производится непрерывно. При наличии нескольких узлов образуемые новые сегменты автоматически распределяются на узлы, на которых больше свободных ресурсов. Ребалансировка производится с использованием P2P-протокола gossip (https://en.wikipedia.org/wiki/Gossip_protocol), который помогает поддерживать информацию о доступных адресах узлов и состоянии их ресурсов.


Для обеспечения отказоустойчивости данные реплицируются на несколько узлов, на основе которых строится кластер без единой точки отказа, способный работать в режиме multi-active. Для обеспечения непротиворечивости реплик при записи используется метод достижения консенсуса на основе алгоритма Raft (https://raft.github.io/). Для обеспечения непротиворечивости операций чтения используется собственный алгоритм (https://www.cockroachlabs.com/docs/strong-consistency.html) синхронизации на основе временных меток. В рамках одной транзакции могут охватываться данные с разных узлов. При репликации данных учитывается топология кластера - дубликаты создаются с учётом обеспечения резервирования разных серверов, стоек и ЦОД.


URL: https://www.cockroachlabs.com/blog/cockroachdb-1-0-release/

Новость: https://www.opennet.ru/opennews/art.shtml?num=46529

Ответить | Правка | Cообщить модератору

Оглавление
Первый стабильный выпуск отказоустойчивой СУБД CockroachDB, opennews, 11-Май-17, 12:58  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру