adya checks histories of database transactions for isolation anomalies: G0, G1a/b/c, G-single, G-nonadjacent, G2-item and their process and real-time variants. It follows the approach of Jepsen's Elle and reads the same history formats (elle-cli JSON, JSON lines, Jepsen EDN), as a native binary or a library.

It also runs workloads: adya run drives SQLite, Postgres, MySQL, or any process that speaks a small JSON-lines protocol, records the history, checks it, and can inject faults through shell commands.

Validation: it matches all 56 of elle-cli's list-append and rw-register expected results, and CI compares it against the JVM Elle on random histories.

cargo install adya adya run sim -i snapshot-isolation -c serializable 

Feedback on the library API is welcome.

1 post - 1 participant

Read full topic