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

   Hi @sunchao,
   
   On #4952 as the foundation: we already share more than it might look like. 
This PR builds on part 1 of that same breakup (#4700's CometScanWithPlanData / 
PlanDataInjector SPI) and keeps #4366's contrib shape, decline-gate philosophy, 
and test catalog, with co-authored-by credit to both earlier efforts. The 
remaining overlap is contrib infrastructure, and I'm glad to reconcile it once 
#4952 lands: adopt its contrib-delta profile and feature naming, the per-Spark 
delta.version matrix, the verify-gate script, and unify the proto slot (this PR 
is at 119, #4952 at 118). For the claim hook I'd suggest the generic 
CometScanRuleExtension SPI from this PR, since it keeps core free of 
Delta-specific code and the kernel path can register through it the same way.
   
   I do see the two read paths as different layers rather than one thing to 
converge on. By the time CometScanRule sees the scan, delta-spark has already 
done log replay, time travel, and partition pruning, so this path reuses 
Comet's existing native parquet scan and gets row-group pruning, page-index 
pruning, and filter pushdown for free. DVs become ParquetAccessPlans that 
DataFusion intersects with page-index pruning, so DV skips and page skips 
compose in one scan. As far as I know no vectorized Delta reader does all of 
that today, including kernel's, which has no page-index pruning. I'd want 
convergence to keep this as the default read path, with the kernel path 
covering what JVM planning can't reach (DSv2, non-Spark frontends, likely CDF 
and row tracking).
   
   On splitting: I'd push back on slicing by feature, for two reasons. First, 
the features aren't independent. Several decline gates only exist because DVs, 
column mapping, and Delta's own suites ran together. For example, Delta's 
findTouchedFiles scan looks like a plain read, and if a basic-reads slice 
claims it, DELETE silently rewrites files instead of writing DVs. Second, the 
proof is holistic: this branch runs Delta's own suites at 1156/1156 and the 
contrib suites at 39/39 on Spark 3.5, 4.0, and 4.1. Feature slices would 
decline most tables and couldn't run that meaningfully. What I can do is split 
along review surfaces instead: core SPI additions, native DV decode with its 
unit tests, the contrib module and read path, and the regression harness and 
CI, keeping the read path itself (DVs, column mapping, gates) as one reviewable 
unit. If it lands whole, Comet ships the only vectorized Delta reader with 
complete skipping.
   
   The Spark 4 milestone is already met, the suites are green on 4.0 and 4.1 
today. Row tracking and CDF are out of scope here and seem like a natural place 
for the kernel work to lead. Happy to set up a chat with you and @schenksj to 
work out the details.


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