store: при равной полноте точек побеждает пришедшая доставка

- байтовый порядок канонических форм остался тай-брейком только внутри одной
  доставки: на живом корпусе он решал 98,8% спорных координат и системно хранил
  меньшее значение, из-за чего step_count терял род и verify:archive был красным
- правило перестало быть коммутативным осознанно, поэтому порядок свёртки
  приведён к журнальному: проход воркера прекращается на отложенной доставке,
  а свёртка вне порядка журнала пишет WARN
- заведены счётчики PointsHeld и PointsErased — удержание полнотой и
  единственное направление, в котором правило теряет содержание
This commit is contained in:
av
2026-08-04 11:16:24 +03:00
parent ae607f1ceb
commit b278501a6e
44 changed files with 3780 additions and 172 deletions
+7
View File
@@ -36,6 +36,13 @@ func writeReport(w io.Writer, r report) {
// сущностей стало слишком строгим.
p(" слияние: частично разобрано %d, несравнимых наборов %d, удержано версий сущностей %d, версий одного ключа в одном теле %d",
r.replay.Partial, r.replay.Incomparable, r.replay.EntitiesHeld, r.replay.EntitiesDiverging)
// То же и по той же причине — про точки. Удержания говорят, спорит ли ещё
// правило полноты с журналом; потери — единственное направление, в котором
// тай-брейк «побеждает пришедшая» способен унести содержание, и человек,
// принимающий по этому отчёту необратимое решение о подмене базы, обязан
// видеть оба числа, а не выводить их из совпавшего отпечатка.
p(" точки: удержано полнотой %d, содержание унесено пришедшей %d",
r.replay.PointsHeld, r.replay.PointsErased)
if r.replay.Canceled {
// Ни отпечаток пересобранной витрины, ни число доставок после прогона при