xiangfu0 opened a new pull request, #19271:
URL: https://github.com/apache/pinot/pull/19271

   ### What
   
   - Move the existing upsert preload handler from `RealtimeTableDataManager` 
into `BaseTableDataManager`.
   - Invoke the shared handler before OFFLINE segment load and replacement.
   - Keep the existing REALTIME preload behavior unchanged.
   
   ### Why
   
   Upsert preload was tied to the REALTIME table lifecycle even though the 
preload operation is provided by the shared table and partition upsert metadata 
managers. As a result, `OfflineTableDataManager#doAddOnlineSegment` skipped 
preload and proceeded directly to segment load or replacement.
   
   The root cause was the placement and invocation of the lifecycle hook, not 
the underlying partition preload implementation.
   
   ### Impact
   
   OFFLINE upsert implementations can now restore their partition state before 
processing segments. The path remains a no-op when upsert is not configured or 
preload is disabled. There are no configuration or public API changes.
   
   ### Tests
   
   - `OfflineTableDataManagerTest`: preload before a new segment load
   - `OfflineTableDataManagerTest`: preload before an existing segment 
replacement
   - `OfflineTableDataManagerTest`: normal load when preload is disabled
   - Focused reactor test: 3 tests passed
   - Spotless, Checkstyle, license checks, and `git diff --check` passed
   
   An optional warnings-enabled reactor `test-compile` was also attempted, but 
was blocked in `pinot-segment-local` by the existing unrelated 
`ZstandardDecompressor`/JetBrains `@NotNull` compilation issue. The normal 
focused reactor build above passes.
   


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to