docs: документация переведена на канон av-dev-pm
- беклог и план переехали в docs/tasks (38 задач, 11 целей), слаги переименованы с транслита на английские, 85 ссылок поправлены - conventions.md разобран в docs/conventions/, local-research.md — в docs/research/, review-journal.md — в docs/review.md с разделом настройки конвейера; заведены security.md, adr/ и .pm.json - шаг docs.py check добавлен в task gate; поведение в architecture.md помечено девятью маркерами долга, database.md получил настройки с числовым значением
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# Сверка живой витрины с пересборкой
|
||||
|
||||
**Секция:** ядро · **Хук:** reindex печатает оба отпечатка, но сравнивать их некому — расхождение с журналом молчит · **Теги:** goal:journal-and-rebuild
|
||||
|
||||
`healthlog reindex` печатает отпечаток собранной витрины и отпечаток рабочей —
|
||||
то есть данные для сверки уже есть, и **сравнивать их некому**. Расхождение
|
||||
живого состояния с тем, что даёт проигрывание журнала, сегодня обнаруживается
|
||||
только тем, что кто-то вручную запустил пересборку и посмотрел на два числа.
|
||||
|
||||
Между тем расхождение — не гипотеза. Известный путь к нему записан блокером
|
||||
[«Порядок журнала при конкурентных приёмах»](journal-order-on-ingest.md):
|
||||
доставка, свёрнутая раньше своей предшественницы, уходит в `failed` навсегда, и
|
||||
живая витрина расходится с пересборкой молча. Пока тот предел не закрыт, сверка
|
||||
— единственный способ узнать, что он сработал.
|
||||
|
||||
Инвариант «состояние есть свёртка журнала» проверяем ровно этим: пересобрать в
|
||||
отдельный файл (рабочая база не трогается — это уже так и устроено), сверить
|
||||
отпечатки, расхождение — событие, которое видно. Прогон не бесплатный
|
||||
(на квартальном журнале десятки минут), поэтому это регламент, а не фоновая
|
||||
задача сервиса.
|
||||
|
||||
Развилка при взятии: кто запускает — `cron` на хосте рядом с деплоем или сам
|
||||
сервис по расписанию. Первое честнее (пересборка уже сейчас команда, а не
|
||||
режим сервиса), но требует места под второй файл базы.
|
||||
|
||||
Готово, когда расхождение витрины с пересборкой перестаёт зависеть от того,
|
||||
догадался ли человек посмотреть.
|
||||
|
||||
Связано: `cmd/healthlog/reindex.go`, [наблюдаемость](stats-endpoint.md),
|
||||
[деплой](deploy-rivendell.md).
|
||||
Reference in New Issue
Block a user