The FairCom DB internal memory suballocator utilizes 11 lists, each dedicated to a particular range of allocation size and each controlled by a single mutex. An expanded model improves scalability, especially when a large number of memory allocation or free operations take place at once.
The server configuration keyword MEMORY_HASH <N> causes 11N lists to be created, with N dedicated to a particular range of allocation size. On Windows, Solaris, and AIX, the default is based on the number of available CPUs on the system and the CPU limit specified in the license file. Otherwise, MEMORY_HASH defaults to 4.
The MEMORY_HASH configuration requires aligned memory boundaries. If a particular server build is compiled without the proper alignment property, a messages is logged to CTSTATUS.FCS indicating this when this keyword is active:
- User# 00001 Configuration error: ctsrvr.cfg, line 3: This c-tree Server does not meet the compile-time requirements to support the MEMORY_HASH keyword.