liveBook · Manning

Distributed system

As explained in ScyllaDB in Action

A distributed system is a system whose components run on multiple networked nodes and coordinate to provide a unified service.

A distributed system runs components on multiple networked nodes that coordinate to provide one service. ScyllaDB uses this design to distribute data, improve scalability, and tolerate node failures. section 1.2 section 1.2.1

ScyllaDB’s distributed design works through several connected mechanisms:

  • Accept a request through any node, then calculate the row’s owner with a hash ring and forward the request when necessary. section 1.2.1
  • Replicate each row across multiple nodes, with the replication factor determining how many copies exist. section 1.2.1
  • Tune consistency by choosing how many replicas must acknowledge a query; stronger requirements reduce availability during failures. section 1.2.1
  • Expect eventual consistency: replicas may temporarily disagree while the system converges toward a consistent state. section 1.2.1

A replicated write

A client sends a write to any ScyllaDB node. The receiving node determines which nodes own replicas of the row and forwards the request. At consistency level QUORUM in a three-replica cluster, two replicas must acknowledge success, while one replica may fail. section 1.2.1

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

Compare ALL, QUORUM, and ONE to see how acknowledgement requirements change availability and tolerated failures. section 1.2.1

Figure 1.7 The CAP theorem says a database can only provide two of these three properties: consistency, availability, and partition tolerance. ScyllaDB is classified as an AP system.
figure

Use the CAP-theorem figure to place ScyllaDB’s AP classification alongside consistency, availability, and partition tolerance. section 1.2.1

How ScyllaDB in Action covers it

How deep it goes
Traces request routing, replication, consistency levels, eventual consistency, and the hash ring, while deferring deeper implementation details.
Examples
Demonstrates any-node writes, hash-ring forwarding, replicated rows, and ALL, QUORUM, and ONE consistency levels.
What you can do after
Evaluate consistency and availability trade-offs while reasoning about ScyllaDB reads, writes, failures, and cluster behavior.
How it connects
Connects distributed systems with scalability, fault tolerance, replication, consistency, eventual consistency, CAP theorem, hash rings, consensus, gossip, and failure detection.

Also explained in

Compare how 15 books explain distributed system →

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.