Buktoria commented on PR #330:
URL: https://github.com/apache/iceberg-python/pull/330#issuecomment-2004665217

   So I made a large fundamental change to the original design, where catalogs 
need to implement a function where they declare what exceptions are retryable. 
This becomes the bridge between the `Table` and `Catalog`. Since `Table` 
contains an instance of `Catalog`, our retry wrapper can grab this list of 
exceptions through the `Table` instance.
   
   Retrying happens within the `Table` object and wraps the `_do_commit` 
function.
   * Since `Table` calls this function, we can grab a reference to the `Table` 
object which we can then load the table's `properties` and 
`commit_retry_exceptions`. 
   * With this information we can build the Retry Controler
   * To support executing `refresh` before a new attempt but after sleeping, we 
grab the exception the attempt received, hold on to it, and then on the next 
attempt but before running `_do_commit` we check to see if the exception 
requires a refresh of the table.
   
   


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