Core: Add freshness-aware loading to RESTTableOperations#16319
Open
yadavay-amzn wants to merge 1 commit into
Open
Core: Add freshness-aware loading to RESTTableOperations#16319yadavay-amzn wants to merge 1 commit into
yadavay-amzn wants to merge 1 commit into
Conversation
When RESTTableOperations.refresh() receives an ETag from the server, subsequent refresh() calls send If-None-Match and skip metadata re-download on 304 Not Modified. This reduces bandwidth and server load for repeated refresh calls (retries, transactions, reconciliation). Closes apache#15109
b2a2850 to
b585f22
Compare
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.
Summary
Adds ETag/If-None-Match support to
RESTTableOperations.refresh()andcommit(), so repeated refresh calls skip re-downloading unchanged table metadata.Follow-up to #15109 (freshness-aware table loading in REST catalog).
Changes
When
RESTTableOperations.refresh()receives an ETag from the server, subsequentrefresh()calls sendIf-None-Matchand return the current metadata on304 Not Modified. The ETag is also captured from commit responses so the next refresh benefits immediately.This reduces bandwidth and server load for repeated refresh calls (retries, transactions, reconciliation) without any API changes or cache coupling.
Scope
This is the minimal self-contained slice of #15109. Deliberately out of scope:
finalfield, needs design discussion)Testing
5 new tests in
TestRESTTableOperationsFreshness: