diff options
Diffstat (limited to 'bdb/docs/ref/lock/twopl.html')
-rw-r--r-- | bdb/docs/ref/lock/twopl.html | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/bdb/docs/ref/lock/twopl.html b/bdb/docs/ref/lock/twopl.html deleted file mode 100644 index 6cf112c0979..00000000000 --- a/bdb/docs/ref/lock/twopl.html +++ /dev/null @@ -1,50 +0,0 @@ -<!--$Id: twopl.so,v 10.7 2000/03/18 21:43:14 bostic Exp $--> -<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.--> -<!--All rights reserved.--> -<html> -<head> -<title>Berkeley DB Reference Guide: Locking with transactions: two-phase locking</title> -<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> -<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> -</head> -<body bgcolor=white> - <a name="2"><!--meow--></a> -<table><tr valign=top> -<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Locking Subsystem</dl></h3></td> -<td width="1%"><a href="../../ref/lock/notxn.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/am_conv.html"><img src="../../images/next.gif" alt="Next"></a> -</td></tr></table> -<p> -<h1 align=center>Locking with transactions: two-phase locking</h1> -<p>Berkeley DB uses a locking protocol called two-phase locking. This is the -traditional protocol used in conjunction with lock-based transaction -systems. -<p>In a two-phase locking (2PL) system, transactions are broken up into two -distinct phases. During the first phase, the transaction only acquires -locks. During the second phase, the transaction only releases locks. -More formally, once a transaction releases a lock, it may not acquire any -additional locks. Practically, this translates into a system where locks -are acquired as they are needed throughout a transaction and retained -until the transaction ends, either by committing or aborting. In Berkeley DB, -locks are released during <a href="../../api_c/txn_abort.html">txn_abort</a> or <a href="../../api_c/txn_commit.html">txn_commit</a>. The -only exception to this protocol occurs when we use lock-coupling to -traverse a data structure. If the locks are held only for traversal -purposes, then the locks may be released before transaction commit or -abort. -<p>For applications, the implications of 2PL are that long-running -transactions will hold locks for a long time. When designing -applications, lock contention should be considered. In order to reduce -the probability of deadlock and achieve the best level of concurrency -possible, the following guidelines are helpful. -<p><ol> -<p><li>When accessing multiple databases, design all transactions so -that they access the files in the same order. -<p><li>If possible, access your most hotly contested resources last -(so that their locks are held for the shortest time possible). -<p><li>If possible, use nested transactions to protect the parts of -your transaction most likely to deadlock. -</ol> -<table><tr><td><br></td><td width="1%"><a href="../../ref/lock/notxn.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/am_conv.html"><img src="../../images/next.gif" alt="Next"></a> -</td></tr></table> -<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> -</body> -</html> |