iemejia opened a new pull request, #56670:
URL: https://github.com/apache/spark/pull/56670

   ### What changes were proposed in this pull request?
   
   Add a micro-benchmark for `ParquetVectorUpdater.decodeDictionaryIds` -- the 
second pass of dictionary-encoded Parquet reads that translates dictionary IDs 
into decoded values.
   
   Coverage:
   - **Core primitive Updaters:** Integer, Long, Float, Double.
   - **Type-converting Updaters:** IntegerToLong, FloatToDouble.
   
   Each group is tested with three null fractions (0%, 10%, 50%) to exercise 
the no-null fast path and the per-element null-check path.
   
   The benchmark includes a global pre-warm phase that interleaves both 
`hasNull()` branches for every updater class to ensure C2 compiles with 
balanced profiles, avoiding uncommon-trap demotion bias.
   
   ### Why are the changes needed?
   
   This establishes a committed baseline for #55920 (SPARK-56893), which 
optimizes the dictionary decode path with a `hasNull()` fast path and per-class 
updater overrides. Landing the benchmark first allows the optimization PR to 
regenerate the results, so the `.txt` diff directly shows the throughput gain 
-- matching the pattern used in #55922 and #55924.
   
   ### Does this PR introduce _any_ user-facing change?
   
   No.
   
   ### How was this patch tested?
   
   The benchmark compiles and runs successfully:
   ```
   build/sbt "sql/Test/runMain 
org.apache.spark.sql.execution.datasources.parquet.ParquetDictionaryDecodeBenchmark"
   ```
   
   Benchmark results will be generated via the GitHub Actions benchmark 
workflow.
   
   ### Was this patch authored or co-authored using generative AI tooling?
   
   Generated-by: GitHub Copilot (claude-opus-4.6)


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