Finalize Iceberg root and shim class placement [reduced-it] - #15944
Finalize Iceberg root and shim class placement [reduced-it]#15944gerashegalov wants to merge 12 commits into
Conversation
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
…independent-helpers Signed-off-by: Gera Shegalov <gshegalov@nvidia.com> # Conflicts: # dist/unshimmed-common-from-single-shim.txt
…independent-helpers Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
…independent-helpers Signed-off-by: Gera Shegalov <gshegalov@nvidia.com> # Conflicts: # dist/unshimmed-common-from-single-shim.txt
…independent-helpers Signed-off-by: Gera Shegalov <gshegalov@nvidia.com> # Conflicts: # dist/unshimmed-common-from-single-shim.txt
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
…independent-helpers Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
…final-layout Signed-off-by: Gera Shegalov <gshegalov@nvidia.com> # Conflicts: # dist/unshimmed-common-from-single-shim.txt
|
build |
|
|
build |
| raise Exception( | ||
| "root-safe module classes missing from aggregator: %s" % | ||
| ", ".join(missing_members)) | ||
| new_root_safe_members = ( |
There was a problem hiding this comment.
Could we add a small synthetic multi-classifier regression test for this provider-selection path and its fast-assembler counterpart? A 4.1.3/3.5.3 fixture could verify that a shared class comes from the newest classifier that provides it, an older-only class is still promoted, and dedupe leaves promoted helpers only at the root while keeping version-specific Iceberg classes in their shim directories. The current implementation and multi-shim validation look correct; this would just protect those invariants from future regressions.
firestarman
left a comment
There was a problem hiding this comment.
LGTM, just one nit.
Related to #15821.
Description
This PR completes the Iceberg class-placement milestone:
iceberg-commonspark-sharedunshimmed-common-from-single-shim.txtAfter this change, assembled multi-shim distribution JARs contain no Iceberg classes under
spark-shared. The shared, root-safe Iceberg helpers are at the JAR root, while Spark- and Iceberg-version-specific implementations remain undersparkXYZ.There are no user-facing configuration or API changes.
Validation:
334,344,353,359353,359,404,413,420spark-shared, and the remaining classes under Spark-specific directoriesGpuBaseReadercame from its newest applicable classifier, Spark 3.5.3extraClassPath: 6 passedChecklists
Documentation
Testing
(
IcebergDeletionVectorSuiteand the Iceberg read, append, and no-op-write integration smoke tests)Performance
Performance testing is not required because this changes build-time source selection and JAR placement without modifying runtime execution logic.
This change and its validation were prepared with AI assistance and reviewed by a human before publication.