Идея из развилки #135 карты #127 (обсуждение горячего ревью), отложена до
проектирования лаб. Лаба повышенной сложности.
Идея
Стенд пересчитывает dm.daily_traffic целиком каждый прогон — вслед за
картой идентичностей, которая тоже пересчитывается целиком и не хранит,
когда связка появилась. Менти строит инкрементальную альтернативу:
восстанавливает момент первой связи first_matched_at (как в #145 —
минимум времени purchase-события, соединённого с заказом), по свежим
связкам находит затронутые дни визитов и точечно пересчитывает только их.
Учебный результат
Разница между пересчётом «по позиции» (партиционная переобработка) и
пересчётом «по изменениям» (инкремент): чтобы обновлять меньше, нужно
хранить больше — след изменений, который полная перезагрузка затирает.
Контроль корректности бесплатный: результат обязан совпасть с эталонной
витриной стенда.
Контекст
#145 — родственная лаба: там момент связи выводится запросом, здесь он
работает на инкремент.
Техдолг #2 — общий вопрос инкрементальности поверх партиционной
переобработки; стенд его не берёт, руки заняты студентами.
Резолюция #135 — почему стенд выбрал полный пересчёт.
Идея из развилки #135 карты #127 (обсуждение горячего ревью), отложена до
проектирования лаб. Лаба повышенной сложности.
## Идея
Стенд пересчитывает `dm.daily_traffic` целиком каждый прогон — вслед за
картой идентичностей, которая тоже пересчитывается целиком и не хранит,
когда связка появилась. Менти строит инкрементальную альтернативу:
восстанавливает момент первой связи `first_matched_at` (как в #145 —
минимум времени `purchase`-события, соединённого с заказом), по свежим
связкам находит затронутые дни визитов и точечно пересчитывает только их.
## Учебный результат
Разница между пересчётом «по позиции» (партиционная переобработка) и
пересчётом «по изменениям» (инкремент): чтобы обновлять меньше, нужно
хранить больше — след изменений, который полная перезагрузка затирает.
Контроль корректности бесплатный: результат обязан совпасть с эталонной
витриной стенда.
## Контекст
- #145 — родственная лаба: там момент связи выводится запросом, здесь он
работает на инкремент.
- Техдолг #2 — общий вопрос инкрементальности поверх партиционной
переобработки; стенд его не берёт, руки заняты студентами.
- Резолюция #135 — почему стенд выбрал полный пересчёт.
Резолюция спеки программы лаб: вошла в ветку «Инженерия стенда» как необязательная лаба «Инкремент против пересборки» с пометкой «повышенная сложность». docs/specs/2026-09-01-labs-program.md (спека принята владельцем, #202, PR #205)
Резолюция спеки программы лаб: вошла в ветку «Инженерия стенда» как необязательная лаба «Инкремент против пересборки» с пометкой «повышенная сложность». docs/specs/2026-09-01-labs-program.md (спека принята владельцем, #202, PR #205)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Идея из развилки #135 карты #127 (обсуждение горячего ревью), отложена до
проектирования лаб. Лаба повышенной сложности.
Идея
Стенд пересчитывает
dm.daily_trafficцеликом каждый прогон — вслед закартой идентичностей, которая тоже пересчитывается целиком и не хранит,
когда связка появилась. Менти строит инкрементальную альтернативу:
восстанавливает момент первой связи
first_matched_at(как в #145 —минимум времени
purchase-события, соединённого с заказом), по свежимсвязкам находит затронутые дни визитов и точечно пересчитывает только их.
Учебный результат
Разница между пересчётом «по позиции» (партиционная переобработка) и
пересчётом «по изменениям» (инкремент): чтобы обновлять меньше, нужно
хранить больше — след изменений, который полная перезагрузка затирает.
Контроль корректности бесплатный: результат обязан совпасть с эталонной
витриной стенда.
Контекст
работает на инкремент.
переобработки; стенд его не берёт, руки заняты студентами.
Резолюция спеки программы лаб: вошла в ветку «Инженерия стенда» как необязательная лаба «Инкремент против пересборки» с пометкой «повышенная сложность». docs/specs/2026-09-01-labs-program.md (спека принята владельцем, #202, PR #205)