|
The logging subsystem is the logging facility used by Berkeley DB. It is largely Berkeley DB specific, although it is potentially useful outside of the Berkeley DB package for applications wanting write-ahead logging support. Applications wanting to use the log for purposes other than logging file modifications based on a set of open file descriptors will almost certainly need to make source code modifications to the Berkeley DB code base.
A log can be shared by any number of threads of control. The DBENV->open interface is used to open a log. When the log is no longer in use, it should be closed, using the DBENV->close interface.
Individual log entries are identified by log sequence numbers. Log sequence numbers are stored in an opaque object, a DB_LSN.
The log_put interface is used to append new log records to the log. Optionally, the DB_CHECKPOINT flag can be used to output a checkpoint log record (indicating that the log is consistent to that point and recoverable after a system or application failure), as well as open-file information. The log_get interface is used to retrieve log records from the log.
There are additional interfaces for integrating the log subsystem with a transaction processing system: