1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6 <title>Berkeley DB Programmer's Reference Guide</title>
7 <link rel="stylesheet" href="gettingStarted.css" type="text/css" />
8 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
9 <link rel="start" href="index.html" title="Berkeley DB Programmer's Reference Guide" />
10 <link rel="next" href="preface.html" title="Preface" />
13 <div xmlns="" class="navheader">
15 <p>Library Version 11.2.5.3</p>
17 <table width="100%" summary="Navigation header">
19 <th colspan="3" align="center">Berkeley DB Programmer's Reference Guide</th>
22 <td width="20%" align="left"> </td>
23 <th width="60%" align="center"> </th>
24 <td width="20%" align="right"> <a accesskey="n" href="preface.html">Next</a></td>
29 <div class="book" lang="en" xml:lang="en">
30 <div class="titlepage">
33 <h1 class="title"><a id="idm1386312"></a>Berkeley DB Programmer's Reference Guide</h1>
36 <div class="legalnotice">
37 <a id="idm1958888"></a>
38 <p class="legalnotice-title">
43 This documentation is distributed under an open source license.
44 You may review the terms of this license at:
45 <a class="ulink" href="http://www.oracle.com/technetwork/database/berkeleydb/downloads/oslicense-093458.html" target="_top">http://www.oracle.com/technetwork/database/berkeleydb/downloads/oslicense-093458.html</a>
55 Sleepycat are trademarks or registered trademarks of
56 Oracle. All rights to these marks are reserved.
57 No third-party use is permitted without the
58 express prior written consent of Oracle.
62 Other names may be trademarks of their respective owners.
65 To obtain a copy of this document's original source code, please
66 submit a request to the Oracle Technology Network forum at:
67 <a class="ulink" href="http://forums.oracle.com/forums/forum.jspa?forumID=271" target="_top">http://forums.oracle.com/forums/forum.jspa?forumID=271</a>
75 <p class="pubdate">5/11/2012</p>
82 <b>Table of Contents</b>
86 <span class="preface">
87 <a href="preface.html">Preface</a>
94 <a href="preface.html#conventions">Conventions Used in this Book</a>
99 <a href="moreinfo.html">For More Information</a>
106 <a href="moreinfo.html#contact_us">Contact Us</a>
114 <span class="chapter">
115 <a href="intro.html">1.
124 <a href="intro.html#intro_data">An introduction to data management</a>
129 <a href="intro_terrain.html">Mapping the terrain: theory and practice</a>
136 <a href="intro_terrain.html#idm1895840">Data access and data management</a>
141 <a href="intro_terrain.html#idm2229408">Relational databases</a>
146 <a href="intro_terrain.html#idm2389408">Object-oriented databases</a>
151 <a href="intro_terrain.html#idm2511776">Network databases</a>
156 <a href="intro_terrain.html#idm1916248">Clients and servers</a>
163 <a href="intro_dbis.html">What is Berkeley DB?</a>
170 <a href="intro_dbis.html#idm1665072">Data Access Services</a>
175 <a href="intro_dbis.html#idm1554168">Data management services</a>
180 <a href="intro_dbis.html#idm157888">Design</a>
187 <a href="intro_dbisnot.html">What Berkeley DB is not</a>
194 <a href="intro_dbisnot.html#idm1802280">Berkeley DB is not a relational database</a>
199 <a href="intro_dbisnot.html#idm2288920">Berkeley DB is not an object-oriented database</a>
204 <a href="intro_dbisnot.html#idm2354536">Berkeley DB is not a network database</a>
209 <a href="intro_dbisnot.html#idm2301256">Berkeley DB is not a database server</a>
216 <a href="intro_need.html">Do you need Berkeley DB?</a>
221 <a href="intro_what.html">What other services does Berkeley DB provide?</a>
226 <a href="intro_distrib.html">What does the Berkeley DB distribution include?</a>
231 <a href="intro_where.html">Where does Berkeley DB run?</a>
236 <a href="intro_products.html">The Berkeley DB products</a>
243 <a href="intro_products.html#idm2240216">Berkeley DB Data Store</a>
248 <a href="intro_products.html#idm1817232">Berkeley DB Concurrent Data Store</a>
253 <a href="intro_products.html#idm1869736">Berkeley DB Transactional Data Store</a>
258 <a href="intro_products.html#idm1577368">Berkeley DB High Availability</a>
266 <span class="chapter">
267 <a href="am_conf.html">2.
268 Access Method Configuration
276 <a href="am_conf.html#am_conf_intro">
277 What are the available access methods?
285 <a href="am_conf.html#idm2161896">Btree</a>
290 <a href="am_conf.html#idp32168">Hash</a>
295 <a href="am_conf.html#idm2680320">Heap</a>
300 <a href="am_conf.html#idm2335248">Queue</a>
305 <a href="am_conf.html#idm1801904">Recno</a>
312 <a href="am_conf_select.html">Selecting an access method</a>
319 <a href="am_conf_select.html#idm1772384">Btree or Heap?</a>
324 <a href="am_conf_select.html#idm2622384">Hash or Btree?</a>
329 <a href="am_conf_select.html#idm1789184">Queue or Recno?</a>
336 <a href="am_conf_logrec.html">Logical record numbers</a>
341 <a href="general_am_conf.html">General access method configuration</a>
348 <a href="general_am_conf.html#am_conf_pagesize">Selecting a page size</a>
353 <a href="general_am_conf.html#am_conf_cachesize">Selecting a cache size</a>
358 <a href="general_am_conf.html#am_conf_byteorder">Selecting a byte order</a>
363 <a href="general_am_conf.html#am_conf_dup">Duplicate data items</a>
368 <a href="general_am_conf.html#am_conf_malloc">Non-local memory allocation</a>
375 <a href="bt_conf.html">Btree access method specific configuration</a>
382 <a href="bt_conf.html#am_conf_bt_compare">Btree comparison</a>
387 <a href="bt_conf.html#am_conf_bt_prefix">Btree prefix comparison</a>
392 <a href="bt_conf.html#am_conf_bt_minkey">Minimum keys per page</a>
397 <a href="bt_conf.html#am_conf_bt_recnum">Retrieving Btree records by logical record number</a>
402 <a href="bt_conf.html#am_conf_bt_compress">Compression</a>
409 <a href="hash_conf.html">Hash access method specific configuration</a>
416 <a href="hash_conf.html#am_conf_h_ffactor">Page fill factor</a>
421 <a href="hash_conf.html#am_conf_h_hash">Specifying a database hash</a>
426 <a href="hash_conf.html#am_conf_h_nelem">Hash table size</a>
433 <a href="heap_conf.html">Heap access method specific configuration</a>
438 <a href="rq_conf.html">Queue and Recno access method specific configuration</a>
445 <a href="rq_conf.html#am_conf_recno">Managing record-based databases</a>
450 <a href="rq_conf.html#am_conf_extentsize">Selecting a Queue extent size</a>
455 <a href="rq_conf.html#am_conf_re_source">Flat-text backing files</a>
460 <a href="rq_conf.html#am_conf_renumber">Logically renumbering records</a>
468 <span class="chapter">
470 Access Method Operations
478 <a href="am.html#am_open">Database open</a>
483 <a href="am_opensub.html">Opening multiple databases in a single file</a>
490 <a href="am_opensub.html#idp724392">Configuring databases sharing a file</a>
495 <a href="am_opensub.html#idp768720">Caching databases sharing a file</a>
500 <a href="am_opensub.html#idp769416">Locking in databases based on sharing a file</a>
507 <a href="am_partition.html">Partitioning databases</a>
514 <a href="am_partition.html#am_partition_keys">Specifying partition keys</a>
519 <a href="am_partition.html#am_partition_function">Partitioning callback</a>
524 <a href="am_partition.html#partition_file_placement">Placing partition files</a>
531 <a href="am_get.html">Retrieving records</a>
536 <a href="am_put.html">Storing records</a>
541 <a href="am_delete.html">Deleting records</a>
546 <a href="am_stat.html">Database statistics</a>
551 <a href="am_truncate.html">Database truncation</a>
556 <a href="am_upgrade.html">Database upgrade</a>
561 <a href="am_verify.html">Database verification and salvage</a>
566 <a href="am_sync.html">Flushing the database cache</a>
571 <a href="am_close.html">Database close</a>
576 <a href="am_second.html">Secondary indexes</a>
583 <a href="am_second.html#idp863384">Error Handling With Secondary Indexes</a>
590 <a href="am_foreign.html">Foreign key indexes</a>
595 <a href="am_cursor.html">Cursor operations</a>
602 <a href="am_cursor.html#am_curget">Retrieving records with a cursor</a>
607 <a href="am_cursor.html#am_curput">Storing records with a cursor</a>
612 <a href="am_cursor.html#am_curdel">Deleting records with a cursor</a>
617 <a href="am_cursor.html#am_curdup">Duplicating a cursor</a>
622 <a href="am_cursor.html#am_join">Equality Join</a>
627 <a href="am_cursor.html#am_count">Data item count</a>
632 <a href="am_cursor.html#am_curclose">Cursor close</a>
640 <span class="chapter">
641 <a href="am_misc.html">4.
650 <a href="am_misc.html#am_misc_align">Data alignment</a>
655 <a href="am_misc_bulk.html">Retrieving and updating records in bulk</a>
662 <a href="am_misc_bulk.html#am_misc_bulk_get">Bulk retrieval</a>
667 <a href="am_misc_bulk.html#am_misc_bulk_put">Bulk updates</a>
672 <a href="am_misc_bulk.html#am_misc_bulk_del">Bulk deletes</a>
679 <a href="am_misc_partial.html">Partial record storage and retrieval</a>
684 <a href="am_misc_struct.html">Storing C/C++ structures/objects</a>
689 <a href="am_misc_perm.html">Retrieved key/data permanence for C/C++</a>
694 <a href="am_misc_error.html">Error support</a>
699 <a href="am_misc_stability.html">Cursor stability</a>
704 <a href="am_misc_dbsizes.html">Database limits</a>
709 <a href="am_misc_diskspace.html">Disk space requirements</a>
716 <a href="am_misc_diskspace.html#idp1074008">Btree</a>
721 <a href="am_misc_diskspace.html#idp1074072">Hash</a>
728 <a href="am_misc_db_sql.html">Specifying a Berkeley DB schema using SQL DDL</a>
733 <a href="am_misc_tune.html">Access method tuning</a>
738 <a href="am_misc_faq.html">Access method FAQ</a>
744 <span class="chapter">
745 <a href="java.html">5.
754 <a href="java.html#java_conf">Java configuration</a>
759 <a href="java_compat.html">Compatibility</a>
764 <a href="java_program.html">Java programming notes</a>
769 <a href="java_faq.html">Java FAQ</a>
775 <span class="chapter">
776 <a href="csharp.html">6. C# API</a>
783 <a href="csharp.html#csharp_compat">Compatibility</a>
789 <span class="chapter">
790 <a href="stl.html">7. Standard Template Library API</a>
797 <a href="stl.html#stl_intro">Dbstl introduction</a>
804 <a href="stl.html#stl_intro_stdcompat">Standards compatible</a>
809 <a href="stl.html#stl_intro_performance">Performance overhead</a>
814 <a href="stl.html#stl_intro_portability">Portability</a>
821 <a href="stl_usecase.html">Dbstl typical use cases</a>
826 <a href="stl_examples.html">Dbstl examples</a>
831 <a href="stl_db_usage.html">Berkeley DB configuration</a>
838 <a href="stl_db_usage.html#idp1202384">Registering database and environment handles</a>
843 <a href="stl_db_usage.html#idp1225928">Truncate requirements</a>
848 <a href="stl_db_usage.html#idp1236168">Auto commit support</a>
853 <a href="stl_db_usage.html#idp1239792">Database and environment identity checks</a>
858 <a href="stl_db_usage.html#idp1236512">Products, constructors and configurations</a>
865 <a href="stl_db_advanced_usage.html">Using advanced Berkeley DB features with dbstl</a>
872 <a href="stl_db_advanced_usage.html#idp1232296">Using bulk retrieval iterators</a>
877 <a href="stl_db_advanced_usage.html#idp1232520">Using the DB_RMW flag</a>
882 <a href="stl_db_advanced_usage.html#idp1199288">Using secondary index database and secondary containers</a>
889 <a href="stl_txn_usage.html">Using transactions in dbstl</a>
894 <a href="stl_mt_usage.html">Using dbstl in multithreaded applications</a>
899 <a href="stl_primitive_rw.html">Working with primitive types </a>
906 <a href="stl_primitive_rw.html#idp1288424">Storing strings</a>
913 <a href="stl_complex_rw.html">Store and Retrieve data or objects of complex types </a>
920 <a href="stl_complex_rw.html#idp1279008">Storing varying length objects</a>
925 <a href="stl_complex_rw.html#idp1278616">Storing arbitrary sequences</a>
930 <a href="stl_complex_rw.html#idp1344912">Notes</a>
937 <a href="stl_persistence.html">Dbstl persistence</a>
944 <a href="stl_persistence.html#directdbget">Direct database get</a>
949 <a href="stl_persistence.html#chg_persistence">Change persistence</a>
954 <a href="stl_persistence.html#obj_life_persistence">Object life time and persistence </a>
961 <a href="stl_container_specific.html">Dbstl container specific notes</a>
968 <a href="stl_container_specific.html#idp1313840">db_vector specific notes</a>
973 <a href="stl_container_specific.html#idp1381768">Associative container specific notes</a>
980 <a href="stl_efficienct_use.html">Using dbstl efficiently</a>
987 <a href="stl_efficienct_use.html#idp1350664">Using iterators efficiently</a>
992 <a href="stl_efficienct_use.html#idp1350448">Using containers efficiently</a>
999 <a href="stl_memory_mgmt.html">Dbstl memory management</a>
1005 <span class="sect2">
1006 <a href="stl_memory_mgmt.html#idp1384984">Freeing memory</a>
1010 <span class="sect2">
1011 <a href="stl_memory_mgmt.html#idp1389512">Type specific notes</a>
1017 <span class="sect1">
1018 <a href="stl_misc.html">Dbstl miscellaneous notes</a>
1024 <span class="sect2">
1025 <a href="stl_misc.html#idp1407848">Special notes about trivial methods</a>
1029 <span class="sect2">
1030 <a href="stl_misc.html#idp1421568">Using correct container and iterator public types</a>
1036 <span class="sect1">
1037 <a href="stl_known_issues.html">Dbstl known issues</a>
1043 <span class="chapter">
1044 <a href="arch.html">8.
1045 Berkeley DB Architecture
1052 <span class="sect1">
1053 <a href="arch.html#arch_bigpic">The big picture</a>
1057 <span class="sect1">
1058 <a href="arch_progmodel.html">Programming model</a>
1062 <span class="sect1">
1063 <a href="arch_apis.html">Programmatic APIs</a>
1069 <span class="sect2">
1070 <a href="arch_apis.html#idp1156848">C</a>
1074 <span class="sect2">
1075 <a href="arch_apis.html#idp1467704">C++</a>
1079 <span class="sect2">
1080 <a href="arch_apis.html#idp1468224">STL</a>
1084 <span class="sect2">
1085 <a href="arch_apis.html#idp1467768">Java</a>
1089 <span class="sect2">
1090 <a href="arch_apis.html#idp1485576">Dbm/Ndbm, Hsearch</a>
1096 <span class="sect1">
1097 <a href="arch_script.html">Scripting languages</a>
1103 <span class="sect2">
1104 <a href="arch_script.html#idp1461432">Perl</a>
1108 <span class="sect2">
1109 <a href="arch_script.html#idp1460536">PHP</a>
1113 <span class="sect2">
1114 <a href="arch_script.html#idp1477280">Tcl</a>
1120 <span class="sect1">
1121 <a href="arch_utilities.html">Supporting utilities</a>
1127 <span class="chapter">
1128 <a href="env.html">9.
1129 The Berkeley DB Environment
1136 <span class="sect1">
1137 <a href="env.html#env_intro">Database environment introduction</a>
1141 <span class="sect1">
1142 <a href="env_create.html">Creating a database environment</a>
1146 <span class="sect1">
1147 <a href="env_size.html">Sizing a database environment</a>
1151 <span class="sect1">
1152 <a href="env_open.html">Opening databases within the environment</a>
1156 <span class="sect1">
1157 <a href="env_error.html">Error support</a>
1161 <span class="sect1">
1162 <a href="env_db_config.html">DB_CONFIG configuration file</a>
1166 <span class="sect1">
1167 <a href="env_naming.html">File naming</a>
1173 <span class="sect2">
1174 <a href="env_naming.html#idp1570112">Specifying file naming to Berkeley DB</a>
1178 <span class="sect2">
1179 <a href="env_naming.html#idp1584200">Filename resolution in Berkeley DB</a>
1183 <span class="sect2">
1184 <a href="env_naming.html#idp1605872">Examples</a>
1190 <span class="sect1">
1191 <a href="env_region.html">Shared memory regions</a>
1195 <span class="sect1">
1196 <a href="env_security.html">Security</a>
1200 <span class="sect1">
1201 <a href="env_encrypt.html">Encryption</a>
1205 <span class="sect1">
1206 <a href="env_remote.html">Remote filesystems</a>
1210 <span class="sect1">
1211 <a href="env_faq.html">Environment FAQ</a>
1217 <span class="chapter">
1218 <a href="cam.html">10.
1219 Berkeley DB Concurrent Data Store Applications
1226 <span class="sect1">
1227 <a href="cam.html#cam_intro">Concurrent Data Store introduction</a>
1231 <span class="sect1">
1232 <a href="cam_fail.html">Handling failure in Data Store and Concurrent Data Store applications</a>
1236 <span class="sect1">
1237 <a href="cam_app.html">Architecting Data Store and Concurrent Data Store applications</a>
1243 <span class="chapter">
1244 <a href="transapp.html">11.
1245 Berkeley DB Transactional Data Store Applications
1252 <span class="sect1">
1253 <a href="transapp.html#transapp_intro">Transactional Data Store introduction</a>
1257 <span class="sect1">
1258 <a href="transapp_why.html">Why transactions?</a>
1262 <span class="sect1">
1263 <a href="transapp_term.html">Terminology</a>
1267 <span class="sect1">
1268 <a href="transapp_fail.html">Handling failure in Transactional Data Store applications</a>
1272 <span class="sect1">
1273 <a href="transapp_app.html">Architecting Transactional Data Store applications</a>
1277 <span class="sect1">
1278 <a href="transapp_env_open.html">Opening the environment</a>
1282 <span class="sect1">
1283 <a href="transapp_data_open.html">Opening the databases</a>
1287 <span class="sect1">
1288 <a href="transapp_put.html">Recoverability and deadlock handling</a>
1292 <span class="sect1">
1293 <a href="transapp_atomicity.html">Atomicity</a>
1297 <span class="sect1">
1298 <a href="transapp_inc.html">Isolation</a>
1302 <span class="sect1">
1303 <a href="transapp_read.html">Degrees of isolation</a>
1309 <span class="sect2">
1310 <a href="transapp_read.html#snapshot_isolation">Snapshot Isolation</a>
1316 <span class="sect1">
1317 <a href="transapp_cursor.html">Transactional cursors</a>
1321 <span class="sect1">
1322 <a href="transapp_nested.html">Nested transactions</a>
1326 <span class="sect1">
1327 <a href="transapp_admin.html">Environment infrastructure</a>
1331 <span class="sect1">
1332 <a href="transapp_deadlock.html">Deadlock detection</a>
1336 <span class="sect1">
1337 <a href="transapp_checkpoint.html">Checkpoints</a>
1341 <span class="sect1">
1342 <a href="transapp_archival.html">Database and log file archival</a>
1346 <span class="sect1">
1347 <a href="transapp_logfile.html">Log file removal</a>
1351 <span class="sect1">
1352 <a href="transapp_recovery.html">Recovery procedures</a>
1356 <span class="sect1">
1357 <a href="transapp_hotfail.html">Hot failover</a>
1361 <span class="sect1">
1362 <a href="transapp_journal.html">Using Recovery on Journaling Filesystems</a>
1366 <span class="sect1">
1367 <a href="transapp_filesys.html">Recovery and filesystem operations</a>
1371 <span class="sect1">
1372 <a href="transapp_reclimit.html">Berkeley DB recoverability</a>
1376 <span class="sect1">
1377 <a href="transapp_tune.html">Transaction tuning</a>
1381 <span class="sect1">
1382 <a href="transapp_throughput.html">Transaction throughput</a>
1386 <span class="sect1">
1387 <a href="transapp_faq.html">Transaction FAQ</a>
1393 <span class="chapter">
1394 <a href="rep.html">12.
1395 Berkeley DB Replication
1402 <span class="sect1">
1403 <a href="rep.html#rep_intro">Replication introduction</a>
1407 <span class="sect1">
1408 <a href="rep_id.html">Replication environment IDs</a>
1412 <span class="sect1">
1413 <a href="rep_pri.html">Replication environment priorities</a>
1417 <span class="sect1">
1418 <a href="rep_app.html">Building replicated applications</a>
1422 <span class="sect1">
1423 <a href="rep_mgr_meth.html">Replication Manager methods</a>
1427 <span class="sect1">
1428 <a href="rep_base_meth.html">Base API Methods</a>
1432 <span class="sect1">
1433 <a href="rep_comm.html">Building the communications infrastructure</a>
1437 <span class="sect1">
1438 <a href="rep_newsite.html">Connecting to a new site</a>
1442 <span class="sect1">
1443 <a href="group_membership.html">Managing Replication Manager Group Membership</a>
1449 <span class="sect2">
1450 <a href="group_membership.html#group_mem_add">Adding Sites to a Replication Group</a>
1454 <span class="sect2">
1455 <a href="group_membership.html#group_mem_remove">Removing Sites from a Replication Group</a>
1459 <span class="sect2">
1460 <a href="group_membership.html#group_mem_primordialstartup">Primordial Startups</a>
1464 <span class="sect2">
1465 <a href="group_membership.html#group_mem_upgrade">Upgrading Groups</a>
1471 <span class="sect1">
1472 <a href="rep_filename.html">Managing Replication Files</a>
1476 <span class="sect1">
1477 <a href="rep_mgrmulti.html">Running Replication Manager in multiple processes</a>
1483 <span class="sect2">
1484 <a href="rep_mgrmulti.html#idp2239216">One replication process and multiple subordinate processes</a>
1488 <span class="sect2">
1489 <a href="rep_mgrmulti.html#idp2202400">Persistence of local site network address configuration</a>
1493 <span class="sect2">
1494 <a href="rep_mgrmulti.html#idp2221464">Programming considerations</a>
1498 <span class="sect2">
1499 <a href="rep_mgrmulti.html#idp2233184">Handling failure</a>
1503 <span class="sect2">
1504 <a href="rep_mgrmulti.html#idp2233360">Other miscellaneous rules</a>
1510 <span class="sect1">
1511 <a href="rep_replicate.html">Running Replication using the db_replicate Utility</a>
1517 <span class="sect2">
1518 <a href="rep_replicate.html#idp2251336">One Replication Process and Multiple Subordinate Processes</a>
1522 <span class="sect2">
1523 <a href="rep_replicate.html#idp2268704">Common Use Case</a>
1527 <span class="sect2">
1528 <a href="rep_replicate.html#idp2278848">Avoiding Rollback</a>
1532 <span class="sect2">
1533 <a href="rep_replicate.html#idp2283896">When to Consider an Integrated HA Application</a>
1539 <span class="sect1">
1540 <a href="rep_mgr_ack.html">Choosing a Replication Manager Ack Policy</a>
1544 <span class="sect1">
1545 <a href="rep_elect.html">Elections</a>
1549 <span class="sect1">
1550 <a href="rep_mastersync.html">Synchronizing with a master</a>
1556 <span class="sect2">
1557 <a href="rep_mastersync.html#rep_delay_sync">Delaying client synchronization</a>
1561 <span class="sect2">
1562 <a href="rep_mastersync.html#rep_c2c_sync">Client-to-client synchronization</a>
1566 <span class="sect2">
1567 <a href="rep_mastersync.html#idp2309616">Blocked client operations</a>
1571 <span class="sect2">
1572 <a href="rep_mastersync.html#idp2331664">Clients too far out-of-date to synchronize</a>
1578 <span class="sect1">
1579 <a href="rep_init.html">Initializing a new site</a>
1583 <span class="sect1">
1584 <a href="rep_bulk.html">Bulk transfer</a>
1588 <span class="sect1">
1589 <a href="rep_trans.html">Transactional guarantees</a>
1593 <span class="sect1">
1594 <a href="rep_lease.html">Master Leases</a>
1600 <span class="sect2">
1601 <a href="rep_lease.html#masterlease_change_groupsize">Changing Group Size</a>
1607 <span class="sect1">
1608 <a href="rep_ryw.html">Read your writes consistency</a>
1614 <span class="sect2">
1615 <a href="rep_ryw.html#gettoken">Getting a token</a>
1619 <span class="sect2">
1620 <a href="rep_ryw.html#tokenhandling">Token handling</a>
1624 <span class="sect2">
1625 <a href="rep_ryw.html#usingtoken">Using a token to check or wait for a transaction</a>
1631 <span class="sect1">
1632 <a href="rep_clock_skew.html">Clock Skew</a>
1636 <span class="sect1">
1637 <a href="repmgr_channels.html">Using Replication Manager message channels</a>
1643 <span class="sect2">
1644 <a href="repmgr_channels.html#dbchannel_class">DB_CHANNEL</a>
1648 <span class="sect2">
1649 <a href="repmgr_channels.html#dbchannel_send">Sending messages over a message channel</a>
1653 <span class="sect2">
1654 <a href="repmgr_channels.html#dbchannel_receive">Receiving messages</a>
1660 <span class="sect1">
1661 <a href="rep_twosite.html">Special considerations for two-site replication groups</a>
1665 <span class="sect1">
1666 <a href="rep_partition.html">Network partitions</a>
1670 <span class="sect1">
1671 <a href="rep_faq.html">Replication FAQ</a>
1675 <span class="sect1">
1676 <a href="rep_ex.html">Ex_rep: a replication example</a>
1680 <span class="sect1">
1681 <a href="rep_ex_comm.html">Ex_rep_base: a TCP/IP based communication infrastructure</a>
1685 <span class="sect1">
1686 <a href="rep_ex_rq.html">Ex_rep_base: putting it all together</a>
1690 <span class="sect1">
1691 <a href="rep_ex_chan.html">Ex_rep_chan: a Replication Manager
1698 <span class="chapter">
1699 <a href="xa.html">13.
1700 Distributed Transactions
1707 <span class="sect1">
1708 <a href="xa.html#xa_intro">Introduction</a>
1712 <span class="sect1">
1713 <a href="ch13s02.html">Berkeley DB XA Implementation</a>
1717 <span class="sect1">
1718 <a href="xa_build.html">Building a Global Transaction Manager</a>
1724 <span class="sect2">
1725 <a href="xa_build.html#idp2599152">Communicating with multiple Berkeley DB environments</a>
1729 <span class="sect2">
1730 <a href="xa_build.html#idp2600096">Recovering from GTM failure</a>
1734 <span class="sect2">
1735 <a href="xa_build.html#idp2584512">Managing the Global Transaction ID (GID) name space</a>
1739 <span class="sect2">
1740 <a href="xa_build.html#idp2523640">Maintaining state for each distributed transaction.</a>
1744 <span class="sect2">
1745 <a href="xa_build.html#idp2597672">Recovering from the failure of a single environment</a>
1749 <span class="sect2">
1750 <a href="xa_build.html#idp2600560">Recovering from GTM failure</a>
1756 <span class="sect1">
1757 <a href="xa_xa_intro.html">XA Introduction</a>
1761 <span class="sect1">
1762 <a href="xa_xa_config.html">Configuring Berkeley DB with the Tuxedo System</a>
1768 <span class="sect2">
1769 <a href="xa_xa_config.html#idp2607440">Update the Resource Manager File in Tuxedo</a>
1773 <span class="sect2">
1774 <a href="xa_xa_config.html#idp2633056">Build the Transaction Manager Server</a>
1778 <span class="sect2">
1779 <a href="xa_xa_config.html#idp2580168">Update the UBBCONFIG File</a>
1785 <span class="sect1">
1786 <a href="xa_xa_restrict.html">Restrictions on XA Transactions</a>
1790 <span class="sect1">
1791 <a href="xa_faq.html">XA: Frequently Asked Questions</a>
1797 <span class="chapter">
1798 <a href="apprec.html">14.
1799 Application Specific Logging and Recovery
1806 <span class="sect1">
1807 <a href="apprec.html#apprec_intro">Introduction to application specific logging and recovery</a>
1811 <span class="sect1">
1812 <a href="apprec_def.html">Defining application-specific log records</a>
1816 <span class="sect1">
1817 <a href="apprec_auto.html">Automatically generated functions</a>
1821 <span class="sect1">
1822 <a href="apprec_config.html">Application configuration</a>
1828 <span class="chapter">
1829 <a href="program.html">15.
1837 <span class="sect1">
1838 <a href="program.html#program_appsignals">Signal handling</a>
1842 <span class="sect1">
1843 <a href="program_errorret.html">Error returns to applications</a>
1847 <span class="sect1">
1848 <a href="program_environ.html">Environment variables</a>
1852 <span class="sect1">
1853 <a href="program_mt.html">Multithreaded applications</a>
1857 <span class="sect1">
1858 <a href="program_scope.html">Berkeley DB handles</a>
1862 <span class="sect1">
1863 <a href="program_namespace.html">Name spaces</a>
1869 <span class="sect2">
1870 <a href="program_namespace.html#idp2805992">C Language Name Space</a>
1874 <span class="sect2">
1875 <a href="program_namespace.html#idp2778712">Filesystem Name Space</a>
1881 <span class="sect1">
1882 <a href="program_ram.html">Memory-only or Flash configurations</a>
1886 <span class="sect1">
1887 <a href="program_cache.html">Disk drive caches</a>
1891 <span class="sect1">
1892 <a href="program_copy.html">Copying or moving databases</a>
1896 <span class="sect1">
1897 <a href="program_compatible.html">Compatibility with historic UNIX interfaces</a>
1901 <span class="sect1">
1902 <a href="program_runtime.html">Run-time configuration</a>
1906 <span class="sect1">
1907 <a href="program_perfmon.html">Performance Event Monitoring</a>
1913 <span class="sect2">
1914 <a href="program_perfmon.html#program_perfmon_dtrace">Using the DTrace Provider</a>
1918 <span class="sect2">
1919 <a href="program_perfmon.html#program_perfmon_stap">Using SystemTap</a>
1923 <span class="sect2">
1924 <a href="program_perfmon.html#program_perfmon_examples">Example Scripts</a>
1928 <span class="sect2">
1929 <a href="program_perfmon.html#program_perfmon_probes">Performance Events Reference</a>
1935 <span class="sect1">
1936 <a href="program_faq.html">Programmer notes FAQ</a>
1942 <span class="chapter">
1943 <a href="lock.html">16.
1944 The Locking Subsystem
1951 <span class="sect1">
1952 <a href="lock.html#lock_intro">Introduction to the locking subsystem</a>
1956 <span class="sect1">
1957 <a href="lock_config.html">Configuring locking</a>
1961 <span class="sect1">
1962 <a href="lock_max.html">Configuring locking: sizing the system</a>
1966 <span class="sect1">
1967 <a href="lock_stdmode.html">Standard lock modes</a>
1971 <span class="sect1">
1972 <a href="lock_dead.html">Deadlock detection</a>
1976 <span class="sect1">
1977 <a href="lock_timeout.html">Deadlock detection using timers</a>
1981 <span class="sect1">
1982 <a href="lock_deaddbg.html">Deadlock debugging</a>
1986 <span class="sect1">
1987 <a href="lock_page.html">Locking granularity</a>
1991 <span class="sect1">
1992 <a href="lock_notxn.html">Locking without transactions</a>
1996 <span class="sect1">
1997 <a href="lock_twopl.html">Locking with transactions: two-phase locking</a>
2001 <span class="sect1">
2002 <a href="lock_cam_conv.html">Berkeley DB Concurrent Data Store locking conventions</a>
2006 <span class="sect1">
2007 <a href="lock_am_conv.html">Berkeley DB Transactional Data Store locking conventions</a>
2011 <span class="sect1">
2012 <a href="lock_nondb.html">Locking and non-Berkeley DB applications</a>
2018 <span class="chapter">
2019 <a href="log.html">17.
2020 The Logging Subsystem
2027 <span class="sect1">
2028 <a href="log.html#log_intro">Introduction to the logging subsystem</a>
2032 <span class="sect1">
2033 <a href="log_config.html">Configuring logging</a>
2037 <span class="sect1">
2038 <a href="log_limits.html">Log file limits</a>
2044 <span class="chapter">
2045 <a href="mp.html">18.
2046 The Memory Pool Subsystem
2053 <span class="sect1">
2054 <a href="mp.html#mp_intro">Introduction to the memory pool subsystem</a>
2058 <span class="sect1">
2059 <a href="mp_config.html">Configuring the memory pool</a>
2063 <span class="sect1">
2064 <a href="mp_warm.html">Warming the memory pool</a>
2070 <span class="sect2">
2071 <a href="mp_warm.html#warm_cache">The warm_cache() function</a>
2079 <span class="chapter">
2080 <a href="txn.html">19.
2081 The Transaction Subsystem
2088 <span class="sect1">
2089 <a href="txn.html#txn_intro">Introduction to the transaction subsystem</a>
2093 <span class="sect1">
2094 <a href="txn_config.html">Configuring transactions</a>
2098 <span class="sect1">
2099 <a href="txn_limits.html">Transaction limits</a>
2105 <span class="sect2">
2106 <a href="txn_limits.html#idp3173248">Transaction IDs</a>
2110 <span class="sect2">
2111 <a href="txn_limits.html#idp3049928">Cursors</a>
2115 <span class="sect2">
2116 <a href="txn_limits.html#idp3082656">Multiple Threads of Control</a>
2124 <span class="chapter">
2125 <a href="sequence.html">20.
2131 <span class="chapter">
2132 <a href="tcl.html">21.
2133 Berkeley DB Extensions: Tcl
2140 <span class="sect1">
2141 <a href="tcl.html#tcl_intro">Loading Berkeley DB with Tcl</a>
2147 <span class="sect2">
2148 <a href="tcl.html#idp3187200">Installing as a Tcl Package</a>
2152 <span class="sect2">
2153 <a href="tcl.html#idp3177840">Loading Berkeley DB with Tcl</a>
2159 <span class="sect1">
2160 <a href="tcl_using.html">Using Berkeley DB with Tcl</a>
2164 <span class="sect1">
2165 <a href="tcl_program.html">Tcl API programming notes</a>
2169 <span class="sect1">
2170 <a href="tcl_error.html">Tcl error handling</a>
2174 <span class="sect1">
2175 <a href="tcl_faq.html">Tcl FAQ</a>
2181 <span class="chapter">
2182 <a href="ext.html">22.
2183 Berkeley DB Extensions
2190 <span class="sect1">
2191 <a href="ext.html#ext_mod">Using Berkeley DB with Apache</a>
2195 <span class="sect1">
2196 <a href="ext_perl.html">Using Berkeley DB with Perl</a>
2200 <span class="sect1">
2201 <a href="ext_php.html">Using Berkeley DB with PHP</a>
2207 <span class="chapter">
2208 <a href="dumpload.html">23.
2209 Dumping and Reloading Databases
2216 <span class="sect1">
2217 <a href="dumpload.html#dumpload_utility">The db_dump and db_load utilities</a>
2221 <span class="sect1">
2222 <a href="dumpload_format.html">Dump output formats</a>
2226 <span class="sect1">
2227 <a href="dumpload_text.html">Loading text into databases</a>
2233 <span class="chapter">
2234 <a href="refs.html">24.
2235 Additional References
2242 <span class="sect1">
2243 <a href="refs.html#refs_refs">Additional references</a>
2249 <span class="sect2">
2250 <a href="refs.html#idp3221064">Technical Papers on Berkeley DB</a>
2254 <span class="sect2">
2255 <a href="refs.html#idp3270728">Background on Berkeley DB Features</a>
2259 <span class="sect2">
2260 <a href="refs.html#idp3264824">Database Systems Theory</a>
2270 <div class="navfooter">
2272 <table width="100%" summary="Navigation footer">
2274 <td width="40%" align="left"> </td>
2275 <td width="20%" align="center"> </td>
2276 <td width="40%" align="right"> <a accesskey="n" href="preface.html">Next</a></td>
2279 <td width="40%" align="left" valign="top"> </td>
2280 <td width="20%" align="center"> </td>
2281 <td width="40%" align="right" valign="top"> Preface</td>