From 845773a96a95aefe9135951b7c76e7e5dc92852e Mon Sep 17 00:00:00 2001 From: Manabu McCloskey Date: Tue, 2 Jun 2026 23:34:09 +0000 Subject: [PATCH 1/4] add Comet + EKS blog post Signed-off-by: Manabu McCloskey --- content/blog/2026-06-10-comet-eks.md | 111 ++++++++++++++++++ .../comet-eks/performance-distribution.png | Bin 0 -> 43985 bytes .../images/comet-eks/version-arc-slope.png | Bin 0 -> 53185 bytes 3 files changed, 111 insertions(+) create mode 100644 content/blog/2026-06-10-comet-eks.md create mode 100644 content/images/comet-eks/performance-distribution.png create mode 100644 content/images/comet-eks/version-arc-slope.png diff --git a/content/blog/2026-06-10-comet-eks.md b/content/blog/2026-06-10-comet-eks.md new file mode 100644 index 00000000..7898f229 --- /dev/null +++ b/content/blog/2026-06-10-comet-eks.md @@ -0,0 +1,111 @@ +--- +layout: post +title: What two months with the Comet community got our Spark workload on Amazon EKS +date: 2026-06-10 +author: Manabu McCloskey (AWS), Vara Bonthu (AWS), Andy Grove +categories: [performance] +summary: Apache DataFusion Comet now runs a 3TB TPC-DS workload significantly faster than vanilla Spark 3.5.8 on Amazon EKS. This post covers what changed in Comet over the past two releases, and how collaboration between EKS users and maintainers shaped that work.

