SHARD_MEM configuration parameter

Specifies how to allocate shared memory for sharded queries on a shard server.

onconfig.std value
SHARD_MEM 0
range of values
0: Memory allocation for sharded queries comes from a single memory pool.
1: Memory allocation pools are associated with specific CPU virtual processors. Enterprise Replication allocates memory to the CPU virtual processors based on which CPU virtual processor the parallel shard query thread is running on.
2: Memory allocation pools are associated with specific block sizes, so that all allocations from a pool are the same size, and the first free block that is found can be used.
takes effect
After you edit your onconfig file and restart the database server.
When you reset the value dynamically in your onconfig file by running the onmode -wf command.
When you reset the value in memory by running the onmode -wm command.

Usage

SHARD_MEM 0 is the traditional method of memory-allocation. Use this setting when resource allocation is more important than performance.

SHARD_MEM 1 prevents multiple threads from simultaneously accessing a memory pool. The performance of large-scale sharding environments can improve because memory allocation is done by multiple threads that are working in parallel.

SHARD_MEM 2 improves performance at the cost of increased memory usage. Memory allocation requests are increased to the closest fixed-block size, so that free memory blocks can be found faster. Memory pools are not associated with specific CPU virtual processors, so memory can be freed directly to the memory pool.