United States Patent   Patent Number: 5,335,343
Lampson et al.  Date of Patent: Aug. 2, 1994
 DISTRIBUTED TRANSACTION
PROCESSING USING TWO-PHASE
COMMIT PROTOCOL WITH
PRESUMED-COMMIT WITHOUT LOG
 Inventors: Butler Lampson, Cambridge; David B. Lomet, Westford, both of Mass.
 Assignee: Digital Equipment Corporation, Maynard, Mass.
 Appl. No.: 909,556
 Filed: Jul. 6,1992
 Int. CI.5 G06T 15/00
 U.S. CI 395/575; 395/600;
364/281.9; 364/282.1; 364/282.2
 Field of Search 395/575, 600, 650;
364/282.2, 282.1, 281.9
 References Cited
U.S. PATENT DOCUMENTS
5,201,044 4/1993 Frey, Jr. et al 395/575
5,261,089 11/1993 Coleman et al 395/600
5,276,876 1/1994 Coleman et al 395/650
James W. Stamos et al, "A Low-Cost Atomic Commit Protocol", Ninth Symp. on Reliable Distributed Systems 9 Oct. 1990, IEEE, Los Alamitos, US, pp. 66-75 XP278460.
Liba Svobodova, "Resilient Distributed Computing", IEEE Transactions on Software Engineering, vol. SE-10, No. 3, May 1984, New York US, pp. 257-268. Jong Tae Lim et al, "A Checkpointing Scheme for Heterogeneous Distributed Database Systems", 11th Int. Conf. on Distributed Computing Systems, 20 May 1991, IEEE, Los Alamitos, US, pp. 608-615 XP221902. Sang Hyuk Son et al, "A Non-Intrusive Checkpointing Scheme in Distributed Computing", Fifteenth Ann. Int.
A two-phase commit protocol for a distributed transaction processing system employs the presumed-commit configuration, with the exception that the new presumed-commit protocol coordinator needs to forcewrite only a "commit" log record for committed transactions, not the previous force writing of two log records. In order to provide information needed to allow the coordinator to answer inquiries from subordinate processes following a crash or loss of communications, a technique for circumscribing the set of indeterminate transactions is employed. The transactions are numbered in increasing order, identified by a transaction ID (T_ID). The commit protocol is not allowed to begin unless the transaction ID of the committing transaction is within some preselected range of numbers starting from the highest-numbered stably-recorded transaction ID. That is, if the transaction number is too far removed from the highest TID of a stably stored log record (written to disk storage and able to survive a crash), then log records are 'written to disk until this condition hold. This may require writing to a disk log record for the committing transaction. Most commit transactions can, however, proceed without waiting for a disk write (forced log), and so performance is improved. A technique is disclosed for circumscribing the set of indeterminate transactions (not shown whether they committed, aborted or never started) so that information is small. It must be "permanently" retained, but the coordinator can store some of it in a cache (volatile memory) to answer inquiries.
11 Claims, 12 Drawing Sheets