Skip to content

detect: no cliff past ten thousand open correlations; .not() on a named pattern - #6

Merged
cpoder merged 1 commit into
masterfrom
engine-sweep-index
Sep 24, 2026
Merged

cpoder merged 1 commit into
masterfrom
engine-sweep-index

Conversation

@cpoder

@cpoder cpoder commented Sep 24, 2026

Copy link
Copy Markdown
Owner

What changes

The engine is pinned at varpulis 1cb201b, which brings in two engine PRs.

Measured: bench/detect.sh, PROGRAM=sequence

Runs alternated between the v0.3.4 runtime and this build, in the same session on the same box, two runs each:

Open at once v0.3.4 this build
1 28 400 – 28 500/s 28 600/s
100 27 100 – 27 200/s 28 200 – 28 600/s
1 000 19 500 – 19 600/s 25 900 – 26 200/s
10 000 11 900/s 21 600 – 22 600/s
30 000 2 075 – 2 085/s, 145 MB 14 200 – 14 900/s, 88 – 109 MB
100 000 (400 000 events) not run 11 100 – 11 200/s, 448 MB
1 000, unpartitioned 4 280 – 4 290/s 4 250 – 4 260/s

Every run was complete, with every pair matched (32 000 alerts, or 200 000 at a hundred thousand open).

The multi-unit table (1 000 open per unit) is re-measured too: 27 100/s on one unit, 37 200 – 39 400/s on two, 48 300 – 48 900/s on four. The stateless ceiling is unchanged, at 41 000 – 43 000/s with 2 or 4 units.

Docs

bench/README.md has the new table, and the before/after comparison replaces the cliff paragraph. The sizing is updated. concepts/detects.md now says what it costs, and that memory, about 4 KB an open sequence, is what bounds a unit.

Checks

  • e2e/detect: every invariant holds (D1 to D9).
  • e2e/detect-demo: every beat holds.

🤖 Generated with Claude Code

https://claude.ai/code/session_01N3K1TGnWTvwYzt9rKuJXES

…ed pattern (varpulis #288, #289)

Engine pinned at varpulis 1cb201b. The engine swept every partition's open
runs on each event; it now visits only the partitions with a deadline due.
bench/detect.sh PROGRAM=sequence against v0.3.4, same session: 30 000 open
2 080 -> 14 500 events/s, 10 000 open 11 900 -> 22 000, 1 000 open
19 600 -> 26 000; 100 000 open runs at 11 000/s in 450 MB. The sizing in
bench/README.md and concepts/detects.md is re-measured. And .not(C) on a
stream reading a named pattern cancels its runs (it did nothing).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N3K1TGnWTvwYzt9rKuJXES
@cpoder
cpoder merged commit 7e30fd0 into master Sep 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant