[PR #134] [CLOSED] [TransferEngine] Improve local-to-local memcpy performance #1347

Closed
opened 2026-10-29 21:26:37 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/kvcache-ai/Mooncake/pull/134
Author: @alogfans
Created: 3/11/2025
Status: ❌ Closed

Base: main ← Head: mooncake-store-perf-tune


📝 Commits (10+)

  • 943c3b6 Squashed commit of the following:
  • 1c12cf6 add docs for guide
  • 7760ff2 Squashed commit of the following:
  • ab45c7b Merge branch 'kvcache-ai:main' into add-mooncake-store
  • 3a0b3bd doc: add mooncake store python API
  • 88583b0 change ip addresses for test
  • 96fbce5 add seperate local memcpy transport
  • ba1fb3b Merge branch 'main' into mooncake-store-perf-tune
  • 7a3339e Merge branch 'main' into mooncake-store-perf-tune
  • 37bac27 [FIX] make shared memory use the Status-based APIs

📊 Changes

13 files changed (+342 additions, -27 deletions)

View changed files

📝 README.md (+3 -0)
📝 mooncake-p2p-store/build.sh (+2 -1)
📝 mooncake-store/src/client.cpp (+4 -0)
📝 mooncake-store/tests/distributed_object_store_provider.py (+6 -6)
📝 mooncake-store/tests/stress_cluster_benchmark.py (+16 -7)
📝 mooncake-store/tests/stress_workload_test.cpp (+9 -7)
📝 mooncake-transfer-engine/include/error.h (+1 -0)
➕ mooncake-transfer-engine/include/transport/shm_transport/shm_transport.h (+112 -0)
📝 mooncake-transfer-engine/src/CMakeLists.txt (+4 -4)
📝 mooncake-transfer-engine/src/multi_transport.cpp (+5 -2)
📝 mooncake-transfer-engine/src/transport/CMakeLists.txt (+3 -0)
➕ mooncake-transfer-engine/src/transport/shm_transport/CMakeLists.txt (+3 -0)
➕ mooncake-transfer-engine/src/transport/shm_transport/shm_transport.cpp (+174 -0)

📄 Description

In the previous version, local-to-local memcpy is implemented in RDMA transport, and this is done in sync. Therefore this leads bad performance of Mooncake Store put/get. I implemented a ShmTransport to handle this case. Memory copy is done in async now. In the future it can be extended to support shared memory.

Also modified some bench code of Mooncake Store.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/kvcache-ai/Mooncake/pull/134 **Author:** [@alogfans](https://github.com/alogfans) **Created:** 3/11/2025 **Status:** ❌ Closed **Base:** `main` ← **Head:** `mooncake-store-perf-tune` --- ### 📝 Commits (10+) - [`943c3b6`](https://github.com/kvcache-ai/Mooncake/commit/943c3b6bedb3ef0309560cc16dcf31506b1b479c) Squashed commit of the following: - [`1c12cf6`](https://github.com/kvcache-ai/Mooncake/commit/1c12cf6c0694bcc9adb06de0952e8b47b311f069) add docs for guide - [`7760ff2`](https://github.com/kvcache-ai/Mooncake/commit/7760ff26ae2fa6bf250a4d3d5ae82e61874c8efa) Squashed commit of the following: - [`ab45c7b`](https://github.com/kvcache-ai/Mooncake/commit/ab45c7bb5d7771e7d175e2579ac6a1d41c1325bb) Merge branch 'kvcache-ai:main' into add-mooncake-store - [`3a0b3bd`](https://github.com/kvcache-ai/Mooncake/commit/3a0b3bd49c66e102e9775813e1ad165de6f46f58) doc: add mooncake store python API - [`88583b0`](https://github.com/kvcache-ai/Mooncake/commit/88583b0e8b39985d83919a9d78236b325803fb1d) change ip addresses for test - [`96fbce5`](https://github.com/kvcache-ai/Mooncake/commit/96fbce5950cf143ecb1ba0d6617ce8d3e02774b9) add seperate local memcpy transport - [`ba1fb3b`](https://github.com/kvcache-ai/Mooncake/commit/ba1fb3b9827141a64c76e547c0bb5a17d2e15948) Merge branch 'main' into mooncake-store-perf-tune - [`7a3339e`](https://github.com/kvcache-ai/Mooncake/commit/7a3339e54de865de79da03b88c20f04977ae332a) Merge branch 'main' into mooncake-store-perf-tune - [`37bac27`](https://github.com/kvcache-ai/Mooncake/commit/37bac274cd28dc1bf412b903276784b50233c8d2) [FIX] make shared memory use the Status-based APIs ### 📊 Changes **13 files changed** (+342 additions, -27 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+3 -0) 📝 `mooncake-p2p-store/build.sh` (+2 -1) 📝 `mooncake-store/src/client.cpp` (+4 -0) 📝 `mooncake-store/tests/distributed_object_store_provider.py` (+6 -6) 📝 `mooncake-store/tests/stress_cluster_benchmark.py` (+16 -7) 📝 `mooncake-store/tests/stress_workload_test.cpp` (+9 -7) 📝 `mooncake-transfer-engine/include/error.h` (+1 -0) ➕ `mooncake-transfer-engine/include/transport/shm_transport/shm_transport.h` (+112 -0) 📝 `mooncake-transfer-engine/src/CMakeLists.txt` (+4 -4) 📝 `mooncake-transfer-engine/src/multi_transport.cpp` (+5 -2) 📝 `mooncake-transfer-engine/src/transport/CMakeLists.txt` (+3 -0) ➕ `mooncake-transfer-engine/src/transport/shm_transport/CMakeLists.txt` (+3 -0) ➕ `mooncake-transfer-engine/src/transport/shm_transport/shm_transport.cpp` (+174 -0) </details> ### 📄 Description In the previous version, local-to-local memcpy is implemented in RDMA transport, and this is done in sync. Therefore this leads bad performance of Mooncake Store put/get. I implemented a ShmTransport to handle this case. Memory copy is done in async now. In the future it can be extended to support shared memory. Also modified some bench code of Mooncake Store. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-29 21:26:37 +00:00
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#1347
No description provided.