Раньше LSH-индекс жил in-memory в процессе воркера: терялся при рестарте и не шарился между воркерами — уровень 2 в проде фактически не работал. Теперь индекс хранится в общем Redis (тот же REDIS_URL) через нативный storage_config datasketch: - переживает рестарт, общий для всех воркеров-индексеров; - все ключи под префиксом antiplag_lsh — изолированы от кэша/rate-limits и чужих данных в общей БД; никаких FLUSH (и ACL-юзер их не умеет); - add_to_lsh теперь upsert (remove+insert) — full-text версия документа корректно заменяет провизорную по аннотации (был латентный баг: skip-on- duplicate оставлял абстрактную версию); - graceful-фолбэк в in-memory, если Redis недоступен, чтобы воркер не падал. Проверено на боевом Redis через изолированный тестовый префикс: query находит похожие, все ключи в неймспейсе, точечная чистка вернула БД к исходному состоянию (чужие данные не затронуты). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6.1 KiB
6.1 KiB