revert(batch): back out #24697 owner page collapse and drain requeue

Merged
GI
12h ago
+49-305

Problem

#24697 (6547604a) has served on backend-integration since 2026-11-05 14:53Z (revision 01572-22x) and regressed projection drain. Owner-drain turn logs, Cloud Logging, read-only:

windowturns/srows advanced/sclaim_busy share
14:30-14:45Z (pre-train)3.411.970%
15:30-15:33Z (post)308.460% (of 10x more turns)

Cause: Projector sweep now calls request_drain(owner) for every collapsed owner not in this process's draining set, on every sweep. The de-dupe is per process only, so across ~48 integration instances the same heavy owners are requested everywhere. Turns hit the owner claim held elsewhere (claim_busy) or find nothing (end) in ~0.8 s. owner_page also adds one jobs read per page row. Projection over-SLA kept rising (178.7k at 15:40Z), and rows advanced fell 30%.

Fix

Revert #24697 (git revert -m 1 6547604a). The single conflict was the GMP keep-list in backend/deploy/cloud_run_gmp_sync.yaml. I kept main's version, which still lists the two now-unemitted counter names: harmless, with no keep-list churn. No later commit touched the reverted files, and nothing references the removed symbols.

A forward fix (request drains only for owners without a live claim, or rate-limit requests per owner, behind a kill switch) is a follow-up.

Tests

bin/omi-heavy run -- .venv/bin/python -m pytest -q over the #24697 test set plus test_attach_cloud_run_gmp_sidecar.py: 463 passed.

Risk / rollback

Restores the pre-#24697 projection scheduler, which served all morning. Rollback = revert this revert.

šŸ¤– Generated with Claude Code