Files
healthlog/docs/tasks/items/lower-layer-expiry.md
T
av 2130763d3c tasks: решено, чем помечать покрытие экспортом
- пометка — одна строка на диапазон (метрика + слой + период), а не провенанс
  на точку: вопрос диапазонный, а поле у точки стоит того объёма, который
  устаревание нижнего слоя и приходит экономить
- провенанс на точку отвергнут по цене, а не по ненадобности — различие
  записано, чтобы решение пересмотрели при появлении потребителя
- пометку выставляет импорт экспорта, по проверенному прогону; stateOfMind не
  получает её никогда — его в экспорте Apple нет
2026-08-04 11:28:33 +03:00

4.7 KiB
Raw Blame History

Устаревание нижнего слоя после экспорта

  • Секция: ядро
  • Зачем: Нижний слой растёт на ~100 тысяч координат в сутки, а после экспорта Apple он избыточен
  • Теги: goal:lower-layer-cleanup

Нижний слой растёт примерно на 100 тысяч координат в сутки против ~3 700 у минутного и ~100 у часового — разница в три порядка (находка 41). Всё давление по объёму создаёт он один, и ровно там родной экспорт Apple оказывается настоящим надмножеством.

Два ограничителя, без которых правило опасно:

  • пометка вешается по загруженному и проверенному экспорту, а не по сделанному: проверка — непрерывность по дням и сходимость сумм с часовым слоем;
  • пометка ≠ удаление. Удаление включается только после того, как восстановление из экспорта отработает на живых данных хотя бы раз.

Чем помечать: разряд на диапазон, а не провенанс на точку

Решено при постановке 2026-08-04. Пометка — одна строка на диапазон: метрика + слой + период + «покрыто проверенным экспортом». Не поле у точки.

Основание — соотношение цены и потребности:

  • вопрос, на который надо ответить, диапазонный: «за этот период нижний слой обеспечен настоящими сэмплами Apple, посекундную развёртку HAE можно выбросить». Он не требует знать, из какой доставки приехало конкретное число;
  • цена совпадает с самой проблемой: нижний слой растёт на ~100 тысяч координат в сутки, и поле у точки платит тем же объёмом, который задача и пришла экономить. Пометка на диапазон — десятки строк.

Провенанс на точку рассмотрен и отвергнут по цене, а не по ненадобности. Различать эти два основания важно: отказ по ненадобности закрывает вопрос навсегда, отказ по цене — только до появления потребителя. Появится тот, кому нужно «покажи, из какой конкретно доставки это число», — решение пересматривается. Сегодня такого потребителя нет: ни агент-медик, ни трекер, ни игра его не просят (passport.md).

Отдельно стоит помнить, что отделить старое от нового можно и без пометок: состояние по определению есть import(экспорт) + replay(доставок по received_at), порядок известен, происхождение значения выводится пересборкой. Пометка нужна ровно затем, чтобы отвечать на этот вопрос при чтении, не пересчитывая.

Смежное: у сущностей (workouts, stateOfMind) провенанс уже есть — колонки delivery_id и delivery_received_at (миграция 00007). У часового объекта метрики есть first_delivery_id (миграция 00003), но это первая доставка, а не источник каждой точки, и для этой задачи он не годится.

Приоритет низкий: пока история измеряется днями, экономить нечего. Задача станет актуальной, когда нижний слой перевалит за несколько гигабайт.

Зависит от импорта экспорта Apple — до него помечать нечем; выставляет пометку apple-export-import.