this repo has no description
2
fork

Configure Feed

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

Add internals overview

garrison 84323a78 326e691e

+28
+28
internals/overview.md
··· 1 + # Hobbes Overview 2 + 3 + Hobbes is a key/value database with a service architecture inspired by FoundationDB. 4 + The database is unbundled into a number of independent roles which communicate and interoperate. 5 + 6 + These roles can be organized into three main subsystems: 7 + 8 + - The **Control Plane**, which performs distributed consensus (i.e. Paxos) 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 11 + 12 + Each plane is responsible for managing the next. 13 + 14 + The Control Plane consists of a consensus cluster of Coordinator servers. 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). 17 + 18 + The Transaction Plane consists of several unique roles which work together to provide transactional guarantees like consistency and atomicity. 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. 23 + 24 + The Storage Plane consists of a number of Storage servers which store the actual key/value data. 25 + Data is split into contiguous (ordered by key) shards and distributed (and replicated) amongst Storage servers. 26 + 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.