Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The second requirement is only achievable using MVCC, where interleaved txn reads don't block writes and vice versa. 

...

The fifth requirement implies not keeping buffering a whole transaction on the coordinator node.

The system also have to be horizontally scalable. To achieve scalability, the data will be partitioned using hash or range partitioning method. The exact partitioning method is not important for the purpose of this document. We treat the a data partition here as a synonym for a data shard. Each partition is assigned to a cluster node and replicated to a predefined number of replicas to achieve high availability. A distributed transaction protocol makes cross-partition transactions preserve ACID guaranties 

...

We aim to reuse common replication infrastructure. This means the records will be durably replicated using the raft a consensus protocol. On top of the replication layer we will have a distributed transaction coordination protocolbased protocol, like RAFT. This approach tolerates f failed nodes from n total nodes, where n >= 2f + 1. Other products can do better, for example FoundationDB tolerates f failed nodes from n, where n >= f + 1There are two main things - CC and atomic commitment. A CC protocol is not tied to the underliying replication protocol.

Description

// Provide the design of the solution.

...