P0: Включить миграции Mnesia без падения кластера #24
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проблема
Автоприменение миграций отключено в
infra_mnesia.erlс комментарием, что это обваливает кластер. При этом спецификация и README миграций описывают автоматический запуск при старте.Влияние
Дрейф схемы данных между нодами и версиями; риск несовместимости record-полей с таблицами Mnesia.
Ожидаемый результат
Миграции безопасно применяются при старте без падения кластера; есть понятный recovery-сценарий.
Критерии приёмки
migration_engineФайлы
src/infra/infra_mnesia.erlsrc/migrations/src/migrations/README.mdПриоритет
P0
Беру в работу. Анализирую infra_mnesia, migration_engine и сценарии кластера.
Готово (вариант 1).
Изменения:
migration_engine:ensure_applied/0— global lock в Mnesia, один узел применяет pending, join-узлы ждут синхронизацииinit_tables+wait_for_tablesвeventhub_app?ALL_MIGRATIONS, stale lock 5 минmigration_engine_tests(4 теста, 0 failures)src/migrations/README.mdиEventHubBackSpec.mdКоммиты: EventHubBack
7c5f2d2, EventHubSpeca0f64d2(master, push выполнен).Спека обновлена: EventHubBackSpec.md §3.2.