Repository navigation
Replies: 1 comment
|
Thanks for the detailed write-up — the Must-Haves list is unusually clear, and one line in it caught I have been building a leaderless replicated log (every node an equal peer, no election, no shared
Every instance made the same decision on every intent, and no two accepted intents intersect (the recording is one machine on loopback so it fits in a GIF; the numbers are from the three servers) All runs, raw per-request data, each instance's decisions and a What this is not, to be clear up front:
If equal peers without a temporary leader matters for Gate 2 (partitions, clock skew, > 24 nodes), |

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Raft-Based Application-Level Consensus passes the full DSS test suite (uss_qualifier and prober included) reproducing SQL-based behaviour end to end and outperforming the distributed SQL implementation in every performance scenario, meeting throughput, latency and error-rate targets.
Introduction
This update reports on the current status of the effort to move to application-level consensus for the DSS architecture.
Background
Following Cockroach Labs' late-2024 license change, the Technical Steering Committee (TSC) investigated mitigation strategies.
At the time, the options evaluated were:
On the application-level consensus track, CAS Paxos was rejected due to a dormant ecosystem, no reusable library and implementation-sensitive correctness. This left Raft via the etcd/raft library the only realistic algorithm. A full redesign document (InterUSS DSS 2024 redesign) was attempted but did not find common ground, notably on the storage backing the consensus engine. The proof-of-concept attempts did not succeed either, in part because the etcd/raft library was not provided as a standalone project at the time.
As a result, the TSC prioritized the switch to YugabyteDB (delivered from v0.19). However, it was agreed to reconsider this decision if a contributor could provide a working DSS prototype using etcd/raft library.
Goals
The goals remain unchanged from the investigation - the Must-Haves remain the review criteria for any consensus design, especially:
Desirable in addition: no restricted-license dependencies, minority-failure tolerance, low deployment and maintenance effort, resistance to accidental DAR corruption, and the ability for a participant to improve its own performance unilaterally.
Load testing scenarios based on production experience have added concrete targets since 2024 for country-scale traffic: SCD same-cell throughput is expected at ~2 QPS (#1541), multi-cells around ~45 QPS, with limited latency (< 5s) and error rates (< 1%), in a 9 node environment with various latencies (see this comment). Since then, the assumption on the number of nodes has been updated to meet users feedback (>24).
What did the thesis prototypes unlock?
Mariem Baccari's EPFL master thesis (Distributed transactions ensuring deconfliction of long range drone flights, Feb 2026, in the investigation folder) met the TSC's revisit condition on a working toy DSS:
The design relies on etcd/raft as the underlying consensus engine. The library implements the Raft consensus algorithm and is actively maintained and used by systems such as CockroachDB and etcd itself.
Execution Plan
The thesis findings are moving to the repository: the incremental
raftstoreimplementation is landing on master as a distinct datastore. The design decisions are captured in the package’s README and discussed in issues / pull requests. The architecture and progress is tracked in the issue tracker (#1463) and the measurements in #1594.As part of the move and build up on the existing code base, an approach to the storage question raised in the redesign document is proposed and implemented (#1526): in-memory per-service state, made durable via the Raft log and snapshots.
The work is organised into four stages, each gated on a measured result. At the time of writing this post, gates 0 (functional) and 1 (performance) passed test criteria and code is under review.
Gate 0: Proof of Functional Practicability
Goal: the Raft implementation passes the full DSS test suite, including uss_qualifier and prober.
Status: Tests passed on code now under review
Gate 0 reproduces the behaviour of the SQL implementation, including its legacy cases, on top of application-level Raft. It passes the full DSS test suite.
This stage addressed multiple aspects:
The existing test baseline passes against the initial implementation, as shown by a77b08d in #1538 (uss_qualifier and prober results).
Code is currently reviewed and progress is tracked in #1463.
Gate 1: Performance Fitness
Goal: the Raft implementation meets the throughput, latency and error-rate targets recorded in #1541.
Status: Tests passed on code now under review
Results are recorded in #1594. The Raft implementation outperforms the distributed SQL implementation in every test scenario: SCD same-cell throughput is at ~95 QPS (45x requirement), multi-cells around ~80QPS (2x requirement), with limited latency (<300ms below <5s requirement) and error rates (0% below 1% requirement), in a 9-node environment with various latencies.
Payload size was identified as an immediate limiting factor: when simulating network latency, bandwidth becomes the main constraint. #1587 addresses the low-hanging fruits with:
Analysis of the remaining bottlenecks continues and is expected to yield further improvements.
Gate 2: Production Readiness
Goal: a DSS user can deploy, upgrade, observe and change the membership of a Raft-backed pool in production.
Status: Work in progress
This stage will cover what a pool needs over its lifetime and optimizations required for a large number of DSS instances (>24), especially:
Future-Level Scale
If future demand requires it, the single-leader bottleneck may be removed and the single raft group may be split into multiple independent Raft groups. The thesis prototype partitions the airspace into static S2-cell-bounded shards, one Raft group each, with cross-shard transactions coordinated by two-phase commit through a dedicated group, the protocol CockroachDB and Google Spanner use for the same purpose.
What will change for users?
The Raft datastore will ship as a selectable datastore alongside the SQL ones. Current deployments are unaffected. When enabled, the DSS node becomes a single container: consensus moves inside the DSS process, and no external datastore needs to be deployed.
Next steps
Following the successful demonstration of functional practicability and performance fitness, design and implementation efforts will now move toward production readiness (Gate 2). Future work may focus on scaling to sustain very-high-usage traffic, if required.
All reactions