cshuo opened a new issue, #19437:
URL: https://github.com/apache/hudi/issues/19437

   ### Task Description
   
   **What needs to be done:**
   
   Support the standard Spark write operations and MOR compaction services for 
LSM-layout data tables.
   
   **Why this task is needed:**
   
   Real Spark workloads mix insert, upsert, delete, and overwrite operations. 
Restricting an LSM table to upsert-only behavior prevents normal ingestion 
workflows such as an initial insert followed by incremental upserts.
   
   ### Implementation Scope
   
   - Support the HoodieRecord/RDD paths for:
     - `UPSERT` and `UPSERT_PREPPED`
     - `INSERT` and `INSERT_PREPPED`
     - `DELETE` and `DELETE_PREPPED`
     - `INSERT_OVERWRITE` and `INSERT_OVERWRITE_TABLE`
     - `DELETE_PARTITION`
   - Sort LSM input in `BaseSparkCommitActionExecutor` using the comparator 
selected from the base-file format.
   - Remove the Spark LSM rejection for insert and insert-prepped while 
retaining the metadata-table exemption.
   - Support MOR `COMPACT` and `LOG_COMPACT`, producing sorted base files and 
native log blocks.
   - Keep replace-commit, file-group replacement, rollback, clean, and 
index-update semantics unchanged.
   - Define duplicate-key behavior explicitly:
     - A base-file-only insert may preserve duplicate physical keys.
     - After an upsert/delete introduces a merge path, equal keys are merged as 
one logical key.
   
   ### Acceptance Criteria
   
   - [ ] All listed operations succeed for applicable COW and MOR LSM tables.
   - [ ] Every newly written base file is ordered according to its base-file 
format.
   - [ ] An `INSERT -> UPSERT` MOR workflow returns the latest logical records.
   - [ ] A duplicate-key insert is preserved on the base-only path and 
converges through a later LSM merge.
   - [ ] Regular and log compaction preserve snapshot correctness and 
sorted-run invariants.
   - [ ] Replace commit and file-group replacement metadata remain correct.
   - [ ] Targeted Spark client/DataSource tests, compile, 
checkstyle/scalastyle, and `git diff --check` pass.
   
   ### Related Issues
   
   **Parent feature issue:** #19065
   
   **Depends on:** #19436
   
   **Out of scope:** bulk insert, bucket-specific paths, clustering, bootstrap, 
and metadata-table indexing.
   


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

Reply via email to