Apple открыла исходный код распределенной СУБД FoundationDB
Новости
База позволяет создавать большие распределенные хранилища для использования полноценных транзакций. По словам разработчиков, надежность СУБД подтверждается ее активным применением в инфраструктуре самой Apple и некоторых других крупных компаний.
1К открытий1К показов
19 апреля 2018 года Apple объявила о переходе к открытой модели разработки СУБД FoundationDB, которую приобрела в 2015 году. По словам разработчиков, надежность системы подтверждается ее активным применением в инфраструктуре самой Apple и некоторых других крупных компаний. Код написан на С++ и поставляется под лицензией Apache 2.0.
Особенности FoundationDB
Главной особенностью СУБД является возможность создавать большие распределенные хранилища для использования полноценных транзакций, если они удовлетворяют требованиям ACID.
Распределенное хранилище основано на архитектуре shared-nothing, в которой каждый узел является независимым и самодостаточным звеном, а вся система лишена единой точки отказа. Оно хорошо подходит для нагрузок с большим числом операций чтение/запись, обеспечивает высокую производительность в условиях преобладания операций записи. Взаимодействие с СУБД проходит при помощи API и биндингов для различных языков программирования (C/C++, Python, Perl, Ruby, Java, Go, Node.js, PHP).
Основные возможности
- мультимодельное хранилище позволяет сохранять любые типы данных в одной БД. Они хранятся, распределяются и реплицируются в низкоуровневом представлении ключ/значение;
- поддержка двух видов хранения: SSD-хранение данных на диске с использованием структуры B-tree и memory — для хранения данных в памяти со сбросом лога транзакций на диск;
- устойчивость к сбоям и простота горизонтального масштабирования;
- в рамках транзакции может быть прочитано и записано произвольное число ключей, хранимых на любых узлах кластера;
- высокая производительность на типовом оборудовании в крупных промышленных инфраструктурах и при минимальных затратах.
Интерфейс
FoundationDB имеет эффективный низкоуровневый интерфейс, позволяющий другим системам использовать базу для распределенного хранения информации в согласованном состоянии. Например, с ее помощью можно готовить фронтенд для применения различных языков формирования запросов, для хранения метаданных в распределенных файловых системах, для организации распределенных очередей задач и других.
Базу можно запустить в одноузловом режиме (single-server) и затем расширить до кластера.
Apple планирует принимать решения прозрачно, чтобы любой желающий мог предложить изменения и улучшения. Напомним, с той же целью в октябре 2017 года корпорация открыла доступ к низкоуровневым системным компонентам новой macOS High Sierra.
1К открытий1К показов