yihua opened a new pull request, #19941:
URL: https://github.com/apache/hudi/pull/19941

   ### Describe the issue this Pull Request addresses
   
   closes #19939
   
   `BaseHoodieCompactionPlanGenerator` lets a plan generator record its own 
state in the plan's extra metadata, which incremental strategies use to 
remember the partitions they skipped. Since #18183 the table service client 
enriches the caller's extra-metadata option before scheduling, so it is never 
empty, and `ScheduleCompactionActionExecutor` then replaces the plan's map with 
it. The generator's entries are dropped on every schedule and such strategies 
silently fall back to full scans.
   
   ### Summary and Changelog
   
   - `ScheduleCompactionActionExecutor.mergeExtraMetadata` merges the caller's 
entries into the plan's existing extra metadata; entries only the generator 
produces take precedence on a key collision, and every other caller entry is 
kept. Log compaction shares the path.
   - Tests: unit cases in `TestScheduleCompactionActionExecutor` for the merge, 
and a functional case in `TestHoodieCompactor` that schedules through the write 
client with a generator that writes a marker entry, asserting both the 
generator marker and an explicit caller entry are on the persisted plan.
   
   ### Impact
   
   Plans keep both the writer-level entries added on scheduling and the 
generator's own entries. No public API change.
   
   ### Risk Level
   
   low. Only the composition of the plan's extra metadata changes; callers that 
passed explicit metadata still see their values.
   
   ### Documentation Update
   
   none
   
   ### Contributor's checklist
   
   - [x] Read through [contributor's 
guide](https://hudi.apache.org/contribute/how-to-contribute)
   - [x] Enough context is provided in the sections above
   - [x] Adequate tests were added if applicable
   


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