Выпущена FoundationDB версии 1.0


FoundationDB, которая сочетает в себе хранилище ключей и значений NoSQL с поддержкой транзакций ACID для обеспечения согласованности, стала общедоступной после 18-месячной программы альфа- и бета-тестирования, в которой приняли участие более 2000 участников.

Текущие базы данных NoSQL, как правило, не поддерживают транзакции ACID (атомарные, согласованные, изолированные, долговечные), что означает, что разработчик базы данных должен либо написать свой собственный код для управления транзакциями, либо столкнуться с потенциальными проблемами, если транзакция не завершена правильно. Транзакции должны быть атомарными в том смысле, что все изменения данных выполняются, как если бы они были одной операцией. То есть все изменения выполнены или ни одного. Деньги не переводятся с одного счета, если, например, они не были успешно переведены на другой.

Транзакция должна быть согласованной в том смысле, что данные находятся в согласованном состоянии, когда транзакция начинается и когда она заканчивается. Используя наш пример денежного перевода, общая стоимость денег с учетом обоих счетов должна быть одинаковой в начале и в конце транзакции.

Транзакция должна быть изолирована в том смысле, что промежуточные состояния транзакции невидимы для других транзакций, чтобы одновременно могло выполняться несколько транзакций. При переводе денег в рамках нашей воображаемой транзакции другая транзакция увидит деньги на одном или другом счете, но никогда на обоих, и никогда ни на одном из них. Долговечность гарантирует, что после завершения транзакции изменения будут постоянными и не будут отменены, даже если произойдет сбой системы. Эти четыре качества транзакций лежат в основе стандартных баз данных.

В этом коротком видео евангелист разработчиков FoundationDB Стивен Пиментел объясняет преимущества транзакций ACID:

В то время как другие базы данных NoSQL не имеют полной поддержки транзакций ACID, FoundationDB имеет такую поддержку. Объявляя о новом выпуске, OpenSource Connections сообщает:

«многие из новых баз данных NoSQL часто имеют жесткие функции транзакционности. HBase, например, дает гарантии транзакционности только для одной строки».

FoundationDB — это хранилище «ключ-значение», которое реализует соответствие ACID с помощью основанного на C ++ языка под названием Flow, который используется машинами в кластере для обмена информацией об обработке транзакций и разрешении конфликтов. Flow добавляет в C ++ параллелизм на основе акторов с помощью набора новых ключевых слов и примитивов потока управления для управления параллелизмом. Он реализован как компилятор, который анализирует асинхронную функцию (актор) и переписывает ее как объект с множеством различных подфункций, которые используют обратные вызовы, чтобы избежать блокировки. Streamlinejs — это аналогичная концепция с использованием JavaScript. Результатом компилятора Flow является обычный код C ++ 11, который затем компилируется в двоичный файл с использованием традиционных инструментов. В техническом описании Flow объясняется, как это работает.

FoundationDB можно развернуть в конфигурациях с одного сервера, в кластер в частном центре обработки данных, в облаке или в любом другом месте. Он поставляется с API для C, Python, Ruby, Node.js и Java. Он поддерживает ряд различных моделей, включая документ JSON, график и SQL после покупки FoundationDB Akiban в июле этого года.

Вы можете бесплатно опробовать FoundationDB по лицензии сообщества и запускать столько серверных процессов, сколько хотите, в непроизводственных целях. Вы даже можете бесплатно использовать до шести процессов в производстве без регистрации. Коммерческие лицензии начинаются с 99 долларов за процесс в месяц.

FoundationDB можно загрузить для Ubuntu, RHEL / CentOS, OS X, Windows и Amazon EC2,


Добавить комментарий