[PR #793] [CLOSED] [TransferEngine] Introduce generic NVMeoF transport implementation (#780) #1827

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

📋 Pull Request Information

Original PR: https://github.com/kvcache-ai/Mooncake/pull/793
Author: @nickyc975
Created: 8/29/2025
Status: ❌ Closed

Base: main ← Head: jinlong/nvmeof-upstream


📝 Commits (10+)

  • 69ccf80 [TransferEngine]: Support specifying transport specific args when installing
  • b66c445 [TransferEngine]: Support registering files as shared buffers
  • 57c3d9d [TransferEngine]: Introduce generic NVMeoF transport
  • 5dfcc01 [Store]: Support zero based buffer in Cachelib Allocator
  • a116150 [Store]: Support mounting file segments
  • 142696e [Store][bind]: Add setup_with_files to setup file-based client
  • 6273dc1 [Store]: Update stress_cluster_benchmark.py to support file segments
  • 8ada073 [Doc]: Add documents for nvmeof_generic transport
  • fb7ed2f [TransferEngine]: Use installTransportWithArgs to avoid wrong dispatch
  • f83a5db Merge branch 'main' into jinlong/nvmeof-upstream

📊 Changes

42 files changed (+3941 additions, -366 deletions)

View changed files

📝 dependencies.sh (+3 -1)
➕ doc/en/nvmeof_generic_transport.md (+304 -0)
➕ doc/zh/nvmeof_generic_transport.md (+304 -0)
📝 mooncake-common/common.cmake (+6 -0)
📝 mooncake-integration/store/store_py.cpp (+114 -92)
📝 mooncake-store/include/allocator.h (+12 -3)
📝 mooncake-store/include/client.h (+14 -0)
📝 mooncake-store/include/pybind_client.h (+110 -85)
📝 mooncake-store/include/types.h (+52 -4)
📝 mooncake-store/src/allocator.cpp (+30 -13)
📝 mooncake-store/src/client.cpp (+182 -11)
📝 mooncake-store/src/pybind_client.cpp (+195 -139)
📝 mooncake-store/src/segment.cpp (+5 -3)
📝 mooncake-store/src/transfer_task.cpp (+1 -0)
📝 mooncake-store/tests/client_buffer_test.cpp (+3 -0)
📝 mooncake-store/tests/master_service_test.cpp (+1 -0)
📝 mooncake-store/tests/stress_cluster_benchmark.py (+18 -8)
📝 mooncake-transfer-engine/example/CMakeLists.txt (+5 -0)
➕ mooncake-transfer-engine/example/transfer_engine_nvmeof_generic_bench.cpp (+396 -0)
📝 mooncake-transfer-engine/include/config.h (+4 -0)

...and 22 more files

📄 Description

This pull request adds support for file segments to Transfer Engine and Mooncake Store, then introduces a generic NVMeoF transport implementation to Transfer Engine.

Please read the RFC (#780) and the documents in this PR for more information.


🔄 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/793 **Author:** [@nickyc975](https://github.com/nickyc975) **Created:** 8/29/2025 **Status:** ❌ Closed **Base:** `main` ← **Head:** `jinlong/nvmeof-upstream` --- ### 📝 Commits (10+) - [`69ccf80`](https://github.com/kvcache-ai/Mooncake/commit/69ccf80e743fee64ef84c426b3907decdad25cce) [TransferEngine]: Support specifying transport specific args when installing - [`b66c445`](https://github.com/kvcache-ai/Mooncake/commit/b66c445d7a464eb0c4fdaa5fa0f95dd159e950d3) [TransferEngine]: Support registering files as shared buffers - [`57c3d9d`](https://github.com/kvcache-ai/Mooncake/commit/57c3d9dd6357f435c606914ab91eadd8cf5b355c) [TransferEngine]: Introduce generic NVMeoF transport - [`5dfcc01`](https://github.com/kvcache-ai/Mooncake/commit/5dfcc0187bbc82ba38279108c4e4e85f7be9d6a0) [Store]: Support zero based buffer in Cachelib Allocator - [`a116150`](https://github.com/kvcache-ai/Mooncake/commit/a116150e621ab42aaa7f5861baa85f92e5b5eb57) [Store]: Support mounting file segments - [`142696e`](https://github.com/kvcache-ai/Mooncake/commit/142696e85ed194189aea35ee6370f6b37aa58975) [Store][bind]: Add setup_with_files to setup file-based client - [`6273dc1`](https://github.com/kvcache-ai/Mooncake/commit/6273dc1d14993dae343a9599da78075c7401c3a4) [Store]: Update stress_cluster_benchmark.py to support file segments - [`8ada073`](https://github.com/kvcache-ai/Mooncake/commit/8ada073baf69b0ba80c253753f157c500997f564) [Doc]: Add documents for nvmeof_generic transport - [`fb7ed2f`](https://github.com/kvcache-ai/Mooncake/commit/fb7ed2ff89e4eab52491af9cf18cb40e0295f8c5) [TransferEngine]: Use installTransportWithArgs to avoid wrong dispatch - [`f83a5db`](https://github.com/kvcache-ai/Mooncake/commit/f83a5db95f45068bfc7c150fe687c68995dbc98f) Merge branch 'main' into jinlong/nvmeof-upstream ### 📊 Changes **42 files changed** (+3941 additions, -366 deletions) <details> <summary>View changed files</summary> 📝 `dependencies.sh` (+3 -1) ➕ `doc/en/nvmeof_generic_transport.md` (+304 -0) ➕ `doc/zh/nvmeof_generic_transport.md` (+304 -0) 📝 `mooncake-common/common.cmake` (+6 -0) 📝 `mooncake-integration/store/store_py.cpp` (+114 -92) 📝 `mooncake-store/include/allocator.h` (+12 -3) 📝 `mooncake-store/include/client.h` (+14 -0) 📝 `mooncake-store/include/pybind_client.h` (+110 -85) 📝 `mooncake-store/include/types.h` (+52 -4) 📝 `mooncake-store/src/allocator.cpp` (+30 -13) 📝 `mooncake-store/src/client.cpp` (+182 -11) 📝 `mooncake-store/src/pybind_client.cpp` (+195 -139) 📝 `mooncake-store/src/segment.cpp` (+5 -3) 📝 `mooncake-store/src/transfer_task.cpp` (+1 -0) 📝 `mooncake-store/tests/client_buffer_test.cpp` (+3 -0) 📝 `mooncake-store/tests/master_service_test.cpp` (+1 -0) 📝 `mooncake-store/tests/stress_cluster_benchmark.py` (+18 -8) 📝 `mooncake-transfer-engine/example/CMakeLists.txt` (+5 -0) ➕ `mooncake-transfer-engine/example/transfer_engine_nvmeof_generic_bench.cpp` (+396 -0) 📝 `mooncake-transfer-engine/include/config.h` (+4 -0) _...and 22 more files_ </details> ### 📄 Description This pull request adds support for file segments to Transfer Engine and Mooncake Store, then introduces a generic NVMeoF transport implementation to Transfer Engine. Please read the RFC (#780) and the documents in this PR for more information. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-29 21:30:39 +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#1827
No description provided.