непокрытые секции доставки видны в статусе разбора
- половина потока (50 доставок из 104) не несёт metrics вовсе и до сих пор числилась parsed: ретеншен, поверив статусу, срезал бы тела stateOfMind, которых в экспорте Apple нет - разбор перечисляет верхнеуровневые ключи data, непокрытые проглатываются декодированием: тело 40 МиБ из непокрытой секции удерживает 0 МиБ - статус partial и колонка delivery.uncovered_sections; миграция переводит прежние parsed в pending — им верить нельзя - витрина не изменилась: отпечаток совпал с прогоном до изменения
This commit is contained in:
@@ -1631,6 +1631,33 @@ apple_stand_time 14
|
||||
названа вслух и ограничена столкновением, где одно из двух содержимых на одних
|
||||
координатах заведомо неверно.
|
||||
|
||||
## 50. Половина потока — не `metrics`, и секции не смешиваются
|
||||
|
||||
Замер по всем 99 доставкам архива: набор верхнеуровневых ключей `data`.
|
||||
|
||||
| набор ключей `data` | доставок |
|
||||
|---|---|
|
||||
| `metrics` | 51 |
|
||||
| `workouts` | 24 |
|
||||
| `stateOfMind` | 24 |
|
||||
|
||||
Три наблюдения, каждое из которых влияло на решение:
|
||||
|
||||
1. **48 доставок из 99 сейчас числятся разобранными, не будучи разобранными.**
|
||||
Разбор читает только `metrics`; доставка из одних тренировок получала
|
||||
`parse_status=parsed` с нулём точек — неотличимо от доставки с пустой
|
||||
секцией метрик. Ретеншен, ориентируясь на статус, срезал бы тела, а для
|
||||
`stateOfMind` это необратимо (находка 46).
|
||||
2. **Ни одна доставка не несла двух секций сразу.** Автоматизация HAE шлёт одну
|
||||
секцию за раз. Полагаться на это в правилах удаления данных, впрочем,
|
||||
нельзя: наблюдение собрано за двое суток потока.
|
||||
3. **Пустых секций не бывает** — все 99 значений непусты. Это снимает соблазн
|
||||
«пустую секцию не считать непокрытой»: он бы снял шум, если бы HAE слал
|
||||
`"workouts": []` в каждой доставке, а он не слал ни разу.
|
||||
|
||||
Отсюда статус `partial` и колонка `delivery.uncovered_sections`: статус
|
||||
отвечает на вопрос «разобрано ли всё», список — «что именно осталось».
|
||||
|
||||
## Инструмент
|
||||
|
||||
Разбор ведётся скриптом `tmp/research/hl.py` (Python 3, только стандартная
|
||||
|
||||
Reference in New Issue
Block a user