About Server Configuration Parameters
There are many HAWQ server configuration parameters that affect the behavior of the HAWQ system. Many of these configuration parameters have the same names, settings, and behaviors as in a regular PostgreSQL database system.
- Parameter Types and Values describes the parameter data types and values.
- Setting Parameters describes limitations on who can change them and where or when they can be set.
- Configuration Parameter Categories organizes parameters by functionality.
- Configuration Parameters lists the parameter descriptions in alphabetic order.
Parameter Types and Values
All parameter names are case-insensitive. Every parameter takes a value of one of four types: Boolean
, integer
, floating point
, or string
. Boolean values may be written as ON
, OFF
, TRUE
, FALSE
, YES
, NO
, 1
, 0
(all case-insensitive).
Some settings specify a memory size or time value. Each of these has an implicit unit, which is either kilobytes, blocks (typically eight kilobytes), milliseconds, seconds, or minutes. Valid memory size units are kB
(kilobytes), MB
(megabytes), and GB
(gigabytes). Valid time units are ms
(milliseconds), s
(seconds), min
(minutes), h
(hours), and d
(days). Note that the multiplier for memory units is 1024, not 1000. A valid time expression contains a number and a unit. When specifying a memory or time unit using the SET
command, enclose the value in quotes. For example:
SET hawq_rm_stmt_vseg_memory TO '4GB';
Note: There is no space between the value and the unit names.
Setting Parameters
Many of the configuration parameters have limitations on who can change them and where or when they can be set. For example, to change certain parameters, you must be a HAWQ superuser. Other parameters require a restart of the system for the changes to take effect. A parameter that is classified as session can be set at the system level (in the hawq-site.xml
file), at the database-level (using ALTER DATABASE
), at the role-level (using ALTER ROLE
), or at the session-level (using SET
). System parameters can only be set by using the hawq config
utility or by directly modifying a hawq-site.xml
file.
By design, all HAWQ instances (including master and segments) host identical hawq-site.xml
files. Using a common hawq-site.xml
file across all HAWQ instances simplifies configuration of the cluster. Within each hawq-site.xml
configuration file, some parameters are considered segment parameters, meaning that each segment instance looks to its own hawq-site.xml
file to get the value of that parameter. By convention, these parameter names begin with the string hawq_segment
. Others parameters are considered master parameters. By convention, these parameter names begin with the string hawq_master
. Master parameters are only applied at the master instance and ignored by segments.
Note: If you use the hawq config
utility to set configuration parameter values in hawq-site.xml
, the utility synchronizes all configuration files. Any manual modifications that you made to individual hawq-site.xml
files may be lost. Additionally, if you install and manage HAWQ using Ambari, do not use hawq config
to configure HAWQ properties. If the cluster is restarted, Ambari will overwrite any changes made by hawq config
For Ambari-managed HAWQ clusters, only use the Ambari administration interface to set or change HAWQ configuration properties.
This table describes the values in the Set Classifications column of the table in the description of a server configuration parameter.
Set Classification | Description |
---|---|
master or local | A master parameter must be set in the hawq-site.xml file of the HAWQ master instance. The value for this parameter is then either passed to (or ignored by) the segments at run time.
A local parameter is also defined in the We recommend that you use the same configuration parameter values across all HAWQ instances to maintain a single, consistent Changes to master or local parameters always require a system restart for changes to take effect. |
session or system | Session parameters can be changed on the fly within a database session, and can have a hierarchy of settings: at the system level (through hawq-site.xml or hawq config utility), at the database level (ALTER DATABASE...SET ), at the role level (ALTER ROLE...SET ), or at the session level (SET ). If the parameter is set at multiple levels, then the most granular setting takes precedence (for example, session overrides role, role overrides database, and database overrides system).
A system parameter can only be changed via |
restart or reload | When changing parameter values in the hawq-site.xml file(s), some require a restart of HAWQ for the change to take effect. Other parameter values can be refreshed by just reloading the configuration file (using hawq stop object -u ), and do not require stopping the system. |
superuser | These session parameters can only be set by a database superuser. Regular database users cannot set this parameter. |
read only | These parameters are not settable by database users or superusers. The current value of the parameter can be shown but not altered. |