Model-Based Verification of Storage Engine
Introduced model-based verification to formally check the conformance of the WiredTiger storage engine implementation against an abstract specification of its semantics. This approach leverages a TLA+ specification of the storage engine interface and uses a modified TLC model checker to generate tens of thousands of API call test cases, ensuring the implementation matches the contract relied upon by the distributed transactions protocol. The process achieved high test coverage for a small model. This post details the application of trace-checking to the MongoDB server's Raft-like replication protocol, using JavaScript integration tests and a randomized 'rollback fuzzer' to generate execution traces. These traces are translated into TLA+ and checked against the RaftMongo.tla specification to verify conformance.
Timeline

-8fzonbj9v7.png)



