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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend