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

Jepsen @ Tendermint

Jepsen @ Tendermint

A short presentation explaining what Jepsen is and how it roughly works. It also highlights the specific test cases in Tendermint.

D83b63db79b42978fe35e120550ca180?s=128

Anton Kaliaev

March 13, 2021
Tweet

Transcript

  1. github.com/melekes Jepsen

  2. github.com/aphyr A framework for distributed systems veri fi cation, with

    fault injection
  3. • Linearizability checkers (Knossos, Elle) • Fault injection (network partitions,

    crashes, clock skews) • Visualization • Flexible API • it’s written in Clojure 😒
  4. https://jepsen.io/consistency Linearizability

  5. Transaction Isolation Levels in Posgresql https://www.postgresql.org/docs/9.5/transaction-iso.html

  6. “each operation appears to take e ff ect atomically at

    some point between its invocation and completion.” https://aphyr.com/posts/313-strong-consistency-models
  7. Jepsen & Tendermint https://jepsen.io/analyses/tendermint-0-10-2 https://github.com/tendermint/jepsen

  8. Test scenarios • Network partitions (different combinations) • Clock skews

    • Crashes • Changing validators • Truncating logs 

  9. "Tendermint appears to satisfy its safety guarantees” Sept. 2017.

  10. What about now?

  11. Everything still looks good👍

  12. “Talk is cheap. Show me the code.” Linus Torvalds

  13. None
  14. None
  15. None
  16. Nemesis can be used to inject faults

  17. So… how does Jepsen work?

  18. https://www.youtube.com/watch?v=OPJ_IcdSqig Black-box Isolation Checking with Elle (Kyle Kingsbury, Jepsen.io)

  19. https://www.youtube.com/watch?v=OPJ_IcdSqig Black-box Isolation Checking with Elle (Kyle Kingsbury, Jepsen.io)

  20. https://www.youtube.com/watch?v=OPJ_IcdSqig Black-box Isolation Checking with Elle (Kyle Kingsbury, Jepsen.io)

  21. https://github.com/tendermint/jepsen

  22. github.com/melekes Thank you!