-
Notifications
You must be signed in to change notification settings - Fork 31
Comet 0.14.0 blog post #163
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
66d2470
Comet 0.14 blog post
andygrove 08240a0
fix: add write permissions to stage-site workflow
andygrove 3348f36
Revert "fix: add write permissions to stage-site workflow"
andygrove 75b3c0c
Merge remote-tracking branch 'apache/main' into site/comet-0.14
andygrove 62b86e3
fix: address PR review feedback on Comet 0.14.0 blog post
andygrove f5b7f0d
fix: move iceberg-rust reader improvements to Iceberg section
andygrove ab637ec
refactor: reorder sections to put Iceberg before C2R
andygrove File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,114 @@ | ||
| --- | ||
| layout: post | ||
| title: Apache DataFusion Comet 0.14.0 Release | ||
| date: 2026-03-18 | ||
| 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 0.14.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 approximately eight weeks of development work and is the result of merging 189 PRs from 21 | ||
| contributors. See the [change log] for more information. | ||
|
|
||
| [change log]: https://github.com/apache/datafusion-comet/blob/main/dev/changelog/0.14.0.md | ||
|
|
||
| ## Key Features | ||
|
|
||
| ### Native Iceberg Improvements | ||
|
|
||
| Comet's fully-native Iceberg integration received several enhancements: | ||
|
|
||
| **Per-Partition Plan Serialization**: `CometExecRDD` now supports per-partition plan data, reducing serialization | ||
| overhead for native Iceberg scans and enabling dynamic partition pruning (DPP). | ||
|
|
||
| **Vended Credentials**: Native Iceberg scans now support passing vended credentials from the catalog, improving | ||
| integration with cloud storage services. | ||
|
|
||
| **Upstream Reader Performance Improvements**: The Comet team contributed a number of | ||
| [reader performance improvements](https://iceberg.apache.org/blog/apache-iceberg-rust-0.9.0-release/#reader-performance-improvements) | ||
| to iceberg-rust 0.9.0, which Comet now uses. These improvements benefit all iceberg-rust users. | ||
|
|
||
| **Performance Optimizations**: | ||
|
|
||
| - Single-pass `FileScanTask` validation for reduced planning overhead | ||
| - Configurable data file concurrency via `spark.comet.scan.icebergNative.dataFileConcurrencyLimit` | ||
| - Channel-based executor thread parking instead of `yield_now()` for reduced CPU overhead | ||
| - Reuse of `CometConf` and native utility instances in batch decoding | ||
|
|
||
| ### Native Columnar-to-Row Conversion | ||
|
|
||
| Comet now uses a native columnar-to-row (C2R) conversion by default. This | ||
| feature replaces Comet's JVM-based columnar-to-row transition with a native Rust implementation, reducing JVM memory overhead | ||
| when data flows from Comet's native execution back to Spark operators that require row-based input. | ||
|
|
||
| ### New Expressions | ||
|
|
||
| This release adds support for the following expressions: | ||
|
|
||
| - Date/time functions: `make_date`, `next_day` | ||
| - String functions: `right`, `string_split`, `luhn_check` | ||
| - Math functions: `crc32` | ||
| - Map functions: `map_contains_key`, `map_from_entries` | ||
| - Conversion functions: `to_csv` | ||
| - Cast support: date to timestamp, numeric to timestamp, integer to binary, boolean to decimal, date to numeric | ||
|
|
||
| ### ANSI Mode Error Messages | ||
|
|
||
| ANSI SQL mode now produces proper error messages matching Spark's expected output, improving compatibility for | ||
| workloads that rely on strict SQL error handling. | ||
|
|
||
| ### DataFusion Configuration Passthrough | ||
|
|
||
| DataFusion session-level configurations can now be set directly from Spark using the `spark.comet.datafusion.*` | ||
| prefix. This enables tuning DataFusion internals such as batch sizes and memory limits without modifying Comet code. | ||
|
|
||
| ## Performance Improvements | ||
|
|
||
| This release includes extensive performance optimizations: | ||
|
|
||
| - **Sum aggregation**: Specialized implementations for each eval mode eliminate per-row mode checks | ||
| - **Contains expression**: SIMD-based scalar pattern search for faster string matching | ||
| - **Batch coalescing**: Reduced IPC schema overhead in `BufBatchWriter` by coalescing small batches | ||
| - **Tokio runtime**: Worker threads now initialize from `spark.executor.cores` for better resource utilization | ||
| - **Decimal expressions**: Optimized decimal arithmetic operations | ||
| - **Row-to-columnar transition**: Improved performance for JVM shuffle data conversion | ||
| - **Aligned pointer reads**: Optimized `SparkUnsafeRow` field accessors using aligned memory reads | ||
|
|
||
| ## Deprecations and Removals | ||
|
|
||
| The deprecated `native_comet` scan mode has been removed. Use `native_datafusion` instead. Note | ||
| that the `native_iceberg_compat` scan is now deprecated and will be removed from a future release. | ||
|
|
||
| ## Compatibility | ||
|
|
||
| This release upgrades to DataFusion 52.3, Arrow 57.3, and iceberg-rust 0.9.0. Published binaries now target | ||
| x86-64-v3 and neoverse-n1 CPU architectures for improved performance on modern hardware. | ||
|
|
||
| Supported platforms include Spark 3.4.3, 3.5.4-3.5.8, and Spark 4.0.x with various JDK and Scala combinations. | ||
|
|
||
| The community encourages users to test Comet with existing Spark workloads and welcomes contributions to ongoing development. | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should add that we picked up iceberg-rust 0.9.0 which contained a number of performance improvements contributed by the Comet team, and link to the relevant blog section for their release: https://iceberg.apache.org/blog/apache-iceberg-rust-0.9.0-release/#reader-performance-improvements