Anyone who has been to my office has probably noticed that there are two quotes up on my whiteboard. I keep them there as reminders, because I think they capture the boundaries of this space wonderfully. [Both are quotes -- post a comment if you know who they're from :)]
The first quote is “2PC is simple, except we're in a hurry”. This really does capture much of the work that has gone on in transactions in the past 20 years. I still recommend the chapter “Atomic Transactions” from Distributed Systems--Architecture and Implementation: An Advanced Course (Springer Study Edition) as the best starting point for understanding what transactions are, and are not, and what problems they are trying to solve, and which ones they aren't.
The problem is that it describes an approach that no one can afford to use. So, dsitributed transactions have a long history of optimizations that seek to soften this ideal picture in ways that don't actually matter for the uses it is put to. Sometimes these are in the commitment protocol (e.g. Presumed Abort, readonly voting), sometimes they are in serialization (various isolation levels, escrow locking), and sometimes they are in implementation structures (e.g. System.Transactions and its lightweight transaction manager).
The second quote describes the limits of what possibilities are actually available: “Without correctness, any level of performance is possible". Much of our focus is invariably on providing available and high performance services. However, these should never come at the cost of correctness. We preclude optimizations that give the wrong answer “occasionally”, and especially when you can't tell it gave the wrong answer, or availability decisions that has the transaction manager ignore internal inconsistencies and simply continue. After all, if we're willing to give the wrong answer, the return statement is much more performant, and more available than anything else we could do...
Together, these form our overall story: how to achieve a viable approximation of the ideal atomic transaction vision, accepting that we're all in a hurry.
Posted
Apr 14 2005, 07:43 AM
by
jim-johnson