Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces a multi-process benchmark tool and extends the Go bindings to support the DummyClient store type, including APIs for querying and managing registered buffers. The code review identified several critical issues: a hardcoded absolute path in CFLAGS that breaks portability, exposure of internal C types in the public Go API, and an index-shifting bug in UnregisterAllBuffers that leads to skipped buffers. Additionally, the feedback highlights dead code, potential out-of-bounds panics in the benchmark tool, outdated unsafe pointer patterns, and platform-dependent portability bugs in the CPU affinity binding implementation.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
|
Hi @ykwd and @stmatengss, We’ve updated this PR, resolved the upstream merge conflict, and addressed all The GitHub Actions workflows are still awaiting maintainer approval. When |
Description
Related RFC: #3068
This PR manually ports the Go DummyClient benchmark and supporting Store APIs
from zchuango/Mooncake#29
onto
kvcache-ai/Mooncake:main.It allows independent Go worker processes to use DummyClient and registered
shared-memory buffers while a standalone
mooncake_clientowns the RealClientand performs the actual Store operations.
What changed
ClientType,NewWithType, andDummySetupAPIs.C and Go APIs.
replica-numthroughReplicateConfig.statuses.
entries.
already been removed.
put_fromimplementation backed bybatch_put_frominstead of retaining a separate RPC helper.Scope
mooncake-store/benchmarks/stress_cluster_bench.cppfrom the source PR isintentionally excluded.
changes are included.
Module
mooncake-transfer-engine)mooncake-store)mooncake-ep)mooncake-pg)mooncake-integration)mooncake-p2p-store)mooncake-wheel)mooncake-common)Type of Change
How Has This Been Tested?
The final branch was rebuilt and the DummyClient write/read flow was rerun
against an isolated local master and standalone client.
Test configuration:
Results:
mooncake_store,mooncake_master, andmooncake_clientbuiltsuccessfully.
The Go DummyClient benchmark built successfully.
Dummy write completed 2/2 operations with 0 failures.
Dummy read completed 2/2 operations with 0 failures.
8192 bytes were read with 0 verification errors.
Both benchmark commands returned exit status 0.
Unit tests pass
Integration tests pass (if applicable)
Manual testing done
Checklist
./scripts/code_format.shpre-commit run --all-filesand all hooks passAI Assistance Disclosure
AI assistance was used to inspect the source PR, manually port the selected
changes, isolate unrelated branch history, diagnose build and runtime issues,
address review feedback, resolve the upstream merge conflict, run local
validation, and draft the RFC and PR description.
The human submitter remains responsible for reviewing, understanding, and
defending the final changes.