Transaction processing can be formulated as a simple functional program operating on a stream of transaction requests and a tree-structured database. In this paper we use algebraic transformation of the initial program to yield an optimistic implementation in which unnecessary synchronization is eliminated, thereby allowing concurrent processing of transactions. A detailed simulation is used to study the program's behaviour and to assess scheduling policies based on the characteristics of the target architecture. Our results show that good speedups can be achieved, and that transformation can be used to derive a highly concurrent program with better locality and grain size. >
['Andrew J. Bennett', 'Paul H. J. Kelly', 'Ross Paterson']
Derivation and performance of a pipelined transaction processor