To gain better performance and to aid data recovery, the MicroKernel Engine includes one or more committed operations (both transactional and non-transactional) into a bundle of operations called a system transaction. The MicroKernel Engine creates a system transaction bundle for each file. A system transaction can contain operations and user transactions from one or more clients running on the same engine.
PSQL guarantees transaction durability for all loggable files except those opened in Accelerated mode. (A file can be logged if it contains at least one unique, or non-duplicatable, key. The key can be system-defined.) Transaction durability is the assurance that before the MicroKernel Engine returns a successful status code to the client for an End Transaction it finishes writing to the transaction log. When you open a file in Accelerated mode, the MicroKernel Engine does not log the file; therefore, the MicroKernel Engine does not log entries to the file. Therefore, the MicroKernel Engine cannot guarantee transaction durability for that file.
When the MicroKernel Engine initiates system transactions less often, dirty pages, or pages that need to be written, stay in memory longer. If the application is doing a lot of change operations, these pages might get updated multiple times before being written to disk. This means fewer disk writes. In fact, the most efficient engine is one that writes only when it must.
The cache is an area of memory the MicroKernel Engine reserves for buffering the pages that it reads. When an application requests a record, the MicroKernel Engine first checks the cache to see if the page containing that record is already in memory. If so, the MicroKernel Engine transfers the record from the cache to the application’s data buffer. If the page is not in the cache, the MicroKernel Engine reads the page from the disk into a cache buffer before transferring the requested record to the application. The MicroKernel Engine cache is shared by local clients and used across multiple operations.
See Multi-Record Operations for detailed information on these operations.