Abstract
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. >
Highlights
A(distributed system consists of multiple computers called sites) that communicate through a network
In a system based on twophase locking, a site crash and recovery may release a transaction’s locks before that transaction has finished acquiring locks at other sites, an inadvertent violation of the two-phase locking discipline. Such inconsistencies may be of little concern in conventional database systems, where a transaction does not interact with the outside world until it commits
The restrictions imposed by our method can be generalized to apply to arbitrary concurrency control mechanisms as follows: no transaction may execute an operation at an object after its quiesce time there has elapsed, and no transaction may abort at an object before its release time there has elapsed
Summary
A(distributed system consists of multiple computers called sites) that communicate through a network. Well-known techniques such as two-phase locking [31, 1151 and commit protocols 161, [21] ensure atomicity for committed transactions These techniques make few guarantees about orphans, whi-ch are activities executing on behalf of aborted transactions. In a system based on twophase locking, a site crash and recovery may release a transaction’s locks before that transaction has finished acquiring locks at other sites, an inadvertent violation of the two-phase locking discipline Such inconsistencies may be of little concern in conventional database systems, where a transaction does not interact with the outside world until it commits. It is acceptable for an automatic teller machine to inform a customer that a requested transfer or withdrawal has not been performed, but it may not be acceptable to display nonsensical account balances before announcing the abort.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.