quickcheck-state-machine
quickcheck-state-machine copied to clipboard
Improving the linearisability checker
Some links:
- http://www.anishathalye.com/2017/06/04/testing-distributed-systems-for-linearizability/
- https://github.com/anishathalye/porcupine
- https://github.com/ahorn/linearizability-checker
We should also think about incomplete histories...
To address the performance problem, we added a new algorithm to Knossos, based on Lowe, Horn and Kroening’s refinement of Wing & Gong’s algorithm for verifying linearizability. Following Lowe’s approach, we apply both Lowe’s just-in-time graph search (already a part of Knossos) and Wing & Gong’s backtracking search in parallel, and use whichever strategy terminates first. This led to dramatic speedups—two orders of magnitude—in verifying Tendermint histories.
Quoted from: https://jepsen.io/analyses/tendermint-0-10-2
https://github.com/rystsov/fast-jepsen
Concurrent Specifications Beyond Linearizability:
- http://drops.dagstuhl.de/opus/volltexte/2018/10088/pdf/LIPIcs-OPODIS-2018-28.pdf
- http://personal.strath.ac.uk/jeremy.ledent/slides_OPODIS.pdf