This is an automated email from the ASF dual-hosted git repository.

github-actions[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 d99c83e8d6 Publish built docs triggered by 
198109160221e41cc97ecd7e415971006fa3b637
d99c83e8d6 is described below

commit d99c83e8d66867b33ecb4d1c0ec89004cea80484
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Jul 22 13:18:44 2026 +0000

    Publish built docs triggered by 198109160221e41cc97ecd7e415971006fa3b637
---
 _sources/contributor-guide/native_shuffle.md.txt | 4 +++-
 _sources/user-guide/latest/configs.md.txt        | 1 +
 contributor-guide/native_shuffle.html            | 4 +++-
 searchindex.js                                   | 2 +-
 user-guide/latest/configs.html                   | 8 ++++++--
 5 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/_sources/contributor-guide/native_shuffle.md.txt 
b/_sources/contributor-guide/native_shuffle.md.txt
index c46b8b45a8..4d6421de5e 100644
--- a/_sources/contributor-guide/native_shuffle.md.txt
+++ b/_sources/contributor-guide/native_shuffle.md.txt
@@ -214,7 +214,9 @@ sizes.
 Native shuffle uses DataFusion's memory management with spilling support:
 
 - **Memory pool**: Tracks memory usage across the shuffle operation.
-- **Spill threshold**: When buffered data exceeds the threshold, partitions 
spill to disk.
+- **Spill triggers**: Partitions spill to disk when the memory pool denies an 
allocation, or
+  when the buffered bytes reach `spark.comet.shuffle.maxBufferBytes`. That 
config defaults to
+  0, which disables the fixed limit and leaves memory pressure as the only 
trigger.
 - **Per-partition spilling**: Each partition has its own spill file. Multiple 
spills for a
   partition are concatenated when writing the final output.
 - **Scratch space**: Reusable buffers for partition ID computation to reduce 
allocations.
diff --git a/_sources/user-guide/latest/configs.md.txt 
b/_sources/user-guide/latest/configs.md.txt
index 7e5f520e4f..c695d00185 100644
--- a/_sources/user-guide/latest/configs.md.txt
+++ b/_sources/user-guide/latest/configs.md.txt
@@ -112,6 +112,7 @@ These settings can be used to determine which parts of the 
plan are accelerated
 | `spark.comet.native.shuffle.partitioning.range.enabled` | Whether to enable 
range partitioning for Comet native shuffle. | true |
 | `spark.comet.native.shuffle.partitioning.roundrobin.enabled` | Whether to 
enable round robin partitioning for Comet native shuffle. This is disabled by 
default because Comet's round-robin produces different partition assignments 
than Spark. Spark sorts rows by their binary UnsafeRow representation before 
assigning partitions, but Comet uses Arrow format which has a different binary 
layout. Instead, Comet implements round-robin as hash partitioning on all 
columns, which achieves the sam [...]
 | `spark.comet.native.shuffle.partitioning.roundrobin.maxHashColumns` | The 
maximum number of columns to hash for round robin partitioning. When set to 0 
(the default), all columns are hashed. When set to a positive value, only the 
first N columns are used for hashing, which can improve performance for wide 
tables while still providing reasonable distribution. | 0 |
+| `spark.comet.shuffle.maxBufferBytes` | Maximum number of bytes that the 
native shuffle writer will buffer in memory before spilling to disk. The 
default of 0 disables this limit, in which case spilling is triggered only when 
the memory pool denies an allocation. Setting a limit caps the writer's memory 
footprint independently of the size of the memory pool, at the cost of more 
frequent spilling. | 0b |
 | `spark.comet.shuffle.preferDictionary.ratio` | 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. Note that this config is only used when 
`spark.comet.exec.shuffle.mode` is `jvm`. | 10.0 |
 | `spark.comet.shuffle.sizeInBytesMultiplier` | Comet reports smaller sizes 
for shuffle due to using Arrow's columnar memory format and this can result in 
Spark choosing a different join strategy due to the estimated size of the 
exchange being smaller. Comet will multiple sizeInBytes by this amount to avoid 
regressions in join strategy. | 1.0 |
 <!-- prettier-ignore-end -->
diff --git a/contributor-guide/native_shuffle.html 
b/contributor-guide/native_shuffle.html
index 9666f40a41..e31bf064ca 100644
--- a/contributor-guide/native_shuffle.html
+++ b/contributor-guide/native_shuffle.html
@@ -798,7 +798,9 @@ sizes.</p>
 <p>Native shuffle uses DataFusion’s memory management with spilling 
support:</p>
 <ul class="simple">
 <li><p><strong>Memory pool</strong>: Tracks memory usage across the shuffle 
operation.</p></li>
-<li><p><strong>Spill threshold</strong>: When buffered data exceeds the 
threshold, partitions spill to disk.</p></li>
+<li><p><strong>Spill triggers</strong>: Partitions spill to disk when the 
memory pool denies an allocation, or
+when the buffered bytes reach <code class="docutils literal notranslate"><span 
class="pre">spark.comet.shuffle.maxBufferBytes</span></code>. That config 
defaults to
+0, which disables the fixed limit and leaves memory pressure as the only 
trigger.</p></li>
 <li><p><strong>Per-partition spilling</strong>: Each partition has its own 
spill file. Multiple spills for a
 partition are concatenated when writing the final output.</p></li>
 <li><p><strong>Scratch space</strong>: Reusable buffers for partition ID 
computation to reduce allocations.</p></li>
diff --git a/searchindex.js b/searchindex.js
index 8d48050344..c5116646cf 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles": {"!": [[53, "id1"]], "%": [[51, "id1"]], "&": 
[[41, "id1"]], "*": [[51, "id2"]], "+": [[51, "id3"]], "-": [[51, "id4"]], "/": 
[[51, "id5"]], "1. Format Your Code": [[38, "format-your-code"]], "1. Install 
Comet": [[59, "install-comet"], [69, "install-comet"]], "1. Native Operators 
(nativeExecs map)": [[26, "native-operators-nativeexecs-map"]], "2. Build and 
Verify": [[38, "build-and-verify"]], "2. Clone Iceberg and Apply Diff": [[59, 
"clone-iceberg-and-apply- [...]
\ No newline at end of file
+Search.setIndex({"alltitles": {"!": [[53, "id1"]], "%": [[51, "id1"]], "&": 
[[41, "id1"]], "*": [[51, "id2"]], "+": [[51, "id3"]], "-": [[51, "id4"]], "/": 
[[51, "id5"]], "1. Format Your Code": [[38, "format-your-code"]], "1. Install 
Comet": [[59, "install-comet"], [69, "install-comet"]], "1. Native Operators 
(nativeExecs map)": [[26, "native-operators-nativeexecs-map"]], "2. Build and 
Verify": [[38, "build-and-verify"]], "2. Clone Iceberg and Apply Diff": [[59, 
"clone-iceberg-and-apply- [...]
\ No newline at end of file
diff --git a/user-guide/latest/configs.html b/user-guide/latest/configs.html
index c278deab22..6c4936ca04 100644
--- a/user-guide/latest/configs.html
+++ b/user-guide/latest/configs.html
@@ -1015,11 +1015,15 @@ under the License.
 <td><p>The maximum number of columns to hash for round robin partitioning. 
When set to 0 (the default), all columns are hashed. When set to a positive 
value, only the first N columns are used for hashing, which can improve 
performance for wide tables while still providing reasonable 
distribution.</p></td>
 <td><p>0</p></td>
 </tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span 
class="pre">spark.comet.shuffle.preferDictionary.ratio</span></code></p></td>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span 
class="pre">spark.comet.shuffle.maxBufferBytes</span></code></p></td>
+<td><p>Maximum number of bytes that the native shuffle writer will buffer in 
memory before spilling to disk. The default of 0 disables this limit, in which 
case spilling is triggered only when the memory pool denies an allocation. 
Setting a limit caps the writer’s memory footprint independently of the size of 
the memory pool, at the cost of more frequent spilling.</p></td>
+<td><p>0b</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span 
class="pre">spark.comet.shuffle.preferDictionary.ratio</span></code></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. 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="docutils literal notranslate"><s [...]
 <td><p>10.0</p></td>
 </tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span 
class="pre">spark.comet.shuffle.sizeInBytesMultiplier</span></code></p></td>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span 
class="pre">spark.comet.shuffle.sizeInBytesMultiplier</span></code></p></td>
 <td><p>Comet reports smaller sizes for shuffle due to using Arrow’s columnar 
memory format and this can result in Spark choosing a different join strategy 
due to the estimated size of the exchange being smaller. Comet will multiple 
sizeInBytes by this amount to avoid regressions in join strategy.</p></td>
 <td><p>1.0</p></td>
 </tr>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to