[GH-ISSUE #1193] [Call for Contribution]: Performance Benchmarking for Mooncake Master #403

Closed
opened 2026-10-29 21:14:01 +00:00 by bsakaguchi · 3 comments
Owner

Originally created by @ykwd on GitHub (Dec 10, 2025).
Original GitHub issue: https://github.com/kvcache-ai/Mooncake/issues/1193

Describe your feature request

Background

Detailed and in-depth performance testing is essential for understanding the effectiveness and limitations of a system. It helps guide users in deployment and usage, and also informs future development and optimization.

For Mooncake Store, we currently have:

  • stress_cluster_benchmark.py for end-to-end performance testing, including data transfer between clients.
  • allocator_bench.cpp for benchmarking the offset allocator.

While these tools are valuable, they do not provide sufficient visibility into the performance characteristics of the Mooncake Master itself.

Problem Statement

At present, we lack a comprehensive and systematic performance evaluation of Mooncake Master RPCs, especially for commonly used interfaces, including but not limited to:

  • Basic operations:

    • put
    • get
    • exists
    • Their corresponding batch APIs
  • Management and control operations:

    • ping
    • remount_ssegment
    • Other frequently used master-side RPCs

Key questions we would like to answer include:

  • What maximum QPS can the master sustain?
  • How do latency distributions (e.g., avg / p95 / p99) behave under different workloads and concurrency?

What We Are Looking For

We are looking for contributions in the form of benchmarking code or scripts that can:

  1. Perform isolated, master-focused performance testing (i.e., without being dominated by client-side data transfer costs).

  2. Measure both throughput (QPS) and latency for the above RPCs.

  3. Support configurable workloads, such as:

    • Concurrency level
    • Request rate
    • Operation mix
  4. Produce clear and reusable results (logs, summaries, or structured output).

Why Contribute?

Your contribution will:

  • Help users better understand the performance boundaries of Mooncake in real deployments.
  • Provide developers with actionable insights for optimization and future roadmap planning.

How to Get Started

If you're interested:

  • Feel free to discuss your ideas on this issue.
  • Submit a pull request with a proposed benchmark implementation.

We appreciate all contributions, big or small, and look forward to collaborating with the community to make Mooncake better.

Before submitting a new issue...

  • Make sure you already searched for relevant issues and read the documentation
Originally created by @ykwd on GitHub (Dec 10, 2025). Original GitHub issue: https://github.com/kvcache-ai/Mooncake/issues/1193 ### Describe your feature request ### Background Detailed and in-depth performance testing is essential for understanding the effectiveness and limitations of a system. It helps guide users in deployment and usage, and also informs future development and optimization. For **Mooncake Store**, we currently have: * `stress_cluster_benchmark.py` for **end-to-end performance testing**, including data transfer between clients. * `allocator_bench.cpp` for benchmarking the **offset allocator**. While these tools are valuable, they do not provide sufficient visibility into the performance characteristics of the **Mooncake Master** itself. ### Problem Statement At present, we lack a **comprehensive and systematic performance evaluation** of Mooncake Master RPCs, especially for commonly used interfaces, including but not limited to: * Basic operations: * `put` * `get` * `exists` * Their corresponding **batch APIs** * Management and control operations: * `ping` * `remount_ssegment` * Other frequently used master-side RPCs Key questions we would like to answer include: * What **maximum QPS** can the master sustain? * How do **latency distributions** (e.g., avg / p95 / p99) behave under different workloads and concurrency? ### What We Are Looking For We are looking for contributions in the form of **benchmarking code or scripts** that can: 1. Perform **isolated, master-focused performance testing** (i.e., without being dominated by client-side data transfer costs). 2. Measure both **throughput (QPS)** and **latency** for the above RPCs. 3. Support **configurable workloads**, such as: * Concurrency level * Request rate * Operation mix 4. Produce clear and reusable results (logs, summaries, or structured output). ### Why Contribute? Your contribution will: * Help users better **understand the performance boundaries** of Mooncake in real deployments. * Provide developers with actionable insights for **optimization and future roadmap planning**. ### How to Get Started If you're interested: * Feel free to discuss your ideas on this issue. * Submit a **pull request** with a proposed benchmark implementation. We appreciate all contributions, big or small, and look forward to collaborating with the community to make Mooncake better. ### Before submitting a new issue... - [x] Make sure you already searched for relevant issues and read the [documentation](https://kvcache-ai.github.io/Mooncake/)
bsakaguchi 2026-10-29 21:14:01 +00:00
Author
Owner

@nickyc975 commented on GitHub (Dec 11, 2025):

Hello, I happened to implement a benchmark tool for master recently, but it's quite simple and can only test the QPS of Get/Put/BatchGet/BatchPut. Maybe I can post a PR so we can improve it together.

<!-- gh-comment-id:3639728983 --> @nickyc975 commented on GitHub (Dec 11, 2025): Hello, I happened to implement a benchmark tool for master recently, but it's quite simple and can only test the QPS of Get/Put/BatchGet/BatchPut. Maybe I can post a PR so we can improve it together.
Author
Owner

@ykwd commented on GitHub (Dec 11, 2025):

Hello, I happened to implement a benchmark tool for master recently, but it's quite simple and can only test the QPS of Get/Put/BatchGet/BatchPut. Maybe I can post a PR so we can improve it together.

Thanks for your quick response. Your benchmark tool sounds like a very good starting point. We’d love to see your work. Please feel free to open a PR whenever you're ready.

<!-- gh-comment-id:3639777637 --> @ykwd commented on GitHub (Dec 11, 2025): > Hello, I happened to implement a benchmark tool for master recently, but it's quite simple and can only test the QPS of Get/Put/BatchGet/BatchPut. Maybe I can post a PR so we can improve it together. Thanks for your quick response. Your benchmark tool sounds like a very good starting point. We’d love to see your work. Please feel free to open a PR whenever you're ready.
Author
Owner

@nickyc975 commented on GitHub (Dec 12, 2025):

Hi, the PR is here: #1201 .

<!-- gh-comment-id:3644796719 --> @nickyc975 commented on GitHub (Dec 12, 2025): Hi, the PR is here: #1201 .
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kvcache-ai/Mooncake#403
No description provided.