Skip to content

Releases: azrtydxb/novastor

v0.5.0 — Performance: 60K IOPS, 740 MB/s, sub-100μs latency

18 Mar 11:37

Choose a tag to compare

Performance Highlights

Metric v0.4 v0.5.0 Improvement
4K Random Write (qd=1) 46 IOPS 10,743 IOPS 233×
4K Random Write (qd=32) 60,652 IOPS
4K Random Read (qd=32) 66,338 IOPS
Sequential Write 4 MB/s 740 MB/s 185×
Sequential Read 846 MB/s
Write Latency (qd=1) 22ms 0.091ms 242×
Volume Creation (10Gi) 30s+ ~4s
NVMe Efficiency <1% 53%
Data Integrity PASS

Key Changes

Dataplane Performance

  • Reactor-native I/O path — zero thread crossings for aligned single-sub-block I/O (Mayastor pattern)
  • Lock-free atomic dirty bitmaps — AtomicU64 fetch_or instead of global RwLock write per I/O
  • Flat-array bitmaps in BdevCtx — direct index, no DashMap hash/lookup
  • Write context pool — pre-allocated 64 ReactorWriteCtx, eliminates Box::new per I/O
  • A76 core pinning — reactor on Cortex-A76 (2.4GHz out-of-order) instead of A55 (1.8GHz in-order), 2× IPC
  • DashMap for sub-block locks — replaces 2-level Mutex
  • RwLock for volume offsets — non-blocking concurrent reads
  • CRUSH hash optimization — ring::digest::Context instead of format!() allocation
  • Arc — O(1) topology clone instead of deep copy
  • Instant WRITE_ZEROES and UNMAP — thin provisioning, mkfs.ext4 near-instant
  • RESET, COPY I/O types — NVMe error recovery and offload copy

Security

  • mTLS on dataplane gRPC — tonic tls-ring (TLS 1.3 AES-128-GCM-SHA256)
  • Agent connects to dataplane with mTLS client credentials
  • TLS cert paths wired through CLI args, Helm DaemonSet
  • Stable /etc/nvme/hostnqn and hostid for NVMe identity

NVMe-oF Transport

  • SPDK initiator — CSI uses SPDK NVMe-oF initiator instead of kernel nvme-cli
  • Stale subsystem cleanup — auto-disconnect zombie NVMe-oF entries before connecting
  • NVMe-oF TCP tuning — 4 I/O queues, 128KB io_unit_size, 8 max_qpairs
  • Round-robin iopolicy — set via CSI node init container

Operational

  • Stable hostnqn/hostid written at CSI startup for NVMe multipath readiness
  • Stale NVMe-oF subsystem auto-cleanup in ConnectMultipath

Known Issues

  • #167 — SEEK_DATA/SEEK_HOLE disabled (causes seq read regression)
  • #168 — Chunk ID string→binary migration (cross-language refactor)
  • #169 — NVMe multipath path grouping needs investigation
  • Dataplane gRPC TLS: agent still falls back to insecure if TLS not configured
  • Single-reactor SPDK: multi-core reactor needs deadlock fix for self-connect

Nightly Build

18 Feb 00:28

Choose a tag to compare

Nightly Build Pre-release
Pre-release

Nightly Build 2026-03-23

Changes since v0.5.0

Feature

  • 8bbfe8e [Feature] NBD server library — kernel block device bridge
  • 30882ad [Feature] NDP server in chunk engine
  • 4e94300 [Feature] NDP protocol library — NovaStor Data Protocol

Docs

  • ac910ff [Docs] Update architecture spec: kernel nvmet + NBD + tokio frontend
  • 97171e9 [Docs] NDP protocol library implementation plan
  • 28dc018 [Docs] Frontend/backend architecture split design spec