Caring about Causality - now in Cassandra
Over the past few years, we've spent a bunch of time thinking about and designing scalable systems that provide causally-consistent wide-area replication. (Here, "we" means the team of Wyatt Lloyd, Michael Freedman, Michael Kaminsky, and myself; but if you know academia, you wouldn't be surprised that about 90% of the project was accomplished by Wyatt, who's a graduating Ph.D. student at the time of this writing.) I'm posting this because we've finally entered the realm of the practical, with the release of both the paper (to appear at NSDI'13) and code for our new implementation of causally-consistent replication (we call it Eiger) within the popular Cassandra key-value store. Why do we care about consistency in wide-area replication? Because there's a fundamental, unavoidable trade-off between having guaranteed low-latency access (meaning not having to send packets back-and-forth across the country) and making sure that every client sees