Berkeley DB: Reference Table of Contents
Description: Berkeley DB: An embedded database programmatic toolkit.
Keywords: embedded,database,programmatic,toolkit,b+tree,btr ee,hash,hashing,transaction,transactions,locking,logging,access method,access me thods,java,C,C++

# Reference Table of Contents

1. Introduction

1. What is Berkeley DB?
2. Where does Berkeley DB run?
3. What does the Berkeley DB distribution include?
4. What can you do with Berkeley DB?

2. Getting Started: A Simple Tutorial

1. Introduction
2. Key/data pairs
3. Error returns
4. Opening a database
5. Adding elements to a database
6. Retrieving elements from a database
7. Removing elements from a database
8. Closing a database

3. Access Method Operations

1. Access method operations
   1. Retrieving records
   2. Storing records
   3. Deleting records
   4. Flushing the database cache
   5. Database statistics
   6. Closing a database
2. Database cursors
   1. Retrieving records with a cursor
   2. Storing records with a cursor
   3. Deleting records with a cursor
   4. Logical join
   5. Closing a cursor
3. Partial Record Storing and Retrieval

4. 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 (db_pagesize)
   2. Selecting a cache size (db_cachesize)
   3. Selecting a byte order (db_lorder)
   4. Sorting duplicate data items (dup_compare)
   5. Non-local memory allocation (db_malloc)
5. B+tree access method specific configuration
   1. Btree comparison function (bt_compare)
   2. Btree prefix function (bt_prefix)
   3. Minimum keys per page (bt_minkey)
   4. Maximum keys per page (bt_maxkey)
   5. Duplicate data items (DB_DUP)
   6. Retrieving Btree records by logical record number (DB_RECNUM)
6. Hash access method specific configuration
   1. Page fill factor (h_ffactor)
   2. Specifying your own hashing function (h_hash)
   3. Hash table size (h_nelem)
   4. Duplicate data items (DB_DUP)
7. Recno access method specific configuration
   1. Record delimiters (re_delim, DB_DELIMITER)
   2. Record length (re_len, DB_FIXEDLEN)
   3. Record padding byte value (re_pad, DB_PAD)
   4. Record backing file (re_source, DB_SNAPSHOT)
   5. Logically renumbering records (DB_RENUMBER)

5. Berkeley DB Architecture

1. The big picture
2. Environment
3. Subsystems
4. Supporting utilities
5. Application architectural issues
   1. Programming model
   2. Available APIs
   3. Scripting languages
   4. Extending Berkeley DB

6. The Berkeley DB Environment

1. Creating an environment
2. Opening databases within the environment
3. File naming
4. Security
5. Shared memory regions

7. Berkeley DB Concurrent Access Methods Applications

1. Building concurrent access method applications

8. Berkeley DB Transactional Access Methods Applications

1. Introduction
2. Building transaction protected applications
3. Administration
4. Deadlock detection
5. Performing checkpoints
6. Archival procedures
7. Recovery procedures
8. Recovery and filesystem operations
9. Transaction throughput

9. Programmer Notes

1. Application signal handling
2. Error returns to applications
3. Building multi-threaded applications
4. Java programming notes
5. Environmental variables
6. Library version information
7. Database limits
8. Byte ordering
9. Compatibility with historic interfaces
10. Integrating version 1.85 applications
11. Run-time configuration

10. The Transaction Subsystem

1. Berkeley DB and transactions
2. Taking checkpoints
3. Transaction restrictions
4. Cursor stability
5. Transaction limits
6. Configuring transactions
7. Tuning transactions
8. Transactions and non-Berkeley DB applications

11. The Memory Pool Subsystem

1. Berkeley DB and the memory pool
2. Configuring the memory pool

12. The Locking Subsystem

1. Berkeley DB and locking
2. Page Locks
   1. Standard lock modes
   2. Two-phase locking using transactions
   3. Two-phase locking without transactions
3. Deadlocks and deadlock avoidance
4. Configuring locking
5. Tuning locking
6. Locking and non-Berkeley DB applications

13. The Logging Subsystem

1. Berkeley DB and logging
2. Reclaiming log space
3. Log file limits
4. Configuring logging
5. Tuning logging
6. Logging and non-Berkeley DB applications

14. Dumping and Reloading Databases

1. The db_dump and db_load utilities
2. Dump output formats
3. Loading text into databases

15. Perl

1. Using Berkeley DB with Perl

16. Sendmail

1. Using Berkeley DB with Sendmail

17. Installation Notes

1. File utility /etc/magic information

18. Building client-server applications
19. Building Web applications
20. Debugging Applications

1. Run-time error information.
2. Displaying and interpreting the log
3. Including operation information in the log