Process Locking: A Protocol based on Ordered Shared Locks for the Execution of Transactional Processes
|Title||Process Locking: A Protocol based on Ordered Shared Locks for the Execution of Transactional Processes|
|Booktitle||Proceedings of the ACM Symposium on Principles of Database Systems (PODS'01)Santa Barbara, California, USA|
AbstractIn this paper, we propose process locking, a dynamic scheduling protocol based on ideas of ordered shared locks, that allows for the correct concurrent and fault-tolerant execution of transactional processes. Transactional processes are well defined, complex structured collections of transactional services. The process structure comprises flow of control between single process steps and also considers alternatives for failure handling purposes. Moreover, the individual steps of a process may have different termination characteristics, i.e., they cannot be compensated once they have committed. All these constraints have to be taken into consideration when deciding how to interleave processes. However, due to the higher level semantics of processes, standard locking techniques based on shared and exclusive locks on data objects cannot be applied. Yet, process locking addresses both atomicity and isolation simultaneously at the appropriate level, the scheduling of processes, and accounts for the various constraints imposed by processes. In addition, process locking aims at providing a high degree of concurrency while, at the same time, minimizing execution costs. This is done by allowing cascading aborts for rather simple processes while this is prevented for complex, long-running processes within the same framework.