Configuration Management
This section describes the configuration management feature in CCX.
Limitations / Important information
- This feature, if used improperly, can bring significant risk to datastore stability.
- We do not recommend changing anything that affects calculated values based on the instance memory.
- The following list (section below) is not final, but the following parameters and type of parameters must not be changed.
- We recommend that you contact CCX Support before adding or changing a parameter.
Non-supported parameters
MySQL/MariaDB
max_connections
- caches such as
innodb_buffer_pool
settings, table open caches, tmp table size. - datafir and file settings, such as
innodb_file_per_table
and storage locations. - Galera settings such as
wsrep_slave_threads
. - Any setting affecting connectivity (e.g port, bind addresses).
- Replication settings.
- Any setting requiring a server restart.
PostgreSQL
max_connections
- Any setting affecting connectivity (e.g port,
listen_addresses
) - datafir and file settings, and other storage locations.
- WAL settings.
- Any setting requiring a server restart.
Redis
- Any setting affecting connectivity (e.g port,
listen_addresses
) - Replication settings.
- Any setting requiring a server restart.
Microsoft SQL Server
- Configuration change is not supported.
Applying configuration changes and Add Node
The new settings are applied on the datastore and also saved in CCX database. Only the last config change is saved. The latest saved settings are applied when adding a node (either as part of Scaling, during Lifecycle management, or during automatic repair).
YAML configuration
The configuration is stored in values.yaml
.
Adding a parameter
A new parameter can be added by adding a new section to the yaml file:
- name: <PARAMETER_NAME>
description: "<DESCRIPTION>"
type: "<TYPE>"
default_value: <DEFAULT_VALUE>
validation_options: "min=<MIN_VALUE>,max=<MAX_VALUE>"
vendors:
- <SUPPORTED_VENDOR>
...
- <SUPPORTED_VENDOR>
- The name of the configuration parameter as written in the database configuration file. - A decription of the configuration parameter. - The datatype of the value of the configuration parameter. Supported types are "number" and "text". - The default value of the configuration parameter. - The vendor that supports this configuration parameter. / - The validation_options
applies to parameters of the type "number" and sets an upper and lower bound of the value of the configuration parameter.
Example config
# primary config file for CCX
config:
parameters:
- name: sql_mode
description: "Specifies the sql_mode"
type: "text"
default_value:
"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_E\
NGINE_SUBSTITUTION"
vendors:
- "percona"
- name: sql_mode
description: "Specifies the sql_mode"
type: "text"
default_value: "STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
vendors:
- "mariadb"
- name: timeout
description: Close the connection after a client is idle for N seconds (0 to disable)
type: number
default_value: 0
validation_options: "min=0,max=10800"
vendors:
- "redis"
- name: statement_timeout
description: Sets the time to wait (in milliseconds) on a lock before checking for deadlock
type: number
default_value: 0
validation_options: "min=0,max=10800"
vendors:
- "postgres"