From d53aadecfa4a30bc31b241dabc05e7f5ee842392 Mon Sep 17 00:00:00 2001 From: Repinoid Date: Tue, 6 Oct 2026 18:59:57 +0300 Subject: [PATCH] =?UTF-8?q?doc:=20P1.2=20=D0=BE=D1=82=D0=BB=D0=BE=D0=B6?= =?UTF-8?q?=D0=B5=D0=BD=20=D1=81=20=D0=BE=D0=B1=D0=BE=D1=81=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=D0=BC=20(=D0=BF=D0=BE=D1=81?= =?UTF-8?q?=D0=BB=D0=B5=20P1.1=20O(N)=20=D0=BE=D0=B3=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=87=D0=B5=D0=BD=20=D0=BE=D0=B4=D0=BD=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=BE=D1=87=D0=B5=D1=80=D0=B5=D0=B4=D1=8C=D1=8E)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../p1.1-per-queue-lock-analysis-2026-10-06.md | 11 +++++++++++ 1 file changed, 11 insertions(+) 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), что +затрагивает сериализацию и все пути — крупная рискованная правка с маргинальной +выгодой на текущих объёмах. Отложено до появления реальной нагрузки/лимитов. +