Skip to content

dlslime-v0.0.3

Pre-release
Pre-release

Choose a tag to compare

@JimyMa JimyMa released this 10 May 11:39
· 24 commits to main since this release
90ddfff

dlslime 0.0.3

First GitHub Release. pip install dlslime==0.0.3 is live on PyPI. This release is the big post-0.0.2 consolidation: a control plane, a cache subsystem, an observability stack, and a full refactor of the RDMA completion ownership model.

🎉 New subsystems

  • NanoCtrl control plane (#68, #84, #90). Rust/Axum server with Redis-backed, scope-isolated peer registration and MR publication. Ships as a separate nanoctrl PyPI wheel (now at v0.0.8).
  • PeerAgent refactor (#80, #81, #88). PeerAgent becomes the runtime hub with auto NIC/topology discovery, directed-connection model, and a canonicalized Python API.
  • DLSlimeCache v0 (#82). Slab-based in-process KV cache with peer/version directory.
  • SlimeRPC (#69 , #73). Datapath moved to C++, zero-copy inplace reply path, Python backend dropped.
  • Observability v0 (#91). C++ relaxed atomic counters, PeerAgent reporter writes Redis snapshots, nanoctrl obs {status,peers,nics,links} queries cluster state. DLSLIME_OBS=0 by default; single-branch overhead when disabled.
  • GitHub Actions CI (#78). Build + lint on every PR.

🔧 RDMA engine

  • Refactor RDMAEndpoint completion ownership (#70). Slot-lease ring + per-QP callback masks eliminate modulo-reuse races. One EndpointOpState owns a user op end-to-end; callbacks update it instead of the pool slot.
  • RNR handling for imm-recv (#71). Pre-posted RECV window keeps the HW RQ primed so WRITE_WITH_IMM from peers always finds a posted receive.
  • CQ depth limit fix (#66).
  • unregister_mr on RDMAMemoryPool (#89).
  • Concurrent sendrecv stress test (#77).
  • P2P RDMA RC read control-plane fixes (#74, #75).
  • Aggregate transfer bench memory reduction (#76).

📚 Docs & housekeeping

  • Arch diagrams refreshed (#85, #86).
  • README / news / logo updates (#72, #79, #83, #87).
  • All-to-all offsets helper (#60).

Install

pip install dlslime==0.0.3                                                                                                                                                                         
pip install nanoctrl==0.0.8   # control-plane CLI + server
  • Build from source with NVLink support:
DLSLIME_BUILD_NVLINK=1 pip install dlslime==0.0.3 --no-binary dlslime

Compatibility

  • Python 3.8 – 3.13, Linux x86_64 (manylinux2014).
  • Requires libibverbs at runtime for RDMA transport.
  • Companion: nanoctrl>=0.0.8 for control-plane features.

Known limitations (v0)

  • Observability reports semantic submit/completion only for one-sided ead / write / writeWithImm. Two-sided send/recv/immRecv are intentionally not accounted in v0.
  • No latency histograms, no Prometheus exporter by design — use nanoctrl obs ... --json for scripting.
  • nanoctrl obs links catalogs connections; per-link traffic counters (BW, BYTES, PENDING, ERRORS) render as - pending follow-up.
  • Single NanoCtrl instance; no HA.

New Contributors

Full Changelog: https://github.com/DeepLink-org/DLSlime/commits/dlslime-v0.0.3

PR before 0.0.2