Advanced Database Configuration

Use the configure_engine.py script parameters to configure advanced in-memory database sizing, including memory compression, linked RDMs, low-water marks for database sizing, and thresholds for reclaiming allocated by unused memory.

The create_config.info file question for configuring advanced storage parameters is Do you want to use advanced database storage configurations (y/n)?. The default value is n (no), which results in the following configuration options that you must answer for each database.

Advanced Database Configuration Parameters lists the parameters for configuring in-memory database sizing.

Table 1. Advanced Database Configuration Parameters
Parameter Description Default Value
Data Compression Stores database objects in compressed format. Although this saves memory space, it increases processing time and CPU usage to perform the compression and decompression operations during data write operations.

create_config.info question: Do you want to enable compression for databaseName database (y/n)?

You can also compress the subscriber database, the event database, or both, in addition to compressing the objects in that database. There is a tradeoff in doing so. Although this compression increases the number of subscribers and events you can store in the same sized memory, it also decreases performance due to the compression and decompression requirements during transaction processing. The questions for database compression are:

Do you want to enable compression for event database (y/n)? 
Do you want to enable compression for subscriber database (y/n)? 
Attention: If you enable compression for a database, you must change the answer to the database sizing question What is the average size of object_name object in bytes?.
0 (disabled)
Linked RDMs Sets the number of linked RDM data for linked RDMs.

create_config.info question: How many linked rdm data do you want for linked storage for databaseName database?

0 (disabled)
Memory Allocation Low-Water Mark in Number of Objects Sets the low-water mark in number of objects before shared memory for the database is allocated proactively. A value of –1 means to use the default.

create_config.info question: What is the low water mark in number of objects for databaseName database?

10% of the number of objects in that database.
Memory Allocation Low-Water Mark in Number of Bytes Sets the low-water mark in number of bytes for extended data before shared memory for the database is allocated proactively. A value of –1 means to use the default.

create_config.info question: What is the low water mark in number of bytes for databaseName database?

Note: If you change the default value, the following question is asked for each database:
Do you want to use advanced buffer pool storage configurations (y/n)?
If you answer n (no) to these questions, the large and huge buffer water mark values are set to be 10% of the estimated number of objects. If you answer y (yes), the following question is asked for each database:
What is the low water mark in number of objects for large buffer pool?
What is the low water mark in number of objects for huge buffer pool?
1048576 bytes (1MB)
Object Reallocation Threshold in Bytes

By default, when a database object shrinks, it is not moved to a new storage area, so the extra space is still allocated but no longer used. Leaving it in place reduces the need for garbage collection work and avoids relocating the object in the future if it grows again. However, this can lead to running out of unclaimed memory. Setting this parameter changes this behavior.

When an object's size changes, this threshold is checked. If the allocated but unused space for a database object crosses the specified bytes threshold and the object must be moved, new space is allocated with the new size and the old space is marked for garbage collection so that it can be freed up. This is more space-efficient, but does require additional garbage collection, which increases CPU processing. If the object does not need moving, it is stored in the same place.

create_config.info question: What is the object relocation threshold in number of bytes for objects located in the databaseName database?

-1 (disabled)
Object Reallocation Threshold as a Percentage Similar to the Object Reallocation Threshold in Bytes, this configuration parameter allows the setting of the threshold as a percentage, where if the allocated but unused space reaches this threshold, the object is relocated to the newly allocated space and the old space is marked for garbage collection so that it can be freed up. This also requires additional garbage collection and can increase CPU processing.

create_config.info question: What is the object relocation threshold percentage for objects located in the databaseName database?

100 (disabled)