Apple открыла исходный код распределенной СУБД FoundationDB

FoundationDB

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.

Источник: блог FoundationDB

Ещё интересное для вас:
Тест: что вы знаете о работе мозга?
Что посмотреть и куда сходить разработчку — ближайшие события