Files
progcode/web/public/assets/editorial/2021/search-indexing-lag-budget-2021.svg
T
huncode 2a30c8816c
Build and deploy / deploy (push) Successful in 15s
revise July 2021 search indexing articles
2026-07-31 12:57:26 +03:00

60 lines
4.4 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<svg xmlns="http://www.w3.org/2000/svg" width="720" height="1420" viewBox="0 0 720 1420" role="img" aria-labelledby="title desc">
<title id="title">Учебная временная шкала задержки между сохранением и видимостью поиска</title>
<desc id="desc">Диаграмма показывает четыре условные точки времени: source сохранён на 100, ingest поставлен на 110, pending index подготовлен на 125, refresh даёт видимость на 160. Наблюдаемая разница 60 условных миллисекунд не является SLA.</desc>
<defs>
<marker id="arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto">
<path d="M0 0 L12 6 L0 12 Z" fill="#78dce8"/>
</marker>
<style>
.title { font: 700 31px system-ui, sans-serif; fill: #f8fafc; }
.subtitle { font: 400 20px system-ui, sans-serif; fill: #b6c4d6; }
.card-title { font: 700 25px system-ui, sans-serif; fill: #f8fafc; }
.body { font: 400 21px system-ui, sans-serif; fill: #d7e1ee; }
.small { font: 600 19px system-ui, sans-serif; fill: #d7e1ee; }
.label { font: 700 21px system-ui, sans-serif; fill: #0b1220; }
</style>
</defs>
<rect width="720" height="1420" fill="#0b1220"/>
<rect x="24" y="24" width="672" height="82" rx="18" fill="#121d31" stroke="#273755" stroke-width="2"/>
<text x="48" y="59" class="title">Как разложить наблюдаемую задержку</text>
<text x="48" y="87" class="subtitle">четыре учебные точки времени, не обещание SLA</text>
<rect x="54" y="137" width="612" height="94" rx="16" fill="#283d5d"/>
<text x="84" y="176" class="card-title">100 · savedAtMs</text>
<text x="84" y="207" class="body">доменная version 7 сохранена</text>
<path d="M360 243 L360 286" stroke="#78dce8" stroke-width="5" marker-end="url(#arrow)"/>
<rect x="54" y="300" width="612" height="94" rx="16" fill="#433a75"/>
<text x="84" y="339" class="card-title">110 · enqueuedAtMs</text>
<text x="84" y="370" class="body">один key id:version ждёт ingest</text>
<path d="M360 406 L360 449" stroke="#78dce8" stroke-width="5" marker-end="url(#arrow)"/>
<rect x="54" y="463" width="612" height="94" rx="16" fill="#624d2a"/>
<text x="84" y="502" class="card-title">125 · indexedAtMs</text>
<text x="84" y="533" class="body">pending index готов, query ещё stale</text>
<rect x="74" y="594" width="572" height="162" rx="18" fill="#2d2530" stroke="#ffc857" stroke-width="3"/>
<text x="104" y="636" class="card-title">Промежуток ожидания видимости</text>
<text x="104" y="670" class="body">query «свежести» → 0 попаданий</text>
<text x="104" y="701" class="body">диагноз: awaiting-refresh</text>
<text x="104" y="732" class="small">собрать evidence, не удалять source</text>
<path d="M360 768 L360 811" stroke="#78dce8" stroke-width="5" marker-end="url(#arrow)"/>
<rect x="54" y="825" width="612" height="94" rx="16" fill="#245449"/>
<text x="84" y="864" class="card-title">160 · visibleAtMs</text>
<text x="84" y="895" class="body">refresh делает version 7 видимой</text>
<path d="M360 931 L360 974" stroke="#78dce8" stroke-width="5" marker-end="url(#arrow)"/>
<rect x="54" y="988" width="612" height="121" rx="16" fill="#1b4238" stroke="#66d9a0" stroke-width="3"/>
<text x="84" y="1029" class="card-title">Query после refresh</text>
<text x="84" y="1061" class="body">1 hit · current version 7</text>
<text x="84" y="1091" class="small">дальше проверяем именно контракт query</text>
<rect x="54" y="1150" width="612" height="199" rx="18" fill="#142033" stroke="#4a85c5" stroke-width="3"/>
<text x="84" y="1194" class="card-title">Как читать этот бюджет</text>
<text x="84" y="1230" class="body">visibleAtMs − savedAtMs = 60</text>
<text x="84" y="1261" class="body">60 — вход fixture для проверки арифметики</text>
<text x="84" y="1292" class="body">проект сам выбирает policy и порог реакции</text>
<text x="84" y="1323" class="small">не переносим число в production без измерения</text>
</svg>