Berkeley DB Programmer's Reference Guide

Legal Notice

This documentation is distributed under an open source license. You may review the terms of this license at: http://www.oracle.com/technology/software/products/berkeley-db/htdocs/oslicense.html

Oracle, Berkeley DB, and Sleepycat are trademarks or registered trademarks of Oracle. All rights to these marks are reserved. No third-party use is permitted without the express prior written consent of Oracle.

To obtain a copy of this document's original source code, please submit a request to the Oracle Technology Network forum at: http://forums.oracle.com/forums/forum.jspa?forumID=271

4/12/2010


Table of Contents

Preface
Conventions Used in this Book
For More Information
1. Introduction
An introduction to data management
Mapping the terrain: theory and practice
Data access and data management
Relational databases
Object-oriented databases
Network databases
Clients and servers
What is Berkeley DB?
Data Access Services
Data management services
Design
What Berkeley DB is not
Not a relational database
Not an object-oriented database
Not a network database
Not a database server
Do you need Berkeley DB?
What other services does Berkeley DB provide?
What does the Berkeley DB distribution include?
Where does Berkeley DB run?
The Berkeley DB products
Berkeley DB Data Store
Berkeley DB Concurrent Data Store
Berkeley DB Transactional Data Store
Berkeley DB High Availability
2. Access Method Configuration
What are the available access methods?
Btree
Hash
Queue
Recno
Selecting an access method
Hash or Btree?
Queue or Recno?
Logical record numbers
General access method configuration
Selecting a page size
Selecting a cache size
Selecting a byte order
Duplicate data items
Non-local memory allocation
Btree access method specific configuration
Btree comparison
Btree prefix comparison
Minimum keys per page
Retrieving Btree records by logical record number
Compression
Hash access method specific configuration
Page fill factor
Specifying a database hash
Hash table size
Queue and Recno access method specific configuration
Managing record-based databases
Selecting a Queue extent size
Flat-text backing files
Logically renumbering records
3. Access Method Operations
Database open
Opening multiple databases in a single file
Configuring databases sharing a file
Caching databases sharing a file
Locking in databases based on sharing a file
Partitioning databases
Specifying partition keys
Partitioning callback
Placing partition files
Retrieving records
Storing records
Deleting records
Database statistics
Database truncation
Database upgrade
Database verification and salvage
Flushing the database cache
Database close
Secondary indexes
Foreign key indexes
Cursor operations
Retrieving records with a cursor
Storing records with a cursor
Deleting records with a cursor
Duplicating a cursor
Equality Join
Data item count
Cursor close
4. Access Method Wrapup
Data alignment
Retrieving and updating records in bulk
Bulk retrieval
Bulk updates
Bulk deletes
Partial record storage and retrieval
Storing C/C++ structures/objects
Retrieved key/data permanence for C/C++
Error support
Cursor stability
Database limits
Disk space requirements
Btree
Hash
Specifying a Berkeley DB schema using SQL DDL
Access method tuning
Access method FAQ
5. Java API
Java configuration
Compatibility
Java programming notes
Java FAQ
6. C# API
Compatibility
7. Standard Template Library API
Dbstl introduction
Standards compatible
Performance overhead
Portability
Dbstl typical use cases
Dbstl examples
Berkeley DB configuration
Registering database and environment handles
Truncate requirements
Auto commit support
Database and environment identity checks
Products, constructors and configurations
Using advanced Berkeley DB features with dbstl
Using bulk retrieval iterators
Using the DB_RMW flag
Using secondary index database and secondary containers
Using transactions in dbstl
Using dbstl in multithreaded applications
Working with primitive types
Storing strings
Store and Retrieve data or objects of complex types
Storing varying length objects
Storing arbitrary sequences
Notes
Dbstl persistence
Direct database get
Change persistence
Object life time and persistence
Dbstl container specific notes
db_vector specific notes
Associative container specific notes
Using dbstl efficiently
Using iterators efficiently
Using containers efficiently
Dbstl memory management
Freeing memory
Type specific notes
Dbstl miscellaneous notes
Special notes about trivial methods
Using correct container and iterator public types
Dbstl known issues
8. Berkeley DB Architecture
The big picture
Programming model
Programmatic APIs
C
C++
STL
Java
Dbm/Ndbm, Hsearch
Scripting languages
Perl
PHP
Tcl
Supporting utilities
9. The Berkeley DB Environment
Database environment introduction
Creating a database environment
Opening databases within the environment
Error support
DB_CONFIG configuration file
File naming
Specifying file naming to Berkeley DB
Filename resolution in Berkeley DB
Examples
Shared memory regions
Security
Encryption
Remote filesystems
Environment FAQ
10. Berkeley DB Concurrent Data Store Applications
Concurrent Data Store introduction
Handling failure in Data Store and Concurrent Data Store applications
Architecting Data Store and Concurrent Data Store applications
11. Berkeley DB Transactional Data Store Applications
Transactional Data Store introduction
Why transactions?
Terminology
Handling failure in Transactional Data Store applications
Architecting Transactional Data Store applications
Opening the environment
Opening the databases
Recoverability and deadlock handling
Atomicity
Isolation
Degrees of isolation
Snapshot Isolation
Transactional cursors
Nested transactions
Environment infrastructure
Deadlock detection
Checkpoints
Database and log file archival
Log file removal
Recovery procedures
Hot failover
Recovery and filesystem operations
Berkeley DB recoverability
Transaction tuning
Transaction throughput
Transaction FAQ
12. Berkeley DB Replication
Replication introduction
Replication environment IDs
Replication environment priorities
Building replicated applications
Replication Manager methods
Base API Methods
Building the communications infrastructure
Connecting to a new site
Running Replication Manager in multiple processes
One replication process and multiple subordinate processes
Persistence of network address configuration
Programming considerations
Handling failure
Other miscellaneous rules
Elections
Synchronizing with a master
Delaying client synchronization
Client-to-client synchronization
Blocked client operations
Clients too far out-of-date to synchronize
Initializing a new site
Bulk transfer
Transactional guarantees
Master Leases
Clock Skew
Network partitions
Replication FAQ
Ex_rep: a replication example
Ex_rep_base: a TCP/IP based communication infrastructure
Ex_rep_base: putting it all together
13. Application Specific Logging and Recovery
Introduction to application specific logging and recovery
Defining application-specific log records
Automatically generated functions
Application configuration
14. Programmer Notes
Signal handling
Error returns to applications
Environment variables
Multithreaded applications
Berkeley DB handles
Name spaces
C Language Name Space
Filesystem Name Space
Memory-only or Flash configurations
Disk drive caches
Copying or moving databases
Compatibility with historic UNIX interfaces
Run-time configuration
Programmer notes FAQ
15. The Locking Subsystem
Introduction to the locking subsystem
Configuring locking
Configuring locking: sizing the system
Standard lock modes
Deadlock detection
Deadlock detection using timers
Deadlock debugging
Locking granularity
Locking without transactions
Locking with transactions: two-phase locking
Berkeley DB Concurrent Data Store locking conventions
Berkeley DB Transactional Data Store locking conventions
Locking and non-Berkeley DB applications
16. The Logging Subsystem
Introduction to the logging subsystem
Configuring logging
Log file limits
17. The Memory Pool Subsystem
Introduction to the memory pool subsystem
Configuring the memory pool
18. The Transaction Subsystem
Introduction to the transaction subsystem
Configuring transactions
Transaction limits
Transaction IDs
Cursors
Multiple Threads of Control
19. Sequences
Introduction to sequences
20. Berkeley DB Extensions: Tcl
Loading Berkeley DB with Tcl
Installing as a Tcl Package
Loading Berkeley DB with Tcl
Using Berkeley DB with Tcl
Tcl API programming notes
Tcl error handling
Tcl FAQ
21. Berkeley DB Extensions
Using Berkeley DB with Apache
Using Berkeley DB with Perl
Using Berkeley DB with PHP
22. Dumping and Reloading Databases
The db_dump and db_load utilities
Dump output formats
Loading text into databases
23. System Installation Notes
File utility /etc/magic information
Building with multiple versions of Berkeley DB
24. Debugging Applications
Introduction to debugging
Compile-time configuration
Run-time error information
Reviewing Berkeley DB log files
Augmenting the Log for Debugging
Extracting Committed Transactions and Transaction Status
Extracting Transaction Histories
Extracting File Histories
Extracting Page Histories
Other log processing tools
25. Building Berkeley DB for the BREW simulator
Building a BREW applet with Berkeley DB library
Building a BREW applet for the physical device
26. Building Berkeley DB for S60
Building Berkeley DB for the S60 Emulator
Building Berkeley DB Library for the Device
Building a S60 application with the Berkeley DB library
S60 notes
27. Building Berkeley DB for UNIX/POSIX
Building for UNIX/POSIX
Configuring Berkeley DB
Building a small memory footprint library
Changing compile or load options
Installing Berkeley DB
Dynamic shared libraries
Running the test suite under UNIX
Architecture independent FAQ
AIX
FreeBSD
HP-UX
IRIX
Linux
Mac OS X
OSF/1
QNX
SCO
Solaris
SunOS
Ultrix
28. Building Berkeley DB for Windows
Building Berkeley DB for 32 bit Windows
Visual C++ .NET 2008
Visual C++ .NET 2005
Visual C++ .NET or Visual C++ .NET 2003
Visual C++ 6.0
Build results
Building Berkeley DB for 64-bit Windows
x64 build with Visual Studio 2005 or newer
x64 build with Visual Studio .NET 2003 or earlier
Building Berkeley DB with Cygwin
Building the C++ API
Building the C++ STL API
Building the Java API
Building Java with Visual C++ .NET or above
Building Java with Visual C++ 6.0
Building the C# API
Building C# with Visual Studio 2005
Building the Tcl API
Building Tcl with Visual C++ .NET or above
Building Tcl with Visual C++ 6.0
Distributing DLLs
Building a small memory footprint library
Running the test suite under Windows
Building the software needed by the tests
Running the test suite under Windows
Windows notes
Windows FAQ
29. Building Berkeley DB for Windows CE
Building for Windows CE
Building Berkeley DB for Windows CE
Building Berkeley DB for different target CPU architectures
Windows CE notes
Windows CE/Mobile FAQ
30. Building Berkeley DB for VxWorks
Building for VxWorks 5.4 and 5.5
Building With Tornado 2.0 or Tornado 2.2
Building for VxWorks 6.x
Building With Wind River Workbench using the Makefile
VxWorks notes
Building and Running the Demo Program
Building and Running the Utility Programs
VxWorks 5.4/5.5: shared memory
VxWorks 5.4/5.5: building a small memory footprint library
VxWorks FAQ
31. Upgrading from previous versions of Berkeley DB
Library version information
Upgrading Berkeley DB installations
32. Upgrading Berkeley DB 1.85 or 1.86 applications to Berkeley DB 2.0
Release 2.0: introduction
Release 2.0: system integration
Release 2.0: converting applications
Release 2.0: Upgrade Requirements
33. Upgrading Berkeley DB 2.X applications to Berkeley DB 3.0
Release 3.0: introduction
Release 3.0: environment open/close/unlink
Release 3.0: function arguments
Release 3.0: the DB_ENV structure
Release 3.0: database open/close
Release 3.0: db_xa_open
Release 3.0: the DB structure
Release 3.0: the DBINFO structure
Release 3.0: DB->join
Release 3.0: DB->stat
Release 3.0: DB->sync and DB->close
Release 3.0: lock_put
Release 3.0: lock_detect
Release 3.0: lock_stat
Release 3.0: log_register
Release 3.0: log_stat
Release 3.0: memp_stat
Release 3.0: txn_begin
Release 3.0: txn_commit
Release 3.0: txn_stat
Release 3.0: DB_RMW
Release 3.0: DB_LOCK_NOTHELD
Release 3.0: EAGAIN
Release 3.0: EACCES
Release 3.0: db_jump_set
Release 3.0: db_value_set
Release 3.0: the DbEnv class for C++ and Java
Release 3.0: the Db class for C++ and Java
Release 3.0: additional C++ changes
Release 3.0: additional Java changes
Release 3.0: Upgrade Requirements
34. Upgrading Berkeley DB 3.0 applications to Berkeley DB 3.1
Release 3.1: introduction
Release 3.1: DB_ENV->open, DB_ENV->remove
Release 3.1: DB_ENV->set_tx_recover
Release 3.1: DB_ENV->set_feedback, DB->set_feedback
Release 3.1: DB_ENV->set_paniccall, DB->set_paniccall
Release 3.1: DB->put
Release 3.1: identical duplicate data items
Release 3.1: DB->stat
Release 3.1: DB_SYSTEM_MEM
Release 3.1: log_register
Release 3.1: memp_register
Release 3.1: txn_checkpoint
Release 3.1: environment configuration
Release 3.1: Tcl API
Release 3.1: DB_TMP_DIR
Release 3.1: log file pre-allocation
Release 3.1: Upgrade Requirements
35. Upgrading Berkeley DB 3.1 applications to Berkeley DB 3.2
Release 3.2: introduction
Release 3.2: DB_ENV->set_flags
Release 3.2: DB callback functions, app_private field
Release 3.2: Logically renumbering records
Release 3.2: DB_INCOMPLETE
Release 3.2: DB_ENV->set_tx_recover
Release 3.2: DB_ENV->set_mutexlocks
Release 3.2: Java and C++ object reuse
Release 3.2: Java java.io.FileNotFoundException
Release 3.2: db_dump
Release 3.2: Upgrade Requirements
36. Upgrading Berkeley DB 3.2 applications to Berkeley DB 3.3
Release 3.3: introduction
Release 3.3: DB_ENV->set_server
Release 3.3: DB->get_type
Release 3.3: DB->get_byteswapped
Release 3.3: DB->set_malloc, DB->set_realloc
Release 3.3: DB_LOCK_CONFLICT
Release 3.3: memp_fget, EIO
Release 3.3: txn_prepare
Release 3.3: --enable-dynamic, --enable-shared
Release 3.3: --disable-bigfile
Release 3.3: Upgrade Requirements
37. Upgrading Berkeley DB 3.3 applications to Berkeley DB 4.0
Release 4.0: Introduction
Release 4.0: db_deadlock
Release 4.0: lock_XXX
Release 4.0: log_XXX
Release 4.0: memp_XXX
Release 4.0: txn_XXX
Release 4.0: db_env_set_XXX
Release 4.0: DB_ENV->set_server
Release 4.0: DB_ENV->set_lk_max
Release 4.0: DB_ENV->lock_id_free
Release 4.0: Java CLASSPATH environment variable
Release 4.0: C++ ostream objects
Release 4.0: application-specific recovery
Release 4.0: Upgrade Requirements
4.0.14 Change Log
Major New Features:
General Environment Changes:
General Access Method Changes:
Btree Access Method Changes:
Hash Access Method Changes:
Queue Access Method Changes:
Recno Access Method Changes:
C++ API Changes:
Java API Changes:
Tcl API Changes:
RPC Client/Server Changes:
XA Resource Manager Changes:
Locking Subsystem Changes:
Logging Subsystem Changes:
Memory Pool Subsystem Changes:
Transaction Subsystem Changes:
Utility Changes:
Database or Log File On-Disk Format Changes:
Configuration, Documentation, Portability and Build Changes:
38. Upgrading Berkeley DB 4.0 applications to Berkeley DB 4.1
Release 4.1: Introduction
Release 4.1: DB_EXCL
Release 4.1: DB->associate, DB->open, DB->remove, DB->rename
Release 4.1: DB_ENV->log_register
Release 4.1: st_flushcommit
Release 4.1: DB_CHECKPOINT, DB_CURLSN
Release 4.1: DB_INCOMPLETE
Release 4.1: DB_ENV->memp_sync
Release 4.1: DB->stat.hash_nelem
Release 4.1: Java exceptions
Release 4.1: C++ exceptions
Release 4.1: Application-specific logging and recovery
Release 4.1: Upgrade Requirements
Berkeley DB 4.1.24 and 4.1.25 Change Log
Database or Log File On-Disk Format Changes:
Major New Features:
General Environment Changes:
General Access Method Changes:
Btree Access Method Changes:
Hash Access Method Changes:
Queue Access Method Changes:
Recno Access Method Changes:
C++-specific API Changes:
Java-specific API Changes:
Tcl-specific API Changes:
RPC-specific Client/Server Changes:
Replication Changes:
XA Resource Manager Changes:
Locking Subsystem Changes:
Logging Subsystem Changes:
Memory Pool Subsystem Changes:
Transaction Subsystem Changes:
Utility Changes:
Configuration, Documentation, Portability and Build Changes:
Berkeley DB 4.1.25 Change Log
39. Upgrading Berkeley DB 4.1 applications to Berkeley DB 4.2
Release 4.2: Introduction
Release 4.2: Java
Release 4.2: Queue access method
Release 4.2: DB_CHKSUM_SHA1
Release 4.2: DB_CLIENT
Release 4.2: DB->del
Release 4.2: DB->set_cache_priority
Release 4.2: DB->verify
Release 4.2: DB_LOCK_NOTGRANTED
Release 4.2: Replication
Replication initialization
Database methods and replication clients
DB_ENV->rep_process_message()
Release 4.2: Client replication environments
Release 4.2: Tcl API
Release 4.2: Upgrade Requirements
Berkeley DB 4.2.52 Change Log
Database or Log File On-Disk Format Changes:
New Features:
Database Environment Changes:
Concurrent Data Store Changes:
General Access Method Changes:
Btree Access Method Changes:
Hash Access Method Changes:
Queue Access Method Changes:
Recno Access Method Changes:
C++-specific API Changes:
Java-specific API Changes:
Tcl-specific API Changes:
RPC-specific Client/Server Changes:
Replication Changes:
XA Resource Manager Changes:
Locking Subsystem Changes:
Logging Subsystem Changes:
Memory Pool Subsystem Changes:
Transaction Subsystem Changes:
Utility Changes:
Configuration, Documentation, Portability and Build Changes:
40. Upgrading Berkeley DB 4.2 applications to Berkeley DB 4.3
Release 4.3: Introduction
Release 4.3: Java
Release 4.3: DB_ENV->set_errcall, DB->set_errcall
Release 4.3: DBcursor->c_put
Release 4.3: DB->stat
Release 4.3: DB_ENV->set_verbose
Release 4.3: Logging
Release 4.3: DB_FILEOPEN
Release 4.3: ENOMEM and DbMemoryException
Release 4.3: Replication
Release 4.3: Run-time configuration
Release 4.3: Upgrade Requirements
Berkeley DB 4.3.29 Change Log
Database or Log File On-Disk Format Changes:
New Features:
Database Environment Changes:
Concurrent Data Store Changes:
General Access Method Changes:
Btree Access Method Changes:
Hash Access Method Changes:
Queue Access Method Changes:
Recno Access Method Changes
C++-specific API Changes:
Java-specific API Changes:
Tcl-specific API Changes:
RPC-specific Client/Server Changes:
Replication Changes:
XA Resource Manager Changes:
Locking Subsystem Changes:
Logging Subsystem Changes:
Memory Pool Subsystem Changes:
Transaction Subsystem Changes:
Utility Changes:
Configuration, Documentation, Portability and Build Changes:
41. Upgrading Berkeley DB 4.3 applications to Berkeley DB 4.4
Release 4.4: Introduction
Release 4.4: DB_AUTO_COMMIT
Release 4.4: DB_DEGREE_2, DB_DIRTY_READ
Release 4.4: DB_JOINENV
Release 4.4: mutexes
Release 4.4: DB_MPOOLFILE->set_clear_len
Release 4.4: lock statistics
Release 4.4: Upgrade Requirements
Berkeley DB 4.4.16 Change Log
Database or Log File On-Disk Format Changes:
New Features:
Database Environment Changes:
Concurrent Data Store Changes:
General Access Method Changes:
Btree Access Method Changes:
Hash Access Method Changes:
Queue Access Method Changes:
Recno Access Method Changes
C++-specific API Changes:
Java-specific API Changes:
Java collections and bind API Changes:
Tcl-specific API Changes:
RPC-specific Client/Server Changes:
Replication Changes:
XA Resource Manager Changes:
Locking Subsystem Changes:
Logging Subsystem Changes:
Memory Pool Subsystem Changes:
Transaction Subsystem Changes:
Utility Changes:
Configuration, Documentation, Portability and Build Changes:
Berkeley DB 4.4.20 Change Log
Changes since Berkeley DB 4.4.16:
42. Upgrading Berkeley DB 4.4 applications to Berkeley DB 4.5
Release 4.5: Introduction
Release 4.5: deprecated interfaces
Release 4.5: DB->set_isalive
Release 4.5: DB_ENV->rep_elect
Release 4.5: Replication method naming
Release 4.5: Replication events
Release 4.5: Memory Pool API
Release 4.5: DB_ENV->set_paniccall
Release 4.5: DB->set_pagesize
Release 4.5: Collections API
Release 4.5: --enable-pthread_self
Release 4.5: Recno backing text source files
Release 4.5: Application-specific logging
Release 4.5: Upgrade Requirements
Berkeley DB 4.5.20 Change Log
Database or Log File On-Disk Format Changes:
New Features:
Database Environment Changes:
Concurrent Data Store Changes:
General Access Method Changes:
Btree Access Method Changes:
Hash Access Method Changes:
Queue Access Method Changes:
Recno Access Method Changes:
C++-specific API Changes:
Java-specific API Changes:
Java collections and bind API Changes:
Tcl-specific API Changes:
RPC-specific Client/Server Changes:
Replication Changes:
XA Resource Manager Changes:
Locking Subsystem Changes:
Logging Subsystem Changes:
Memory Pool Subsystem Changes:
Transaction Subsystem Changes:
Utility Changes:
Configuration, Documentation, Portability and Build Changes:
43. Upgrading Berkeley DB 4.5 applications to Berkeley DB 4.6
Release 4.6: Introduction
Release 4.6: C API cursor handle method names
Release 4.6: DB_MPOOLFILE->put
Release 4.6: DB_MPOOLFILE->set
Release 4.6: Replication Events
Release 4.6: DB_REP_FULL_ELECTION
Release 4.6: Verbose Output
Release 4.6: DB_VERB_REPLICATION
Release 4.6: Windows 9X
Release 4.6: Upgrade Requirements
Berkeley DB 4.6.21 Change Log
4.6.21 Patches:
4.6.19 Patches
Database or Log File On-Disk Format Changes:
New Features:
Database Environment Changes:
Concurrent Data Store Changes:
General Access Method Changes:
Btree Access Method Changes:
Hash Access Method Changes:
Queue Access Method Changes:
Recno Access Method Changes:
C++-specific API Changes:
Java-specific API Changes:
Java collections and bind API Changes:
Tcl-specific API Changes:
RPC-specific Client/Server Changes:
Replication Changes:
XA Resource Manager Changes:
Locking Subsystem Changes:
Logging Subsystem Changes:
Memory Pool Subsystem Changes:
Transaction Subsystem Changes:
Utility Changes:
Configuration, Documentation, Portability and Build Changes:
44. Upgrading Berkeley DB 4.6 applications to Berkeley DB 4.7
Release 4.7: Introduction
Release 4.7: Run-time configuration
Release 4.7: Replication API
Release 4.7: Tcl API
Release 4.7: DB_ENV->set_intermediate_dir
Release 4.7: Log configuration
Release 4.7: Upgrade Requirements
Berkeley DB 4.7.25 Change Log
Database or Log File On-Disk Format Changes:
New Features:
Database Environment Changes:
Concurrent Data Store Changes:
General Access Method Changes:
Btree Access Method Changes:
Hash Access Method Changes:
Queue Access Method Changes:
Recno Access Method Changes:
C-specific API Changes:
Java-specific API Changes:
Direct Persistence Layer (DPL), Bindings and Collections API:
Tcl-specific API Changes:
RPC-specific Client/Server Changes:
Replication Changes:
XA Resource Manager Changes:
Locking Subsystem Changes:
Logging Subsystem Changes:
Memory Pool Subsystem Changes:
Mutex Subsystem Changes:
Transaction Subsystem Changes:
Utility Changes:
Configuration, Documentation, Sample Application, Portability and Build Changes:
45. Upgrading Berkeley DB 4.7 applications to Berkeley DB 4.8
Release 4.8: Introduction
Release 4.8: Registering DPL Secondary Keys
Release 4.8: Minor Change in Behavior of DB_MPOOLFILE->get
Release 4.8: Dropped Support for fcntl System Calls
Release 4.8: Upgrade Requirements
Berkeley DB 4.8.30 Change Log
Changes between 4.8.26 and 4.8.30:
Known bugs in 4.8
Changes between 4.8.24 and 4.8.26:
Changes between 4.8.21 and 4.8.24:
Changes between 4.7 and 4.8.21:
Database or Log File On-Disk Format Changes:
New Features:
Database Environment Changes:
Concurrent Data Store Changes:
General Access Method Changes:
Btree Access Method Changes:
Hash Access Method Changes:
Queue Access Method Changes:
Recno Access Method Changes:
C-specific API Changes:
C++-specific API Changes:
Java-specific API Changes:
Direct Persistence Layer (DPL), Bindings and Collections API:
Tcl-specific API Changes:
RPC-specific Client/Server Changes:
Replication Changes:
XA Resource Manager Changes:
Locking Subsystem Changes:
Logging Subsystem Changes:
Memory Pool Subsystem Changes:
Mutex Subsystem Changes:
Test Suite Changes
Transaction Subsystem Changes:
Utility Changes:
Configuration, Documentation, Sample Application, Portability and Build Changes:
46. Test Suite
Running the test suite
Test suite FAQ
47. Distribution
Porting Berkeley DB to new architectures
Source code layout
48. Additional References
Additional references
Technical Papers on Berkeley DB
Background on Berkeley DB Features
Database Systems Theory