mirror of
https://github.com/kvcache-ai/Mooncake.git
synced 2026-11-05 01:17:55 +00:00
[GH-ISSUE #2189] [Call For Contributions] Mooncake Conductor Roadmap #602
Labels
No labels
ascend
auto-closed
bug
bug
CI/Build
Common
documentation
enhancement
feature request
good first issue
help wanted
high priority
MetaX
nightly-failure
pull-request
PyTorch Backend
question
RFC
Roadmap
stale
Store
Tests
Transfer Engine
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
kvcache-ai/Mooncake#602
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @yejj710 on GitHub (May 22, 2026).
Original GitHub issue: https://github.com/kvcache-ai/Mooncake/issues/2189
Originally assigned to: @Asher-XunZhang, @yejj710 on GitHub.
Background
The Mooncake Conductor Indexer is a service for tracking and reporting token cache-hit statistics across cache tiers and model instances. It exposes APIs that allow clients to query hit statistics by token IDs or chunked token hashes, helping inference systems make better cache-aware scheduling decisions.
The current Conductor implementation has not yet been merged into the
mainbranch. Before merging it, we should clarify the roadmap and improve the overall extensibility of the project. The goal is to evolve the existing HTTP RESTful service into a reusable, multi-language Conductor control plane: the core implementation remains in Go, the interface layer supports Go, Rust, and Python SDKs, and the existing HTTP service remains available as a compatibility layer.Phase 0: Baseline and Compatibility
Phase 1: Go Core Library Refactor
main.goand the core logic fromkvevent.EventManagerinto reusable packages.cmd/mooncake_conductorand place the core functionality underpkg/conductor.Start,Stop,Register,Unregister, andQuery.Phase 2: Interface Layer Decoupling
Phase 3: Correctness and RAS
Phase 4: Integrate More Frameworks
@Asher-XunZhang commented on GitHub (May 22, 2026):
the background:https://github.com/kvcache-ai/Mooncake/issues/977 , https://github.com/kvcache-ai/Mooncake/issues/1408
btw, the current progress is presented on the
dev/kv-indexerbranch. For more detailed discussions, please join the conversation in this post.@guozhihao-224 commented on GitHub (May 27, 2026):
Hi @yejj710 @Asher-XunZhang, thanks for putting together this roadmap.
I'd like to contribute. After reading the design docs in
docs/source/design/conductor/, browsing the code ondev/kv-indexer, and runninggo test ./...locally, I'd like to start with two small contributions toward Phase 0:Pre-PR: fix stale tests in
zmq_client_test.gogo test ./...currently fails to build thezmqpackage ondev/kv-indexer. Two distinct kinds of drift:MockEventHandler.HandleEventsignature is(event KVEvent)but the currentEventHandlerinterface inzmq/types.gorequires(event KVEvent, dpRank int64).ZMQClientConfigfield names in the test (ServiceIP,Port,RouterPort) no longer exist on the struct (current fields:CachePoolKey,Endpoint,ReplayEndpoint,ModelName,PollTimeout,ReplayTimeout,ReconnectDelay).Result:
FAIL conductor/zmq [build failed], whileconductor/commonpasses andkvevent/prefixindexhave no tests.I'd like to land a small fix-only PR (~30-50 lines, single file) that updates the test file to compile against the current API and turns
go test ./...green. This unblocks the rest of Phase 0.PR-1: Phase 0-A smoke tests
Once the test file compiles, I'd like to reuse its existing
MockPublisherto add end-to-end smoke tests forEventManager:mooncake-conductor/conductor-ctrl/kvevent/event_manager_test.goregister→ publishBlockStored→queryreturns expected hitsregister→BlockStored→BlockRemoved→queryreflects evictionunregister→ subsequent events not consumedA few questions before I start
dev/kv-indexerthe right base branch, or is there a more recent integration branch I should target?_test.gonext to the code, or a top-leveltests/directory?go test ./mooncake-conductor/...) be part of PR-1, or split out?Happy to adjust scope/order based on your preference. Thanks!
@yejj710 commented on GitHub (May 27, 2026):
@guozhihao-224 Thanks for your Contributions!
q1: Yes, that’s right. I’ve made some additional code changes on my personal branch (
indexer-part), and I’ll sync them todev/kv-indexerlater.q2: Per-package
_test.gofiles are more suitable for unit tests. My personal preference is to create a separate top-leveltests/directory for end-to-end smoke tests and test scripts, which makes CI integration and local testing easier.q3: Up to your preference, but the current branch is not integrated with the CI system yet. We can do this after it is merged into the
mainbranch.q4: The old test cases should already be outdated, so feel free to modify them based on your understanding.
@zhoujing101 commented on GitHub (Jun 24, 2026):
I have added the function of querying information about registered instances, so that upper-layer services can obtain the missing instance information and register the instances again.
https://github.com/kvcache-ai/Mooncake/pull/2595
@PatStiles commented on GitHub (Jul 21, 2026):
@Asher-XunZhang @yejj710 Is this roadmap still in line with the work merged in https://github.com/kvcache-ai/Mooncake/issues/2189? I was interested in possibly contributing to via some of the additional tasks in the later phases once they were unblocked.
@yejj710 commented on GitHub (Jul 21, 2026):
yes, Chase-Rong is working on some refactoring tasks, and you guys can have some discussions about it.~ @Chase-Rong @PatStiles
@Chase-Rong commented on GitHub (Jul 22, 2026):
Yes, in response to community feedback, we are refactoring Conductor. We are currently conducting validation with customers, focusing primarily on tasks in Phases 0 and 1. We also welcome future contributions.
@0z5a commented on GitHub (Sep 6, 2026):
Hi @Chase-Rong @yejj710 — could I help with a bounded Phase 3 subscription-lifecycle/concurrent-query regression slice against the current Conductor upstreaming series?
I checked main
cb9b380b9112606f5826f76f8471a6b653ec6e62and #3879 at25fda5c91214628be6b56f88daaf414fd8ad2a78. Main currently carries the C++ skeleton/common layer, while #3879 adds prefix types/hash strategies; its described subscriber and KV event manager/API slices are still downstream. I would not revive the older Go implementation, duplicate your hash/index work, or take over @guozhihao-224's Phase 0 smoke/benchmark work.Once the actual shared lifecycle API is available, I would like to cover a small agreed set of register/unregister/query interleavings, unsubscribe with an already-in-flight event, and bounded shutdown with pending work. Expected behavior should follow the real API/ownership contract — I am not proposing new generation/tenant fields, RPCs, or HA semantics just to make tests possible.
Is there a current integration branch and a useful unclaimed subset to align with, or should this wait for the subscriber/event-manager slice to land? No lifecycle implementation or passing lifecycle tests are claimed here, and no author branch or upstream code has been modified. This audit and coordination note are AI-assisted; any future patch would need the repository's required human review.
@Chase-Rong commented on GitHub (Sep 7, 2026):
After discussions with the community maintainer, the Conductor is being merged in stages, including patches for the Mooncake Store. A total of six pull requests are expected to be merged. A new roadmap will be released soon. The Conductor does indeed require some development work to improve high availability, but this will require all pull requests to be merged into the main branch. This will take approximately two weeks.