[PR #852] [MERGED] feat(store): support transfer engine p2phandshake #1868

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

📋 Pull Request Information

Original PR: https://github.com/kvcache-ai/Mooncake/pull/852
Author: @xiaguan
Created: 9/17/2025
Status: ✅ Merged
Merged: 9/22/2025
Merged by: @xiaguan

Base: main ← Head: client_id_as_segment_name


📝 Commits (10+)

  • 9ae0368 feat(allocator): Add transport endpoint support for segment transfers
  • 0300ec9 refactor(Client): Replace segment_name with transport_endpoint in buffer descriptors and tests
  • 133a253 refactor(test): switch to in-proc master and remove external service management
  • 5fe5047 style: format code and adjust transfer task timeout
  • f7b9d05 feat(Client::MountSegment): set te_endpoint conditionally based on metadata_connstring for P2P mode
  • 761b62b Allow configuring default KV lease TTL via environment variable
  • 7f74a25 style: format CI config and add nodiscard to methods
  • f274c74 refactor(tests): remove local_hostname parameter and improve test helpers
  • 15e6931 refactor(TransferSubmitter): Remove unused local_hostname_ member and validation check
  • 4ffa78e Merge commit '356d99fb28' into client_id_as_segment_name

📊 Changes

22 files changed (+419 additions, -428 deletions)

View changed files

📝 .github/workflows/ci.yml (+0 -13)
📝 docs/source/python-api-reference/mooncake-store.md (+36 -11)
📝 mooncake-store/include/allocator.h (+16 -4)
📝 mooncake-store/include/client.h (+4 -0)
📝 mooncake-store/include/transfer_task.h (+0 -2)
📝 mooncake-store/include/types.h (+4 -6)
📝 mooncake-store/src/allocator.cpp (+19 -6)
📝 mooncake-store/src/client.cpp (+17 -3)
📝 mooncake-store/src/segment.cpp (+3 -3)
📝 mooncake-store/src/transfer_task.cpp (+22 -13)
📝 mooncake-store/tests/allocation_strategy_test.cpp (+24 -21)
📝 mooncake-store/tests/buffer_allocator_test.cpp (+30 -23)
📝 mooncake-store/tests/client_buffer_test.cpp (+0 -3)
📝 mooncake-store/tests/client_integration_test.cpp (+28 -17)
📝 mooncake-store/tests/master_service_ssd_test.cpp (+37 -7)
📝 mooncake-store/tests/master_service_test.cpp (+121 -223)
📝 mooncake-store/tests/non_ha_reconnect_test.cpp (+5 -6)
📝 mooncake-store/tests/pybind_client_test.cpp (+26 -47)
📝 mooncake-store/tests/test_server_helpers.h (+20 -11)
📝 mooncake-transfer-engine/src/transport/ascend_transport/hccl_transport/hccl_transport.cpp (+1 -2)

...and 2 more files

📄 Description

After this, we no longer rely on any external metadata service — only Master is all we need. Also, with this change, TE's lifecycle is tied to the client's, so we don't have to handle metadata re-insertion when client reconnects to master.

For compatibility, we still kept the old metadata URLs for now, but as we roll out new releases, I think we can deprecate them.

still, not sure if this brings side effects in other areas, e.g., performance impact


🔄 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/852 **Author:** [@xiaguan](https://github.com/xiaguan) **Created:** 9/17/2025 **Status:** ✅ Merged **Merged:** 9/22/2025 **Merged by:** [@xiaguan](https://github.com/xiaguan) **Base:** `main` ← **Head:** `client_id_as_segment_name` --- ### 📝 Commits (10+) - [`9ae0368`](https://github.com/kvcache-ai/Mooncake/commit/9ae03685f85b1b20ff64071c6179a35019c5741b) feat(allocator): Add transport endpoint support for segment transfers - [`0300ec9`](https://github.com/kvcache-ai/Mooncake/commit/0300ec96d9f847452a4e87c881de10d2835b6af4) refactor(Client): Replace segment_name with transport_endpoint in buffer descriptors and tests - [`133a253`](https://github.com/kvcache-ai/Mooncake/commit/133a2533bac24588414a766039e4baf93b0ef822) refactor(test): switch to in-proc master and remove external service management - [`5fe5047`](https://github.com/kvcache-ai/Mooncake/commit/5fe50471297a7af040ff5ac8e6a147e00e434f35) style: format code and adjust transfer task timeout - [`f7b9d05`](https://github.com/kvcache-ai/Mooncake/commit/f7b9d058ee70b92f4eeb96b4c601409665670db4) feat(Client::MountSegment): set te_endpoint conditionally based on metadata_connstring for P2P mode - [`761b62b`](https://github.com/kvcache-ai/Mooncake/commit/761b62bebac06bcfb4fc2b8db234c3ab0bf3cc1d) Allow configuring default KV lease TTL via environment variable - [`7f74a25`](https://github.com/kvcache-ai/Mooncake/commit/7f74a254834deefd32c0325b902f49c1d4802f74) style: format CI config and add [[nodiscard]] to methods - [`f274c74`](https://github.com/kvcache-ai/Mooncake/commit/f274c74543d40a4b83c3f9727dfb1aa208833939) refactor(tests): remove local_hostname parameter and improve test helpers - [`15e6931`](https://github.com/kvcache-ai/Mooncake/commit/15e693112b98f8e29f9e9fa189e839c17552249e) refactor(TransferSubmitter): Remove unused local_hostname_ member and validation check - [`4ffa78e`](https://github.com/kvcache-ai/Mooncake/commit/4ffa78ec62cf287064ad28df44b63677b980bfdf) Merge commit '356d99fb28746d274241b6792c2f7c2fe17e3b29' into client_id_as_segment_name ### 📊 Changes **22 files changed** (+419 additions, -428 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/ci.yml` (+0 -13) 📝 `docs/source/python-api-reference/mooncake-store.md` (+36 -11) 📝 `mooncake-store/include/allocator.h` (+16 -4) 📝 `mooncake-store/include/client.h` (+4 -0) 📝 `mooncake-store/include/transfer_task.h` (+0 -2) 📝 `mooncake-store/include/types.h` (+4 -6) 📝 `mooncake-store/src/allocator.cpp` (+19 -6) 📝 `mooncake-store/src/client.cpp` (+17 -3) 📝 `mooncake-store/src/segment.cpp` (+3 -3) 📝 `mooncake-store/src/transfer_task.cpp` (+22 -13) 📝 `mooncake-store/tests/allocation_strategy_test.cpp` (+24 -21) 📝 `mooncake-store/tests/buffer_allocator_test.cpp` (+30 -23) 📝 `mooncake-store/tests/client_buffer_test.cpp` (+0 -3) 📝 `mooncake-store/tests/client_integration_test.cpp` (+28 -17) 📝 `mooncake-store/tests/master_service_ssd_test.cpp` (+37 -7) 📝 `mooncake-store/tests/master_service_test.cpp` (+121 -223) 📝 `mooncake-store/tests/non_ha_reconnect_test.cpp` (+5 -6) 📝 `mooncake-store/tests/pybind_client_test.cpp` (+26 -47) 📝 `mooncake-store/tests/test_server_helpers.h` (+20 -11) 📝 `mooncake-transfer-engine/src/transport/ascend_transport/hccl_transport/hccl_transport.cpp` (+1 -2) _...and 2 more files_ </details> ### 📄 Description After this, we no longer rely on any external metadata service — only `Master` is all we need. Also, with this change, TE's lifecycle is tied to the client's, so we don't have to handle metadata re-insertion when client reconnects to master. For compatibility, we still kept the old metadata URLs for now, but as we roll out new releases, I think we can deprecate them. still, not sure if this brings side effects in other areas, e.g., performance impact --- <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:58 +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#1868
No description provided.