huaxingao opened a new issue, #13867:
URL: https://github.com/apache/iceberg/issues/13867

   ### Feature Request / Improvement
   
   Retries of mutation calls (due to network timeouts, transient 5xx responses, 
or client retries) can lead to duplicate resource creation or unintended side 
effects if the same operation is executed multiple times. for example: 
   
   - An Iceberg client sends a POST updateTable request.
   - The catalog server successfully committed the change to persistent. But a 
transient network error between the catalog server and the persistent led 
catalog server to return 503.
   - The client cannot tell if the commit succeeded, so it retries the same 
commit request.
   - On retry, the server detects that the latest table state doesn’t match the 
base from update table request and responds with 409 Conflict.
   - The client interprets the 409 as a failed commit and deletes the 
associated metadata files (manifest list).
   - Result: metadata corruption — the table snapshot references a deleted 
manifest list file.
   
   In order to solve this problem, we can let clients to include an 
Idempotency-Key in mutation requests. The server uses this key together with a 
canonical form of the request payload to detect duplicates and ensure safe 
retries
   
   ### Query engine
   
   None
   
   ### Willingness to contribute
   
   - [ ] I can contribute this improvement/feature independently
   - [ ] I would be willing to contribute this improvement/feature with 
guidance from the Iceberg community
   - [ ] I cannot contribute this improvement/feature at this time


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to