yadavay-amzn commented on PR #16319:
URL: https://github.com/apache/iceberg/pull/16319#issuecomment-4480044295

   @gaborkaszab Thanks for the review! Good question on the two ETags.
   
   The cache-level ETag (in `RESTCatalog`) gates whether to re-fetch the full 
table metadata from the server. The ops-level ETag (in `RESTTableOperations`) 
gates whether `refresh()` needs to re-download metadata it already has.
   
   They serve different purposes:
   - Cache ETag: "has the table changed since I last loaded it?" (catalog-level 
freshness)
   - Ops ETag: "has the metadata changed since my last refresh?" 
(operation-level freshness for retry loops)
   
   They can diverge temporarily (e.g., after a commit updates the ops ETag but 
before the cache is invalidated), but this is safe because both are optimistic 
-- a stale ETag just means an extra round-trip, never stale data.
   
   That said, if you feel strongly about unifying them, I could propagate the 
ops-level ETag back to the cache on refresh. Would that address your concern?


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