goutamadwant commented on code in PR #19946:
URL: https://github.com/apache/hudi/pull/19946#discussion_r4012455128
##########
hudi-timeline-service/src/main/java/org/apache/hudi/timeline/service/RequestHandler.java:
##########
@@ -750,9 +750,15 @@ private boolean isLocalViewBehind(Context ctx) {
}
String localTimelineHash = localTimeline.getTimelineHash();
- // refresh if timeline hash mismatches
if (!localTimelineHash.equals(timelineHashFromClient)) {
- return true;
+ if
(HoodieTimeline.INVALID_INSTANT_TS.equals(lastKnownInstantFromClient)
+ || !localTimeline.containsInstant(lastKnownInstantFromClient)) {
+ return true;
+ }
+ // A newer last instant alone is insufficient: all actions and states
through the
+ // client boundary must match before the server can be treated as an
exact extension.
+ return
!localTimeline.findInstantsBeforeOrEquals(lastKnownInstantFromClient)
Review Comment:
Confirmed: exact extensions now stay on the server view instead of
triggering local fallback. Added documentation and regressions for
bounded/unbounded reads, pending compaction, and divergent-timeline fallback.
One distinction: bounded results are not always equivalent to the client’s
view, since newer pending compaction can exclude a file group despite the same
timestamp limit. The follow-up leaves the runtime algorithm unchanged. All 150
broader tests passed.
--
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]