gendesign/_wt-cadval/data/sql/87_on_demand_indexes.sql
bot-backend 542ff1c9ca docs(tradein/domclick): два комментария описывали пул, которого нет с миграции 253
Оба места утверждали, что у Домклика один выделенный резидентный прокси и
пула нет. Это перестало быть правдой ещё в #2800 (миграция 253 сняла
резервацию узла), но текст остался — и именно на него опирался тикет #3189,
поставленный под «калибровку» ограничения, которого не существует.
Свип к тому же ходит через пул давно (serp.py:359), а бэкфилл подключён к
нему в PR #3222.

Заодно докстринг называл не тот ограничитель: свип кладёт не счётчик
провалов lease, а break по первому DomClickBlockedError (#2854) — до
ротации дело не доходит ни при каком счётчике, отсюда buckets_completed=0.

Только комментарии, поведение не меняется. Миграция 175 уже применена, а
_schema_migrations трекает по имени файла без checksum — правка текста
её не перезапустит.
2026-08-29 18:57:25 +03:00

36 lines
1.6 KiB
PL/PgSQL
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.

-- #93 (PR #95): indexes for on-demand cadastre fetch lookups.
--
-- Context:
-- `find_active_on_demand_job` и `find_recent_completed_job` в
-- `app/services/site_finder/cadastre_fetch.py` фильтруют
-- `nspd_geo_targets` по cad_num + `nspd_geo_jobs` по source_kind+status.
-- Existing UNIQUE(job_id, cad_num, thematic_id) на targets не помогает
-- при WHERE cad_num=:c — нужен secondary index.
--
-- Не блокер при текущем размере таблицы (~10K targets), но критично при
-- ускорении on-demand traffic (per #93 trigger любым посетителем
-- /site-finder).
--
-- Apply: idempotent, CREATE INDEX IF NOT EXISTS — safe to run multiple
-- times. CONCURRENTLY не используется чтобы коммит был атомарным; на
-- prod размере index build занимает <1s.
BEGIN;
-- Targets — поиск активных on-demand job'ов для конкретного cad
CREATE INDEX IF NOT EXISTS nspd_geo_targets_cad_num_idx
ON nspd_geo_targets(cad_num);
-- Jobs — фильтр source_kind='auto_on_demand' + status IN (queued,running)
CREATE INDEX IF NOT EXISTS nspd_geo_jobs_source_status_idx
ON nspd_geo_jobs(source_kind, status);
COMMIT;
COMMENT ON INDEX nspd_geo_targets_cad_num_idx IS
'on-demand cadastre fetch lookups (#93). Used by find_active_on_demand_job '
'и find_recent_completed_job в cadastre_fetch service.';
COMMENT ON INDEX nspd_geo_jobs_source_status_idx IS
'Filter source_kind=auto_on_demand + status (#93). Composite чтобы '
'покрыть оба predicate сразу.';