ErikBPF commented on PR #5365:
URL: 
https://github.com/apache/datafusion-comet/pull/5365#issuecomment-5518916280

   Follow-up to @comphead's request for a non-suite Delta workload: I ran the 
current head (`020f0399e`) plus the four proposed optimization commits 
([full-group DV skip](https://github.com/dwsmith1983/datafusion-comet/pull/1), 
[ASCII field-name fast 
path](https://github.com/dwsmith1983/datafusion-comet/pull/2), [compressed 
native DV decode](https://github.com/dwsmith1983/datafusion-comet/pull/3), and 
[compressed partial-DV 
ranges](https://github.com/dwsmith1983/datafusion-comet/pull/4)) on Apollo.
   
   ### Public-data workload
   
   - Host: Intel Xeon E5-2690 v4, 28 logical CPUs; Spark `local[14]`
   - Spark 3.5.9, Delta 3.3.2, JDK 17.0.20.1; release Comet build
   - Source: [NYC TLC Yellow Taxi January 2024 
Parquet](https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_2024-01.parquet),
 49,961,641 bytes, SHA-256 
`c4d59da7bbc8abaeeeb1727947ee93d9891a71acb42854bd80db1571b2030510`
   - Converted to 16 range-partitioned, timestamp-sorted Delta files with Zstd; 
enabled DVs; deleted trips from 2024-01-12. The DELETE produced one DV with 
cardinality 103,655.
   - Query: 2024-01-10 through 2024-01-17, aggregating `count(*)`, 
`sum(PULocationID)`, `sum(DOLocationID)`, and integer passenger count.
   - Method: one independent Spark session per mode, with one untimed warm-up 
followed by five measurements.
   
   | Mode | Exact result `(n, pu, do, passengers)` | Five warm samples (s) | 
Median |
   |---|---|---|---|
   | Stock Spark | `(569278, 94416440, 94101779, 733118)` | `0.805, 0.775, 
0.792, 0.757, 0.722` | `0.775s` |
   | Comet, Delta contrib absent (fallback control) | same | `1.116, 0.876, 
0.903, 0.790, 0.801` | `0.876s` |
   | Comet native Delta scan | same | `1.071, 0.882, 0.780, 0.757, 0.773` | 
`0.780s` |
   
   The native plan contained `CometDeltaNativeScan`. Spark/fallback reported 
2,964,606 scan output rows; native reported 2,860,951, exactly 103,655 fewer, 
so every DV row was removed inside the scan. Native `bytes_scanned` was 
14,375,149 across the 47,060,535-byte table.
   
   ### Repository benchmark corroboration
   
   I also ran the checked-in `contrib/delta-spark/dev/bench_delta_comet.py 
--dv` workload (20M sorted rows, four files). Five-session medians were stock 
`0.930s`, fallback `0.997s`, native `0.966s`, with identical `(count, checksum) 
= (800000, 32000000)`. Native emitted 806,254 rows versus Spark's 1,006,254, 
read 18,754,673 bytes, and reported six row groups pruned.
   
   ### Scope and limitations
   
   This is a single-host local-mode check, not a production or 
cloud-object-store benchmark. Modes ran sequentially without dropping the OS 
page cache, so the timings show parity/no obvious regression rather than a 
general speedup claim. The NYC timestamp predicate reported zero page-index and 
row-group pruning and scanned all 16 files; that is a concrete remaining 
optimization opportunity. The public source data is real, but the Delta layout, 
DV delete, and query were constructed for this test.
   
   Build used `make release PROFILES="-Pspark-3.5 -Pdelta"`; stock, fallback, 
and native modes shared the same Delta tables. Codex assisted with 
orchestration and result collection; assertions checked identical results, 
active DV cardinality, and native-plan presence.
   


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