B-Prod-P5: ForStRsBProdBenchmark — sync-phase + CfMode JMH harness#5
Open
jackylee-ch wants to merge 1 commit into
Open
B-Prod-P5: ForStRsBProdBenchmark — sync-phase + CfMode JMH harness#5jackylee-ch wants to merge 1 commit into
jackylee-ch wants to merge 1 commit into
Conversation
…Mode JMH harness
Adds ForStRsBProdBenchmark covering spec §16 acceptance bars:
* dbSnapshot P99 under 100 concurrent in-flight snapshots
target <100µs; measured 0.125µs at 100 MiB / 0.458µs at 1 GiB (200×+ headroom)
* Sync-phase P95 (snapshot + create_incremental_checkpoint_at + free) under
same in-flight load; target <1ms; measured 5.96µs at 100 MiB / 12.71µs at 1 GiB
* Single-CF vs per-state-CF (4 CFs) point-lookup + sequentialPut at 1 GiB
state — within 7% on both ops; recommendation single-CF default
Harness pattern follows ForStRsFfmBenchmark (annotation-free + percentile
collection via long[] sort) but as JUnit @test methods so surefire's
--enable-native-access plumbing applies. Tagged @tag("bench") so a normal
mvn test run can exclude via -DexcludedGroups=bench.
System-property knobs:
bench.preload.entries / bench.preload.value.bytes — working-set size
bench.inflight.snapshots — registry depth (default 100)
bench.measure.ops / bench.warmup.ops — iteration counts
bench.threads — concurrent-variant fan-out
Companion writeup with full measurement tables + tuning playbook lives at
ForSt-side docs/superpowers/specs/2026-05-10-bprod-bench-results.md
(paired commit on the ForSt repo).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ForStRsBProdBenchmark(Tasks 5.1 + 5.3) covering spec §16 acceptance bars:dbSnapshot()P99 < 100µs and sync-phase P95 < 1ms under 100 concurrent in-flight snapshots, plus single-CF vs per-state-CF point-lookup + sequential-put throughput.@Tag(\"bench\")) so it inherits surefire's--enable-native-accessplumbing without needing the JMH maven plugin. System-property knobs (bench.preload.entries,bench.preload.value.bytes,bench.inflight.snapshots,bench.measure.ops,bench.warmup.ops,bench.threads) cover preload-size scaling.docs/superpowers/specs/2026-05-10-bprod-bench-results.mdon the ForSt repo (paired commitcd185591a).Measured numbers (development host, Apple Silicon, JDK 25)
dbSnapshot()P99Recommendation:
cf.mode = singledefault; use per-state-CF only when state classes have wildly uneven working sets that fit in cache (the 100-MiB cache-resident scenario in the writeup).Test plan
mvn -B -pl flink-state-backends/flink-statebackend-forst-rs test -Dtest=ForStRsBProdBenchmarkpasses at default 100 MiB preload-Dsurefire.module.config="... -Dbench.preload.entries=1048576"runs at 1 GiB preload (acceptance bars + CfMode workloads)mvn -B -pl flink-state-backends/flink-statebackend-forst-rs test-compile)dbOpenWithOptionslands in P7 (deferred per writeup §4.5)🤖 Generated with Claude Code