From 780b92ada9afcf1d58085a83a0b9e6bc982203d1 Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Tue, 17 Feb 2015 17:25:57 +0000 Subject: Imported from /home/lorry/working-area/delta_berkeleydb/db-6.1.23.tar.gz. --- docs/programmer_reference/txn_limits.html | 95 +++++++++++++++++-------------- 1 file changed, 52 insertions(+), 43 deletions(-) (limited to 'docs/programmer_reference/txn_limits.html') diff --git a/docs/programmer_reference/txn_limits.html b/docs/programmer_reference/txn_limits.html index 5c8e87f8..c30639c6 100644 --- a/docs/programmer_reference/txn_limits.html +++ b/docs/programmer_reference/txn_limits.html @@ -14,7 +14,7 @@
-

Cursors

+

Cursors

-

When using transactions, cursors are localized to a single transaction. -That is, a cursor may not span transactions, and must be opened and -closed within a single transaction. In addition, intermingling -transaction-protected cursor operations and non-transaction-protected -cursor operations on the same database in a single thread of control is -practically guaranteed to deadlock because the locks obtained for -transactions and non-transactions can conflict.

+

+ When using transactions, cursors are localized to a + single transaction. That is, a cursor may not span + transactions, and must be opened and closed within a + single transaction. In addition, intermingling + transaction-protected cursor operations and + non-transaction-protected cursor operations on the same + database in a single thread of control is practically + guaranteed to deadlock because the locks obtained for + transactions and non-transactions can conflict. +

-

Multiple Threads of Control

+

Multiple Threads of Control

-

Because transactions must hold all their locks until commit, a single -transaction may accumulate a large number of long-term locks during its -lifetime. As a result, when two concurrently running transactions -access the same database, there is strong potential for conflict. -Although Berkeley DB allows an application to have multiple outstanding -transactions active within a single thread of control, great care must -be taken to ensure that the transactions do not block each other (for -example, attempt to obtain conflicting locks on the same data). If two -concurrently active transactions in the same thread of control do -encounter a lock conflict, the thread of control will deadlock so that -the deadlock detector cannot detect the problem. In this case, there -is no true deadlock, but because the transaction on which a transaction -is waiting is in the same thread of control, no forward progress can be -made.

+

+ Because transactions must hold all their locks until + commit, a single transaction may accumulate a large number + of long-term locks during its lifetime. As a result, when + two concurrently running transactions access the same + database, there is strong potential for conflict. Although + Berkeley DB allows an application to have multiple + outstanding transactions active within a single thread of + control, great care must be taken to ensure that the + transactions do not block each other (for example, attempt + to obtain conflicting locks on the same data). If two + concurrently active transactions in the same thread of + control do encounter a lock conflict, the thread of + control will deadlock so that the deadlock detector cannot + detect the problem. In this case, there is no true + deadlock, but because the transaction on which a + transaction is waiting is in the same thread of control, + no forward progress can be made. +

-- cgit v1.2.1