[cbm] Settings
CBM (Column Buffer Manager) settings in vectorwise.conf affect the buffer manager for Vector.
CBM parameters determine the format of the database files when the database is created. If you want the
per-database configuration file to be applied during database creation, the file must be created
before using the createdb command. For more information, see
X100 Configuration File (vectorwise.conf).
Note especially these CBM parameters:
block_size
Specifies the minimum I/O granularity.
This option is the most important for I/O performance.
Note: This setting cannot be changed after database creation!
Note: The system rounds up this setting to the closest power of 2.
Default: 512K
bufferpool_size
Specifies the buffer pool size in bytes (that is, disk cache). The setting can be changed without reloading data.
Notes:
• Increasing bufferpool_size makes more data reside in memory and may reduce I/O.
• If bufferpool_size is not specified or is not larger than zero, a default setting of 25% of the physical system memory is used.
• Memory size defined with this option does not include max_memory_size.
Default: 0 (use 25% of the physical system memory)
compression_lz4_enabled
Enables or disables compression of string data using the LZ4 method. Valid values are true and false.
Setting this parameter to true may give better performance on IO-constrained systems.
Default: false
gather_io_enabled
Tells the Vector Server whether to check if the operating system supports gather I/O and to use
asynchronous gather I/O (see
Asynchronous Gather I/O) if it does. Valid values are true and false.
Default: true
group_size
Specifies the number of blocks that are grouped together on disk to improve data locality for sequential scans.
Note: The system rounds up this setting to the closest power of 2.
Default: 8
minmax_maxsize
Specifies the granularity of the (automatically created) min-max indexes on all columns. Min-max indexes are used automatically to derive scan ranges based on selection predicates on columns that correlate to tuple order.
The value of this parameter influences the precision of the range restrictions applied when performing a table scan. With a default setting (1024), up to ~0.1% of a table might be scanned extra for each found scan range. Increasing this value can improve precision, but may slightly decrease the update performance and increase the memory usage. We recommend increasing this parameter only if you issue queries that scan small fractions of a table.
This parameter should be set before database creation.
Default: 1024
pbm_enabled
Enables or disables the Predictive Buffer Manager, which improves performance in workloads that are I/O bound. Valid values are true and false. Setting the parameter to false switches Vector back to using the Least Recently Used (LRU) algorithm, which was the default in Vector 2.0 and earlier.
The Predictive Buffer Manager tracks the speed and position of every table scan so that it can
predict when a certain block will be needed. When it is time to swap out blocks, PBM considers blocks that are not predicted to be used first. If it finds no such blocks, it tries to swap out the ones that are predicted to be used furthest in time. PBM can be considered similar to the optimal page replacement algorithm, where the approximation is based on current workload.
PBM improves performance in most cases. On rare occasions, however, the LRU algorithm can be faster because it is simpler and incurs less overhead, especially in scenarios where data is fully memory-resident (no blocks are loaded or swapped out during query execution).
Default: true