gaborkaszab commented on code in PR #13801:
URL: https://github.com/apache/iceberg/pull/13801#discussion_r2285030317


##########
api/src/main/java/org/apache/iceberg/catalog/Catalog.java:
##########
@@ -325,6 +326,47 @@ default boolean dropTable(TableIdentifier identifier) {
    */
   Table loadTable(TableIdentifier identifier);
 
+    /**
+     * Computes the eTag of a given table.
+     *
+     * <p>This fetches the up-to-date eTag for a given table identifier</p>
+     *
+     * @param identifier the table identifier
+     * @return the eTag as a type 5 uuid or null if the eTag could not be 
computed
+     */
+    default UUID getTableETag(TableIdentifier identifier) {

Review Comment:
   Hi @henrib ,
   I've been following this PR and the related issue also, and I see that you 
introduced some APIs for exposing ETags on the Catalog interface. I think at 
this point we should discuss the design in general because this goes somewhat 
against what the relevant proposal has for REST catalog. A [relevant 
comment](https://github.com/apache/iceberg/issues/13800#issuecomment-3196775991)
 I left on the issue.
   
   I think I went through the same thought process as you, but in general, when 
I was designing the same functionality on the REST catalog, I was strongly 
advised not to expose the ETags to the clients of the catalogs. As opposed to 
this, the design we went for is that make the caching of tables and the 
freshness-aware loading to happen seamlessly to the clients and be embedded 
into the REST Catalog implementation. I believe, a similar implementation for 
HiveCatalog would also make sense, but for that there might be some 
pre-requisites to take care. Please check the comment I wrote on the issue, and 
also [the 
proposal](https://docs.google.com/document/d/1rnVSP_iv2I47giwfAe-Z3DYhKkKwWCVvCkC9rEvtaLA/edit?tab=t.0#heading=h.5voryi2hj0go)
 I had for REST catalog.
   
   But in general, Iceberg API changes like this should go through as an 
[Improvement 
Proposal](https://iceberg.apache.org/contribute/?h=proposal#apache-iceberg-improvement-proposals)
 with a design doc, official voting and such.



-- 
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: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to