Бывшими разработчиками Google была выпущена новая база данных, предназначенная для масштабирования, защиты от стихийных бедствий, постоянной согласованности и поддержки абстракций.
CockroachDB был назван в честь стойкости его тезки — насекомого. Как говорят соучредители Cockroach Labs Спенсер Кимбалл, Питер Мэттис и Бен Дарнелл в своем первоначальном сообщении в блоге:
«Если вам удастся преодолеть их гротескный внешний вид, вы должны отдать им должное за абсолютную стойкость. Вы слышали теорию о том, что тараканы будут единственными выжившими после апокалипсиса? Оказывается, современные системы баз данных могут многое выиграть, подражая одному из старейших и наиболее успешных проектов природы. Выживайте, копируйте, размножайтесь. Это была модель тараканов для геологических эпох, и она наша тоже ».
Разработчики говорят, что во время работы в Google они научились понимать трудности масштабирования и основали Cockroach Labs с четкой целью:
«Создайте базу данных, к которой мы стремились годами, и с самого начала создавайте ее с открытым исходным кодом. Задача проста, но такая же масштабная и обширная, как и любая другая, которую мы с радостью можем взять на себя: упростить работу с данными ».
Заявления, сделанные в отношении CockroachDB, безусловно, достаточно впечатляющие. По словам разработчиков, он может прозрачно управлять масштабированием с возможностью обновления от одного узла до сотен. Вы можете увеличить емкость кластера, запустив новые контейнеры хранения, и CockroachDB автоматически перебалансирует существующие данные. Если вы убиваете контейнер, CockroachDB реплицирует свои данные из доступных источников. Он самоорганизуется, самовосстанавливается и автоматически восстанавливается.
CockroachDB использует консенсус большинства между репликами для достижения согласованности. Вы можете настроить согласованную репликацию, которая может быть настроена внутри или между центрами обработки данных для обеспечения высокой доступности. В блоге говорится, что вы можете обновлять, исправлять или перезапускать приложение, не заметив этого. Во всем этом используется Raft, преемник Paxos.
CockroachDB также реализует эффективные, полностью сериализуемые распределенные транзакции. Разработчики говорят, что вы можете отказаться от использования внешних механизмов блокировки или полумер, таких как CAS или «облегченные» транзакции, и просто создавать свои приложения.
Программное обеспечение с открытым исходным кодом, и вы можете найти его и стать участником на Github. Заявления о базе данных впечатляют, будет интересно посмотреть, соответствует ли она обещаниям и как она развивается.