Files
healthlog/docs/tasks/items/lower-layer-expiry.md
T
av d33f37249c docs: документация переведена на канон av-dev-pm 3
- роадмап отвечает «что умеет и чего не умеет»: PLAN.md → ROADMAP.md, четыре
  канонические секции, достигнутые звенья строками в «Готово», цели
  переформулированы возможностями приложения
- задачи: род работы и «Затрагивает» набору спринта, 34 заголовка в форму
  действия, «Завершение» целей перечнями со ссылкой из каждой задачи
- вычитка проходами task-form и doc-wording, починены протухшие факты в README,
  паспорте и review.md
2026-08-04 20:48:30 +03:00

4.9 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.