<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Первый стабильный выпуск отказоустойчивой СУБД CockroachDB]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=39033&amp;type=atom" />
	<updated>2017-05-11T05:50:38Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=39033</id>
		<entry>
			<title type="html"><![CDATA[Первый стабильный выпуск отказоустойчивой СУБД CockroachDB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=455061#p455061" />
			<content type="html"><![CDATA[<p><br />&nbsp; &nbsp; Состоялся&nbsp; первый стабильный выпуск распределённой СУБД CockroachDB, позволяющей создавать высоконадёжные горизонтально масштабируемые хранилища. При помощи CockroachDB можно развернуть географически распределённые системы, отличающиеся высокой живучестью и не зависящие от сбоев дисков, узлов и даже выхода из строя целых центров обработки данных. Ситуации сбоев обрабатываются автоматически и работа восстанавливается с минимальными задержками. При этом CockroachDB гарантирует целостность ACID-транзакций, предоставляет возможность использования SQL для&nbsp; манипуляции с данными, позволяет вносить изменения в схему хранения на лету, поддерживает индексы и внешние ключи.&nbsp; &nbsp; &nbsp; CockroachDB разработан под впечатлением от технологий&nbsp; Google Spanner и F1, но в отличие от них является полностью открытым продуктом. Код проекта написан на языке Go и распространяется под лицензией Apache 2.0. Из наиболее подходящих для&nbsp; CockroachDB применений отмечается организация хранения данных приложений, от которых требуется постоянная доступность и целостность данных, а также гибкая масштабируемость (расширение сводится к добавлению новых узлов, которые автоматически включаются в кластер).&nbsp; &nbsp; &nbsp;CockroachDB предоставляет средства для автоматической репликации, ребалансировки хранилища, обнаружения сбоев и восстановления, при минимальной настройке и обслуживании, что отлично подходит для создания распределённых хранилищ и облачных решений, развёртываемых поверх нескольких центров обработки данных. Система обработки транзакций соответствует требованиям ACID. Обмен данными между узлами производится с использованием шифрования. Аутентификация выполняется на основе SSL-сертификатов. Для клиентов предусмотрена система разделения привилегий. Для приложений предоставляется высокоуровневый SQL API (урезанное подмножество SQL), совместимый с клиентскими драйверами для PostgreSQL.&nbsp; &nbsp; &nbsp; &nbsp;Из ограничений CockroachDB отмечается плохая пригодность для решений, требующих очень низкого времени отклика при выполнении операций записи и чтения. CockroachDB также плохо адаптирован для нагруженных систем обработки аналитической информации (OLAP), манипулирующих сразу большими срезами данных, и&nbsp; плохо оптимизирован для выполнения сложных SQL-запросов со слиянием нескольких таблиц (JOIN). В версии CockroachDB 1.0 разработчики попытались частично решить проблемы со сложными запросами и представили новый движок распределённого выполнения запросов, допускающий выполнение операций JOIN над данными, распределёнными по разным узлам. Новый движок позволяет добиться линейного ускорения аналитических запросов при добавлении новых узлов в кластер. Новая система уже используется в компании Baidu&nbsp; для обработки БД, расширяющейся примерно на 2 миллиардов записей в день.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; На низком уровне данные хранятся в формате&nbsp; RocksDB (вариант LevelDB) в виде связок ключ/значение с разбивкой на сегменты, охватывающие определённый диапазон данных (по умолчанию размер сегмента - 64MB). После заполнения сегмента данные разбиваются на два новых сегмента, каждый из которых охватывает более узкий диапазон значений, и этот процесс разбиения производится непрерывно. При наличии нескольких узлов образуемые новые сегменты автоматически распределяются на узлы, на которых больше свободных ресурсов. Ребалансировка производится с использованием P2P-протокола gossip, который помогает поддерживать информацию о доступных адресах узлов и состоянии их ресурсов.&nbsp; &nbsp; &nbsp;Для обеспечения отказоустойчивости данные реплицируются на несколько узлов, на основе которых строится кластер без единой точки отказа, способный работать в режиме multi-active. Для обеспечения непротиворечивости реплик при записи используется метод достижения консенсуса на основе алгоритма Raft. Для обеспечения непротиворечивости операций чтения используется собственный алгоритм синхронизации на основе временных меток. В рамках одной транзакции могут охватываться данные с разных узлов. При репликации данных учитывается топология кластера - дубликаты создаются с учётом обеспечения резервирования разных серверов, стоек и ЦОД.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; Источник: <strong>http://www.opennet.ru/opennews/art.shtml?num=46529</strong><br />&nbsp; &nbsp; <br /><a href="http://www.opennet.ru/opennews/art.shtml?num=46529">_источник</a></p>]]></content>
			<author>
				<name><![CDATA[R2-D2]]></name>
				<uri>https://linuxforum.ru/profile.php?id=40794</uri>
			</author>
			<updated>2017-05-11T05:50:38Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=455061#p455061</id>
		</entry>
</feed>
