Files
nis2/project-tasks/p09-b-foundationdb-simulation.md
T
2026-09-06 19:26:12 +03:00

4.8 KiB
Raw Blame History

P09-B. FoundationDB: детерминированная имитация

  • Версия и дата проверки: 1.0, 05.09.2026.
  • Статус: готово к назначению.

Статья и исходные материалы

  • Основная статья: FoundationDB Team — FoundationDB: A Distributed Unbundled Transactional Key Value Store. SIGMOD 2021.
  • Кратко о статье: FoundationDB сочетает рабочую распределённую базу с детерминированной имитацией, в которой тот же код выполняется под управляемым временем, сетью и инъекцией отказов. Фиксация начального зерна позволяет точно повторять редкие последовательности событий и отлаживать нарушения инвариантов. В этом проекте воспроизводится принцип детерминированного планирования и сравнивается повторяемость диагностики с обычным многопроцессным запуском.
  • Почему результат актуален: статья описывает архитектуру FoundationDB: небольшое транзакционное ядро, разделение ролей хранения и обработки и детерминированную имитацию отказов для проверки системы.
  • Артефакты и данные: apple/foundationdb, открытая система с локальным многопроцессным режимом и детерминированными simulation tests. Зафиксированная основная ревизия: apple/foundationdb@ddec61a629a9 (Apache-2.0).

Обязательный результат

  • Проверяемый вопрос или утверждение: Детерминированная имитация позволяет систематически проверять последовательности отказов и точно воспроизводить редкие нарушения, которые трудно диагностировать в обычном многопроцессном запуске.
  • Технический результат: Собрать или использовать зафиксированный simulation-режим FoundationDB, подготовить малую нагрузку, один проверяемый инвариант и сценарии отказов, управляемые seed. Добавить автоматическое повторное проигрывание найденной трассы.
  • Эксперимент: Сравнить обычный локальный fault-injection и детерминированную имитацию по числу исследованных сценариев, времени до обнаружения, доле точных повторов и размеру диагностической трассы. Обязательны несколько seed, два вида отказа и намеренно внесённое либо уже известное нарушение.
  • Границы выводов: сравнение характеризует воспроизводимость и исследованное пространство для выбранной нагрузки, инварианта и видов отказа; оно не доказывает корректность FoundationDB и не оценивает частоту таких сбоев в эксплуатации.
  • Ресурсный профиль: локально, CPU, 8–16 ГБ памяти. Сборка всей системы может быть долгой; запасной вариант — использовать готовый выпуск для реального эксперимента и исходный код только для simulation tests.

Содержательные направления

  • имитационный стенд и нагрузка.
  • инварианты, отказы и воспроизведение.
  • базовые варианты, покрытие, уменьшение трасс и анализ.

Возможное продолжение

Уменьшать трассу, добавить новый инвариант или отказ, направлять выбор seed по покрытию либо сопоставить simulation trace с реальным локальным кластером.