This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/datafusion-comet.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 43eddb7a Publish built docs triggered by
fbf389ccd7bde4d9e7a501840115a73500f78a48
43eddb7a is described below
commit 43eddb7a78c82c25ed85721c15747c7fc6fad07e
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Aug 21 18:34:47 2024 +0000
Publish built docs triggered by fbf389ccd7bde4d9e7a501840115a73500f78a48
---
_sources/contributor-guide/benchmarking.md.txt | 2 -
_sources/contributor-guide/debugging.md.txt | 2 +-
_sources/user-guide/configs.md.txt | 35 +++----
_sources/user-guide/installation.md.txt | 10 +-
_sources/user-guide/tuning.md.txt | 11 ++
contributor-guide/benchmarking.html | 2 -
contributor-guide/debugging.html | 2 +-
searchindex.js | 2 +-
user-guide/configs.html | 140 ++++++++++++-------------
user-guide/installation.html | 27 ++++-
user-guide/tuning.html | 13 +++
11 files changed, 142 insertions(+), 104 deletions(-)
diff --git a/_sources/contributor-guide/benchmarking.md.txt
b/_sources/contributor-guide/benchmarking.md.txt
index b4d2f5f4..b6e9ce1d 100644
--- a/_sources/contributor-guide/benchmarking.md.txt
+++ b/_sources/contributor-guide/benchmarking.md.txt
@@ -63,11 +63,9 @@ $SPARK_HOME/bin/spark-submit \
--conf spark.sql.extensions=org.apache.comet.CometSparkSessionExtensions \
--conf spark.comet.enabled=true \
--conf spark.comet.exec.enabled=true \
- --conf spark.comet.exec.all.enabled=true \
--conf spark.comet.cast.allowIncompatible=true \
--conf spark.comet.exec.shuffle.enabled=true \
--conf spark.comet.exec.shuffle.mode=auto \
- --conf spark.comet.shuffle.enforceMode.enabled=true \
--conf
spark.shuffle.manager=org.apache.spark.sql.comet.execution.shuffle.CometShuffleManager
\
tpcbench.py \
--benchmark tpch \
diff --git a/_sources/contributor-guide/debugging.md.txt
b/_sources/contributor-guide/debugging.md.txt
index d1f62a5d..31faa427 100644
--- a/_sources/contributor-guide/debugging.md.txt
+++ b/_sources/contributor-guide/debugging.md.txt
@@ -130,7 +130,7 @@ Then build the Comet as
[described](https://github.com/apache/arrow-datafusion-c
Start Comet with `RUST_BACKTRACE=1`
```console
-RUST_BACKTRACE=1 $SPARK_HOME/spark-shell --jars
spark/target/comet-spark-spark3.4_2.12-0.1.0-SNAPSHOT.jar --conf
spark.sql.extensions=org.apache.comet.CometSparkSessionExtensions --conf
spark.comet.enabled=true --conf spark.comet.exec.enabled=true --conf
spark.comet.exec.all.enabled=true
+RUST_BACKTRACE=1 $SPARK_HOME/spark-shell --jars
spark/target/comet-spark-spark3.4_2.12-0.1.0-SNAPSHOT.jar --conf
spark.sql.extensions=org.apache.comet.CometSparkSessionExtensions --conf
spark.comet.enabled=true --conf spark.comet.exec.enabled=true
```
Get the expanded exception details
diff --git a/_sources/user-guide/configs.md.txt
b/_sources/user-guide/configs.md.txt
index 8465baa7..5c29b709 100644
--- a/_sources/user-guide/configs.md.txt
+++ b/_sources/user-guide/configs.md.txt
@@ -35,29 +35,28 @@ Comet provides the following configuration settings.
| spark.comet.debug.enabled | Whether to enable debug mode for Comet. By
default, this config is false. When enabled, Comet will do additional checks
for debugging purpose. For example, validating array when importing arrays from
JVM at native side. Note that these checks may be expensive in performance and
should only be enabled for debugging purpose. | false |
| spark.comet.enabled | Whether to enable Comet extension for Spark. When this
is turned on, Spark will use Comet to read Parquet data source. Note that to
enable native vectorized execution, both this config and
'spark.comet.exec.enabled' need to be enabled. By default, this config is the
value of the env var `ENABLE_COMET` if set, or true otherwise. | true |
| spark.comet.exceptionOnDatetimeRebase | Whether to throw exception when
seeing dates/timestamps from the legacy hybrid (Julian + Gregorian) calendar.
Since Spark 3, dates/timestamps were written according to the Proleptic
Gregorian calendar. When this is true, Comet will throw exceptions when seeing
these dates/timestamps that were written by Spark version before 3.0. If this
is false, these dates/timestamps will be read as if they were written to the
Proleptic Gregorian calendar and w [...]
-| spark.comet.exec.aggregate.enabled | Whether to enable aggregate by default.
The default value is false. | false |
-| spark.comet.exec.all.enabled | Whether to enable all Comet operators. By
default, this config is false. Note that this config precedes all separate
config 'spark.comet.exec.<operator_name>.enabled'. That being said, if this
config is enabled, separate configs are ignored. | false |
-| spark.comet.exec.broadcastExchange.enabled | Whether to enable
broadcastExchange by default. The default value is false. | false |
-| spark.comet.exec.broadcastHashJoin.enabled | Whether to enable
broadcastHashJoin by default. The default value is false. | false |
-| spark.comet.exec.coalesce.enabled | Whether to enable coalesce by default.
The default value is false. | false |
-| spark.comet.exec.collectLimit.enabled | Whether to enable collectLimit by
default. The default value is false. | false |
+| spark.comet.exec.aggregate.enabled | Whether to enable aggregate by default.
| true |
+| spark.comet.exec.broadcastExchange.enabled | Whether to enable
broadcastExchange by default. | true |
+| spark.comet.exec.broadcastHashJoin.enabled | Whether to enable
broadcastHashJoin by default. | true |
+| spark.comet.exec.coalesce.enabled | Whether to enable coalesce by default. |
true |
+| spark.comet.exec.collectLimit.enabled | Whether to enable collectLimit by
default. | true |
| spark.comet.exec.enabled | Whether to enable Comet native vectorized
execution for Spark. This controls whether Spark should convert operators into
their Comet counterparts and execute them in native space. Note: each operator
is associated with a separate config in the format of
'spark.comet.exec.<operator_name>.enabled' at the moment, and both the config
and this need to be turned on, in order for the operator to be executed in
native. By default, this config is false. | false |
-| spark.comet.exec.expand.enabled | Whether to enable expand by default. The
default value is false. | false |
-| spark.comet.exec.filter.enabled | Whether to enable filter by default. The
default value is false. | false |
-| spark.comet.exec.globalLimit.enabled | Whether to enable globalLimit by
default. The default value is false. | false |
-| spark.comet.exec.hashJoin.enabled | Whether to enable hashJoin by default.
The default value is false. | false |
-| spark.comet.exec.localLimit.enabled | Whether to enable localLimit by
default. The default value is false. | false |
+| spark.comet.exec.expand.enabled | Whether to enable expand by default. |
true |
+| spark.comet.exec.filter.enabled | Whether to enable filter by default. |
true |
+| spark.comet.exec.globalLimit.enabled | Whether to enable globalLimit by
default. | true |
+| spark.comet.exec.hashJoin.enabled | Whether to enable hashJoin by default. |
true |
+| spark.comet.exec.localLimit.enabled | Whether to enable localLimit by
default. | true |
| spark.comet.exec.memoryFraction | The fraction of memory from Comet memory
overhead that the native memory manager can use for execution. The purpose of
this config is to set aside memory for untracked data structures, as well as
imprecise size estimation during memory acquisition. Default value is 0.7. |
0.7 |
-| spark.comet.exec.project.enabled | Whether to enable project by default. The
default value is false. | false |
+| spark.comet.exec.project.enabled | Whether to enable project by default. |
true |
| spark.comet.exec.shuffle.codec | The codec of Comet native shuffle used to
compress shuffle data. Only zstd is supported. | zstd |
| spark.comet.exec.shuffle.enabled | Whether to enable Comet native shuffle.
By default, this config is false. Note that this requires setting
'spark.shuffle.manager' to
'org.apache.spark.sql.comet.execution.shuffle.CometShuffleManager'.
'spark.shuffle.manager' must be set before starting the Spark application and
cannot be changed during the application. | false |
| spark.comet.exec.shuffle.mode | The mode of Comet shuffle. This config is
only effective if Comet shuffle is enabled. Available modes are 'native',
'jvm', and 'auto'. 'native' is for native shuffle which has best performance in
general. 'jvm' is for jvm-based columnar shuffle which has higher coverage than
native shuffle. 'auto' is for Comet to choose the best shuffle mode based on
the query plan. By default, this config is 'jvm'. | jvm |
-| spark.comet.exec.sort.enabled | Whether to enable sort by default. The
default value is false. | false |
-| spark.comet.exec.sortMergeJoin.enabled | Whether to enable sortMergeJoin by
default. The default value is false. | false |
-| spark.comet.exec.stddev.enabled | Whether to enable stddev by default. The
default value is false. stddev is slower than Spark's implementation. | false |
-| spark.comet.exec.takeOrderedAndProject.enabled | Whether to enable
takeOrderedAndProject by default. The default value is false. | false |
-| spark.comet.exec.union.enabled | Whether to enable union by default. The
default value is false. | false |
-| spark.comet.exec.window.enabled | Whether to enable window by default. The
default value is false. | false |
+| spark.comet.exec.sort.enabled | Whether to enable sort by default. | true |
+| spark.comet.exec.sortMergeJoin.enabled | Whether to enable sortMergeJoin by
default. | true |
+| spark.comet.exec.stddev.enabled | Whether to enable stddev by default.
stddev is slower than Spark's implementation. | true |
+| spark.comet.exec.takeOrderedAndProject.enabled | Whether to enable
takeOrderedAndProject by default. | true |
+| spark.comet.exec.union.enabled | Whether to enable union by default. | true |
+| spark.comet.exec.window.enabled | Whether to enable window by default. |
true |
| spark.comet.explain.native.enabled | When this setting is enabled, Comet
will provide a tree representation of the native query plan before execution
and again after execution, with metrics. | false |
| spark.comet.explain.verbose.enabled | When this setting is enabled, Comet
will provide a verbose tree representation of the extended information. | false
|
| spark.comet.explainFallback.enabled | When this setting is enabled, Comet
will provide logging explaining the reason(s) why a query stage cannot be
executed natively. Set this to false to reduce the amount of logging. | false |
diff --git a/_sources/user-guide/installation.md.txt
b/_sources/user-guide/installation.md.txt
index 45f988e2..a87e41e7 100644
--- a/_sources/user-guide/installation.md.txt
+++ b/_sources/user-guide/installation.md.txt
@@ -32,7 +32,11 @@ Make sure the following requirements are met and software
installed on your mach
- JDK 8 and up
- GLIBC 2.17 (Centos 7) and up
-## Using a Published Binary Release
+## Using a Published Docker Image
+
+Docker images are available at
https://github.com/orgs/apache/packages?repo_name=datafusion-comet
+
+## Using a Published JAR File
There are no published binary releases yet.
@@ -84,7 +88,6 @@ $SPARK_HOME/bin/spark-shell \
--conf spark.sql.extensions=org.apache.comet.CometSparkSessionExtensions \
--conf spark.comet.enabled=true \
--conf spark.comet.exec.enabled=true \
- --conf spark.comet.exec.all.enabled=true \
--conf spark.comet.explainFallback.enabled=true
```
@@ -152,3 +155,6 @@ To enable columnar shuffle which supports all partitioning
and basic complex typ
```
--conf spark.comet.exec.shuffle.mode=jvm
```
+
+### Memory tuning
+In addition to Apache Spark memory configuration parameters the Comet
introduces own parameters to configure memory allocation for native execution.
More [Comet Memory Tuning](./tuning.md)
\ No newline at end of file
diff --git a/_sources/user-guide/tuning.md.txt
b/_sources/user-guide/tuning.md.txt
index 876f498d..9704bade 100644
--- a/_sources/user-guide/tuning.md.txt
+++ b/_sources/user-guide/tuning.md.txt
@@ -37,6 +37,17 @@ Comet will allocate at least
`spark.comet.memory.overhead.min` memory.
If both `spark.comet.memoryOverhead` and `spark.comet.memory.overhead.factor`
are set, the former will be used.
+## Memory Tuning using CometPlugin
+Configuring memory for Spark and Comet might be a tedious task as it requires
to tune Spark executor overhead memory and Comet memory overhead configs. Comet
provides a Spark plugin `CometPlugin` which can be set up to your Spark
application to help memory settings.
+
+For users running the Comet in clusters like Kubernetes or YARN, `CometPlugin`
can also make the resource manager respect correctly Comet memory parameters
`spark.comet.memory*`.
+it is needed to pass to the starting command line additional Spark
configuration parameter `--conf spark.plugins=org.apache.spark.CometPlugin`
+
+The resource managers respects Apache Spark memory configuration before
starting the containers.
+
+The `CometPlugin` plugin overrides `spark.executor.memoryOverhead` adding up
the Comet memory configuration.
+
+
## Shuffle
Comet provides Comet shuffle features that can be used to improve the
performance of your queries.
diff --git a/contributor-guide/benchmarking.html
b/contributor-guide/benchmarking.html
index 6431de6a..ee35d1c4 100644
--- a/contributor-guide/benchmarking.html
+++ b/contributor-guide/benchmarking.html
@@ -380,11 +380,9 @@ repository.</p>
<span class="w"> </span>--conf<span class="w">
</span>spark.sql.extensions<span
class="o">=</span>org.apache.comet.CometSparkSessionExtensions<span class="w">
</span><span class="se">\</span>
<span class="w"> </span>--conf<span class="w">
</span>spark.comet.enabled<span class="o">=</span><span
class="nb">true</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--conf<span class="w">
</span>spark.comet.exec.enabled<span class="o">=</span><span
class="nb">true</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--conf<span class="w">
</span>spark.comet.exec.all.enabled<span class="o">=</span><span
class="nb">true</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--conf<span class="w">
</span>spark.comet.cast.allowIncompatible<span class="o">=</span><span
class="nb">true</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--conf<span class="w">
</span>spark.comet.exec.shuffle.enabled<span class="o">=</span><span
class="nb">true</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--conf<span class="w">
</span>spark.comet.exec.shuffle.mode<span class="o">=</span>auto<span
class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--conf<span class="w">
</span>spark.comet.shuffle.enforceMode.enabled<span class="o">=</span><span
class="nb">true</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--conf<span class="w">
</span>spark.shuffle.manager<span
class="o">=</span>org.apache.spark.sql.comet.execution.shuffle.CometShuffleManager<span
class="w"> </span><span class="se">\</span>
<span class="w"> </span>tpcbench.py<span class="w"> </span><span
class="se">\</span>
<span class="w"> </span>--benchmark<span class="w"> </span>tpch<span
class="w"> </span><span class="se">\</span>
diff --git a/contributor-guide/debugging.html b/contributor-guide/debugging.html
index cab30a70..0b75291e 100644
--- a/contributor-guide/debugging.html
+++ b/contributor-guide/debugging.html
@@ -446,7 +446,7 @@ To enable this option with Comet it is needed to include
<code class="docutils l
</div>
<p>Then build the Comet as <a class="reference external"
href="https://github.com/apache/arrow-datafusion-comet/blob/main/README.md#getting-started">described</a></p>
<p>Start Comet with <code class="docutils literal notranslate"><span
class="pre">RUST_BACKTRACE=1</span></code></p>
-<div class="highlight-console notranslate"><div
class="highlight"><pre><span></span><span class="go">RUST_BACKTRACE=1
$SPARK_HOME/spark-shell --jars
spark/target/comet-spark-spark3.4_2.12-0.1.0-SNAPSHOT.jar --conf
spark.sql.extensions=org.apache.comet.CometSparkSessionExtensions --conf
spark.comet.enabled=true --conf spark.comet.exec.enabled=true --conf
spark.comet.exec.all.enabled=true</span>
+<div class="highlight-console notranslate"><div
class="highlight"><pre><span></span><span class="go">RUST_BACKTRACE=1
$SPARK_HOME/spark-shell --jars
spark/target/comet-spark-spark3.4_2.12-0.1.0-SNAPSHOT.jar --conf
spark.sql.extensions=org.apache.comet.CometSparkSessionExtensions --conf
spark.comet.enabled=true --conf spark.comet.exec.enabled=true</span>
</pre></div>
</div>
<p>Get the expanded exception details</p>
diff --git a/searchindex.js b/searchindex.js
index f3e2d28c..2516aec0 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles": {"1. Install Comet": [[7, "install-comet"]], "2.
Clone Spark and Apply Diff": [[7, "clone-spark-and-apply-diff"]], "3. Run Spark
SQL Tests": [[7, "run-spark-sql-tests"]], "ANSI mode": [[9, "ansi-mode"]], "API
Differences Between Spark Versions": [[0,
"api-differences-between-spark-versions"]], "ASF Links": [[8, null]], "Adding
Spark-side Tests for the New Expression": [[0,
"adding-spark-side-tests-for-the-new-expression"]], "Adding a New Expression":
[[0, nu [...]
\ No newline at end of file
+Search.setIndex({"alltitles": {"1. Install Comet": [[7, "install-comet"]], "2.
Clone Spark and Apply Diff": [[7, "clone-spark-and-apply-diff"]], "3. Run Spark
SQL Tests": [[7, "run-spark-sql-tests"]], "ANSI mode": [[9, "ansi-mode"]], "API
Differences Between Spark Versions": [[0,
"api-differences-between-spark-versions"]], "ASF Links": [[8, null]], "Adding
Spark-side Tests for the New Expression": [[0,
"adding-spark-side-tests-for-the-new-expression"]], "Adding a New Expression":
[[0, nu [...]
\ No newline at end of file
diff --git a/user-guide/configs.html b/user-guide/configs.html
index bbd937b8..1ef13d8e 100644
--- a/user-guide/configs.html
+++ b/user-guide/configs.html
@@ -372,146 +372,142 @@ under the License.
<td><p>false</p></td>
</tr>
<tr class="row-even"><td><p>spark.comet.exec.aggregate.enabled</p></td>
-<td><p>Whether to enable aggregate by default. The default value is
false.</p></td>
-<td><p>false</p></td>
-</tr>
-<tr class="row-odd"><td><p>spark.comet.exec.all.enabled</p></td>
-<td><p>Whether to enable all Comet operators. By default, this config is
false. Note that this config precedes all separate config
‘spark.comet.exec.<operator_name>.enabled’. That being said, if this
config is enabled, separate configs are ignored.</p></td>
-<td><p>false</p></td>
+<td><p>Whether to enable aggregate by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.exec.broadcastExchange.enabled</p></td>
-<td><p>Whether to enable broadcastExchange by default. The default value is
false.</p></td>
-<td><p>false</p></td>
+<tr class="row-odd"><td><p>spark.comet.exec.broadcastExchange.enabled</p></td>
+<td><p>Whether to enable broadcastExchange by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.exec.broadcastHashJoin.enabled</p></td>
-<td><p>Whether to enable broadcastHashJoin by default. The default value is
false.</p></td>
-<td><p>false</p></td>
+<tr class="row-even"><td><p>spark.comet.exec.broadcastHashJoin.enabled</p></td>
+<td><p>Whether to enable broadcastHashJoin by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.exec.coalesce.enabled</p></td>
-<td><p>Whether to enable coalesce by default. The default value is
false.</p></td>
-<td><p>false</p></td>
+<tr class="row-odd"><td><p>spark.comet.exec.coalesce.enabled</p></td>
+<td><p>Whether to enable coalesce by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.exec.collectLimit.enabled</p></td>
-<td><p>Whether to enable collectLimit by default. The default value is
false.</p></td>
-<td><p>false</p></td>
+<tr class="row-even"><td><p>spark.comet.exec.collectLimit.enabled</p></td>
+<td><p>Whether to enable collectLimit by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.exec.enabled</p></td>
+<tr class="row-odd"><td><p>spark.comet.exec.enabled</p></td>
<td><p>Whether to enable Comet native vectorized execution for Spark. This
controls whether Spark should convert operators into their Comet counterparts
and execute them in native space. Note: each operator is associated with a
separate config in the format of
‘spark.comet.exec.<operator_name>.enabled’ at the moment, and both the
config and this need to be turned on, in order for the operator to be executed
in native. By default, this config is false.</p></td>
<td><p>false</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.exec.expand.enabled</p></td>
-<td><p>Whether to enable expand by default. The default value is
false.</p></td>
-<td><p>false</p></td>
+<tr class="row-even"><td><p>spark.comet.exec.expand.enabled</p></td>
+<td><p>Whether to enable expand by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.exec.filter.enabled</p></td>
-<td><p>Whether to enable filter by default. The default value is
false.</p></td>
-<td><p>false</p></td>
+<tr class="row-odd"><td><p>spark.comet.exec.filter.enabled</p></td>
+<td><p>Whether to enable filter by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.exec.globalLimit.enabled</p></td>
-<td><p>Whether to enable globalLimit by default. The default value is
false.</p></td>
-<td><p>false</p></td>
+<tr class="row-even"><td><p>spark.comet.exec.globalLimit.enabled</p></td>
+<td><p>Whether to enable globalLimit by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.exec.hashJoin.enabled</p></td>
-<td><p>Whether to enable hashJoin by default. The default value is
false.</p></td>
-<td><p>false</p></td>
+<tr class="row-odd"><td><p>spark.comet.exec.hashJoin.enabled</p></td>
+<td><p>Whether to enable hashJoin by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.exec.localLimit.enabled</p></td>
-<td><p>Whether to enable localLimit by default. The default value is
false.</p></td>
-<td><p>false</p></td>
+<tr class="row-even"><td><p>spark.comet.exec.localLimit.enabled</p></td>
+<td><p>Whether to enable localLimit by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.exec.memoryFraction</p></td>
+<tr class="row-odd"><td><p>spark.comet.exec.memoryFraction</p></td>
<td><p>The fraction of memory from Comet memory overhead that the native
memory manager can use for execution. The purpose of this config is to set
aside memory for untracked data structures, as well as imprecise size
estimation during memory acquisition. Default value is 0.7.</p></td>
<td><p>0.7</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.exec.project.enabled</p></td>
-<td><p>Whether to enable project by default. The default value is
false.</p></td>
-<td><p>false</p></td>
+<tr class="row-even"><td><p>spark.comet.exec.project.enabled</p></td>
+<td><p>Whether to enable project by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.exec.shuffle.codec</p></td>
+<tr class="row-odd"><td><p>spark.comet.exec.shuffle.codec</p></td>
<td><p>The codec of Comet native shuffle used to compress shuffle data. Only
zstd is supported.</p></td>
<td><p>zstd</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.exec.shuffle.enabled</p></td>
+<tr class="row-even"><td><p>spark.comet.exec.shuffle.enabled</p></td>
<td><p>Whether to enable Comet native shuffle. By default, this config is
false. Note that this requires setting ‘spark.shuffle.manager’ to
‘org.apache.spark.sql.comet.execution.shuffle.CometShuffleManager’.
‘spark.shuffle.manager’ must be set before starting the Spark application and
cannot be changed during the application.</p></td>
<td><p>false</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.exec.shuffle.mode</p></td>
+<tr class="row-odd"><td><p>spark.comet.exec.shuffle.mode</p></td>
<td><p>The mode of Comet shuffle. This config is only effective if Comet
shuffle is enabled. Available modes are ‘native’, ‘jvm’, and ‘auto’. ‘native’
is for native shuffle which has best performance in general. ‘jvm’ is for
jvm-based columnar shuffle which has higher coverage than native shuffle.
‘auto’ is for Comet to choose the best shuffle mode based on the query plan. By
default, this config is ‘jvm’.</p></td>
<td><p>jvm</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.exec.sort.enabled</p></td>
-<td><p>Whether to enable sort by default. The default value is false.</p></td>
-<td><p>false</p></td>
+<tr class="row-even"><td><p>spark.comet.exec.sort.enabled</p></td>
+<td><p>Whether to enable sort by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.exec.sortMergeJoin.enabled</p></td>
-<td><p>Whether to enable sortMergeJoin by default. The default value is
false.</p></td>
-<td><p>false</p></td>
+<tr class="row-odd"><td><p>spark.comet.exec.sortMergeJoin.enabled</p></td>
+<td><p>Whether to enable sortMergeJoin by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.exec.stddev.enabled</p></td>
-<td><p>Whether to enable stddev by default. The default value is false. stddev
is slower than Spark’s implementation.</p></td>
-<td><p>false</p></td>
+<tr class="row-even"><td><p>spark.comet.exec.stddev.enabled</p></td>
+<td><p>Whether to enable stddev by default. stddev is slower than Spark’s
implementation.</p></td>
+<td><p>true</p></td>
</tr>
-<tr
class="row-even"><td><p>spark.comet.exec.takeOrderedAndProject.enabled</p></td>
-<td><p>Whether to enable takeOrderedAndProject by default. The default value
is false.</p></td>
-<td><p>false</p></td>
+<tr
class="row-odd"><td><p>spark.comet.exec.takeOrderedAndProject.enabled</p></td>
+<td><p>Whether to enable takeOrderedAndProject by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.exec.union.enabled</p></td>
-<td><p>Whether to enable union by default. The default value is false.</p></td>
-<td><p>false</p></td>
+<tr class="row-even"><td><p>spark.comet.exec.union.enabled</p></td>
+<td><p>Whether to enable union by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.exec.window.enabled</p></td>
-<td><p>Whether to enable window by default. The default value is
false.</p></td>
-<td><p>false</p></td>
+<tr class="row-odd"><td><p>spark.comet.exec.window.enabled</p></td>
+<td><p>Whether to enable window by default.</p></td>
+<td><p>true</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.explain.native.enabled</p></td>
+<tr class="row-even"><td><p>spark.comet.explain.native.enabled</p></td>
<td><p>When this setting is enabled, Comet will provide a tree representation
of the native query plan before execution and again after execution, with
metrics.</p></td>
<td><p>false</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.explain.verbose.enabled</p></td>
+<tr class="row-odd"><td><p>spark.comet.explain.verbose.enabled</p></td>
<td><p>When this setting is enabled, Comet will provide a verbose tree
representation of the extended information.</p></td>
<td><p>false</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.explainFallback.enabled</p></td>
+<tr class="row-even"><td><p>spark.comet.explainFallback.enabled</p></td>
<td><p>When this setting is enabled, Comet will provide logging explaining the
reason(s) why a query stage cannot be executed natively. Set this to false to
reduce the amount of logging.</p></td>
<td><p>false</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.memory.overhead.factor</p></td>
+<tr class="row-odd"><td><p>spark.comet.memory.overhead.factor</p></td>
<td><p>Fraction of executor memory to be allocated as additional non-heap
memory per executor process for Comet. Default value is 0.2.</p></td>
<td><p>0.2</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.memory.overhead.min</p></td>
+<tr class="row-even"><td><p>spark.comet.memory.overhead.min</p></td>
<td><p>Minimum amount of additional memory to be allocated per executor
process for Comet, in MiB.</p></td>
<td><p>402653184b</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.nativeLoadRequired</p></td>
+<tr class="row-odd"><td><p>spark.comet.nativeLoadRequired</p></td>
<td><p>Whether to require Comet native library to load successfully when Comet
is enabled. If not, Comet will silently fallback to Spark when it fails to load
the native lib. Otherwise, an error will be thrown and the Spark job will be
aborted.</p></td>
<td><p>false</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.parquet.enable.directBuffer</p></td>
+<tr class="row-even"><td><p>spark.comet.parquet.enable.directBuffer</p></td>
<td><p>Whether to use Java direct byte buffer when reading Parquet. By
default, this is false</p></td>
<td><p>false</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.regexp.allowIncompatible</p></td>
+<tr class="row-odd"><td><p>spark.comet.regexp.allowIncompatible</p></td>
<td><p>Comet is not currently fully compatible with Spark for all regular
expressions. Set this config to true to allow them anyway using Rust’s regular
expression engine. See compatibility guide for more information.</p></td>
<td><p>false</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.scan.enabled</p></td>
+<tr class="row-even"><td><p>spark.comet.scan.enabled</p></td>
<td><p>Whether to enable native scans. When this is turned on, Spark will use
Comet to read supported data sources (currently only Parquet is supported
natively). Note that to enable native vectorized execution, both this config
and ‘spark.comet.exec.enabled’ need to be enabled. By default, this config is
true.</p></td>
<td><p>true</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.scan.preFetch.enabled</p></td>
+<tr class="row-odd"><td><p>spark.comet.scan.preFetch.enabled</p></td>
<td><p>Whether to enable pre-fetching feature of CometScan. By default is
disabled.</p></td>
<td><p>false</p></td>
</tr>
-<tr class="row-odd"><td><p>spark.comet.scan.preFetch.threadNum</p></td>
+<tr class="row-even"><td><p>spark.comet.scan.preFetch.threadNum</p></td>
<td><p>The number of threads running pre-fetching for CometScan. Effective if
spark.comet.scan.preFetch.enabled is enabled. By default it is 2. Note that
more pre-fetching threads means more memory requirement to store pre-fetched
row groups.</p></td>
<td><p>2</p></td>
</tr>
-<tr class="row-even"><td><p>spark.comet.shuffle.preferDictionary.ratio</p></td>
+<tr class="row-odd"><td><p>spark.comet.shuffle.preferDictionary.ratio</p></td>
<td><p>The ratio of total values to distinct values in a string column to
decide whether to prefer dictionary encoding when shuffling the column. If the
ratio is higher than this config, dictionary encoding will be used on shuffling
string column. This config is effective if it is higher than 1.0. By default,
this config is 10.0. Note that this config is only used when <code
class="docutils literal notranslate"><span
class="pre">spark.comet.exec.shuffle.mode</span></code> is <code class= [...]
<td><p>10.0</p></td>
</tr>
-<tr
class="row-odd"><td><p>spark.comet.sparkToColumnar.supportedOperatorList</p></td>
+<tr
class="row-even"><td><p>spark.comet.sparkToColumnar.supportedOperatorList</p></td>
<td><p>A comma-separated list of operators that will be converted to Arrow
columnar format when ‘spark.comet.sparkToColumnar.enabled’ is true</p></td>
<td><p>Range,InMemoryTableScan</p></td>
</tr>
diff --git a/user-guide/installation.html b/user-guide/installation.html
index a48a7f4f..83a29432 100644
--- a/user-guide/installation.html
+++ b/user-guide/installation.html
@@ -282,8 +282,13 @@ under the License.
</a>
</li>
<li class="toc-h2 nav-item toc-entry">
- <a class="reference internal nav-link"
href="#using-a-published-binary-release">
- Using a Published Binary Release
+ <a class="reference internal nav-link"
href="#using-a-published-docker-image">
+ Using a Published Docker Image
+ </a>
+ </li>
+ <li class="toc-h2 nav-item toc-entry">
+ <a class="reference internal nav-link" href="#using-a-published-jar-file">
+ Using a Published JAR File
</a>
</li>
<li class="toc-h2 nav-item toc-entry">
@@ -311,6 +316,11 @@ under the License.
Enable Comet shuffle
</a>
</li>
+ <li class="toc-h3 nav-item toc-entry">
+ <a class="reference internal nav-link" href="#memory-tuning">
+ Memory tuning
+ </a>
+ </li>
</ul>
</li>
</ul>
@@ -377,8 +387,12 @@ under the License.
<li><p>GLIBC 2.17 (Centos 7) and up</p></li>
</ul>
</section>
-<section id="using-a-published-binary-release">
-<h2>Using a Published Binary Release<a class="headerlink"
href="#using-a-published-binary-release" title="Link to this heading">¶</a></h2>
+<section id="using-a-published-docker-image">
+<h2>Using a Published Docker Image<a class="headerlink"
href="#using-a-published-docker-image" title="Link to this heading">¶</a></h2>
+<p>Docker images are available at
https://github.com/orgs/apache/packages?repo_name=datafusion-comet</p>
+</section>
+<section id="using-a-published-jar-file">
+<h2>Using a Published JAR File<a class="headerlink"
href="#using-a-published-jar-file" title="Link to this heading">¶</a></h2>
<p>There are no published binary releases yet.</p>
</section>
<section id="using-a-published-source-release">
@@ -419,7 +433,6 @@ use of the command <code class="docutils literal
notranslate"><span class="pre">
<span class="w"> </span>--conf<span class="w">
</span>spark.sql.extensions<span
class="o">=</span>org.apache.comet.CometSparkSessionExtensions<span class="w">
</span><span class="se">\</span>
<span class="w"> </span>--conf<span class="w">
</span>spark.comet.enabled<span class="o">=</span><span
class="nb">true</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--conf<span class="w">
</span>spark.comet.exec.enabled<span class="o">=</span><span
class="nb">true</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--conf<span class="w">
</span>spark.comet.exec.all.enabled<span class="o">=</span><span
class="nb">true</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--conf<span class="w">
</span>spark.comet.explainFallback.enabled<span class="o">=</span><span
class="nb">true</span>
</pre></div>
</div>
@@ -477,6 +490,10 @@ components which will then fail at runtime. For
example:</p>
</pre></div>
</div>
</section>
+<section id="memory-tuning">
+<h3>Memory tuning<a class="headerlink" href="#memory-tuning" title="Link to
this heading">¶</a></h3>
+<p>In addition to Apache Spark memory configuration parameters the Comet
introduces own parameters to configure memory allocation for native execution.
More <a class="reference internal" href="tuning.html"><span class="std
std-doc">Comet Memory Tuning</span></a></p>
+</section>
</section>
</section>
diff --git a/user-guide/tuning.html b/user-guide/tuning.html
index 40d6d51e..0c1d4f65 100644
--- a/user-guide/tuning.html
+++ b/user-guide/tuning.html
@@ -276,6 +276,11 @@ under the License.
Memory Tuning
</a>
</li>
+ <li class="toc-h2 nav-item toc-entry">
+ <a class="reference internal nav-link"
href="#memory-tuning-using-cometplugin">
+ Memory Tuning using CometPlugin
+ </a>
+ </li>
<li class="toc-h2 nav-item toc-entry">
<a class="reference internal nav-link" href="#shuffle">
Shuffle
@@ -367,6 +372,14 @@ Once the memory is not enough, the operator will spill to
disk, which will slow
Comet will allocate at least <code class="docutils literal notranslate"><span
class="pre">spark.comet.memory.overhead.min</span></code> memory.</p>
<p>If both <code class="docutils literal notranslate"><span
class="pre">spark.comet.memoryOverhead</span></code> and <code class="docutils
literal notranslate"><span
class="pre">spark.comet.memory.overhead.factor</span></code> are set, the
former will be used.</p>
</section>
+<section id="memory-tuning-using-cometplugin">
+<h2>Memory Tuning using CometPlugin<a class="headerlink"
href="#memory-tuning-using-cometplugin" title="Link to this heading">¶</a></h2>
+<p>Configuring memory for Spark and Comet might be a tedious task as it
requires to tune Spark executor overhead memory and Comet memory overhead
configs. Comet provides a Spark plugin <code class="docutils literal
notranslate"><span class="pre">CometPlugin</span></code> which can be set up to
your Spark application to help memory settings.</p>
+<p>For users running the Comet in clusters like Kubernetes or YARN, <code
class="docutils literal notranslate"><span
class="pre">CometPlugin</span></code> can also make the resource manager
respect correctly Comet memory parameters <code class="docutils literal
notranslate"><span class="pre">spark.comet.memory*</span></code>.
+it is needed to pass to the starting command line additional Spark
configuration parameter <code class="docutils literal notranslate"><span
class="pre">--conf</span> <span
class="pre">spark.plugins=org.apache.spark.CometPlugin</span></code></p>
+<p>The resource managers respects Apache Spark memory configuration before
starting the containers.</p>
+<p>The <code class="docutils literal notranslate"><span
class="pre">CometPlugin</span></code> plugin overrides <code class="docutils
literal notranslate"><span
class="pre">spark.executor.memoryOverhead</span></code> adding up the Comet
memory configuration.</p>
+</section>
<section id="shuffle">
<h2>Shuffle<a class="headerlink" href="#shuffle" title="Link to this
heading">¶</a></h2>
<p>Comet provides Comet shuffle features that can be used to improve the
performance of your queries.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]