Zaris 1.1.0
Clustron Zaris 1.1.0
The first release since 0.9.0 — a major performance pass on the read path, near‑linear multi‑node scaling, several reliability fixes (including two Kubernetes attach‑mode console bugs), and a one‑time binary‑breaking client API change that makes the hot path allocation‑free.
Upgrading from 0.9.0. Wire protocol is unchanged (mixed‑version clusters are fine), but the client hot‑path now returns
ValueTask— recompile your app against 1.1.0 (see Breaking changes).
Highlights
- ⚡ Redesigned read path — shard dispatch, lock‑free reads, an env‑gated inline‑IOCP fast path, and
ValueTask+ pooled GET responses. Removes the previous single‑node throughput plateau. - 📈 Near‑linear scale‑out — measured on Azure AKS (512‑byte GET, RF=1): ~630K → ~1.0M → ~1.3M ops/sec across 1 → 2 → 3 nodes.
- 🛠️ Attach‑mode console fixes — a serving Kubernetes store no longer shows as “Stopped / 0 nodes”, and the Nodes page lists every member instead of one “Lost” node.
- 📊 Live throughput chart — the web‑console chart now renders a real time‑series trend instead of a flat line.
Performance
- Read‑path redesign: sharded dispatch, lock‑free reads, and an optional inline‑IOCP fast path (env‑gated).
ValueTaskGET chain with a pooled GET response payload — allocation‑free on synchronous completion.- Server dispatch worker pool is now tunable and defaults higher:
ZARIS_SERVER_MIN_WORKERS/ZARIS_SERVER_MAX_WORKERS. - Fixed a partition‑balancer stall that could cap throughput under load.
Reliability & correctness
- Attach‑mode membership (Kubernetes): in single‑seed adoption the manager identifies a node by its host, but the node’s diagnostics guard only accepted its node‑id — so every diagnostic probe was rejected, the manager reported
DegradedBootstrap, and the console showed the store as Stopped / 0 nodes with nodes marked Lost. The node now accepts a direct diagnostics request addressed by node‑id or its own host. Validated end‑to‑end on Kubernetes (attach mode, RF=1) under live load. - Nodes page enumeration: the console now lists every membership member (deduplicated by id and host), so the Nodes page count matches the dashboard.
- Throughput chart: the manager retained only ~60 s of metric snapshots and the console kept only the latest per node, collapsing the chart to a single flat point. The console now reconstructs a continuous per‑second timeline from all retained snapshots, and retention is raised to 10 minutes (configurable via
ZARIS_METRICS_RETENTION_SECONDS, 60 s–24 h). - Migration: re‑stamp stale‑version pending migrations to break a withheld‑cutover livelock.
- Security: the deterministic ownership backbone is now on by default with fail‑closed node security; closed a data‑plane fail‑open false‑assurance; fixed
New-ZrTokensilently returning empty.
Observability
- Shorter metric keys (dropped the
zaris.prefix). - OpenTelemetry metrics bridge (exports the internal metric catalog via the OTel Meter) and OTLP/console log export — both config‑gated.
Breaking changes
- Client hot path now returns
ValueTaskinstead ofTask—Get,Put,Delete,Expire,Persist,TTL, and the fluent chain. This is a one‑time, deliberate binary‑breaking change for allocation‑free synchronous completion.await‑style usage is source‑compatible; recompiling against 1.1.0 is required. Bulk, transaction, and scan APIs remainTask. The wire protocol is unchanged.
Packages
| Package(s) | Version |
|---|---|
Clustron.Zaris.* (Abstractions, Client, InProc, SDK, DistributedCache, HybridCache) |
1.1.0 |
Clustron.Nodus.* (Abstractions, Client) |
1.1.0 — license text corrected (no code change) |
Clustron.Keyvus.* (7 packages) |
1.1.0 — license text corrected (no code change) |
Clustron.Numerous.* (Abstractions, Sdk) |
0.9.0 — unchanged |
dotnet add package Clustron.Zaris.Client --version 1.1.0Server / operator package: clustron-zaris-1.1.0-win-x64.zip (attached below) — management service, node runtime, web console, and the AdminShell/ClientShell PowerShell modules.
Verification
Unit tests green (2,779 passing); 10‑minute cluster certification passed (154K ops, 0 missing / 0 wrong‑owner / 0 replica failures, 8 migration cycles validated); API‑variation certification, in‑proc + remote samples (26/26), and a live Kubernetes attach‑mode e2e all passed. Published NuGets are dependency‑vulnerability clean.
Known issues
- The bundled web‑console SPA carries three low‑severity advisories (
nanoid,react-router) scheduled for a follow‑up. The published NuGets are unaffected.