Highlight
🚀 New Features
-
Save/Load Checkpoint Interfaces: Introduce
tq.save_checkpoint()andtq.load_checkpoint()as top-level public APIs, enabling fault-tolerant training workflows with atomic checkpointing semantics. Controller and storage unit states are persisted directly to disk without large-payload transmission over Ray. Please refer to the doc for detailed information.(#124) -
GDR Support for Mooncake Backend: Add GPU Direct RDMA (GDR) support in the Mooncake backend to enable direct GPU-to-GPU data transfers, bypassing CPU memory copies for high-performance distributed training. doc(#131)
-
P2PHANDSHAKE Metadata Mode & SSD Offload for MooncakeStore: Support peer-to-peer handshake metadata discovery mode that eliminates the need for a separate HTTP metadata server. Additionally, introduce SSD offload capability to evict and persist data to NVMe SSD when CPU DRAM is scarce, with automatic
hard_pinadjustment. (#133) -
Optional Unlimited Storage Capacity: Make
total_storage_sizeoptional (nullable) inStorageUnitDataandSimpleStorageUnit. When set tonull, capacity checks are skipped and storage grows on demand, with zero performance overhead. Fully backward compatible with existing integer capacity configurations. (#130)
🐛 Fixes & Improvements
-
Idempotent Clear Operations: Make
kv_clear,(async_)clear_samples, and(async_)clear_partitionoperations idempotent. Clearing non-existent keys or partitions is now a no-op with an info-level log, instead of raisingValueError. (#126) -
Isolate Shared
production_statusTensor: Fix a bug whereproduction_statustensor was shared acrossDataPartitionStatusinstances at class definition time, causing a cleared partition to incorrectly observe stale ready metadata when another partition reused a released global index. (#127) -
IPv6 Network Compatibility: Fix
get_free_portto correctly bind IPv6 sockets to::wildcard address. (#132) Bind Mooncake master RPC to the configured host frommaster_server_addressvia--rpc_address, fixing connection refused errors in IPv6 deployments. (#136) Fix simple storage unit tests on IPv6 nodes by using the sharedcreate_zmq_socket()helper with proper IPv6 socket option propagation. (#135) -
Clear-Release Ordering Fix: Reverse the order of clear operations to free storage memory before releasing controller indexes, preventing a concurrent actor from acquiring a released index and suffering silent data loss due to trailing storage cleanup. [Note] this hot fix is not perfect yet. (#137)
-
Yuanrong Exception Messages: Improve exception message clarity for Yuanrong DataSystem when the storage strategy does not support a certain data type, and add FAQ documentation for the "Cannot retrieve stored data" scenario. (#120)
What's Changed
- [chore] Bump version from 0.1.8 to 0.1.9.dev0 by @0oshowero0 in #119
- [chore] Update README by @0oshowero0 in #122
- [optim] Optimize the exception message for Yuanrong when storage strategy does not support a certain type of data by @dpj135 in #120
- [fix] Make clear operations idempotent by @0oshowero0 in #126
- [chore] Update README by @0oshowero0 in #128
- [fix] shared production_status tensor across data partitions by @zTonyZhao in #127
- [feat] Make
total_storage_sizeoptional to support unlimited storage capacity by @huniu20 in #130 - [fix] Fix
get_free_portin ipv6 environment by @0oshowero0 in #132 - [chore] refactor: check docstrings only for public API symbols by @ji-huazhong in #134
- [feat] Support P2PHANDSHAKE metadata mode and SSD offload for MooncakeStore by @huniu20 in #133
- [fix] Fix simple storage unit tests on IPv6 nodes by @0oshowero0 in #135
- [feat] Provide save/load checkpoint interfaces by @dodatboii in #124
- [fix] Bind Mooncake master RPC to configured host by @0oshowero0 in #136
- [fix] Clear storage data before releasing controller indexes by @dodatboii in #137
- [fix] Skip storage capacity/utilization gauges when capacity is None by @huniu20 in #138
- [feat] support GDR in mooncake backend by @xupinjie in #131
- [chore] Bump version from 0.1.9.dev0 to 0.1.9 & update dependency by @0oshowero0 in #139
New Contributors
- @zTonyZhao made their first contribution in #127
Full Changelog: v0.1.8...v0.1.9