Berkeley DB Tutorial and Reference Guide, Version 3.3.11

  1. Introduction
    1. An introduction to data management
    2. Mapping the terrain: theory and practice
    3. What is Berkeley DB?
    4. What is Berkeley DB 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. Oracle'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. Retrieved key/data permanence for C/C++
    5. Error support
    6. Cursor stability
    7. Database limits
    8. Disk space requirements
    9. Access method tuning
    10. Access method FAQ
  6. Berkeley DB Architecture
    1. The big picture
    2. Programming model
    3. Programmatic APIs
    4. Scripting languages
    5. Supporting utilities
  7. The Berkeley DB Environment
    1. Introduction
    2. Creating a database environment
    3. File naming
    4. Security
    5. Shared memory regions
    6. Remote filesystems
    7. Opening databases within the environment
    8. Error support
    9. Environment FAQ
  8. Berkeley DB Concurrent Data Store Applications
    1. Berkeley DB Concurrent Data Store applications
  9. 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 avoidance
    8. Atomicity
    9. Repeatable reads
    10. Transactional cursors
    11. Nested transactions
    12. Environment infrastructure
    13. Deadlock detection
    14. Checkpoints
    15. Database and log file archival
    16. Log file removal
    17. Recovery procedures
    18. Recovery and filesystem operations
    19. Berkeley DB recoverability
    20. Transaction tuning
    21. Transaction throughput
    22. Transaction FAQ
  10. 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
  11. Programmer Notes
    1. Application signal handling
    2. Error returns to applications
    3. Environmental variables
    4. Multithreaded applications
    5. Berkeley DB handles
    6. Name spaces
    7. Copying databases
    8. Compatibility with historic UNIX interfaces
    9. Recovery implementation
    10. Application-specific logging and recovery
    11. Run-time configuration
  12. 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. Locking granularity
    7. Locking without transactions
    8. Locking with transactions: two-phase locking
    9. Berkeley DB Concurrent Data Store locking conventions
    10. Berkeley DB Transactional Data Store locking conventions
    11. Locking and non-Berkeley DB applications
  13. The Logging Subsystem
    1. Berkeley DB and logging
    2. Configuring logging
    3. Log file limits
  14. The Memory Pool Subsystem
    1. Berkeley DB and the memory pool
    2. Configuring the memory pool
  15. The Transaction Subsystem
    1. Berkeley DB and transactions
    2. Configuring transactions
    3. Transaction limits
    4. Transactions and non-Berkeley DB applications
  16. RPC Client/Server
    1. Introduction
    2. Client program
    3. Server program
  17. Java API
    1. Configuration
    2. Compatibility
    3. Java programming notes
    4. Java FAQ
  18. Perl API
    1. Using Berkeley DB with Perl
  19. 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
  20. Sendmail
    1. Using Berkeley DB with Sendmail
  21. Dumping and Reloading Databases
    1. The db_dump and db_load utilities
    2. Dump output formats
    3. Loading text into databases
  22. System Installation Notes
    1. File utility /etc/magic information
    2. Building with multiple versions of Berkeley DB
    3. Building RPM distribution packages
  23. Debugging Applications
    1. Introduction
    2. Compile-time configuration
    3. Run-time error information
    4. Reviewing Berkeley DB log files
    5. Common errors
  24. Berkeley DB for UNIX and QNX systems
    1. Building for UNIX
    2. Configuring Berkeley DB
    3. Changing compile or load options
    4. Installing Berkeley DB
    5. Dynamic shared libraries
    6. Running the test suite under UNIX
    7. Architecture independent FAQ
    8. Architecture specific FAQs:
      AIX, Embedix, FreeBSD, HP-UX, IRIX, Linux, OSF/1, QNX, SCO, Solaris, SunOS, Ultrix
  25. Berkeley DB for Win32 platforms
    1. Building for Win32
    2. Running the test suite under Windows
    3. Windows notes
    4. Windows FAQ
  26. Berkeley DB for VxWorks systems
    1. Building for VxWorks
    2. VxWorks notes
    3. VxWorks FAQ
  27. 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
  28. Test Suite
    1. Running the test suite
    2. Test suite FAQ
  29. Distribution
    1. Source code layout
  30. Additional References
    1. Additional references