Resource oriented composite transactions
Abstract
Composite transaction is a set of two or more related transactions managed in a coordinated logical unit of work. Composite transaction can span multiple data sources or multiple databases. Sometime, we use composite transaction only because we want to split long transactions into short transactions for less lock and more concurrency. In a very large scale distributed system, all of these are valid reasons to use composite transactions. There are different models for composite transaction. Distributed transaction model is widely used in practice since XA specification was released in 1991. However XA specification is notorious for heavy performance cost. To deal with internet scale transaction systems, we have to have some compromised solutions for both performance and consistency considerations. In this paper, we described the methodology and transaction programming model to simplify the system design and provide several guidelines for very large scale distributed transaction systems. We also described the differences between this design model and existing models for composite transaction including distributed transactions (XA 2PC), Sagas and federated transactions. Our design model is practicable and supports true concurrency. It targets at a special type of composite transactions named 'Resource Oriented Composite Transaction' (ROCT) which is very common in banking systems, e-commerce systems, airline ticket-sale system, and etc. And our new transaction programming model can be widely used for this type of composite transactions. © 2012 IEEE.