Releases: MantissaLabs/mantissa
Release list
v0.3.0
This release focuses on reliable cluster split and merge operations, service recovery after topology changes, faster synchronization and safer volume deletion.
In v0.2.0, split and merge operations were sent directly to the nodes that were reachable at the time. An offline node or a lost message could leave part of the cluster on an older view.
v0.3.0 makes these operations durable and repairable through normal cluster synchronization. Nodes that miss a transition can catch up after reconnecting or restarting. This release includes breaking Cap'n Proto changes for cluster operations, workloads, and volumes.
v0.3.0 also reduces wasted work in the Merkle Search Tree synchronization path, which was sending full page ranges containing unchanged values. It now only sends and synchronizes changed keys and values within those page ranges by sending and comparing row digests. This reduces network traffic and improves synchronization efficiency.
Mixed v0.2.0 (or below) and v0.3.0 clusters are not supported.
Breaking Changes
-
Changed the split and merge protocol to use stable operation IDs and explicit dependencies. Operations are now stored before they run and spread through cluster synchronization instead of direct operation relay RPCs. d89b948, d8a0ce1, a662c2a
-
Extended the workload protocol with replica and replacement information, plus a status query used during service handoffs. 8e5be9a, 5f6d5e2
-
Changed volume deletion to use durable lifecycle markers. The old volume removal event is no longer supported. 8256954
Fixed
-
Made split and merge operations recover after lost messages, restarts, and offline nodes. Returning nodes can retrieve the operation and move to their assigned cluster view. d89b948, 3efc84d
-
Added durable asynchronous submission for cluster operations. Commands return once the operation is queued, while --wait can be used to wait for its local completion. d8a0ce1
-
Improved convergence for queued and rapidly submitted cluster operations across split views. a662c2a
-
Protected transition keys and operation history until nodes have had enough time to recover them. Missing merge key data can also be repaired by another available key holder. f628ff9, 9cfe8d1
-
Improved service recovery after split and merge. Services now reconcile locally after a merge, wait for the new cluster view to settle, and preserve valid replacement tasks during handoff. dfa994b, c0216f5, 8e5be9a
-
Prevented stale writes from restoring a volume after it was deleted. Recreating a volume with the same name now starts a new generation that is isolated from older state. 8256954
-
Prevented late split progress from overwriting newer cluster names across views. a9df9e2
Performance and Convergence
-
Reduced replicated-state churn by skipping writes that do not change service progress, workloads, task specifications, scheduler state, or stored values. 9cd6187, 0484234, b3cbcec
-
Reduced synchronization work by requesting only changed key ranges and limiting the amount of repair work performed in each pass. 68cb340, d283451, 0c9dfbc
-
Improved workload repair by prioritizing nodes that hold the missing data while keeping repair hints bounded. 657e83f, ee1dab1
Install mantissa 0.3.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/MantissaLabs/mantissa/releases/download/v0.3.0/mantissa-installer.sh | shDownload mantissa 0.3.0
| File | Platform | Checksum |
|---|---|---|
| mantissa-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| mantissa-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo MantissaLabs/mantissaYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>v0.2.0
This release fixes critical node leave, convergence, and cleanup issues found after v0.1.0.
In v0.1.0, if a node left the cluster without first being drained, the control plane could keep stale state for that node. Survivors could continue trying to reschedule or communicate with the missing node, networking state and eBPF maps could remain stale, and the load-balancer could still point at replicas hosted by the node that left.
v0.2.0 fixes those abrupt leave paths. Draining before leaving is still the cleaner path because the leaving node can remove its own remaining runtime state, but an undrained leave should no longer break control-plane convergence.
This release also includes a breaking Cap'n Proto session-bootstrap protocol change for typed ticket and credential rejection classification. Mixed v0.1.0 and v0.2.0 clusters are not supported.
Upgrade with a hard cutover to that new version, or use v0.2.0 directly if you are just getting started with Mantissa.
Breaking Changes
- Changed peer session bootstrap RPCs to return typed accepted/rejected results instead of surfacing expected membership/authentication refusals as generic Cap'n Proto errors. Rejections now carry stable codes for unknown tickets, unregistered peers, inactive local membership, invalid credentials, issuer mismatches, and unknown issuers. 72103e4
Fixed
-
Made node leave convergence idempotent. Duplicate leave tombstones delivered through direct broadcast, gossip, or anti-entropy no longer rewrite peer rows or perturb peer MST roots, while still allowing metadata repair and sync wakeups. 41fa553
-
Stopped registry session bootstrap for peers that have converged to left membership. Stale tickets are evicted when peers reject them as unknown, unregistered, or inactive. a9fb0d3
-
Quiesced cached registry contact paths after peer leave. Survivors now drop cached sessions/capabilities for left peers, and nodes that left stop reusing cached capabilities to surviving peers. c9a331c
-
Added retry backoff for repeated rejected session bootstrap attempts, reducing post-leave session churn while preserving cross-view metadata probes needed for split/merge convergence. 773580e
-
Fixed stale cluster node-count metadata after split/leave flows by ensuring replacement count records sort after the observed row they replace. f13e369
-
Tightened same-millisecond cluster node-count conflict resolution so survivor leave-derived counts can beat stale counts from peers that left. 773580e
-
Retired stale service tasks owned by left peers so cleanup no longer retries impossible remote stops forever after clean leave. 25912c4
-
Rescheduled service replicas away from nodes that explicitly left the cluster. e0f7c40
-
Retired network runtime rows for left peers, including peer-state and attachment rows, so replicated network state no longer keeps left nodes active. 359406c
-
Pruned stale Linux VXLAN FDB entries after peer leave by reading bridge-family FDB state and deleting obsolete forwarding entries. 0fad2ef
-
Preserved secret master-key reconciliation wakeups so split/merge adoption does not stall when the final required key row arrives while the reconciler is already busy. ef6beaf
-
Preserved rollout diagnostics when stale readiness waiters observe a restored / previous service generation after rollback. 486af62
Performance and Convergence
-
Coalesced immediate topology sync wakeups so bursty join/leave events do not spawn overlapping one-shot sync tasks. Additional wakeups during an active pass are folded into at most one follow-up pass. 0afa25e
-
Reused cached peer snapshots for member-count computation and published node-count rows. 0afa25e
Install mantissa 0.2.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/MantissaLabs/mantissa/releases/download/v0.2.0/mantissa-installer.sh | shDownload mantissa 0.2.0
| File | Platform | Checksum |
|---|---|---|
| mantissa-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| mantissa-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo MantissaLabs/mantissaYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>v0.1.0
Install mantissa 0.1.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/MantissaLabs/mantissa/releases/download/v0.1.0/mantissa-installer.sh | shDownload mantissa 0.1.0
| File | Platform | Checksum |
|---|---|---|
| mantissa-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| mantissa-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo MantissaLabs/mantissaYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>