Configuration Reference¶
This page documents all configuration properties specific to the Xonai Accelerator.
The properties can be activated just as any other Spark configuration property (see official documentation), folowing the --conf [key]=[value]
format.
For example, adding --conf spark.xonai.sql.project.enabled=false
to spark-submit
:
$SPARK_HOME/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--conf spark.xonai.sql.project.enabled=false \
$SPARK_HOME/examples/jars/spark-examples.jar \
1000
By convention, all Xonai Accelerator properties start with spark.xonai
.
Configuration Property List¶
The following is a list of all configuration properties available for the Xonai Accelerator.
Property Key |
Description |
Default Value |
---|---|---|
spark.xonai.executor.memoryOverhead |
The value of spark.executor.memoryOverhead specified without the plugin, if any. Value in MiB unless otherwise specified. |
|
spark.xonai.memory.dynamic.enabled |
Whether the Xonai memory size should be dynamic using memory not allocated by the JVM. Enabled by default if off-heap memory and memory overhead are not specified. |
false |
spark.xonai.memory.dynamic.fallback.enabled |
Whether the plugin should fallback to default Spark execution when the Xonai dynamic memory size is low in a fraction of the executors. |
true |
spark.xonai.memory.dynamic.fallback.threshold |
The value of Xonai dynamic memory size a executor must go below of to trigger execution fallback if spark.xonai.memory.dynamic.fallback.enabled is true. By default, it is defined by numCores x 768M. Value in MiB unless otherwise specified. |
|
spark.xonai.memory.size |
Amount of executor memory the Xonai plugin can use. If not specified this value is automatically computed from either spark.memory.offHeap.size or spark.executor.memoryOverhead. |
|
spark.xonai.memory.storageFraction |
Amount of Xonai memory that can be used for storage and is immune to eviction, expressed as a fraction of spark.xonai.memory.size. The higher this value is the less memory may be available to execution that can lead to spilling to disk more often. |
0.5 |
spark.xonai.report.enabled |
Whether the Xonai plugin should write a report file with execution information. |
true |
spark.xonai.report.path |
Directory where to write Xonai execution reports. |
/tmp/xonai |
spark.xonai.sql.broadcastHashJoin.enabled |
Enable (true) or disable (false) offloading BroadcastHashJoin to native engine. |
true |
spark.xonai.sql.coalesce.enabled |
Enable (true) or disable (false) the Xonai implementation for Coalesce. |
true |
spark.xonai.sql.enabled |
Enable (true) or disable (false) Xonai Spark SQL acceleration |
true |
spark.xonai.sql.expand.enabled |
Enable (true) or disable (false) offloading Expand to native engine. |
true |
spark.xonai.sql.filter.enabled |
Enable (true) or disable (false) offloading Filter to native engine. |
true |
spark.xonai.sql.generate.enabled |
Enable (true) or disable (false) offloading Generate to native engine. |
true |
spark.xonai.sql.hashAggregate.enabled |
Enable (true) or disable (false) offloading HashAggregate to native engine. |
true |
spark.xonai.sql.offload.mode |
Strategy to offload operators to Xonai engine. Must be one of: stage - entire stages are offloaded if supported; partial - contiguous supported operators at the start and end of stages are offloaded; all - all supported operators will be offloaded. |
stage |
spark.xonai.sql.parquet.reader.enabled |
Enable (true) or disable (false) the Xonai optimized Parquet reader. |
true |
spark.xonai.sql.parquet.writer.enabled |
Enable (true) or disable (false) the Xonai optimized Parquet writer. |
true |
spark.xonai.sql.project.enabled |
Enable (true) or disable (false) offloading Project to native engine. |
true |
spark.xonai.sql.rowToColumnar.batchSize |
Size of columnar batches when converting from row to columnar batches. |
4096 |
spark.xonai.sql.shuffle.enabled |
Enable (true) or disable (false) shuffling data using columnar format. |
true |
spark.xonai.sql.shuffledHashJoin.enabled |
Enable (true) or disable (false) offloading ShuffledHashJoin to native engine. |
true |
spark.xonai.sql.sort.enabled |
Enable (true) or disable (false) offloading Sort to native engine. |
true |
spark.xonai.sql.sortMergeJoin.enabled |
Enable (true) or disable (false) offloading SortMergeJoin to native engine. |
true |
spark.xonai.sql.takeOrderedAndProject.enabled |
Enable (true) or disable (false) offloading TakeOrderedAndProject to native engine. |
true |
spark.xonai.sql.union.enabled |
Enable (true) or disable (false) the Xonai implementation for Union. |
true |
Configuration Defaults¶
The Xonai Accelerator may modify the defaults of a few Spark properties as it is expected to perform better with these. Properties explicitly set take precedence over these defaults.
The modified Spark properties are as follows:
Property |
Xonai Value |
||
---|---|---|---|
spark.sql.adaptive.advisoryPartitionSizeInBytes |
32MB |
||
spark.sql.cache.serializer |
com.xonai.spark.CacheSerializer |