It’s been a long wait.
It was our great pleasure to present the MixT paper at this year’s PLDI, but we always felt that the conference version was missing a few details and extra explanations which (we sincerely hope) would go a long way towards explaining the MixT approach to distributed transactions. So it makes us overjoyed to finally make the extended Technical Report of the MixT paper available to the public.
So what’s this MixT thing all about, anyway?
MixT is a domain-specific programming language for writing transactions, embedded into C++. What makes MixT unique is its approach to consistency and transaction isolation: rather than associate consistency with operations, MixT associates consistency with data and expects programmers to use multiple consistency models in the same application. With MixT:
Transactions compile down to a sequence of standard, single-consistency transactions appropriate for execution on any number of SQL/NoSQL/NewSQL datastores.
An information-flow type system keeps your consistent data safe from corruption by less-consistent data.
You can use multiple consistency models even within a single transaction.
A single transaction can execute across multiple independent datastores, while still preserving write atomicity.
Transactions are expressive; you can define custom operations as methods, use while-loops and if-statements, and generally write code that looks and feels like the surrounding C++.
But the best explanation is the paper.
What’s new for the TR?
The technical report contains many details not previously seen in the MixT paper! You can expect to see extended rules for typing and translation, an all-new section featuring correctness arguments and read witnesses, and a loose formalization of how to lift isolation levels (in the database sense) to distributed consistency models. And more!
You can find it here