Configuration Guide¶
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), following 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.memory.dynamic.fallback.enabled | Whether the plugin should fallback to default Spark execution when the Xonai dynamic memory size is low. | true | 
| spark.xonai.memory.dynamic.fallback.threshold | The value of Xonai dynamic memory size a executor must go below of to trigger execution
fallback. By default, it is defined by  | |
| spark.xonai.memory.mode | How the Xonai engine manages execution memory. Must be one of: 
 | |
| spark.xonai.memory.size | Amount of executor memory the Xonai engine can use. Default value is derived from
 | |
| spark.xonai.memory.storageFraction | Amount of Xonai memory that can be used for storage and is immune to eviction, expressed
as a fraction of  | 0.5 | 
| spark.xonai.report.enabled | Whether the Xonai plugin should write a report file with execution information. | false | 
| spark.xonai.report.path | Directory where to write Xonai execution reports. | /tmp/xonai | 
| spark.xonai.sql.broadcastHashJoin.enabled | Whether Xonai BroadcastHashJoin can be used. | true | 
| spark.xonai.sql.coalesce.enabled | Whether Xonai Coalesce can be used. | true | 
| spark.xonai.sql.enabled | Whether the Xonai Accelerator is enabled | true | 
| spark.xonai.sql.expand.enabled | Whether Xonai Expand can be used. | true | 
| spark.xonai.sql.filter.enabled | Whether Xonai Filter can be used. | true | 
| spark.xonai.sql.generate.enabled | Whether Xonai Generate can be used. | true | 
| spark.xonai.sql.hashAggregate.enabled | Whether Xonai HashAggregate can be used. | true | 
| spark.xonai.sql.offload.mode | Strategy to offload operators to Xonai engine. Must be one of: 
 | stage | 
| spark.xonai.sql.parquet.reader.enabled | Whether the Xonai Parquet reader should be used. | true | 
| spark.xonai.sql.parquet.writer.enabled | Whether the Xonai Parquet writer should be used. | true | 
| spark.xonai.sql.project.enabled | Whether Xonai Project can be used. | true | 
| spark.xonai.sql.rowToColumnar.batchSize | Size of columnar batches when converting from row to columnar batches. | 4096 | 
| spark.xonai.sql.shuffle.enabled | Whether data shuffle should use columnar format. | true | 
| spark.xonai.sql.shuffledHashJoin.enabled | Whether Xonai ShuffledHashJoin can be used. | true | 
| spark.xonai.sql.sort.enabled | Whether Xonai Sort can be used. | true | 
| spark.xonai.sql.sortMergeJoin.enabled | Whether Xonai SortMergeJoin can be used. | true | 
| spark.xonai.sql.takeOrderedAndProject.enabled | Whether Xonai TakeOrderedAndProject can be used. | true | 
| spark.xonai.sql.union.enabled | Whether Xonai Union can be used. | 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 | ||