Having constraints and guarantees about the way a program executes makes it much easier for developers to reason about concurrency.
It's a common belief that providing serializability, one of the strongest forms of consistency in transaction processing, is too expensive for general use.
We describe research that introduces new techniques for making conflicting serializable transactions faster, on both multi-core and distributed systems.