jiangxt2 opened a new issue, #14360:
URL: https://github.com/apache/gravitino/issues/14360

   ### What would you like to be improved?
   
   The Python client already supports request-timeout configuration through 
`gravitino_client_request_timeout`. It does not provide a unified, bounded 
retry policy for transient communication failures.
   
   Applications need clear behavior for individual request timeouts, the 
maximum number of attempts (including the initial request), and overall retry 
duration. They also need protection against repeating writes whose outcome is 
uncertain.
   
   Unity Catalog OSS provides a configurable maximum number of attempts 
(including the initial request) and exponential backoff with an HTTP-method 
allowlist. This is a useful reference, but Gravitino's retry eligibility must 
follow its operation semantics rather than copying that allowlist. [UC 
implementation](https://github.com/unitycatalog/unitycatalog/blob/35df64c579b94990d8d315e8d804b265f0a4ee58/clients/python/build/templates/asyncio/rest.mustache#L191-L202)
   
   ### How should we improve?
   
   - Preserve existing timeout configuration and define its relationship with 
per-attempt timeouts and the overall retry budget.
   - Introduce opt-in, configurable retries with a maximum number of attempts 
(including the initial request), backoff, and a bound on total elapsed time.
   - Honor applicable server retry-delay hints within the configured budget.
   - Determine retry eligibility from operation semantics and failure 
circumstances. Do not replay writes with uncertain outcomes unless an 
established retry-safe contract permits it.
   - Preserve domain exceptions and useful failure context when retries are 
exhausted.
   - Cover retryable and non-retryable failures, disabled retries, budget 
exhaustion, and protection against unsafe write replay.
   
   New server-side idempotency protocols and token-renewal policy changes are 
outside scope.
   
   Parent epic: #14334.
   


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

Reply via email to