2-68 IBM Informix OnLine Database Server Administrator’s Guide
Logical Log Buffer
Buffer Contents
Logical log records are written continuously during OnLine operation. Even
if a database is not created with transaction logging, administrative changes
(such as adding a dbspace or a chunk) and data definition statements, such
as CREATE TABLE or DROP TABLE, are logged. (SELECT statements are never
logged.) The logical log files contain five types of records:
■ SQL data definition statements for all databases
■ SQL data manipulation statements for databases that were created
with logging
■ Record of a change to the logging status of a database
■ Record of a checkpoint
■ Record of a change to the configuration
(Refer to page 2-155 for further information about the factors that influence
the number and size of logical log records that are written to the logical log
files.)
Causes of Flushing
Three events cause the logical log buffer to flush:
■ One of the logical log buffers becomes full.
■ A transaction is committed within a database that uses unbuffered
logging.
■ A checkpoint occurs.
Refer to page 2-70 for a definition of a checkpoint. Refer to page 2-72 for a
description of the checkpoint procedure.
If a transaction is committed in a database with unbuffered logging, the
logical log buffer is immediately flushed. This might appear to be a source of
some disk space waste. Typically, many logical log records are stored on a
single page. But because the logical log buffer is flushed in whole pages, even
if only one transaction record is stored on the page, the whole page is flushed.
In the worst case, a single COMMIT logical log record (“commit work”) could
occupy a page on disk, and all remaining space on the page would be unused.