Паспорт проекта
- Тип
- Технические модули
- Задача
- Обрабатывать большие объёмы структурированных данных и сохранять транзакционную целостность при различных отказах.
- Для кого
- Разработчики приложений, использующие базу через языковые API, и разработчики/операторы распределённой базы. Существуют отдельные средства запуска в Kubernetes.
- Технологии
- Go / C++ / Docker / Kubernetes / API / JSON
- Что потребуется
- Для базы описан серверный кластер и языковой клиент; для сборки исходников указаны минимум 8 ГБ RAM и больше при параллельной сборке.
- Основание
- 26 первоисточников
За 30 секунд
Обрабатывать большие объёмы структурированных данных и сохранять транзакционную целостность при различных отказах.
Принимает операции через языковые API, хранит упорядоченные ключи/значения и объединяет операции в ACID-транзакции. Свойства корректности и производительности здесь являются заявлениями источника.
Сохранённое упорядоченное состояние и результаты чтения/записи через клиентский API. Вспомогательный TestHarness2 печатает результаты тестов XML или JSON.
Как это работает
На входе
Структурированные данные в виде ключей и значений и операции/транзакции клиентского приложения через языковые bindings.
Механизм
Принимает операции через языковые API, хранит упорядоченные ключи/значения и объединяет операции в ACID-транзакции. Свойства корректности и производительности здесь являются заявлениями источника.
Результат
Сохранённое упорядоченное состояние и результаты чтения/записи через клиентский API. Вспомогательный TestHarness2 печатает результаты тестов XML или JSON.
Что важно понять
Техническое устройство
Упорядоченное key-value хранилище с ACID и языковыми API. Асинхронный runtime Flow использует C++ coroutines, Promise/Future над SingleAssignmentVar; Joshua распределяет прогоны, а TestHarness2 запускает детерминированную симуляцию всего кластера в одном процессе.
Для чего создано
Обрабатывать большие объёмы структурированных данных и сохранять транзакционную целостность при различных отказах.
Для кого
Разработчики приложений, использующие базу через языковые API, и разработчики/операторы распределённой базы. Существуют отдельные средства запуска в Kubernetes.
Сценарии использования
Транзакционное хранилище приложения с чтением и записью; запуск FoundationDB в Kubernetes. В пакете есть демонстрационное Go-приложение, но его каталог samples отдельно признан устаревшим.
Идея решения
Соединить низкоуровневую упорядоченную модель ключ–значение с транзакциями и систематической симуляцией отказов распределённого кластера.
Какую задачу описывает источник
Сохранение гарантий данных и транзакционной целостности при широком спектре отказов, а не только в нормальной работе.
Что известно из описания
Что потребуется
- Для базы описан серверный кластер и языковой клиент; для сборки исходников указаны минимум 8 ГБ RAM и больше при параллельной сборке.
- Go binding требует Go 1.22+ с CGO и поддерживает API 200–800.
Что учитывать
- Экспериментальные ветки не рекомендованы для production.
- Пропуск обычного major при обновлении проверяется только в симуляции.
- Docker samples помечены устаревшими и потенциально неправильными.
- AI-generated архитектурный обзор не прошёл подробную проверку.
Из первоисточников
Редакционный обзор NeoBridge Insight по материалам источников ниже. Права на исходные тексты, код и изображения принадлежат их правообладателям. Условия использования указаны в первоисточниках.
Независимое тестирование проекта не проводилось.
github.com
- apple/foundationdb↗
- README.md↗
- bindings/go/README.md↗
- bindings/java/README.md↗
- bindings/java/src/README.md↗
- bindings/python/README.rst↗
- contrib/Implib.so/README.md↗
- contrib/Implib.so/arch/README.md↗
- contrib/Joshua/README.md↗
- contrib/TestHarness2/README.md↗
- contrib/debug_determinism/README.md↗
- contrib/fdbcstat/README.md↗
- contrib/joshua_stats/readme.md↗
- contrib/local_cluster/README.md↗
- contrib/metadata_audit/README.md↗
- contrib/mtlsbenchmark/readme.md↗
- contrib/pkg_tester/README.md↗
- contrib/replay/README.md↗
- contrib/serialize-check/README.md↗
- design/AI-generated/README.md↗
- fdbkubernetesmonitor/README.md↗
- flow/README.md↗
- flow/bench/README.md↗
- packaging/docker/README.md↗
- packaging/docker/fdb-aws-s3-credentials-fetcher/README.md↗
- packaging/docker/samples/golang/README.md↗

Комментарий NeoBridge
Общая справка
Что стоит уточнить
Основания и справочные материалы
API ↗JSON ↗