[WIP] Keep Iceberg implementation classes version-specific [fast-ut][reduced-it] - #15827
Draft
gerashegalov wants to merge 12 commits into
Draft
[WIP] Keep Iceberg implementation classes version-specific [fast-ut][reduced-it]#15827gerashegalov wants to merge 12 commits into
gerashegalov wants to merge 12 commits into
Conversation
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
…unshim-iceberg-version-access Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Related to #15821.
Stacked on #15826.
Description
Finish the Iceberg jar-layout split by keeping all non-root-selected Iceberg implementation classes in the selected Spark shim directory instead of consolidating bitwise-identical copies into
spark-shared.Teach binary de-duplication that an explicitly root-selected class takes precedence over a matching keep-in-shim pattern. Add scoped Iceberg keep patterns, and remove the three remaining version-dependent Iceberg access helpers from
dist/unshimmed-common-from-single-shim.txt.The resulting layout keeps root-safe Iceberg APIs and helpers at the jar root, including the public catalog classes, while Spark- or Iceberg-version-dependent implementation classes remain in
sparkXYZ/. No Iceberg-named classes remain inspark-shared.AI assistance: Codex assisted with implementation and validation. The author reviewed the complete diff and this description before the PR was opened.
TODO before marking ready for review:
Validation:
bash -n dist/scripts/binary-dedupe.shspark-shared; the version-specific counts are 191 underspark350, 194 underspark357, 192 underspark400, and 197 underspark412.--ignore-shim-revisions-checkbecause cached non-Iceberg dependency artifacts carried different source revision metadata; assembly, binary identity validation, and the Iceberg layout audit completed successfully.Performance: Not required because this changes class placement and classloader ownership only; it does not change runtime algorithms or executed operations.
Checklists
Documentation
Testing
(Direct parallel-world packaging and binary identity validation for Spark 3.5.0, 3.5.7, 4.0.0, and 4.1.2.)
Performance