Skip to content

v0.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 20 Jul 15:57
v0.3.0
2fc00f9

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 | sh

Download 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/mantissa

You 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>