TPC-DS performance arc across Comet versions +--- + + + + +[TOC] + + +## Introduction + +Apache Spark workloads are some of the most common and cost-intensive jobs running on Kubernetes. Our customers at AWS are always on the lookout for meaningful speedups, since any speedup translates directly into lower bills. That's what got us interested in Apache DataFusion Comet. The local TPC-DS and TPC-H benchmarks looked very good, and we wanted to see how Comet would hold up on a more realistic setup. + +When we ran a 3TB TPC-DS benchmark on Spark 3.5.8 on Amazon EKS, Comet was 11% slower than vanilla Spark, and we hit several operational issues along the way that made it hard to keep the cluster running smoothly. We built a reproducible benchmark kit and worked closely with the Comet maintainers to validate fixes as they landed. The same benchmark now runs **32% faster** than vanilla Spark on the same setup. The rest of this post walks through the issues we hit and what changed in Comet to address them. + +## Setup + +We ran TPC-DS at 3TB scale on Spark 3.5.8 on Amazon EKS, comparing vanilla Spark against Apache DataFusion Comet. Each executor pod was sized at 58 GB of RAM. We ran the same benchmark on three Comet versions, 0.14.0, 0.15.0, and 0.16.0, so we could see how the project progressed across releases. The full cluster topology, Spark configurations, and benchmark scripts we used are documented on the [Data on EKS benchmark page](https://awslabs.github.io/data-on-eks/docs/benchmarks/spark-datafusion-comet-benchmark). + +## What we ran into + +We hit four classes of issues running Comet at scale on Amazon EKS. The first three were operational and the fourth was the source of most of the regression. The [Data on EKS benchmark page](https://github.com/awslabs/data-on-eks/blob/05d0590e019d14ed0d058f7c314db74a9b161599/website/docs/benchmarks/spark-datafusion-comet-benchmark.md) has full configurations and error traces for each one. + +### Excessive DNS queries + +Comet executors were generating up to 5,000 DNS queries per second per pod, roughly 500x what vanilla Spark issued, which pushed us against the Route 53 Resolver per-ENI limit of 1,024 queries per second and triggered intermittent `UnknownHostException` failures. The root cause was that Comet's native Rust layer was creating a fresh object store instance for every Parquet file read, each with its own HTTP connection pool. The fix in [#3802](https://github.com/apache/datafusion-comet/pull/3802) added a process-wide cache for object stores, which collapsed DNS volume back to vanilla-Spark levels. + +### Unreliable S3 region detection + +Without an explicitly configured endpoint region, jobs failed intermittently with `Generic S3 error: Failed to resolve region`. The cause was the same caching gap as DNS: Comet called the S3 `HeadBucket` API for every Parquet file read to resolve the region, and those calls were getting throttled under concurrent load. The same fix in [#3802](https://github.com/apache/datafusion-comet/pull/3802) caches the resolved region per bucket, so `HeadBucket` runs once per bucket and the `endpoint.region` workaround is no longer required. + +### High memory footprint + +Comet consistently used about 67% more memory than vanilla Spark and required a 32 GB off-heap pool to run reliably. The root cause was in shuffle memory sizing: for each Spark task, Comet spun up two concurrent native execution contexts (pre-shuffle and shuffle writer), each allocating its own memory pool at the per-task limit. The fix in [#3924](https://github.com/apache/datafusion-comet/pull/3924) makes the two contexts share a single pool, bringing Comet's memory footprint much closer to vanilla Spark. + +### Missing DPP support + +The biggest performance hit came from how Comet handled Dynamic Partition Pruning (DPP). DPP is a Spark optimization that prunes fact-table partitions at runtime based on filters from broadcast dimensions. For star-schema workloads like TPC-DS, DPP is often the difference between scanning 1% of a fact table and scanning all of it. + +In Comet 0.14.0, the native Parquet scan didn't support DPP, so any query with a DPP filter would fall back to vanilla Spark for that scan. Falling back was expected, but the fallback path had a planning bug that caused dramatic regressions. The resulting plan ran a Spark scan with a Comet shuffle on top, with the DPP filter effectively dropped, so the Spark scan read every partition. Queries like q25 regressed dramatically as a result. + +The fix in [#3982](https://github.com/apache/datafusion-comet/pull/3982) makes shuffle fallback decisions sticky across the two planning passes, removing the regression. Comet 0.16.0 then closes the broader gap by adding native DPP support to the Parquet scan itself, including broadcast exchange reuse so that the dimension table is broadcast only once. The 78 queries that previously fell back went from 30-50% native execution to 80-97% native. The full set of changes is described in the [Comet 0.16.0 release announcement](https://datafusion.apache.org/blog/output/2026/05/07/datafusion-comet-0.16.0/) on the DataFusion blog. + +## How we worked with the Comet community + +The improvement came out of a feedback loop with the Comet maintainers. We brought something they didn't have ready access to: a 3TB workload running on real Amazon EKS infrastructure, with people who could reproduce issues at scale and validate fixes against production-like conditions. The full set of issues we worked through is tracked in [#3799](https://github.com/apache/datafusion-comet/issues/3799). + +Some of our setup choices made the reports useful early on. We ran TPC-DS sequentially against vanilla Spark and Comet on the same 12-node cluster (r8gd.12xlarge instances), with a Grafana dashboard tracking DNS query rate, executor memory, network bandwidth, and storage throughput. That's how we caught the DNS spike and the elevated memory baseline before they blocked any jobs. We also used AI-assisted analysis of Spark's event logs and driver logs to narrow down which queries and stages were regressing, which made the bug reports concrete enough that maintainers could act on them without a long back-and-forth. + +Each issue we filed bundled those logs together with Comet's `explainFallback` output, stack traces, and a minimal reproduction. The maintainers had enough to work with from the first message most of the time, which kept the back-and-forth short. + +The other side of the loop was experimental builds. When Comet maintainers pushed a candidate fix to a branch, we would build a Comet image off it and run a subset of TPC-DS against our 3TB workload to validate. Most coordination happened through a shared Slack channel and was tracked through GitHub issues, with both sides often responding within minutes during business hours. + +Three examples give a sense of the cadence. We reported the DNS query volume and S3 region detection issues on March 25, 2026. Comet maintainers had a fix proposed the next day and merged on March 31. We reported the memory footprint issue the same day, and the shared-pool fix landed on April 13. + +The DPP work was the deepest collaboration of the three. While testing experimental builds containing the earlier DPP changes, we hit a separate problem with DPP under AQE that crashed the driver on specific plans. Reproducing it reliably took several iterations, and the fix on the maintainer side took similar care. We reported it on April 9 ([#3870](https://github.com/apache/datafusion-comet/issues/3870)) and the fix landed on April 17. + +Two things kept the loop fast. The maintainers knew the Comet and DataFusion codebases well enough to turn around fixes within hours of a clean reproduction. We had a stable test cluster and could quickly deploy unreleased branches into it, so validation was never the bottleneck. + + + +Across roughly two months, every issue we surfaced was fixed upstream. The 0.15.0 release picked up the DNS, S3 region, and memory fixes, which moved the same benchmark from 11% slower than vanilla Spark to 11% faster. The 0.16.0 release added the DPP work and pushed it to 32% faster. + +## Results + +Full per-query results live on the [Data on EKS benchmark page](https://awslabs.github.io/data-on-eks/docs/benchmarks/spark-datafusion-comet-benchmark). On Parquet, the workload as a whole runs 32% faster than vanilla Spark 3.5.8 on the same cluster. Of the TPC-DS queries, 66% improve by 20% or more, with the largest speedup on q86 at 3.47× faster (+71%). + +The DPP fixes drove most of the gains, with the shared memory pool fix improving how reliably Comet runs under tight per-task memory limits. + +We also ran the same benchmark against Iceberg tables, where Comet was 37% faster overall and 90% of queries saw 20% or more improvement. + + + +## Conclusion + +The improvement we saw came from staying in close contact with the Comet maintainers over two months of testing, reporting, and validating fixes. Comet 0.16.0 now runs our 3TB TPC-DS workload 32% faster than vanilla Spark on the same EKS cluster. + +If you're running Spark on Kubernetes at scale, Comet is worth evaluating against your own workloads. And if you hit issues like the ones we did, file them upstream. Apache DataFusion and Comet are open source projects that improve fastest when users contribute back, whether to [datafusion-comet](https://github.com/apache/datafusion-comet) or [datafusion](https://github.com/apache/datafusion). diff --git a/content/images/comet-eks/performance-distribution.png b/content/images/comet-eks/performance-distribution.png new file mode 100644 index 0000000000000000000000000000000000000000..9eb8cd0d573bea2c4aa65e2475ffbc747fc41b5c GIT binary patch literal 43985 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 literal 0 HcmV?d00001 diff --git a/content/images/comet-eks/version-arc-slope.png b/content/images/comet-eks/version-arc-slope.png new file mode 100644 index 0000000000000000000000000000000000000000..5af1743b44a0df943394ce561060aaad950fec97 GIT binary patch literal 53185 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 Date: Wed, 3 Jun 2026 09:47:27 -0700 Subject: [PATCH 2/4] Remove Andy from author list Co-authored-by: Andy Grove --- content/blog/2026-06-10-comet-eks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2026-06-10-comet-eks.md b/content/blog/2026-06-10-comet-eks.md index 7898f229..525bdc65 100644 --- a/content/blog/2026-06-10-comet-eks.md +++ b/content/blog/2026-06-10-comet-eks.md @@ -2,7 +2,7 @@ layout: post title: What two months with the Comet community got our Spark workload on Amazon EKS date: 2026-06-10 -author: Manabu McCloskey (AWS), Vara Bonthu (AWS), Andy Grove +author: Manabu McCloskey (AWS), Vara Bonthu (AWS) categories: [performance] summary: Apache DataFusion Comet now runs a 3TB TPC-DS workload significantly faster than vanilla Spark 3.5.8 on Amazon EKS. This post covers what changed in Comet over the past two releases, and how collaboration between EKS users and maintainers shaped that work.

