Skip to main content
Progress uses several operating system resources, such as shared memory, memory locks, and processes.You can plan Progress database operations more effectively if you understand these resources.

Shared Memory

Shared memory is an area in system memory that multiple users can access concurrently.
Progress stores shared resources in the shared-memory area; more than one user and server can
access each database.
Progress uses semaphores and spin locks to synchronize the activities of server and self-service client processes that are connected to a database. Each process uses its semaphore or relies upon the spin lock when it must wait for a shared resource.

• Database buffers: Progress reads database blocks into the database buffer pool. Larger buffers usually result in less disk I/O.
• Before-image (BI) buffers: Progress stores BI notes in memory before writing them to disk.
• After-image (AI) buffers: Progress stores AI notes in memory before writing them to disk.

Progress also creates shared-memory tables to provide essential information on the status of each process, server, transaction, and lock.

Processes

Progress provides the following optional processes to improve performance:

• Asynchronous Page Writer (APW): The APW improves database performance by performing overhead operations in the background. These operations provide available buffers, reduce the number of buffers that Progress reads before writing to disk, and reduce the overhead associated with before-image checkpointing (the process of synchronizing the buffer pool of modified blocks to the database).

• Before-image Writer (BIW): The BIW improves performance by continually writing before-image buffers to disk. These writes occur in the background.

• After-image Writer (AIW): The AIW improves performance by continually writing AI buffers to disk soon after Progress fills the buffers.

• Progress Watchdog (WDOG): The watchdog process cleans up after improperly terminated processes by releasing locks, backing out any live transactions and releasing shared-memory locks, and disconnecting and cleaning up the server’s remote clients.

Comments