Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Convergent/Divergent

 Convergent/Divergent

Presented at EmberConf 2014

Christopher Meiklejohn

March 26, 2014
Tweet

More Decks by Christopher Meiklejohn

Other Decks in Programming

Transcript

  1. @ C M E I K CMEIKLEJOHN B A S

    H O GEORGIA TECH TDISTRIBUTED 2
  2. The data consistency model specifies a contract between programmer and

    system, wherein the system guarantees that if the programmer follows the rules, memory will be consistent and the results of memory operations will be predictable. ! Wikipedia, Consistency Model 17
  3. A fundamental problem in distributed computing is to achieve overall

    system reliability in the presence of a number of faulty processes. This often requires processes to agree on some data value that is needed during computation. Examples of applications of consensus include whether to commit a transaction to a database, agreeing on the identity of a leader, state machine replication, and atomic broadcasts. ! Wikipedia, Consensus 23
  4. CONFLICT FREE R E P L I C A T

    E D DATA TYPES 34
  5. C O N V E R G E N T

    C O M M U T A T I V E R E P L I C A T E D DATA TYPES 35
  6. 42 b a c a, b a, c a, b,

    c SET; MERGE: UNION b, c
  7. [ [{1, a}], [] ] [ [{1, a}], [] ]

    [ [{1, a}], [{1, a}] ] [ [{1, a}], [{1, a}] ]
  8. [ [{1, a}], [] ] [ [{1, a}], [] ]

    [ [{1, a}], [{1, a}] ] [ [{1, a}], [{1, a}] ] [ [{1, a}, {2, a}], [{1, a}] ]
  9. [ [{1, a}], [] ] [ [{1, a}], [] ]

    [ [{1, a}], [{1, a}] ] [ [{1, a}], [{1, a}] ] [ [{1, a}, {2, a}], [{1, a}] ] [ [{1, a}, {2, a}], [{1, a}] ]
  10. [ [{1, a}], [] ] [ [{1, a}], [] ]

    [ [{1, a}, {2, b}], [] ]
  11. [ [{1, a}], [] ] [ [{1, a}], [] ]

    [ [{1, a}, {2, b}], [] ] [ [{1, a}], [{1, a}] ]
  12. [ [{1, a}], [] ] [ [{1, a}], [] ]

    [ [{1, a}, {2, b}], [] ] [ [{1, a}], [{1, a}] ] [ [{1, a}, {2, b}], [{1, a}] ]