Files
meshcore-analyzer/docs/performance
n30nex 93f9fc37e0 perf(ingestor): yield between committed retention batches (#2153)
Fixes #2151. Related to #2146.

Yield to runnable goroutines after each committed full retention batch,
once the writer lock is released. This gives the serial ingest consumer
another opportunity to submit its next write. Batch size, cutoff and
deletion semantics stay unchanged; dense fanout within one transaction
remains unbounded.

The branch is rebased onto upstream
`b9593f71745b856651cfd6d6c80bb1f3f091e13e`. The duplicate test commit
`99c2722d` is dropped because #2160 is already present upstream as
`a5b60ca5`. The runtime and regression-test patch is unchanged from the
previously reviewed `b70a9f6b`.

The raw JSON profile is omitted from this branch. The [Markdown
report](https://github.com/n30nex/CoreScope/blob/307432370f8a7d9d623223beac1ba15fdd2d6546/docs/performance/sqlite-retention-b5-2026-10-09.md)
links to the [immutable original
profile](https://github.com/n30nex/CoreScope/blob/323b18d4221e83c9827b4722145e2a9d5b9d9599/docs/performance/sqlite-retention-b5-2026-10-09.json);
the linked profile was fetched and verified against its original Git
blob.

Performance scope:

- The historical five-pair Linux comparison remains pinned to `9dbc287`
versus `b70a9f6`, with 2,048,000 observations, 50 ingest events/s and 20
HTTP requests/s.
- Additional-observation scheduled-to-complete p95/p99 improved by
median paired ratios of 0.9503/0.9191, while service-time p99 rose 29.1%
and cleanup took 0.5% longer. HTTP results were mixed, and multi-second
ingestion queues remained.
- Those figures do not measure this rebased candidate against current
master. The current benchmark run is an execution smoke check, not a new
performance comparison; the independent reviewer's results are not
pooled into the historical study.
- Added runtime work is one scheduler yield per full 250-transmission
batch, with constant extra state and no additional SQL scans or per-row
work. No config or customizer values change.

Local validation on Windows with Go 1.27.2, CGO enabled, and package
parallelism limited to one:

- Focused retention regressions passed.
- Full ingestor suite passed.
- Focused retention regressions under the race detector passed.
- Both retained benchmarks passed one iteration of every fixture
(`typical16`, `dense256`, `singleHot`).
- The full ingestor race suite passed in 264.31 seconds with
`GOMAXPROCS=4`. An initial run during competing test jobs reached its
600-second limit; after those jobs finished, the retry passed with the
same 600-second limit and all assertions intact.

Post-push Chromium validation passed 148 checks with three explicit
fixture-dependent skips. The server and frontend source are identical to
upstream `b9593f71`; this browser pass checks the existing application
journeys and does not measure retention performance. [Fresh
CI](https://github.com/Kpa-clawbot/CoreScope/actions/runs/39433150610)
passed on `30743237`, including the full Go job, ingestion race
detector, all three browser shards and the two-architecture build.
2026-10-21 09:40:22 +02:00
..