Presto C++ Properties Reference
This section describes Presto C++ configuration properties.
The following is not a complete list of all configuration and session properties, and does not include any connector-specific catalog configuration properties. For information on catalog configuration properties, see Connectors.
Coordinator Properties
Set the following configuration properties for the Presto coordinator exactly as they are shown in this code block to enable the Presto coordinator’s use of Presto C++ workers.
native-execution-enabled=true
optimizer.optimize-hash-generation=false
regex-library=RE2J
use-alternative-function-signatures=true
experimental.table-writer-merge-operator-enabled=false
These Presto coordinator configuration properties are described here, in alphabetical order.
experimental.table-writer-merge-operator-enabled
Type:
boolean
Default value:
true
Merge TableWriter output before sending to TableFinishOperator. This property must be set to
false
.
native-execution-enabled
Type:
boolean
Default value:
false
This property is required when running Presto C++ workers because of underlying differences in behavior from Java workers.
optimizer.optimize-hash-generation
Type:
boolean
Default value:
true
Set this property to
false
when running Presto C++ workers. Velox does not support optimized hash generation, instead using a HashTable with adaptive runtime optimizations that does not use extra hash fields.
regex-library
Type:
type
Allowed values:
RE2J
Default value:
JONI
Only RE2J is currently supported by Velox.
use-alternative-function-signatures
Type:
boolean
Default value:
false
Some aggregation functions use generic intermediate types which are not compatible with Velox aggregation function intermediate types. One example function is
approx_distinct
, whose intermediate type isVARBINARY
. This property provides function signatures for built-in aggregation functions which are compatible with Velox.
Worker Properties
The configuration properties of Presto C++ workers are described here, in alphabetical order.
async-data-cache-enabled
Type:
boolean
Default value:
true
In-memory cache.
query.max-memory-per-node
Type:
integer
Default value:
4GB
Max memory usage for each query.
query-memory-gb
Type:
integer
Default value:
38
Specifies the total amount of memory in GB that can be used for all queries on a worker node. Memory for system usage such as disk spilling and cache prefetch are not counted in it.
query-reserved-memory-gb
Type:
integer
Default value:
4
Specifies the total amount of memory in GB reserved for the queries on a worker node. A query can only allocate from this reserved space if 1) the non-reserved space in
query-memory-gb
is used up; and 2) the amount it tries to get is less thanmemory-pool-reserved-capacity
.
runtime-metrics-collection-enabled
Type:
boolean
Default value:
false
Enables collection of worker level metrics.
system-memory-gb
Type:
integer
Default value:
40
Memory allocation limit enforced via internal memory allocator. It consists of two parts: 1) Memory used by the queries as specified in
query-memory-gb
; 2) Memory used by the system, such as disk spilling and cache prefetch.Set
system-memory-gb
to the available machine memory of the deployment.
task.max-drivers-per-task
Type:
integer
Default value:
number of hardware CPUs
Number of drivers to use per task. Defaults to hardware CPUs.