Issue No. 07 - July (1989 vol. 15)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.29482
<p>An orphan in a distributed transaction system is an activity executing on behalf of an aborted transaction. A method is proposed for managing orphans created by crashes and by aborts that ensures that orphans are detected and eliminated in a timely manner, and also prevents them from observing inconsistent states. The method uses timestamps generated at each site. Transactions are assigned timeouts at different sites. These timeouts are related by a global invariant, and they may be adjusted by simple two-phase protocols. The principal advantage of this method is simplicity: it is easy to understand, and to implement, and it can be proved correct. An 'eager' version of this method uses approximately synchronized real-time clocks to ensure that orphans are eliminated within a fixed duration, and a 'lazy' version uses logical clocks to ensure that orphans are eventually eliminated as information propagates through the system. The method is fail-safe: unsynchronized clocks and lost messages may affect performance, but they cannot produce inconsistencies or protect orphans from eventual elimination. Although the method is informally described in terms of two-phase locking, the formal argument shows it is applicable to any concurrency control method that preserved atomicity.</p>
timestamp based orphan elimination; distributed transaction system; aborted transaction; two-phase protocols; real-time clocks; concurrency control method; concurrency control; database management systems; distributed processing; transaction processing
M. Herlihy and M. McKendry, "Timestamp-Based Orphan Elimination," in IEEE Transactions on Software Engineering, vol. 15, no. , pp. 825-831, 1989.