4.6 KiB
4.6 KiB
P09-A. FoundationDB: транзакции и отказы
- Версия и дата проверки: 1.0, 05.09.2026.
- Статус: готово к назначению.
Статья и исходные материалы
- Основная статья: FoundationDB Team — FoundationDB: A Distributed Unbundled Transactional Key Value Store. SIGMOD 2021.
- Кратко о статье: FoundationDB строит распределённую базу вокруг небольшого строго упорядоченного транзакционного ядра, отделяя обработку транзакций, журналирование и хранение данных. Более сложные модели данных реализуются слоями поверх упорядоченного key-value-интерфейса, а архитектура рассчитана на заменяемость внутренних ролей и восстановление после отказов. В этом проекте проверяются транзакционная семантика и поведение сокращённой конфигурации при сбоях.
- Почему результат актуален: статья описывает архитектуру FoundationDB: небольшое транзакционное ядро, разделение ролей хранения и обработки и детерминированную имитацию отказов для проверки системы.
- Артефакты и данные: apple/foundationdb, открытая система с локальным многопроцессным режимом и детерминированными simulation tests. Зафиксированные ревизии:
apple/foundationdb@ddec61a629a9(Apache-2.0).
Обязательный результат
- Проверяемый вопрос или утверждение: FoundationDB сохраняет сериализуемость и подтверждённые записи при конфликтующих транзакциях и отказе процесса, хотя рост конфликтности увеличивает число повторов и хвостовую задержку.
- Технический результат: Развернуть малый многопроцессный кластер FoundationDB и реализовать повторяемую нагрузку с конфликтующими транзакциями, журналом исходов и проверкой сериализуемости.
- Эксперимент: Сравнить не менее трёх уровней конфликтности в штатном режиме и при одном управляемом отказе процесса. Измерить долю конфликтов и повторов, пропускную способность, p95/p99 и время восстановления; отдельно проверить отсутствие потерянных подтверждённых записей.
- Границы выводов: проверяются сериализуемость, конфликты и восстановление для выбранной нагрузки и одного отказа в малом кластере; эксперимент не подтверждает производительность и отказоустойчивость FoundationDB в производственном масштабе.
- Ресурсный профиль: локально, CPU, 8–16 ГБ памяти. Сборка всей системы может быть долгой; запасной вариант — использовать готовый выпуск для реального эксперимента и исходный код только для simulation tests.
Содержательные направления
- транзакционная нагрузка.
- отказы и имитация.
- слой или исследование параметров и анализ семантики.
Возможное продолжение
Реализовать небольшой слой поверх упорядоченного KV-интерфейса либо систематически исследовать влияние размера транзакции, конфликтности или размещения ролей.