lenadro id fundamental techniques and building blocks
play

@lenadro id Fundamental techniques and building blocks @lenadro - PowerPoint PPT Presentation

Channel Into Universe Of Eventually Perfect Distributed Systems @lenadro id Fundamental techniques and building blocks @lenadro id Are fundamentals still important? @lenadro id Your System Your Trade-Offs @lenadro id hm Gap


  1. Channel Into Universe Of Eventually Perfect Distributed Systems @lenadro id

  2. Fundamental techniques 
 and building blocks @lenadro id

  3. Are fundamentals still important? @lenadro id

  4. Your System Your Trade-Offs @lenadro id

  5. hm… Gap Theory Practice @lenadro id

  6. There are challenges @lenadro id

  7. There are challenges Road to Correctness and Understanding @lenadro id

  8. Simple problems become hard @lenadro id

  9. Ordering is Hard @lenadro id

  10. Lamport Clock 1 2 3 A 3 2 1 B 2 2 and 3 could be concurrent @lenadro id

  11. Vector Clock {A:4, B:1, { A:1, B:1 } {A:2, B:1 } {A:3, B:1, A {A:2, B:2, B { B:1 } X Y C {A:2, B:1, C:1} {A:2, B:1, C:2} {A:2, B:1, @lenadro id

  12. Agreement In Distributed Systems @lenadro id

  13. Two Phase Commit 
 @lenadro id

  14. Blocking Failure in Two Phase Commit Crashed ? Crashed Committed X X OK Nodes are Not Committed blocked! ? ? Can’t decide Can’t decide! OK OK Not Committed Not Committed Can’t decide Can’t decide @lenadro id

  15. Hm… it’s blocking when there’re Two Phase Three Phase @lenadro id

  16. ? ? Crash X Pre- O committ Not Pre- ? ? O O Not Pre- Not Pre- @lenadro id

  17. Crash X Abor Comm Abor Abor @lenadro id

  18. Hm… it’s blocking when there are Two Phase Three Phase Might be inconsistent in asynchronous environment @lenadro id

  19. FLP: Impossibility Result “Distributed consensus is impossible in asynchronous ??? system where at least one X node can fail.” @lenadro id

  20. Hm… it’s blocking when there’re Two Phase Three Phase FLP Might be X inconsistent Paxos in asynchrono Classical Fast Paxos Zab Raf Multi-Paxos Vertical Chandra- Cheap Paxos Toueg @lenadro id

  21. Paxos @lenadro id

  22. Trade-offs Optimizations Weak or strong leader? Proposal Copying Quorum size? Distinguished Proposer Number of Failures Combining Roles Tolerated? Strategies for Proposal Numbers @lenadro id

  23. Discovering New Trade-offs and Optimizations Quorum intersection revised Quorum based value selection Proposal numbers uniqueness And many more… cl.cam.ac.uk/techreports/UCAM-CL-TR-935.pdf by Dr. Heidi Howard @lenadro id

  24. Consistent Replication? @lenadro id

  25. dl.acm.org/citation.cfm?id=3183713.3196937 @lenadro id

  26. Conflict-Free Replicated Data Types @lenadro id

  27. (_, 1, 1) (1, _, _) (1, 0, 0) (0, 0, 0) (1, 1, 1) (1, _, _) (_, 1, 1) (0, 1, 1) @lenadro id

  28. add X delete X add X ? delete X @lenadro id

  29. Cosmos DB x: { b, c } x: { a, b, c } x: { a } @lenadro id

  30. Failure Detection @lenadro id

  31. Completeness : can all nodes discover all the failures? Accuracy : how precise can a node be in its failure suspicions? @lenadro id

  32. Understanding Trade-offs Helps ✓ To make the right choices 
 ✓ To know what correct means for us 
 ✓ To verify and maintain correctness in practice @lenadro id

  33. Maintaining Correctness In Real Systems @lenadro id

  34. Model Checking @lenadro id

  35. Verifying and Maintaining Correctness in Practical Real-World Systems @lenadro id

  36. Kafka System Tests 450+ system tests, 6800+ unit tests, 600+ integration tests testing.confluent.io/confluent-kafka-system-test-results confluent.io/blog/apache-kafka-tested @lenadro id

  37. 
 Cassandra Tests Replay testing Dynamic test generation Property-based testing and fuzzing Distributed tests and fault-injection Upgrade testing cassandra.apache.org/blog/2018/10/17/finding_bugs_with_property_based_testing.html cassandra.apache.org/blog/2018/08/21/testing_apache_cassandra.html @lenadro id

  38. + Model-checking + Property-based testing and fuzzing + Performance and upgrade testing + Unit and integration testing + Fault injection + Attention to exception handling logic + С ode reviews @lenadro id

  39. Take-Aways @lenadro id

  40. ✓ Know your trade-offs ✓ Create understandable systems 
 ✓ Invest in correctness, it doesn’t come for free 
 ✓ Don’t trust: test and verify 
 ✓ Automate, but be ready when things fail 
 ✓ Remember the real problem you are solving @lenadro id

  41. @lenadro id

  42. #SystemsYouUnderstand @lenadro id

Recommend


More recommend