TPC-DS performance arc across Comet versions --- From 6af6ab07a8a7f36e9b7aec26e5a453696e3a8797 Mon Sep 17 00:00:00 2001 From: Manabu McCloskey Date: Wed, 3 Jun 2026 16:54:07 +0000 Subject: [PATCH 3/4] add links Signed-off-by: Manabu McCloskey --- content/blog/2026-06-10-comet-eks.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/blog/2026-06-10-comet-eks.md b/content/blog/2026-06-10-comet-eks.md index 525bdc65..bcf469d1 100644 --- a/content/blog/2026-06-10-comet-eks.md +++ b/content/blog/2026-06-10-comet-eks.md @@ -32,9 +32,9 @@ limitations under the License. ## Introduction -Apache Spark workloads are some of the most common and cost-intensive jobs running on Kubernetes. Our customers at AWS are always on the lookout for meaningful speedups, since any speedup translates directly into lower bills. That's what got us interested in Apache DataFusion Comet. The local TPC-DS and TPC-H benchmarks looked very good, and we wanted to see how Comet would hold up on a more realistic setup. +Apache Spark workloads are some of the most common and cost-intensive jobs running on Kubernetes. Our customers at [AWS](https://aws.amazon.com/) are always on the lookout for meaningful speedups, since any speedup translates directly into lower bills. That's what got us interested in Apache DataFusion Comet. The local TPC-DS and TPC-H benchmarks looked very good, and we wanted to see how Comet would hold up on a more realistic setup. -When we ran a 3TB TPC-DS benchmark on Spark 3.5.8 on Amazon EKS, Comet was 11% slower than vanilla Spark, and we hit several operational issues along the way that made it hard to keep the cluster running smoothly. We built a reproducible benchmark kit and worked closely with the Comet maintainers to validate fixes as they landed. The same benchmark now runs **32% faster** than vanilla Spark on the same setup. The rest of this post walks through the issues we hit and what changed in Comet to address them. +When we ran a 3TB TPC-DS benchmark on Spark 3.5.8 on [Amazon EKS](https://aws.amazon.com/pm/eks/), Comet was 11% slower than vanilla Spark, and we hit several operational issues along the way that made it hard to keep the cluster running smoothly. We built a reproducible benchmark kit and worked closely with the Comet maintainers to validate fixes as they landed. The same benchmark now runs **32% faster** than vanilla Spark on the same setup. The rest of this post walks through the issues we hit and what changed in Comet to address them. ## Setup From 7350e9c573ecd84760b3474e94ab1eb42b390687 Mon Sep 17 00:00:00 2001 From: Manabu McCloskey Date: Wed, 3 Jun 2026 18:58:01 +0000 Subject: [PATCH 4/4] update publication date Signed-off-by: Manabu McCloskey --- .../blog/{2026-06-10-comet-eks.md => 2026-06-03-comet-eks.md} | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) rename content/blog/{2026-06-10-comet-eks.md => 2026-06-03-comet-eks.md} (99%) diff --git a/content/blog/2026-06-10-comet-eks.md b/content/blog/2026-06-03-comet-eks.md similarity index 99% rename from content/blog/2026-06-10-comet-eks.md rename to content/blog/2026-06-03-comet-eks.md index bcf469d1..0cf6c6b9 100644 --- a/content/blog/2026-06-10-comet-eks.md +++ b/content/blog/2026-06-03-comet-eks.md @@ -1,13 +1,12 @@ --- layout: post title: What two months with the Comet community got our Spark workload on Amazon EKS -date: 2026-06-10 +date: 2026-06-03 author: Manabu McCloskey (AWS), Vara Bonthu (AWS) categories: [performance] summary: Apache DataFusion Comet now runs a 3TB TPC-DS workload significantly faster than vanilla Spark 3.5.8 on Amazon EKS. This post covers what changed in Comet over the past two releases, and how collaboration between EKS users and maintainers shaped that work.

TPC-DS performance arc across Comet versions --- -