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++

### Berkeley DB Reference Guide: Architecture

# Subsystems

As described in the previous section, the Berkeley DB library is made up of five major subsystems, as follows:

Access Methods
  The access methods subsystem is made up of general-purpose support for creating and accessing database files formatted as B+tree's, Hashed files, and fixed- and variable-length records. These modules are useful in the absence of transactions for processes that need fast, formatted file support. See db_open and DB->cursor for more information.

Locking
  The locking subsystem is a general-purpose lock manager used by Berkeley DB. This module is useful in the absence of the rest of the Berkeley DB package for processes that require a fast, configurable lock manager. See lock_open for more information.

Logging
  The logging subsystem is the logging support used to support the Berkeley DB transaction model. It is largely specific to the Berkeley DB package, and unlikely to be used elsewhere. See log_open for more information.

Memory Pool
  The memory pool subsystem is the general-purpose shared memory buffer pool used by Berkeley DB. This module is useful outside of the Berkeley DB package for processes that require page-oriented, cached, shared file access. See memp_open for more information.

Transactions
  The transaction subsystem implements the Berkeley DB transaction model. It is largely specific to the Berkeley DB package. See txn_open for more information.