liurenjie1024 commented on issue #1038:
URL: https://github.com/apache/iceberg-rust/issues/1038#issuecomment-2833282611

   > > Maybe you would like to start working on this?
   > 
   > Sounds good! Let me start an issue to track.
   > 
   > One thing would like to hear your suggestion is, there're two possible 
implementations:
   > 
   > * Have a dedicated retry layer, which wraps around all detailed catalogs
   >   
   >   * A detailed example, tensorflow has a retrying filesystem wrapper: 
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/platform/retrying_file_system.h
   >   * The benefit is, we won't have retry logic here and there
   > * Get detailed catalog (i.e. rest catalog) to handle retry
   >   
   >   * The benefit is: it has full knowledge whether or not to retry, and 
what to retry; for example, http status code is clearer than our error kind; 
resource exhausted error could be retried if we establish a new HTTP 
connection, etc.
   >   * The potential downside is, we could replicate retry logic, or even 
have retry logic at different call stacks.
   
   I have concerns about adding retrying layer at catalog. Iceberg catalog is 
different from io layer like opendal or filesystem, whose operations are 
typically idempotent. For example, for the update table, if we received an 
timeout error, while operations in server has completed, then retrying 
operation is wrong. 


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