CockroachDB 1.0 была выпущена как первая облачная база данных SQL с открытым исходным кодом. Объявление содержало подробности о новых средствах в размере 27 миллионов долларов, вложенных в компанию, стоящую за CockroachDB.
Разработчики заявляют, что CockroachDB предоставляет распределенный SQL для поддержки постоянно увеличивающихся размеров данных и многоактивной доступности — новой модели высокой доступности (HA). Они описывают его как облачное, потому что оно предлагает горизонтальную масштабируемость, отсутствие единых точек отказа, живучесть, автоматизацию операций и никаких ограничений, связанных с платформой. На практике это сводится к распределенному SQL, чтобы сделать его пригодным для малых и больших требований с возможностью масштабирования между ними; мультиактивная доступность для постоянной высокой доступности; и гибкое развертывание, поддерживающее широкий спектр сред.
Распределенный элемент SQL для этого исходит из поддержки полностью распределенных транзакций ACID, изменения схемы с нулевым временем простоя и поддержки вторичных индексов и внешних ключей. Он работает «из коробки» со многими популярными фреймворками ORM, поскольку поддерживает стандартный отраслевой диалект SQL. В версии 1.0 также представлен механизм выполнения распределенных запросов, поэтому вы можете настроить распределенные соединения JOIN для поддержки аналитических запросов, которые линейно ускоряются по мере добавления узлов в ваш кластер.
Недавно разработчики продемонстрировали приложение, в котором Baidu обрабатывает 2 миллиарда вставок в день для одной из десяти крупнейших мировых интернет-компаний. Эта скорость транзакций продолжалась, несмотря на искусственно вызванные события «хаоса», которые вызвали значительную одновременную репликацию и ребалансировку в кластере.
Высокая доступность
По словам разработчиков, наиболее важной частью элемента высокой доступности CockroachDB является согласованность. В отличие от других продуктов, которые полагаются на конечную согласованность, он использует строго согласованную репликацию на основе консенсуса, которая использует три или более активных реплик, каждая из которых может начать обслуживать клиентский трафик чтения / записи. Все ресурсы используются динамически, и в документации говорится, что в отличие от более распространенной репликации «активный-активный», этот тип доступности не будет считывать или записывать непоследовательно и не требует разрешения конфликтов.
Управлять CockroachDB можно либо с помощью технологий оркестрации центра обработки данных, таких как Kubernetes и Docker Swarm, либо и даже вручную. Он может работать локально или в любом общедоступном облаке, развертываться в гибридных кросс-облачных конфигурациях и переноситься между облаками с нулевым временем простоя. На конференции OpenStack Interop в Бостоне CockroachDB была развернута в 15 частных облаках. Видео демонстрации ниже:
Наряду с бесплатной версией с открытым исходным кодом команда анонсировала функцию, доступную специально как часть предложения CockroachDB Enterprise: распределенное, инкрементное резервное копирование и восстановление.
Эта функция предназначена для обслуживания клиентов с большими наборами данных. Распределенное резервное копирование / восстановление распараллеливает задачи резервного копирования и восстановления на всех узлах кластера. Данные можно записывать и восстанавливать из любого настраиваемого приемника хранилища, например хранилищ больших двоичных объектов, предлагаемых AWS, GCP и Azure. Нераспределенный вариант резервного копирования / восстановления доступен бесплатно в предложении CockroachDB Core.