Flexible Commit Protocols for Advanced Transaction Processing

Although numerous extended models have been proposed to overcome the limitations of the standard transaction model, most of these models have been proposed with specific applications in mind and, therefore, they fail to support applications with slightly different requirements. In this paper, we propose the H-transaction framework along with a set of powerful transaction control primitives to support a wide range of transaction dependencies including flexible commit. Our set of transaction control primitives can be broadly classified into two types: basic primitives that are found in almost all conventional transaction processing systems and new primitives that lend expressive power and flexibility. These primitives can be used to separate the coding of the transactions from the application’s control aspects needed for preserving cooperation and dependencies among transactions. The reason behind this separation is to simplify the work of the programmer since transactions can be coded without worrying about managing concurrent computations, communications, etc. We show that our primitives have expressive power to support a number of extended transaction models including nested transactions, sagas, workflows and contingent transactions. Moreover, our primitives allow the programmers to define their own primitives — having well-defined interfaces — so that application specific transaction models such as the distributed multilevel secure transactions can also be supported.