Skip to content

[Store] Support DFS-only KV benchmarks and expand usage guide - #4798

Merged
ykwd merged 1 commit into
kvcache-ai:mainfrom
2xdevv:bench/store-kv-dfs-read
Oct 23, 2026
Merged

ykwd merged 1 commit into
kvcache-ai:mainfrom
2xdevv:bench/store-kv-dfs-read

Conversation

@2xdevv

@2xdevv 2xdevv commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Description

The Store KV benchmark rejects configurations with zero memory and NoF replicas, even when a DFS replica is requested. Allow DFS-only placement while continuing to reject configurations with all replica counts set to zero.

  • Add regression coverage for DFS-only preparation and reads across read_perf, verify_write, and mixed_rw, using plain/zcopy APIs and single/batch requests.
  • Expand the usage guide with scenario behavior, concurrency, read selection, CLI options, replay limitations, and output interpretation.
  • Document DFS setup for both memory+DFS and DFS-only placement.

This follows the Store's DFS-only placement support merged in #4637. Related PR #4645 changes lane-startup cleanup in the same benchmark files; this PR changes replica validation and documentation, without modifying that cleanup path or the DFS adapter implementation.

Suggested Merge Priority

  • P2 — Normal

Module

  • Mooncake Store (mooncake-store)
  • Docs

Type of Change

  • Bug fix
  • Documentation update

How Has This Been Tested?

Test commands:

pre-commit run --files \
  mooncake-store/benchmarks/store_kv_bench.py \
  mooncake-store/benchmarks/test_store_kv_bench.py \
  mooncake-store/benchmarks/store_kv_bench.md

/usr/bin/python3 -m unittest discover \
  -s mooncake-store/benchmarks \
  -p test_store_kv_bench.py

Test results:

  • File-scoped pre-commit passed.
  • All 17 unit tests passed.
  • All 16 live smoke cases passed using a fresh worktree build with USE_3FS=ON.

The live matrix covered POSIX and native HF3FS USRBIO, memory+DFS and DFS-only placement, plain/zcopy APIs, and verify_write/read_perf. Each case used two worker lanes, wrote nine 64 KiB objects, and verified nine reads, with zero misses or verification failures. verify_write used single-object requests; read_perf used batches of up to four objects, including a final partial batch.

Client logs confirmed DFS reads for DFS-only placement and memory selection for memory+DFS placement. These were functional smoke tests, not performance measurements. The local smoke harness, build artifacts, and logs are excluded from the PR.

Checklist

  • I have performed a self-review of the changes.
  • Pre-commit passes on all changed files.
  • Documentation has been updated.
  • Regression tests have been added.

C/C++ formatting and an architectural RFC are not applicable.

AI Assistance Disclosure

  • No AI tools were used.
  • AI tools were used.

OpenAI Codex assisted with implementation, documentation, regression tests, and local validation. The human submitter reviewed the changes.

@fcczzz fcczzz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ykwd
ykwd merged commit f515971 into kvcache-ai:main Oct 23, 2026
28 checks passed
@2xdevv
2xdevv deleted the bench/store-kv-dfs-read branch October 23, 2026 03:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants