this repo has no description
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Editing overview

garrison 2aaaeb32 84323a78

+9 -11
+9 -11
internals/overview.md
··· 3 3 Hobbes is a key/value database with a service architecture inspired by FoundationDB. 4 4 The database is unbundled into a number of independent roles which communicate and interoperate. 5 5 6 - These roles can be organized into three main subsystems: 6 + These roles can be organized into three subsystems: 7 7 8 8 - The **Control Plane**, which performs distributed consensus (i.e. Paxos) 9 9 - The **Transaction Plane**, which provides transactional support to the database 10 - - The **Storage Plane**, which stores key/value data for the cluster and serves multiversion reads 10 + - The **Storage Plane**, which stores key/value data for the cluster and serves versioned reads 11 11 12 12 Each plane is responsible for managing the next. 13 13 14 - The Control Plane consists of a consensus cluster of Coordinator servers. 14 + The Control Plane consists of a number of Coordinator servers. 15 15 The Coordinators have known, static names and serve as the entry point of the cluster. 16 - They perform fault-tolerant distributed consensus, specifically Viewstamped Replication (similar to MultiPaxos or Raft). 16 + They execute fault-tolerant distributed consensus, specifically Viewstamped Replication (similar to MultiPaxos or Raft). 17 17 18 - The Transaction Plane consists of several unique roles which work together to provide transactional guarantees like consistency and atomicity. 18 + The Transaction Plane consists of a number of servers across several unique roles which work together to provide transactional guarantees like consistency and atomicity. 19 19 The Transaction Plane is generational: 20 - if *any* member fails or is unresponsive, the entire system is destroyed and a new generation is created to replace it. 21 - The creation of a new generation is kicked off by the Control Plane; 22 - as the Control Plane is implicitly fault-tolerant (distributed consensus), it therefore confers that fault-tolerance onto the Transaction Plane. 20 + if *any* member fails or is unresponsive, all of its servers are destroyed and replaced with a new generation in a process called **recovery**. 21 + The Control Plane is responsible for kicking off the recovery process; it therefore confers its fault tolerance onto the Transaction Plane. 23 22 24 - The Storage Plane consists of a number of Storage servers which store the actual key/value data. 23 + The Storage Plane consists of a number of Storage servers which store key/value data and serve versioned reads. 25 24 Data is split into contiguous (ordered by key) shards and distributed (and replicated) amongst Storage servers. 26 25 If a Storage server fails or becomes unresponsive, 27 - the Transaction Plane will issue commands to re-replicate its shards to restore fault-tolerance. 28 - Because the Transaction Plane is fault-tolerant as explained above, it therefore confers that fault-tolerance into the Storage Plane. 26 + the Transaction Plane will issue commands to re-replicate its shards to restore fault tolerance.