Berkeley DB Reference Guide, Version 4.2.52

  1. Introduction
    1. An introduction to data management
    2. Mapping the terrain: theory and practice
    3. What is Berkeley DB?
    4. What Berkeley DB is not
    5. Do you need Berkeley DB?
    6. What other services does Berkeley DB provide?
    7. What does the Berkeley DB distribution include?
    8. Where does Berkeley DB run?
    9. Sleepycat Software's Berkeley DB products
  2. A Simple Access Method Tutorial
    1. Introduction
    2. Key/data pairs
    3. Object handles
    4. Error returns
    5. Opening a database
    6. Adding elements to a database
    7. Retrieving elements from a database
    8. Removing elements from a database
    9. Closing a database
  3. Access Method Configuration
    1. What are the available access methods?
    2. Selecting an access method
    3. Logical record numbers
    4. General access method configuration
      1. Selecting a page size
      2. Selecting a cache size
      3. Selecting a byte order
      4. Duplicate data items
      5. Non-local memory allocation
    5. Btree access method specific configuration
      1. Btree comparison
      2. Btree prefix comparison
      3. Minimum keys per page
      4. Retrieving Btree records by logical record number
    6. Hash access method specific configuration
      1. Page fill factor
      2. Specifying a database hash
      3. Hash table size
    7. Queue and Recno access method specific configuration
      1. Managing record-based databases
      2. Selecting a Queue extent size
      3. Flat-text backing files
      4. Logically renumbering records
  4. Access Method Operations
    1. Access method operations
    2. Database open
    3. Opening multiple databases in a single file
    4. Retrieving records
    5. Storing records
    6. Deleting records
    7. Database statistics
    8. Database truncation
    9. Database upgrade
    10. Database verification and salvage
    11. Flushing the database cache
    12. Database close
    13. Secondary indices
    14. Cursor operations
      1. Retrieving records with a cursor
      2. Storing records with a cursor
      3. Deleting records with a cursor
      4. Duplicating a cursor
      5. Equality join
      6. Data item count
      7. Cursor close
  5. Access Method Wrapup
    1. Data alignment
    2. Retrieving records in bulk
    3. Partial record storage and retrieval
    4. Storing C/C++ structures/objects
    5. Retrieved key/data permanence for C/C++
    6. Error support
    7. Cursor stability
    8. Database limits
    9. Disk space requirements
    10. Access method tuning
    11. Access method FAQ
  6. Java Collections for Berkeley DB
    1. Introduction
    2. Basic - The shipment program
      1. Defining serialized key and value classes
      2. Opening and closing the database environment
      3. Opening and closing the class catalog
      4. Opening and closing database stores
      5. Creating bindings and collections
      6. Implementing the main program
      7. Using transactions
      8. Adding database items
      9. Retrieving database items
      10. Handling exceptions
    3. Index - Indices and foreign keys
      1. Opening secondary key indices
      2. Opening foreign key indices
      3. Creating indexed collections
      4. Retrieving items by index key
    4. Entity - Combining the key and value in a single object
      1. Defining entity classes
      2. Creating entity bindings
      3. Creating collections with entity bindings
      4. Using entities with collections
    5. Tuple - Compact ordered keys
      1. Using the tuple format
      2. Using tuples with key extractors
      3. Creating tuple key bindings
      4. Creating tuple-serial entity bindings
      5. Using sorted collections
    6. Serializable Entity - One serializable class for entities and values
      1. Using transient fields in an entity class
      2. Using transient fields in an entity binding
      3. Removing the redundant value classes
    7. Summary and next steps
  7. BDB Java API
    1. Introduction
    2. Using Data Formats and Bindings
    3. Access Methods and Transaction Options
    4. Using Stored Collections
    5. Java serialization data format and bindings
    6. BDB Java FAQ
  8. Java API
    1. Java configuration
    2. Compatibility
    3. Java programming notes
    4. Java FAQ
  9. Berkeley DB Architecture
    1. The big picture
    2. Programming model
    3. Programmatic APIs
    4. Scripting languages
    5. Supporting utilities
  10. The Berkeley DB Environment
    1. Database environment introduction
    2. Creating a database environment
    3. Opening databases within the environment
    4. Error support
    5. DB_CONFIG configuration file
    6. File naming
    7. Shared memory regions
    8. Security
    9. Encryption
    10. Remote filesystems
    11. Environment FAQ
  11. Berkeley DB Concurrent Data Store Applications
    1. Berkeley DB Concurrent Data Store applications
  12. Berkeley DB Transactional Data Store Applications
    1. Berkeley DB Transactional Data Store applications
    2. Why transactions?
    3. Terminology
    4. Application structure
    5. Opening the environment
    6. Opening the databases
    7. Recoverability and deadlock handling
    8. Atomicity
    9. Isolation
    10. Degrees of isolation
    11. Transactional cursors
    12. Nested transactions
    13. Environment infrastructure
    14. Deadlock detection
    15. Checkpoints
    16. Database and log file archival
    17. Log file removal
    18. Recovery procedures
    19. Hot failover
    20. Recovery and filesystem operations
    21. Berkeley DB recoverability
    22. Transaction tuning
    23. Transaction throughput
    24. Transaction FAQ
  13. Berkeley DB Replication
    1. Introduction
    2. Replication environment IDs
    3. Replication environment priorities
    4. Building replicated applications
    5. Building the communications infrastructure
    6. Connecting to a new site
    7. Initializing a new site
    8. Elections
    9. Log file only clients
    10. Transactional guarantees
    11. Network partitions
    12. Replication FAQ
    13. Ex_repquote: a replication example
    14. Ex_repquote: a TCP/IP based communication infrastructure
    15. Ex_repquote: putting it all together
  14. Distributed Transactions
    1. Introduction
    2. Building a Global Transaction Manager
    3. XA Introduction
    4. Configuring Berkeley DB with the Tuxedo System
    5. Frequently Asked Questions
  15. Application Specific Logging and Recovery
    1. Introduction
    2. Defining application-specific log records
    3. Automatically generated functions
    4. Application configuration
  16. Programmer Notes
    1. Signal handling
    2. Error returns to applications
    3. Environmental variables
    4. Multithreaded applications
    5. Berkeley DB handles
    6. Name spaces
    7. RAM-only configurations
    8. Disk drive caches
    9. Copying databases
    10. Compatibility with historic UNIX interfaces
    11. Run-time configuration
    12. Programmer notes FAQ
  17. The Locking Subsystem
    1. Berkeley DB and locking
    2. Configuring locking
    3. Configuring locking: sizing the system
    4. Standard lock modes
    5. Deadlock detection
    6. Deadlock detection using timers
    7. Deadlock debugging
    8. Locking granularity
    9. Locking without transactions
    10. Locking with transactions: two-phase locking
    11. Berkeley DB Concurrent Data Store locking conventions
    12. Berkeley DB Transactional Data Store locking conventions
    13. Locking and non-Berkeley DB applications
  18. The Logging Subsystem
    1. Berkeley DB and logging
    2. Configuring logging
    3. Log file limits
  19. The Memory Pool Subsystem
    1. Berkeley DB and the memory pool
    2. Configuring the memory pool
  20. The Transaction Subsystem
    1. Berkeley DB and transactions
    2. Configuring transactions
    3. Transaction limits
  21. RPC Client/Server
    1. Introduction
    2. Client program
    3. Server program
    4. RPC FAQ
  22. Perl API
    1. Using Berkeley DB with Perl
  23. Tcl API
    1. Loading Berkeley DB with Tcl
    2. Using Berkeley DB with Tcl
    3. Tcl API programming notes
    4. Tcl error handling
    5. Tcl FAQ
  24. Dumping and Reloading Databases
    1. The db_dump and db_load utilities
    2. Dump output formats
    3. Loading text into databases
  25. System Installation Notes
    1. File utility /etc/magic information
    2. Building with multiple versions of Berkeley DB
    3. Building RPM distribution packages
  26. Debugging Applications
    1. Introduction
    2. Compile-time configuration
    3. Run-time error information
    4. Reviewing Berkeley DB log files
    5. Troubleshooting common Berkeley DB problems
  27. Building Berkeley DB for UNIX/POSIX systems
    1. Building for UNIX
    2. Configuring Berkeley DB
    3. Building a small memory footprint library
    4. Changing compile or load options
    5. Installing Berkeley DB
    6. Dynamic shared libraries
    7. Running the test suite under UNIX
    8. Architecture independent FAQ
    9. Architecture specific FAQs:
      AIX, FreeBSD, HP-UX, IRIX, Linux, Mac OS X, OSF/1, QNX, SCO, Solaris, SunOS, Ultrix
  28. Building Berkeley DB for Win32 systems
    1. Building for Win32
    2. Building a small memory footprint library on Windows
    3. Running the test suite under Windows
    4. Windows notes
    5. Windows FAQ
  29. Building Berkeley DB for VxWorks systems
    1. Building for VxWorks 5.4
    2. Building for VxWorks AE
    3. VxWorks notes
    4. VxWorks FAQ
  30. Upgrading Berkeley DB Applications
    1. Library version information
    2. Upgrading Berkeley DB installations
    3. Upgrading Berkeley DB 1.XX applications to Berkeley DB 2.0
    4. Upgrading Berkeley DB 2.X.X applications to Berkeley DB 3.0
    5. Upgrading Berkeley DB 3.0.X applications to Berkeley DB 3.1
    6. Upgrading Berkeley DB 3.1.X applications to Berkeley DB 3.2
    7. Upgrading Berkeley DB 3.2.X applications to Berkeley DB 3.3
    8. Upgrading Berkeley DB 3.3.X applications to Berkeley DB 4.0
    9. Upgrading Berkeley DB 4.0.X applications to Berkeley DB 4.1
    10. Upgrading Berkeley DB 4.1.X applications to Berkeley DB 4.2
  31. Test Suite
    1. Running the test suite
    2. Test suite FAQ
  32. Distribution
    1. Porting Berkeley DB to new architectures
    2. Source code layout
  33. Additional References
    1. Additional references