mirror of
https://github.com/kvcache-ai/Mooncake.git
synced 2026-11-05 01:17:55 +00:00
[PR #374] [MERGED] [Store] Add features: lease and eviction #1523
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#1523
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/374
Author: @ykwd
Created: 5/16/2025
Status: ✅ Merged
Merged: 5/21/2025
Merged by: @stmatengss
Base:
main← Head:feature/lease_and_lru📝 Commits (10+)
6dcf81c[Store] New feature: lease and LRU eviction87797b1Merge branch 'main' into feature/lease_and_lru7e1d783Slightly adjust the ordering of the unit test cases5884888Fix failed client_integration_test due to new the lease feature717fd04Modify test_distributed_object_store.py: adjust unit test behaviour accordinglye936eccbugfix: don't evict objects whose put are still not completea31f80bRefactor the codes according to review comments953934dAdd eviction related metrics in master;208cc94Fix a typod8d33afRefactor some codes;📊 Changes
13 files changed (+510 additions, -93 deletions)
View changed files
📝
doc/en/mooncake-store-preview.md(+14 -0)📝
doc/zh/mooncake-store-preview.md(+14 -0)📝
docs/source/design/mooncake-store-preview.md(+14 -0)📝
mooncake-store/include/master_metric_manager.h(+10 -0)📝
mooncake-store/include/master_service.h(+46 -3)📝
mooncake-store/include/rpc_service.h(+3 -2)📝
mooncake-store/include/types.h(+3 -0)📝
mooncake-store/src/master.cpp(+17 -4)📝
mooncake-store/src/master_metric_manager.cpp(+21 -0)📝
mooncake-store/src/master_service.cpp(+156 -76)📝
mooncake-store/tests/client_integration_test.cpp(+5 -0)📝
mooncake-store/tests/master_service_test.cpp(+191 -2)📝
mooncake-wheel/tests/test_distributed_object_store.py(+16 -6)📄 Description
Object eviction: When the buffer is full, all subsequent put requests will fail. To avoid this, we propose to make the system monitor the buffer usage. When it is full, an eviction task will be triggered to free some space. Currently, an LRU-like eviction strategy is used to select the victims. In the future, we may support various eviction strategies based on user configuration.
Lease: Due to remove requests or eviction tasks, an object may be erased from the buffer while it is still read by a client. This may result in severe problems. So we propose to add a lease to an object whenever it gets a read request from the client. The object is guaranteed to remain intact as long as the lease has not expired.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.