andygrove commented on code in PR #205:
URL: https://github.com/apache/datafusion-site/pull/205#discussion_r4137999338


##########
content/blog/2026-10-01-datafusion-comet-1.1.0.md:
##########
@@ -0,0 +1,604 @@
+---
+layout: post
+title: Apache DataFusion Comet 1.1.0 Release
+date: 2026-10-01
+author: pmc
+categories: [subprojects]
+---
+
+<!--
+{% comment %}
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to you under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+{% endcomment %}
+-->
+
+[TOC]
+
+The Apache DataFusion PMC is pleased to announce version 1.1.0 of the 
[Comet](https://datafusion.apache.org/comet/) subproject.
+
+Comet is an accelerator for Apache Spark that translates Spark physical plans 
to DataFusion physical plans for
+improved performance and efficiency without requiring any code changes.
+
+This release covers roughly seven weeks of development since 1.0.0: 398 
commits from 40 contributors. See the
+[change log] for the full list of changes.
+
+[change log]: 
https://github.com/apache/datafusion-comet/blob/branch-1.1/docs/source/changelog/1.1.0.md
+
+The highlights:
+
+- **Native Iceberg writes** (experimental): Comet can write Iceberg data files 
with iceberg-rust instead of
+  iceberg-java.
+- **Memory management**: Comet now measures the native memory its pools don't 
track, logs it on every executor,
+  and fixes several long-standing pool accounting bugs.
+- **Native shuffle over Apache Celeborn**: Comet's side is in place, but it 
needs a Celeborn client API that no
+  released Celeborn version provides yet.
+- **Native Parquet writes on Spark 4.0+** (experimental), now built on Spark's 
own write path.
+
+## Native Iceberg Writes (Experimental)
+
+Until now, Comet accelerated Iceberg reads but left writes to the JVM. In 
1.1.0, Comet can write Iceberg data
+files natively using [iceberg-rust](https://github.com/apache/iceberg-rust). 
The feature is **experimental and
+disabled by default**, and it only engages under fairly strict conditions.
+
+### Splitting the write operator
+
+Spark writes an Iceberg table with a single operator that writes the data 
files, writes the metadata, commits,
+and validates against the catalog. Adaptive Query Execution (AQE) re-plans the 
query feeding that operator, but
+the operator itself sits outside AQE, so the file writing can't adapt to how 
its input actually ran. And because
+file writing is bundled with the metadata and commit steps, there is no 
separate piece for Comet to take over.
+
+Setting `spark.comet.write.iceberg.splitOperator.enabled=true` splits eligible 
writes into two operators:
+
+1. **`IcebergWrite`** writes data files on the executors and returns each 
task's commit message. When AQE is
+   enabled, as it is by default, it runs inside AQE along with the query 
feeding it. The split also works with
+   AQE disabled.
+2. **`IcebergCommit`** collects the commit messages on the driver and performs 
the normal Iceberg commit, once,
+   outside AQE.
+
+On its own, the split doesn't change who writes the files; that's still 
iceberg-java. It moves file writing inside
+AQE and separates it from the commit, which gives the native writer a place to 
plug in. It covers `INSERT INTO`
+and DataFrame `append`, static and dynamic `INSERT OVERWRITE`, and 
copy-on-write `DELETE`, `UPDATE`, and `MERGE`,
+on every supported Spark version. Merge-on-read writes are left alone. When 
Comet can't split a write (an
+unrecognized write class, CTAS on Spark 3.4, or a write that needs Spark's 
commit coordinator), it plans the write
+exactly as if Comet weren't there.
+
+### Writing Parquet natively
+
+Also setting `spark.comet.iceberg.write.enabled=true` hands each task's 
Parquet writing to iceberg-rust. The
+driver passes the native writer everything it needs: schema, partition spec, 
data location, Parquet settings,
+writer mode, and object-store configuration. Each task writes its files and 
returns their metadata as an
+in-memory Iceberg manifest.
+
+From there, iceberg-java takes over again. The JVM reads the manifest, 
recomputes each file's metrics from its
+Parquet footer, and builds the same commit message the JVM writer would have 
produced. Snapshots, manifest
+lists, commit validation, and retries all work as before.
+
+The native writer consumes Arrow batches from a Comet operator, so the query 
feeding the write must run in Comet
+too. Writes from a local relation, such as `INSERT ... VALUES`, also need
+`spark.comet.exec.localTableScan.enabled=true`.
+
+To see which path a write took, check the physical plan: a native write shows 
`CometIcebergWrite` under
+`IcebergCommit`, and a write that fell back shows `IcebergWrite`.
+
+### Matching iceberg-java
+
+The goal is the table iceberg-java would have written, not just a valid one. 
Manifest metrics drive pruning for

Review Comment:
   Fair, that was unclear. It meant the native writer should produce the same 
table iceberg-java would, including the metadata later reads rely on, not 
merely something that passes as a valid Iceberg table. Reworded in fd051bc1.



##########
content/blog/2026-10-01-datafusion-comet-1.1.0.md:
##########
@@ -0,0 +1,604 @@
+---
+layout: post
+title: Apache DataFusion Comet 1.1.0 Release
+date: 2026-10-01
+author: pmc
+categories: [subprojects]
+---
+
+<!--
+{% comment %}
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to you under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+{% endcomment %}
+-->
+
+[TOC]
+
+The Apache DataFusion PMC is pleased to announce version 1.1.0 of the 
[Comet](https://datafusion.apache.org/comet/) subproject.
+
+Comet is an accelerator for Apache Spark that translates Spark physical plans 
to DataFusion physical plans for
+improved performance and efficiency without requiring any code changes.
+
+This release covers roughly seven weeks of development since 1.0.0: 398 
commits from 40 contributors. See the
+[change log] for the full list of changes.
+
+[change log]: 
https://github.com/apache/datafusion-comet/blob/branch-1.1/docs/source/changelog/1.1.0.md
+
+The highlights:
+
+- **Native Iceberg writes** (experimental): Comet can write Iceberg data files 
with iceberg-rust instead of
+  iceberg-java.
+- **Memory management**: Comet now measures the native memory its pools don't 
track, logs it on every executor,
+  and fixes several long-standing pool accounting bugs.
+- **Native shuffle over Apache Celeborn**: Comet's side is in place, but it 
needs a Celeborn client API that no
+  released Celeborn version provides yet.
+- **Native Parquet writes on Spark 4.0+** (experimental), now built on Spark's 
own write path.
+
+## Native Iceberg Writes (Experimental)
+
+Until now, Comet accelerated Iceberg reads but left writes to the JVM. In 
1.1.0, Comet can write Iceberg data
+files natively using [iceberg-rust](https://github.com/apache/iceberg-rust). 
The feature is **experimental and
+disabled by default**, and it only engages under fairly strict conditions.
+
+### Splitting the write operator
+
+Spark writes an Iceberg table with a single operator that writes the data 
files, writes the metadata, commits,
+and validates against the catalog. Adaptive Query Execution (AQE) re-plans the 
query feeding that operator, but
+the operator itself sits outside AQE, so the file writing can't adapt to how 
its input actually ran. And because
+file writing is bundled with the metadata and commit steps, there is no 
separate piece for Comet to take over.
+
+Setting `spark.comet.write.iceberg.splitOperator.enabled=true` splits eligible 
Iceberg writes into two operators:
+
+1. **`IcebergWrite`** writes data files on the executors and returns each 
task's commit message. When AQE is
+   enabled, as it is by default, it runs inside AQE along with the query 
feeding it. The split also works with
+   AQE disabled.
+2. **`IcebergCommit`** collects the commit messages on the driver and performs 
the normal Iceberg commit, once,
+   outside AQE.
+
+On its own, the split doesn't change who writes the files; that's still 
iceberg-java. It moves file writing inside

Review Comment:
   Right, that sentence only meant the case where just the split is enabled. It 
now says that with only the split enabled, iceberg-java still writes the files, 
and the native writer (`spark.comet.iceberg.write.enabled=true`) replaces that 
step (fd051bc1).



##########
content/blog/2026-10-01-datafusion-comet-1.1.0.md:
##########
@@ -0,0 +1,604 @@
+---
+layout: post
+title: Apache DataFusion Comet 1.1.0 Release
+date: 2026-10-01
+author: pmc
+categories: [subprojects]
+---
+
+<!--
+{% comment %}
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to you under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+{% endcomment %}
+-->
+
+[TOC]
+
+The Apache DataFusion PMC is pleased to announce version 1.1.0 of the 
[Comet](https://datafusion.apache.org/comet/) subproject.
+
+Comet is an accelerator for Apache Spark that translates Spark physical plans 
to DataFusion physical plans for
+improved performance and efficiency without requiring any code changes.
+
+This release covers roughly seven weeks of development since 1.0.0: 398 
commits from 40 contributors. See the
+[change log] for the full list of changes.
+
+[change log]: 
https://github.com/apache/datafusion-comet/blob/branch-1.1/docs/source/changelog/1.1.0.md
+
+The highlights:
+
+- **Native Iceberg writes** (experimental): Comet can write Iceberg data files 
with iceberg-rust instead of
+  iceberg-java.
+- **Memory management**: Comet now measures the native memory its pools don't 
track, logs it on every executor,
+  and fixes several long-standing pool accounting bugs.
+- **Native shuffle over Apache Celeborn**: Comet's side is in place, but it 
needs a Celeborn client API that no
+  released Celeborn version provides yet.
+- **Native Parquet writes on Spark 4.0+** (experimental), now built on Spark's 
own write path.
+
+## Native Iceberg Writes (Experimental)
+
+Until now, Comet accelerated Iceberg reads but left writes to the JVM. In 
1.1.0, Comet can write Iceberg data
+files natively using [iceberg-rust](https://github.com/apache/iceberg-rust). 
The feature is **experimental and
+disabled by default**, and it only engages under fairly strict conditions.
+
+### Splitting the write operator
+
+Spark writes an Iceberg table with a single operator that writes the data 
files, writes the metadata, commits,
+and validates against the catalog. Adaptive Query Execution (AQE) re-plans the 
query feeding that operator, but
+the operator itself sits outside AQE, so the file writing can't adapt to how 
its input actually ran. And because
+file writing is bundled with the metadata and commit steps, there is no 
separate piece for Comet to take over.
+
+Setting `spark.comet.write.iceberg.splitOperator.enabled=true` splits eligible 
Iceberg writes into two operators:
+
+1. **`IcebergWrite`** writes data files on the executors and returns each 
task's commit message. When AQE is
+   enabled, as it is by default, it runs inside AQE along with the query 
feeding it. The split also works with

Review Comment:
   Agreed it was too detailed, and the AQE angle raised more questions than it 
answered. I dropped it from the post. The section now explains the split by 
what matters for the native writer: file writing was bundled with metadata 
writing and commit, so there was nothing separate for Comet to replace 
(fd051bc1).



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to