Skip to content

bench: add contract-matched async benchmark - #150

Merged
LimiNode merged 5 commits into
mainfrom
bench/contract-matched-async
Oct 2, 2026
Merged

LimiNode merged 5 commits into
mainfrom
bench/contract-matched-async

Conversation

@LimiNode

@LimiNode LimiNode commented Oct 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add a contract-matched async benchmark target restricted to async=1 and sink=null.
  • Carry the full message payload through the LogIt++ async worker queue for comparison with spdlog.
  • Add fixture v2 metadata and retain workload_contract in runtime metadata and every CSV row.
  • Add a functional payload-delivery regression test and CI smoke coverage.
  • Document the queued-payload contract and its comparison limits.

Verification

  • Build with spdlog and without spdlog.
  • CTest: 3/3 passed (benchmark_validation_test, logit_bench_async_payload_contract_test, logit_bench_flush_test).
  • Matched smoke: 4 producers, 200-byte messages, 2000 messages.
  • Unfiltered contract target verified to emit only async/null rows.
  • Rebased on current main (1ca7ea2).

Add a separate async payload contract so null-sink comparisons carry the same message through LogIt++ and spdlog queues. Version benchmark metadata, isolate matched CSV output, and document the workload distinction in the benchmark guides and CI smoke.
Add a functional regression test for the full-message async null-sink contract and expose a benchmark-only sink observer for exact payload verification. Run the test in the benchmark CI job alongside the existing validation smoke.
Include workload_contract in the latency CSV schema and reject pre-contract result files. Keep the contract visible in every exported row so benchmark results remain auditable outside the console metadata receipt.
Clarify that the matched benchmark aligns queued payload ownership while the surrounding LogIt++ and spdlog work remains implementation-specific.
Make the contract-matched benchmark structurally emit only async null scenarios while preserving the full matrix for the historical benchmark. Update the usage documentation to reflect the enforced workload boundary.
@LimiNode
LimiNode merged commit 6972db5 into main Oct 2, 2026
16 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