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]
