transaction protocol that provides snapshot isolation up to strict serializability and does not rely on physical clock synchronization to maintain consistency. ACID transactions with up to serializable isolation. Linearizable, consistent operations across replicas geographically distributed.
transaction protocol that provides snapshot isolation up to strict serializability and does not rely on physical clock synchronization to maintain consistency. ACID transactions with up to serializable isolation. Linearizable, consistent operations across replicas geographically distributed.
consistent snapshot of the database and are external consistent (Tn-1 is visible to Tn). If transaction T1 has modified an object X, and another transaction T2 committed a write to X after T1’s snapshot began, and before T1’s commit, then T1 must abort.
total order. + Linearizability: operation appears to take place atomically, in some order, consistent with the real-time ordering of those operations. = Transactions with total order and real-time constraints.
but the final result is equivalent to processing them one after another. For most database systems, the order is not determined in advance. Instead, transactions are run in parallel, and some variant of locking is used to ensure that the final result is equivalent to some serial order.
wall clocks, to construct its transaction logs but still relies on wall clocks to decide when to seal time windows in the log, which means that clock skew can delay transaction processing.
1. Read ticket 3, validate there’s at least 1 in stock, check price. 2. Read customer 2, validate credit is enough to buy ticket 3. 3. Subtract one from ticket 3’s stock. 4. Subtract price from customer 2’s credit. A similar transaction is submitted to Replica XYZ for customer 6 at the same time.
guaranteed that any subsequent read-write transaction—no matter which replica is processing it—will read all data that was written by the earlier transaction.
and writes are buffered. 2. A consensus protocol is used (Raft) to insert the transaction into a distributed log. This is the only point at which global consensus is required. 3. Checks each replica for potential violations of serializability guarantees.
a single round of global consensus. - FaunaDB does not require clock synchronization or bounds on clock skew uncertainty across machines in a deployment. - FaunaDB has a global notion of "FaunaDB time" that is agreed upon by every node in the system. - FaunaDB supports serializable snapshot reads with no consensus or locking, so they complete with local datacenter latency.