Shared-memory allocation

The database server creates portions in shared memory to handle different processes.

The database server creates the following portions of shared memory:
  • The resident portion
  • The buffer pool portion
  • The virtual portion
  • The IPC communications or message portion

    If the sqlhosts file specifies shared-memory communications, the database server allocates memory for the communications portion.

  • The virtual-extension portion

The database server adds operating-system segments, as required, to the virtual and virtual-extension portions of shared memory.

For more information about shared-memory settings for your platform, see the machine notes. The following figure shows the contents of each portion of shared memory.

All database server virtual processors have access to the same shared-memory segments. Each virtual processor manages its work by maintaining its own set of pointers to shared-memory resources such as buffers, locks, and latches. Virtual processors attach to shared memory when you take the database server from offline mode to quiescent, administration, or online. The database server uses locks and latches to manage concurrent access to shared-memory resources by multiple threads.
Figure 1. Contents of database server shared memory
This figure shows the contents of each portion of shared memory. The contents include a shared memory header, a buffer-header table, LRU queues, a lock table, a physical-log buffer, and a logical-log buffer in the resident portion of shared memory. The buffer pool portion of shared memory contains the buffer pool. The virtual portion of shared memory contains a chunk table, a mirror-chunk table, a dbspace table, a page-cleaner table, a tblspace table, a transaction table, a user table, session structures, thread structures, a dictionary cache, a UDR cache, an SQL statement cache, a sorting pool, thread stacks, thread heaps, big buffers, a global pool, and unallocated memory. The IPC communications portion of shared memory on a UNIX machine contains client/server IPC message. The virtual-extension sections of shared memory contain thread heaps for DataBlade modules and user-defined routines.