Mateo Sanabria, Nicolás Cardozo

Syncordian: A Byzantine Fault Tolerant CRDT without Interleaving anomalies

BEFORE WE START

This is not a finish project, we are actively working on it.  Feel free to point mistakes or inconsistencies, peer review is always appreciated 
  • What is a CRDT?
    • Interleaving Anomalies?
  • Byzantine Fault Tolerant?

Syncordian: A Byzantine Fault Tolerant CRDT without Interleaving anomalies

Les't remember some CS foundation

The CAP THEOREM

CAP: Any distributed data store can provide only two of the following three guarantees
  • Consistency
    Every read receives the most recent write or an error
  • Availability
    Every request receives a (non-error) response, without the guarantee that it contains the most recent write

  • Partition Tolerance

    The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes

For example, in the context of internet-scale distribution requires data replication across multiple geographic locations with low latency and high availability

Strong Consistency:
  • Requires coordination for executing operations.
  • Challenges arise in the presence of network partitions or failures. 
Weak Consistency:
  • Allows temporary divergence among replicas.
  • Requires a mechanism for merging concurrent updates into a common state.

Eventual Consistency

Informally, eventual consistency means that replicas eventually reach the same final value if clients stop submitting updates:
Eventual Delivery: An update delivered at
some correct replica is eventually delivered to all correct replicas


Convergence: Correct replicas that have delivered the same updates eventually reach equivalent state
  • Some Eventual Consistency (EC) systems execute updates intermediately, only to later identify conflicts and roll back, resulting in resource wastage.
  • Resolving conflicts often necessitates a consensus among replicas to ensure consistent arbitration.
  • To address this, a stronger condition is needed to enhance efficiency and minimize resource wastage in EC systems.

Eventual Consistency

strong Eventual Consistency (SEC)

Strong Convergence: Correct replicas that have delivered the same updates have equivalent state
EventualConsitency \wedge StrongConvergence \\ \equiv SEC

Conflict-free Replicated Data Types (CRDT)

Is an abstract data type designed to be replicated at multiple nodes and exhibiting the following properties:
  • Any replica can be modified without coordinating with any other replicas.
  • When any two replicas have received the same set of updates.

Conflict-free Replicated Data Types (CRDT)

CRDTs rely on commutative operations to guarantee strong eventual consistency this avoids the need for synchronization, yielding high availability and low latency 

Availability + Partition Tolerance + SEC

The 'best' case of application for a complex crdt

peer to peer COLLABORATIVE   TExt editing

INTERLEAVING ANOMALIES

BYZANTINE FAULT

WHAT ABOUT SYNCORDIAN?

Context: peer to peer COLLABORATIVE text editing
  • P2P Network, all messages will eventually arrive. 
  • Multiple peers in the network.
  • Each pear has its document' copy.
  • Each honest peer can edit the document: Insert and Delete.

SYNCORDIAN

SYNCORDIAN: Document

A syncordian document is a list of line. A line of a document has:
  • (line_id) :: float -> allows to know the relative position of the line in the document.
  • status :: :tombstone | :aura | :settled
  • insertion_attempts :: integer -> Counter to keep track of the insertion attempts.
  • content :: String.t() -> The actual content of the line. 
  • siganture :: String.t() -> A hash signature use to prevent Byzantine faults

SYNCORDIAN: Peer

A peer syncordian peer is composed of :
  • A peer ID
  • A syncordian document
  • A vector clock
Board Time!