docs: документация переведена на канон av-dev-pm 3
- роадмап отвечает «что умеет и чего не умеет»: PLAN.md → ROADMAP.md, четыре канонические секции, достигнутые звенья строками в «Готово», цели переформулированы возможностями приложения - задачи: род работы и «Затрагивает» набору спринта, 34 заголовка в форму действия, «Завершение» целей перечнями со ссылкой из каждой задачи - вычитка проходами task-form и doc-wording, починены протухшие факты в README, паспорте и review.md
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# Предел размера ответа
|
||||
# Ограничить размер ответа маршрутов чтения
|
||||
|
||||
- **Секция:** ядро
|
||||
- **Секция:** Ядро
|
||||
- **Зачем:** У маршрутов чтения нет ни одного потолка: множители «метрики × окно × точки × одновременные запросы» ничем не ограничены
|
||||
- **Теги:** goal:read-api, sprint:2026-08-04
|
||||
- **Теги:** goal:read-api, sprint:2026-08-04, kind:feature
|
||||
|
||||
У маршрутов чтения появляется названный потолок: сетка не задана и ответ не
|
||||
влезает — сервер огрубляет её и **называет** в ответе; сетка задана явно и не
|
||||
@@ -16,20 +16,31 @@
|
||||
приём в том же процессе уже даёт пик 768 МиБ на теле 40 МиБ. Множители «метрики ×
|
||||
окно × точки × одновременные запросы» сегодня без потолка ни у одного маршрута —
|
||||
включая уже живой каталог, у которого предела нет намеренно: правило размера
|
||||
общее, и задавать его мимоходом на первой ручке значило бы решить контракт до
|
||||
общее, и задавать его мимоходом на первом маршруте значило бы решить контракт до
|
||||
того, как известна форма тяжёлого ответа.
|
||||
|
||||
Правило распространяется на все маршруты чтения сразу — каталог, точки,
|
||||
тренировки, записи, — а не только на тот, где написано.
|
||||
|
||||
Двигает строку «Завершения» цели: «У ответа любого маршрута чтения есть объявленный предел размера».
|
||||
|
||||
## Затрагивает
|
||||
|
||||
Все маршруты чтения сразу — каталог, точки, а следом тренировки и записи: код и
|
||||
тело отказа на запросе за пределом, поле огрублённой сетки в ответе. Конфиг и
|
||||
его образцы — сам предел. Раздел о пределах в `docs/architecture.md`. Схемы и
|
||||
формата на диске не трогает.
|
||||
|
||||
## Критерии приёмки
|
||||
|
||||
- запрос без сетки, не влезающий в предел, отвечает огрублённой сеткой и
|
||||
называет её в ответе — оракул: враждебный запрос на живом архиве
|
||||
- явно заданная сетка за пределом даёт ошибку со списком доступных сеток —
|
||||
оракул: тест
|
||||
- предел объявлен в конфиге и в `docs/architecture.md`, а не зашит числом в
|
||||
обработчике — оракул: образцы конфига в гейте
|
||||
- предел читается из конфига: два разных значения дают две разные границы
|
||||
отказа — оракул: тест с подменой значения предела
|
||||
- предел назван в образцах конфига и в `docs/architecture.md` — оракул: шаг
|
||||
образцов конфига в гейте и глазами по разделу
|
||||
- каталог подчиняется тому же пределу, что и точки — оракул: тест на враждебном
|
||||
запросе к каталогу
|
||||
|
||||
@@ -37,5 +48,5 @@
|
||||
|
||||
Схема не трогается, данные только читаются. Берётся после свёртки по сетке.
|
||||
Собственный дедлайн маршрута сюда **не входит**: он в задаче
|
||||
[«Остановка и миграция»](shutdown-and-migration-traces.md) вместе с `BaseContext`
|
||||
[«Развести бюджеты остановки»](shutdown-and-migration-traces.md) вместе с `BaseContext`
|
||||
и раздельными бюджетами остановки.
|
||||
|
||||
Reference in New Issue
Block a user