|
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 processes wanting write-ahead logging support. Applications wanting to rework the log for their own purposes will almost certainly need to make source code modifications to the Berkeley DB code base.
A log can be shared by any number of processes and threads within processes. The DBENV->open interface opens, and if necessary, creates, 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 cause any log record to include checkpoint information, such that the log is consistent to that point and recoverable after a system or application failure. 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: