AURORA-1845: кэш user/формы на время WS-соединения #238
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/237-aurora-1845-ws-connection-cache"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #237
Jira: AURORA-1845
Что сделано
FormEventProcess.processпользователь (user_service.get) и проверка доступа к форме (bf_service.get) кэшируются на время WebSocket-соединения листа формы (ConnectionCache, живёт вprocess_websocket, т.к. процессор и сессия БД создаются на каждое сообщение).ProjectEventProcess,ConnectionManager.disconnect/блокировки (AURORA-1923),get_db_session/SET LOCAL app.user_idне тронуты.Тесты
tests/unit/test_websocket_connection_cache.py: за N сообщенийuser_service.get/bf_service.getвызваны по 1 разу; без кэша - N; истечение TTL; отрицательные результаты не кэшируются.tests/integration/test_websocket_connection_cache_integration.pyчерезwebsocket_connect(3 цикла edit_start/updated/edit_end, счётчики = 1; значение ячейки откатывается в finally).Проверить руками
Замер до/после
Эффект мал, мерить вместе со сценарием coauthor из AURORA-1850.
Rulings I made
can_editв SQL-обёрткеupd_form_cellsна каждое сообщение; кэш на него не влияет. Деактивация пользователя при живом соединении и раньше не проверялась в process() (только при логине по токену) - не менял.FormEventProcess(ProjectEventProcess вне задачи).🤖 Generated with Claude Code
Ночной замер на стенде perf/ (29.10, масштаб 1, D0, CPU 1x, arm-ka-* остановлены)
PR рекомендует мерить вместе с coauthor из AURORA-1850. 1845 и 1850 — разные ветки от
test/1844, поэтому собрал локальный merge в detached HEAD стенда (a1fa511= 1850b5a245e+ этот PR4dae72d, конфликтов нет; не пушился, ветки нет). Фронт в обоих —test.Команда:
PERF_SQLSTATS_TAG=coauthor PERF_TARGETS='FORM_2/AHR/*' PERF_COAUTHOR_RATES=5 PERF_REPEATS=3 scroll-coauthor.spec.ts.Вердикт: очереди нет ни до, ни после (на бэке 1850 правки успевают); заметный эффект — меньше ошибочных эх (O-10): 51–52 → 41 за прогон, echoed/sent 0,80 → 0,84. Время SQL правки и нагрузка на автора — без изменений. На бэке
test(без 1850) rate 5 не снимается инструментом (O-1: бот теряет итог при ~0,5 с на правку), поэтому замер «1845 от test» не делал. Задержку эха бот не мерит (доработка из design P3 не сделана).Прогоны:
perf/results/n-cof-base,n-cof-base-r2,n-cof-1850x1845(worktree perf-bench); лог merge —/private/tmp/claude-501/-Users-andrey-epifancev-projects-fomichev-claude/6fa9c75e-eb11-4e5d-98c1-05eb590ab14f/scratchpad/night/logs/merge-1845.log.🤖 Generated with Claude Code