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]
