[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] Skip to the content of the web site.

WatCA: The Waterloo Consistency Analyzer

Find us on GitHub!

https://github.com/wgolab/WatCA

Credits

This project is sponsored by the Google Faculty Awards Program.

What it does

WatCA is a software tool that measures the consistency observed by client applications interacting with distributed storage systems. The initial prototype is targeted at key-value storage systems that support get and put operations. WatCA can be used to verify the correctness of key-value stores that promise strong forms of consistency, or to determine the actual behavior of weakly consistent systems in practice, for example answering questions like how soon is eventual?

How it works

Clients must be instrumented to collect logs of operations applied against the storage system. The logs are then streamed to the consistency analyzer for real-time processing. The tool internally merges logs from different clients and performs calculations over a user-specified log suffix (e.g., latest 1 second). A variety of consistency metrics can be calculated to quantify both the frequency and severity of consistency anomalies, such as stale reads. The output of the tool can be used, among other things, to determine whether the behavior of a storage system satisfies linearizability (i.e., the illusion that operations take effect instantaneously at some point between their start and finish times).

Sneak peek

We plan to release the source code of the consistency analyzer soon. We have also built a graphical front end to YCSB for the purpose of demonstrating the tool to researchers and practitioners. Here's a recent screen shot showing YCSB controls on the left, and performance metrics displayed in real time on the right. Click on the image to see the original high-resolution screen shot.