Commit Graph

25 Commits

Author SHA1 Message Date
Han Zhenyu 韩振宇 d3ace8fb20
[Store] Fix `with_hard_pin` failure in python API (#1873)
---------

Signed-off-by: 0oshowero0 <o0shower0o@outlook.com>
2026-04-12 23:22:23 +08:00
Cruz Zhao c3d428b902
[store] Add get_into_ranges to support Grouped Scatter RDMA Reads (#1717)
* [Store] add get_into_range and src_offset plumbing

Add single-key range read support to Mooncake Store:
- get_into_range: read [src_offset, src_offset+size) from an object
  into (buffer + dst_offset)
- submitRangeRead in TransferSubmitter with src_offset support
- Get() overload and TransferReadRange in Client
- DummyClient RPC path via get_into_range_dummy_helper
- PyClient virtual interface for get_into_range

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 18:31:09 +08:00
fatSheep 7d0978b9ca
[Store] Add Upsert API for in-place object updates (#1662)
Co-authored-by: fatSheep <tzh2005t@gmail.com>
2026-04-03 10:24:37 +08:00
Cruz Zhao 9351a54014
fix: correct TP zero-copy put semantics (#1685)
* fix: correct TP zero-copy put semantics

* fix: apply clang-format to store binding

* fix: default batch TP-from results to errors

* fix: return success for batch TP put-from

Ensure batch_put_tensor_with_tp_impl reports zero on fully successful shard writes so TP zero-copy Python tests don't fail with false INVALID_PARAMS results.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* tests: align TP zero-copy benchmark with get API signature

Keep the TP zero-copy benchmark focused on put-from semantics by removing an unsupported split_dim argument from batch_get_tensor_with_tp_into.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* trigger ci

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Xuchun Shang <xuchun.shang@linux.alibaba.com>
2026-04-01 09:45:53 +08:00
lujh 6105f9cda8
[Store] fix gmock bug and add batch remove API (#1756) 2026-03-31 16:55:41 +08:00
Cruz Zhao 0c310237d7
[Store] put tensor zero copy (#1480)
---------

Signed-off-by: Cruz Zhao <CruzZhao@linux.alibaba.com>
2026-03-13 22:59:43 +08:00
tang c724318217
[Store][Feature] copy and move client support (#1364)
* [Store]: add task executor feature with unit and executor test

Signed-off-by: Vincent Gao <vincentbo@linux.alibaba.com>

* [Store]: add some optimizations to task executor

Refactor the task_executor into the client_service and add a
task structure on the client side. Additionally, remove the
existence check in the execute function;
only retrying should be performed if replica allocation fails.

Signed-off-by: Vincent Gao <vincentbo@linux.alibaba.com>

* [Store]: get source replica from copyStart or moveStart api

* [Store]: call move or copy end if the target replica already exist to complete the replication task

* [Store]: use the max_retry_attempts in master side

* [Store]: add client integration test and set default max_retry_attempts to 10

* [Doc] update task api introduction

Signed-off-by: Vincent Gao <vincentbo@linux.alibaba.com>

* [Store] Set copy and move as private methods

Signed-off-by: Vincent Gao <vincentbo@linux.alibaba.com>

* [Doc]: change the default task max_retry_attempts to 10

* [Doc]: fix some description error

* [Store]: allocate the buffer size to be a multiple of 16MB

* [Store]: validate the replica is in local and directly construct slices from replica buffer address instead of copy the data to local buffer

* [Store]: change the validate logic to directly use transfer engine endpoint or local_hostname_.

* [Store] add e2e ci test for copy and move api

* [Store] refactor the client move and copy function

* [Store] fix the e2e test

* [Store] remove unused code

* [Store] add source field when build replica copy payload in the task_manager_test

* [Store] rename back to snake case for split_into_slices function and also remove hard code for client poll count

* [Store] revert mis deleted field when resolve conflicts

* [Store] change test to validate the real behaviour

* [Store] change the default task fetch size to 16

* [Doc]: change the replica copy/move sequence diagram

* [Store] add new split_into_slice method

* [Store] change the real client to use split_to_slice with buffer handle parameters

---------

Signed-off-by: Vincent Gao <vincentbo@linux.alibaba.com>
Co-authored-by: Vincent Gao <vincentbo@linux.alibaba.com>
2026-02-06 19:02:02 +08:00
uncharted-G 56241b8482
[TE] Support transfer in cuda stream via cudaLaunchHostFunc (#1448)
* feat(transfer-engine): support transfer on cuda

* rename async func

* only batch_transfer_on_cuda

* modify transfer_engine_py.cpp

* remove async pylib

* rename batch_transfer_write_on_cuda

* add log

* fix

* fix

* comment

* fix

* add ut

* fix

* update docs

* fix format

* fix comment

* add goto exit

* check length

---------

Co-authored-by: guohaiqing <guohaiqing02@moonshot.cn>
2026-01-28 17:15:20 +08:00
Ruoyu Qin b064a662e4
[Wheel] Remove the default buffer pre-allocation in initialize() (#1415)
* remove pre-allocate

* fix
2026-01-21 23:14:41 +08:00
Ruoyu Qin 914ed1d414
[DOC] Add batch API docs and examples for transfer engine (#1395) 2026-01-18 12:49:32 +08:00
ympcMark 971c99ddca
Split Mooncake PG out of Mooncake EP (#1387) 2026-01-16 13:39:37 +08:00
Stary 69663d117b
[TE] Add Task Completion Latency Tracking and Detailed Metrics Reporting (#1310)
* feat(metrics): add task completion latency tracking and detailed metrics reporting

- Add histogram metric for tracking transfer task completion latency with
configurable buckets
- Record task start time in submitTransfer and calculate latency upon completion
- Enhance metrics reporting thread to include latency distribution statistics
- Add skip_metrics parameter to getBatchTransferStatus to avoid double counting
- Update task structure to include start_time field for latency calculation

Signed-off-by: staryxchen <staryxchen@tencent.com>

* feat: add metrics support for submitTransferWithNotify

Signed-off-by: staryxchen <staryxchen@tencent.com>

* refactor(metrics): improve metrics recording logic with early returns

- Replace nested if statements with early returns using goto for cleaner flow
- Add boundary checks for task_id and validate start_time before recording
- Only record metrics for COMPLETED status and reset start_time to prevent
duplicates

Signed-off-by: staryxchen <staryxchen@tencent.com>

* refactor(metrics): simplify bucket count tracking logic

- Remove conditional checks for vector bounds by ensuring prev_bucket_counts_
size matches bucket_counts
- Consolidate previous snapshot update into a single assignment

Signed-off-by: staryxchen <staryxchen@tencent.com>

* fix(metrics): conditionally enable metrics collection

- Add metrics_enabled_ flag check before collecting metrics
- Wrap metrics collection logic with flag condition to avoid unnecessary
operations
- Ensure metrics are only recorded when explicitly enabled

Signed-off-by: staryxchen <staryxchen@tencent.com>

* docs: clarify Transfer Engine metrics limitation with TENT

- Add note about MC_TE_METRIC not being supported when using Transfer Engine
TENT in deployment guide
- Add same note to Python API reference for MC_TE_METRIC environment variable

Signed-off-by: staryxchen <staryxchen@tencent.com>

---------

Signed-off-by: staryxchen <staryxchen@tencent.com>
2025-12-31 15:47:11 +08:00
Cruz Zhao 0b149e6c13
[store] support batch pub and tp aware for pub_tensor (#1288)
* [store] support batch and tp aware for pub_tensor

Signed-off-by: Cruz Zhao <CruzZhao@linux.alibaba.com>

* add test cases for pub tensor

Signed-off-by: Cruz Zhao <CruzZhao@linux.alibaba.com>

* add docs for pub tensor

Signed-off-by: Cruz Zhao <CruzZhao@linux.alibaba.com>

* fix description

Signed-off-by: Cruz Zhao <CruzZhao@linux.alibaba.com>

* fix typo

Signed-off-by: Cruz Zhao <CruzZhao@linux.alibaba.com>

* fix typo

Signed-off-by: Cruz Zhao <CruzZhao@linux.alibaba.com>

---------

Signed-off-by: Cruz Zhao <CruzZhao@linux.alibaba.com>
2025-12-29 11:07:26 +08:00
Teng Ma 47025faf9c
[Doc] add more mooncake store APIs doc (#1237) 2025-12-23 01:20:09 +08:00
Xun Sun 832ae19492
[EP] Implement elastic scaling up (#1173) 2025-12-22 14:10:40 +08:00
Cruz Zhao 1a5983e756
[store] zero copy for get_tensor() and batch_get_tensor() (#1192) 2025-12-19 08:38:17 +08:00
Jianxin 38138f9136
[Doc] Hotfix: Remove duplicate docs (#1211) 2025-12-15 14:17:09 +08:00
Xuchun Shang fa8dc059c2
[Store] add tp awareness for get_tensor (#1127)
* add tp awareness for get_tensor
2025-12-11 11:12:44 +08:00
yejj 1840577d68
[Store] add pybind for get_replica_desc (#1121)
* add pybind for get_replica

* rename pybinb funcs name & update api doc

* fix spell problem
2025-12-04 15:45:52 +08:00
Chao Lei 2d3d02a0a8
[Store] Add APIs: batch_put_from_multi_buffers and batch_get_into_multi_buffers (#929)
Co-authored-by: youxiao <youxiao@huawei.com>
2025-10-16 11:17:23 +08:00
ykwd 8992a2ebba
fix(store): Check if Connecting Master Fails (#886) 2025-09-25 11:19:50 +08:00
JinYan Su 6d8aab2ef6
feat(store): disable auto discovery by default, require devices for RDMA (#877)
* feat(store): disable auto discovery by default, require rdma_devices for RDMA

* feat(client): support optional auto-discovery with default for RDMA

* update comment

* update doc

* update hello world
2025-09-23 20:44:22 +08:00
JinYan Su af4fb4d5d4
feat(store): support transfer engine p2phandshake (#852)
* feat(allocator): Add transport endpoint support for segment transfers

* refactor(Client): Replace segment_name with transport_endpoint in buffer descriptors and tests

* refactor(test): switch to in-proc master and remove external service management

* style: format code and adjust transfer task timeout

* feat(Client::MountSegment): set te_endpoint conditionally based on metadata_connstring for P2P mode

* Allow configuring default KV lease TTL via environment variable

Read DEFAULT_KV_LEASE_TTL environment variable at server startup and
parse as uint64_t value. This enables CI tests to override default
configuration without code changes.

Signed-off-by: xiaguan <751080330@qq.com>

* style: format CI config and add [[nodiscard]] to methods

Signed-off-by: xiaguan <751080330@qq.com>

* refactor(tests): remove local_hostname parameter and improve test helpers

The commit removes the unused local_hostname parameter from TransferSubmitter constructor, updates the associated initialization logic, and simplifies test code by introducing helper functions for segment creation. The changes improve code maintainability while preserving functionality.

* refactor(TransferSubmitter): Remove unused local_hostname_ member and validation check

* docs(store): update setup examples for p2p

---------

Signed-off-by: xiaguan <751080330@qq.com>
2025-09-22 16:30:15 +08:00
JinYan Su 51687e916e
docs(deployment): Add Mooncake Store deployment guide with configuration and metrics (#825) 2025-09-16 10:02:55 +08:00
Ruoyu Qin dedfbde5da
[Doc] Update docs for a better quick start (#814)
* add transfer engine python api

* add quick start

* add lmcache v1 integration

* update trace

* fix

* modify segment size
2025-09-06 11:16:42 +08:00