Skip to content

TailCache 06: validated latency, allocation and GC result pipeline - #5

Open
Enixes wants to merge 41 commits into
mainfrom
tailcache-06-result-pipeline
Open

Enixes wants to merge 41 commits into
mainfrom
tailcache-06-result-pipeline

Conversation

@Enixes

@Enixes Enixes commented Sep 20, 2026

Copy link
Copy Markdown
Owner

Summary

Adds the TailCache 06 result pipeline for the heap-pressure crossover study.

This PR separates latency, throughput, and GC/allocation measurement into distinct JMH runs, retains the raw evidence needed for auditability, and joins matching conditions into analysis-ready JSON/CSV output.

What changed

  • add unprofiled SampleTime latency runs with p50 / p95 / p99 / p99.9 and sample counts
  • add separate unprofiled throughput runs
  • add JMH GC-profiler allocation / collection metrics
  • add G1 unified-log pause capture and measurement-window sidecars
  • add per-run metadata with Git/JDK/JMH/backend provenance
  • add result summarization into JSON and CSV
  • add TailCache 06 smoke and candidate Gradle tasks
  • fix TailCache 05 mixed measured-path trace-index reuse
  • update methodology/docs around profiler envelopes, retained raw files, pause interpretation, and Milestone 1 controls

Validation

Final smoke validation and raw reconciliation passed at:

374cb697fe9738acf458944e8743797a99ac5b33

with a clean working tree.

The branch has advanced since that smoke only through documentation changes; benchmark/result code remains unchanged.

Verified:

  • all 16 expected conditions were present across latency, throughput, GC-profile, and summary outputs
  • p50 / p95 / p99 / p99.9 values matched raw JMH SampleTime JSON for every condition
  • retained SampleTime histogram counts matched summary sample counts
  • throughput matched the separate unprofiled Throughput JSON
  • allocation MB/s, B/op, gc.count, and gc.time matched the JMH GC-profiler output
  • 16 GC logs and 16 measurement-window CSVs were retained
  • G1 pause count / total / max matched an independent re-parse of every raw log against the recorded profiler envelope
  • both zero-pause and non-zero-pause paths were exercised
  • metadata recorded the exact tested Git head, gitDirty=false, Java 21, JMH 1.37, Caffeine 3.2.4, and Chronicle Map 2026.1

Important scope note

This validates the result pipeline, not the smoke benchmark values as reportable research results.

The next milestone is the trustworthy crossover harness: environment capture, harness-floor measurement, warmup/JIT stability, pause-sensitive latency validation, and a dedicated GC-pressure workload without a Chronicle Java-heap shadow payload bank.

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