A database manager selectively caches journal entries for certain database changes
based on dynamic selection criteria. Preferably, a journal disk drive is provided
for storing changes to the database. Database change entries are sequentially cached
in a main memory journal buffer, awaiting journal write. When a buffer is filled,
its buffer contents are written to the journal disk. However, certain change operations
will cause the contents of the buffer to be written to the journal disk immediately,
before filling the buffer. Certain database change entries selectively cause the
buffer to be written, depending on dynamic selection criteria. Preferably, these
selection criteria take into account both the estimated time to recover in the
event of a system crash and the current level of activity on the system. Generally,
the busier the system, the more data will be cached, and vice versa.