hsiang-c commented on code in PR #201:
URL: https://github.com/apache/datafusion-site/pull/201#discussion_r3722515843


##########
content/blog/2026-08-07-datafusion-comet-1.0.0.md:
##########
@@ -0,0 +1,294 @@
+---
+layout: post
+title: Apache DataFusion Comet 1.0.0 Release
+date: 2026-08-07
+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.0.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 six weeks of development since 0.17.0 and consists 
of 244 commits from 23
+contributors. See the [change log] for the full list of changes.
+
+[change log]: 
https://github.com/apache/datafusion-comet/blob/main/docs/source/changelog/1.0.0.md
+
+## The Road to 1.0
+
+Comet was [donated] to the Apache DataFusion project in March 2024 and cut its 
first release, 0.1.0, five
+months later with 15 data types, 13 operators, 106 expressions, and a "modest 
performance speedup." The
+sixteen major releases between then and now cover a lot of ground:
+
+[donated]: https://datafusion.apache.org/blog/2024/03/06/comet-donation/
+
+- **Query coverage went from a handful of operators to the shape of a real 
Spark query.** Native
+  SortMergeJoin, HashJoin, and BroadcastHashJoin landed early; native columnar 
and native shuffle,
+  broadcast nested loop joins, native window functions, native sampling, and 
mixed partial/final aggregation
+  followed. Supported expressions grew from 106 at 0.1.0 to more than 400 in 
1.0.0, and the introduction of the JVM
+  codegen dispatcher in 0.17.0 gave Comet a way to keep unsupported 
expressions Arrow-native by running
+  Spark's own generated code inside the pipeline rather than falling back to 
row-based execution.
+- **Spark support broadened.** The 0.1.0 release targeted Spark 3.3, 3.4, and 
3.5, with experimental 4.0. The
+  1.0 line drops 3.3, adds 4.1, and ships an experimental 4.2 profile. ANSI 
semantics — on by default in
+  Spark 4 — moved from partial to a supported default across the natively 
implemented surface.
+- **The ecosystem story filled in.** Native Iceberg support arrived in 0.10.0 
and has been extended through
+  1.11 and format V3, native Parquet writes and CSV reads landed as 
experimental features and matured,
+  Azure joined S3 on the native cloud path, and 1.0.0 adds experimental 
accelerated PyArrow UDFs alongside the
+  Java and Scala UDF support that shipped in 0.17.0.
+- **Correctness rigor grew alongside the surface area.** Early releases relied 
on fuzz testing to surface
+  divergences; later releases added a full Spark SQL test-suite run against 
every supported Spark version,
+  followed by AI-assisted expression audits comparing Comet's behavior against 
every supported Spark version
+  edge case by edge case. 1.0 ships with every known open correctness gap 
documented in the compatibility
+  guide.
+- **Performance moved from "modest speedup" to workload-level wins.** TPC-DS 
at 1TB has become the reference
+  workload, with successive releases removing FFI round trips, caching Parquet 
metadata, shrinking plan
+  serialization, and tightening the shuffle write path. 0.17.0 alone was ~9% 
faster than 0.16.0 on TPC-DS
+  1TB, and the per-expression optimization work in 1.0 continues that 
trajectory.
+
+## What 1.0 Means
+
+Beyond the accumulated features, 1.0 is where the project commits to being 
something you can build on:
+
+- **Broad Spark coverage.** Comet supports Apache Spark 3.4.3, 3.5.9, 4.0.4, 
and 4.1.3 out of the same
+  codebase, with dedicated Maven profiles, shim sources, and CI matrices for 
each, plus an experimental
+  Spark 4.2 profile for early evaluation. A published Spark version adoption 
and support-lifetime policy
+  now states how long each Spark minor stays supported.
+- **ANSI SQL by default.** Spark 4 enables ANSI semantics by default. Comet 
implements ANSI behavior for the
+  expressions it supports natively, including arithmetic overflow checks, ANSI 
cast behavior, and `try_*`
+  variants, so ANSI workloads keep accelerating rather than falling back.
+- **A correctness harness, not just unit tests.** Comet runs the full Apache 
Spark SQL test suite through its
+  native execution path against every supported Spark version. Running Spark's 
own correctness tests is what
+  surfaces semantic shifts before they reach user workloads, and it is the 
foundation of the confidence behind
+  a 1.0 release.
+- **A stable release line going forward.** With 1.0, the project commits to 
semantic versioning. Because Comet
+  is a plugin rather than a library, its configuration is its primary API 
surface, so `spark.comet.*` keys, an
+  explicitly enumerated public Java and Scala API, and query results 
documented as Compatible are all part of
+  the compatibility surface. Behavior changes in a minor release now require a 
`spark.comet.legacy.*` key that
+  restores the previous behavior, and each release records its behavior 
changes in a user-facing upgrade
+  guide. Correctness fixes are exempt from being treated as breaking changes. 
The first deprecations under
+  that policy are announced in this release (see [Deprecation 
Notice](#deprecation-notice) below).
+- **Documented limitations.** Every open correctness issue is now surfaced in 
the generated compatibility
+  guide, down to the expression level, so you can see where Comet is known to 
diverge from Spark before you
+  hit it in production rather than after.
+
+The rest of this post covers what is new since 0.17.0.
+
+## Native Expression Performance
+
+A large share of this release is dedicated to making Comet's native scalar 
expressions faster. These kernels
+run per-row or per-batch, so improvements here compound across every query 
that uses them. Expressions with
+optimized implementations in this release include:
+
+- **Casts** between numeric, string, decimal, and date types, including a 
faster float-to-decimal cast, an
+  optimized integer-to-integer cast, shared no-overflow fast paths in 
`CheckOverflow` and
+  `DecimalRescaleCheckOverflow`, and a `cast_binary_to_string` that is up to 
27x faster on binary-format
+  styles.
+- **JSON, regex, and URL parsing**: `get_json_object`, `regexp_extract`, and 
`parse_url`.
+- **Date/time and decimal kernels**: `date_trunc`, `spark_ceil`, and a 
vectorized `spark_unscaled_value`.
+- **String and array kernels**: `lpad`, `unhex`, `size`, `arrays_overlap`, 
`escape_string`, and the `try_*`
+  arithmetic kernel.
+
+To make this kind of work repeatable, the release also adds a scalar 
expression optimization guide

Review Comment:
   (nit) Add a link to 
[guide](https://datafusion.apache.org/comet/contributor-guide/optimizing_expressions.html)



-- 
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