diff --git a/doc/thinking/p1.1-per-queue-lock-analysis-2026-10-06.md b/doc/thinking/p1.1-per-queue-lock-analysis-2026-10-06.md index 95438a1..d57f36e 100644 --- a/doc/thinking/p1.1-per-queue-lock-analysis-2026-10-06.md +++ b/doc/thinking/p1.1-per-queue-lock-analysis-2026-10-06.md @@ -66,3 +66,14 @@ DLQ), а не построчная замена. Делать её «вслеп Индексация `Messages` (receipt→index) меняет структуру хранения, затронутую теми же путями (receive/delete/visibility/tick/сериализация), и требует покрытия тех же путей. Рекомендуется вместе с P1.1. + +## P1.2 — СТАТУС: ОТЛОЖЕНО (обоснование, 2026-10-06) + +После P1.1 главный боттлнек (глобальный лок на синхронный Redis-I/O и O(N)-скан +по ВСЕМ очередям) устранён: теперь O(N)-сканы ограничены ОДНОЙ очередью и не +блокируют остальные. Индекс `receipt→index` поверх срезa `[]SqsMessage` НЕ даёт +O(1): удаление из середины среза сдвигает все последующие индексы (O(N) на +переиндексацию). Реальный выигрыш требует смены контейнера (map+order-list), что +затрагивает сериализацию и все пути — крупная рискованная правка с маргинальной +выгодой на текущих объёмах. Отложено до появления реальной нагрузки/лимитов. +