liveBook · Manning

Fault tolerance

As explained in ScyllaDB in Action

Fault tolerance is the ability of a system to continue providing correct or available service despite component failures.

Fault tolerance is a database’s ability to keep serving requests when components fail. In ScyllaDB, it comes from running a cluster of peer nodes, distributing data among them, and storing multiple copies of each row. A request can succeed even when some replicas are unavailable, as long as its consistency requirement is met. section 1.0 section 1.2.1

Replication factor determines how many locations hold a row. Consistency level determines how many of those replicas must acknowledge a read or write. These are separate choices: replication supplies redundant copies, while consistency sets the number of responsive copies required for a successful query. section 1.2.1 section 1.4

Table 1.1 Sample of consistency level options, assuming a cluster with three replicas
Consistency level
Description
Number required to succeed
Failures tolerated
ALL
Requires all replicas to succeed
3
0
QUORUM
Requires a majority of replicas to succeed
2
1
ONE
Requires a single replica to succeed
1
2

With three replicas, ALL requires every replica and tolerates no failures; QUORUM requires two and tolerates one; ONE requires one and tolerates two. Lowering the required acknowledgments preserves availability during failures but raises the chance of inconsistent results. section 1.2.1

This availability has a trade-off. ScyllaDB favors eventual consistency: replicas may not agree at every instant, but the system converges toward correctness over time. Requiring ALL maximizes agreement for a query but makes a single unavailable replica prevent success; weaker levels improve availability by accepting less immediate consistency. section 1.1.3 section 1.2.2

Unlike a leader-follower design, ScyllaDB treats nodes as peers. A client may contact any node; the cluster maps rows to their owners and forwards requests as needed. This removes dependence on one central leader while replication protects data when an individual node is lost. section 1.2.1 section 1.1.3

A three-node failure test

Use a three-node cluster with replication factor 3 and QUORUM consistency. Stop one node, then run quorum queries: two replicas can still respond, so the cluster remains operational for those queries. The same setup cannot satisfy ALL while that node is down. section 2.4 section 1.2.1

Fault tolerance also shapes recovery. After a node crashes, ScyllaDB self-heals by streaming data from other nodes to restore the cluster. The design goal is availability during node loss, while consistency levels let an application decide how much immediate agreement each query needs. section 1.4 section 8.1

How ScyllaDB in Action covers it

How deep it goes
Explains replication, peer routing, eventual consistency, and acknowledgment thresholds, then verifies quorum behavior by stopping a node.
Examples
Uses a three-node cluster with replication factor three, QUORUM queries, and one stopped node.
What it assumes
Introduces distributed replication and consistency choices without assuming prior distributed-systems expertise.
What you can do after
Operate/configure it by choosing replica acknowledgments that keep queries available through planned node failures.
How it connects
Connects fault tolerance to replication factor, consistency levels, eventual consistency, availability, scalability, and CAP theorem.

Also explained in

Compare how 5 books explain fault tolerance →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of ScyllaDB in Action. The section links point to the parts of the book it draws on.