laserninja opened a new pull request, #10498: URL: https://github.com/apache/gravitino/pull/10498
Implement HTTP ETag-based conditional request support for the Iceberg REST server's loadTable endpoint to enable freshness-aware caching. When loading a table, the server now generates an ETag header from a SHA-256 hash of the table's metadata file location. If the client sends an If-None-Match header matching the current ETag, the server responds with HTTP 304 Not Modified instead of the full table metadata payload. This allows compute engines that cache Iceberg metadata (e.g., Impala) to skip re-fetching unchanged metadata, improving read-heavy workload performance. Changes: - Add If-None-Match header parameter to IcebergTableOperations.loadTable - Generate ETag from metadata file location via SHA-256 hash - Return 304 Not Modified when client ETag matches, 200 with ETag otherwise - Add tests: ETag presence, 304 on match, 200 on mismatch, ETag changes after update, and ETag consistency across loads Closes: #9736 -- 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]
