  We present a framework for efficient stateless model checking (SMC) of
concurrent programs under five prominent models of causal consistency,
CCv,CM,CC, Read Committed and Read Atomic. Our approach is based on exploring
traces under the program order (po) and the reads from (rf) relations. Our SMC
algorithm is provably optimal in the sense that it explores each po and rf
relation exactly once. We have implemented our framework in a tool called
TRANCHECKER. Experiments show that TRANCHECKER performs well in detecting
anamolies in classical distributed databases benchmarks.
