fix(auditlog): prune per-site reconciliation state and pull-channel caches for sites absent from the enumeration; bound the abandoned-id set (review 2026-10-21 06/MEM-2)
This commit is contained in:
@@ -392,6 +392,15 @@ reports `MoreAvailable` and the cursor advances, mirroring `SiteCallAuditActor`.
|
||||
**Mixed versions:** a pre-PERF-1 site still serves `Forwarded` rows; central
|
||||
tolerates that unchanged (idempotent on `EventId`, merely more pages).
|
||||
|
||||
**Per-site state follows the site list (review 2026-10-21 06/MEM-2).** Each tick drops
|
||||
the cursor, non-draining counter and stalled latch of any site no longer returned by
|
||||
`ISiteEnumerator` (a latched site publishes `Stalled=false` as it goes), and the
|
||||
`PullAuditEvents` / `PullSiteCalls` / `PullTraceEvents` invokers evict and dispose any
|
||||
cached `(site, endpoint)` gRPC channel that is not a live site's primary or fallback
|
||||
address on every enumeration. The in-memory abandoned-`EventId` short-circuit set is
|
||||
capped at 10 000 entries (cleared when full — it is an optimisation only; the
|
||||
deterministic synthetic id is what keeps re-abandonment idempotent).
|
||||
|
||||
**`PullTraceEvents` is a point read, not a reconciliation path (2026-09-05).** The
|
||||
Flow Debugger's value-change run cannot get its steps inline (the device echo
|
||||
triggers the run after the write reply has returned), so central polls the site
|
||||
|
||||
Reference in New Issue
Block a user