Versions Compared

Key

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

...

We aim to reuse common replication infrastructure. This means data records will be durably replicated using a consensus based 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 + 1 (but the consensus is still required). A CC protocol is not tied to the underliying replication protocol. We can change the replication protocol in the future, if we want.

Serializability

Before continuing further towards the discussion of CC protocol, let's dive into the serialization theory.

Assume we have 3 transactions:

T1 = r1[x] r1[z] w1[x]

T2 = r2[y] r2[z] w2[y]

T3 = w3[x] r3[y] w3[z]

Two possible schedules:

L1 = w3[x] r1[x] r3[y] r2[y] w3[z] r2[z] r1[z] w2[y] w1[x]

L2 = w3[x] r3[y] w3[z] r2[y] r2[z] w2[y] r1[x] r1[z] w1[x].

Description

// Provide the design of the solution.

...