mirror of
https://github.com/kvcache-ai/Mooncake.git
synced 2026-11-05 01:17:55 +00:00
[PR #501] [MERGED] [Store] High Availability V2: Client Failover #1609
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#1609
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?
📋 Pull Request Information
Original PR: https://github.com/kvcache-ai/Mooncake/pull/501
Author: @ykwd
Created: 6/16/2025
Status: ✅ Merged
Merged: 6/20/2025
Merged by: @ykwd
Base:
main← Head:feature/ha2📝 Commits (10+)
2896379A temp version. Better to continue development after merging the latest main branch483762fResolve merge conflictsb1abc1fTemp version to merge the latest main branch8c87ecbmerge main0bbcef9Allow optional use HA mode, in default use non-HA mode. Fix a minor metrics bug.fb55405Refactor the etcd_helper6e10b11refactor ha_helper778f2c4Add some unit tests. Refactor the codeaa60561Update cmakelists: build etcd_wrapper in default3df656cMerge main📊 Changes
30 files changed (+2261 additions, -559 deletions)
View changed files
📝
mooncake-integration/store/store_py.cpp(+1 -2)📝
mooncake-store/include/allocation_strategy.h(+34 -80)📝
mooncake-store/include/client.h(+10 -13)📝
mooncake-store/include/ha_helper.h(+2 -0)📝
mooncake-store/include/master_client.h(+21 -8)📝
mooncake-store/include/master_metric_manager.h(+25 -0)📝
mooncake-store/include/master_service.h(+80 -55)📝
mooncake-store/include/rpc_service.h(+58 -23)➕
mooncake-store/include/segment.h(+182 -0)📝
mooncake-store/include/types.h(+61 -5)📝
mooncake-store/src/CMakeLists.txt(+1 -0)📝
mooncake-store/src/client.cpp(+103 -74)📝
mooncake-store/src/ha_helper.cpp(+5 -3)📝
mooncake-store/src/master.cpp(+9 -4)📝
mooncake-store/src/master_client.cpp(+42 -16)📝
mooncake-store/src/master_metric_manager.cpp(+71 -3)📝
mooncake-store/src/master_service.cpp(+282 -135)➕
mooncake-store/src/segment.cpp(+229 -0)📝
mooncake-store/src/types.cpp(+17 -1)📝
mooncake-store/tests/CMakeLists.txt(+14 -1)...and 10 more files
📄 Description
Following https://github.com/kvcache-ai/Mooncake/pull/451, this PR serves as the 2nd step towards store's high availability.
This PR mainly focuses on the failover on the client side. More specifically, this PR adds the following features:
There are many corner cases, such as:
To deal with all the corner cases:
Currently, there is no distributed testing or chaos testing for the HA features. Thus, the HA features shall be considered as highly unstable. So this PR still does not change the default behavior of the system. HA features will be toggled on only when users explicitly specify --enable-ha=true. We will design and run more testing, including integration testing, distributed testing, and chaos testing, in the subsequent PRs. Only after passing all these tests would it be safe to introduce the HA features in the docs.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.