mirror of
https://github.com/kvcache-ai/Mooncake.git
synced 2026-11-05 01:17:55 +00:00
[PR #767] [MERGED] [TransferEngine] Fix SIEVE eviction algorithm for RDMA endpoint store #1808
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#1808
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/767
Author: @KarmaD7
Created: 8/21/2025
Status: ✅ Merged
Merged: 9/2/2025
Merged by: @chestnut-Q
Base:
main← Head:fix-sieve📝 Commits (1)
cfcba1f[TransferEngine] Fix SIEVE eviction algorithm for RDMA endpoint store📊 Changes
1 file changed (+1 additions, -1 deletions)
View changed files
📝
mooncake-transfer-engine/src/transport/rdma_transport/endpoint_store.cpp(+1 -1)📄 Description
Currently, this project uses a SIEVE cache eviction algorithm for the RDMA endpoint store. However, this algorithm was originally designed for web caching, under the assumption that most newly inserted elements are cold. Therefore, it employs a "quick demotion" strategy that aggressively evicts newly inserted elements unless they have been visited again.
In the context of RDMA endpoints, however, we can assume that a newly inserted endpoint is likely to be used soon, otherwise there is no need to create it. Thus, we can set the default "visited" field of a newly inserted element to True, giving it a second chance.
In this way, the SIEVE algorithm essentially falls back to the CLOCK eviction algorithm. More advanced alternatives—such as LRU (less scalable due to high metadata maintenance overhead) or S3FIFO (similar to an improved SIEVE with a ghost queue) could also be considered in the future.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.