summaryrefslogtreecommitdiff
path: root/docs/programmer_reference/am_misc_stability.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/programmer_reference/am_misc_stability.html')
-rw-r--r--docs/programmer_reference/am_misc_stability.html85
1 files changed, 49 insertions, 36 deletions
diff --git a/docs/programmer_reference/am_misc_stability.html b/docs/programmer_reference/am_misc_stability.html
index ea91bfeb..4ed6e148 100644
--- a/docs/programmer_reference/am_misc_stability.html
+++ b/docs/programmer_reference/am_misc_stability.html
@@ -14,7 +14,7 @@
<body>
<div xmlns="" class="navheader">
<div class="libver">
- <p>Library Version 11.2.5.3</p>
+ <p>Library Version 12.1.6.1</p>
</div>
<table width="100%" summary="Navigation header">
<tr>
@@ -22,9 +22,7 @@
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="am_misc_error.html">Prev</a> </td>
- <th width="60%" align="center">Chapter 4. 
- Access Method Wrapup
- </th>
+ <th width="60%" align="center">Chapter 4.  Access Method Wrapup </th>
<td width="20%" align="right"> <a accesskey="n" href="am_misc_dbsizes.html">Next</a></td>
</tr>
</table>
@@ -38,38 +36,53 @@
</div>
</div>
</div>
- <p>In the absence of locking, no guarantees are made about the stability
-of cursors in different threads of control. However, the Btree, Queue
-and Recno access methods guarantee that cursor operations, interspersed
-with any other operation in the same thread of control will always
-return keys in order and will return each non-deleted key/data pair
-exactly once. Because the Hash access method uses a dynamic hashing
-algorithm, it cannot guarantee any form of stability in the presence of
-inserts and deletes unless transactional locking is performed.</p>
- <p>If locking was specified when the Berkeley DB environment was opened, but
-transactions are not in effect, the access methods provide repeatable
-reads with respect to the cursor. That is, a <a href="../api_reference/C/dbcget.html#dbcget_DB_CURRENT" class="olink">DB_CURRENT</a> call
-on the cursor is guaranteed to return the same record as was returned
-on the last call to the cursor.</p>
- <p>In the presence of transactions, the Btree, Hash and Recno access
-methods provide degree 3 isolation (serializable transactions). The
-Queue access method provides degree 3 isolation with the exception that
-it permits phantom records to appear between calls. That is, deleted
-records are not locked, therefore another transaction may replace a
-deleted record between two calls to retrieve it. The record would not
-appear in the first call but would be seen by the second call. For
-readers not enclosed in transactions, all access method calls provide
-degree 2 isolation, that is, reads are not repeatable. A transaction
-may be declared to run with degree 2 isolation by specifying the
-<a href="../api_reference/C/dbcget.html#dbcget_DB_READ_COMMITTED" class="olink">DB_READ_COMMITTED</a> flag. Finally, Berkeley DB provides degree 1 isolation
-when the <a href="../api_reference/C/dbopen.html#dbopen_DB_READ_UNCOMMITTED" class="olink">DB_READ_UNCOMMITTED</a> flag is specified; that is, reads
-may see data modified in transactions which have not yet committed.</p>
- <p>For all access methods, a cursor scan of the database performed within
-the context of a transaction is guaranteed to return each key/data pair
-once and only once, except in the following case. If, while performing
-a cursor scan using the Hash access method, the transaction performing
-the scan inserts a new pair into the database, it is possible that
-duplicate key/data pairs will be returned.</p>
+ <p>
+ In the absence of locking, no guarantees are made about the
+ stability of cursors in different threads of control. However,
+ the Btree, Queue and Recno access methods guarantee that
+ cursor operations, interspersed with any other operation in
+ the same thread of control will always return keys in order
+ and will return each non-deleted key/data pair exactly once.
+ Because the Hash access method uses a dynamic hashing
+ algorithm, it cannot guarantee any form of stability in the
+ presence of inserts and deletes unless transactional locking
+ is performed.
+ </p>
+ <p>
+ If locking was specified when the Berkeley DB environment
+ was opened, but transactions are not in effect, the access
+ methods provide repeatable reads with respect to the cursor.
+ That is, a <a href="../api_reference/C/dbcget.html#dbcget_DB_CURRENT" class="olink">DB_CURRENT</a> call on the cursor is guaranteed to
+ return the same record as was returned on the last call to the
+ cursor.
+ </p>
+ <p>
+ In the presence of transactions, the Btree, Hash and Recno
+ access methods provide degree 3 isolation (serializable
+ transactions). The Queue access method provides degree 3
+ isolation with the exception that it permits phantom records
+ to appear between calls. That is, deleted records are not
+ locked, therefore another transaction may replace a deleted
+ record between two calls to retrieve it. The record would not
+ appear in the first call but would be seen by the second call.
+ For readers not enclosed in transactions, all access method
+ calls provide degree 2 isolation, that is, reads are not
+ repeatable. A transaction may be declared to run with degree 2
+ isolation by specifying the <a href="../api_reference/C/dbcget.html#dbcget_DB_READ_COMMITTED" class="olink">DB_READ_COMMITTED</a> flag. Finally,
+ Berkeley DB provides degree 1 isolation when the
+ <a href="../api_reference/C/dbopen.html#dbopen_DB_READ_UNCOMMITTED" class="olink">DB_READ_UNCOMMITTED</a> flag is specified; that is, reads may
+ see data modified in transactions which have not yet
+ committed.
+ </p>
+ <p>
+ For all access methods, a cursor scan of the database
+ performed within the context of a transaction is guaranteed to
+ return each key/data pair once and only once, except in the
+ following case. If, while performing a cursor scan using the
+ Hash access method, the transaction performing the scan
+ inserts a new pair into the database, it is possible that
+ duplicate key/data pairs will be returned.
+ </p>
</div>
<div class="navfooter">
<hr />