Enable iceberg write by default, and disable dml iceberg operation on mor table by default.#13891
Merged
Merged
Conversation
Contributor
Greptile OverviewGreptile SummaryThis PR enables Iceberg write acceleration by default while keeping merge-on-read (MOR) DML operations disabled by default as experimental. Key Changes
RationaleAccording to the PR description, microbenchmarks showed that:
This phased approach allows users to benefit from proven COW acceleration while keeping experimental MOR DML disabled until performance issues are resolved. Confidence Score: 5/5
Important Files ChangedFile Analysis
Sequence DiagramsequenceDiagram
participant User
participant RapidsConf
participant Spark350PlusNonDBShims
participant IcebergProvider
participant WriteDeltaExec
Note over RapidsConf: ENABLE_ICEBERG_WRITE<br/>default: false → true
User->>RapidsConf: Check isIcebergWriteEnabled
RapidsConf-->>User: true (new default)
Note over User: Copy-on-Write (COW) Operations
User->>IcebergProvider: INSERT/APPEND on COW table
IcebergProvider->>RapidsConf: Check isIcebergWriteEnabled
RapidsConf-->>IcebergProvider: true
IcebergProvider-->>User: Execute on GPU ✓
Note over User: Merge-on-Read (MOR) DML Operations
User->>Spark350PlusNonDBShims: UPDATE/DELETE/MERGE on MOR table
Spark350PlusNonDBShims->>WriteDeltaExec: Check if enabled
Note over WriteDeltaExec: disabledByDefault()<br/>(experimental)
WriteDeltaExec-->>Spark350PlusNonDBShims: Disabled by default
Spark350PlusNonDBShims-->>User: Fallback to CPU ✓
Note over User: Enable MOR DML (Advanced)
User->>RapidsConf: Set WriteDeltaExec=true
User->>Spark350PlusNonDBShims: UPDATE/DELETE/MERGE on MOR table
Spark350PlusNonDBShims->>WriteDeltaExec: Check if enabled
WriteDeltaExec-->>Spark350PlusNonDBShims: Enabled by user
Spark350PlusNonDBShims-->>User: Execute on GPU ✓
|
Signed-off-by: liurenjie1024 <liurenjie2008@gmail.com>
Collaborator
Author
|
build |
res-life
approved these changes
Dec 1, 2025
This was referenced Dec 9, 2025
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.
Fixes #13520.
Description
We shared out local microbenchmark internally, and our append and dml operation on copy on write table met goal. But dml operation on merge on read table didn't met goal due to table scan fallback to cpu, which requires #12298 to be implemented. So in this pr:
Checklists
(Please explain in the PR description how the new code paths are tested, such as names of the new/existing tests that cover them.)