laserninja opened a new pull request, #12050:
URL: https://github.com/apache/gravitino/pull/12050

   ### What changes were proposed in this pull request?
   
   Add a design document (`design-docs/iceberg-idempotency-key.md`) for 
Idempotency-Key support in the Iceberg REST server, covering multi-node 
consistency and database-backed storage.
   
   The document covers:
   - **Problem statement**: In-memory caches are not safe for multi-node 
deployments or node failures
   - **IdempotencyStore SPI**: Pluggable storage interface with 
`reserve/finalize/release/load/purgeExpired` operations
   - **Two implementations**: `InMemoryIdempotencyStore` (dev) and 
`JdbcIdempotencyStore` (production)
   - **Database schema**: `idempotency_records` table with row lifecycle 
(RESERVED -> FINALIZED -> EXPIRED)
   - **Request flow**: Happy path, replay path, and failure handling
   - **Comparison with Polaris**: Simplified model (no 
heartbeat/reconciliation) since Iceberg mutations are sub-second
   - **Implementation phases**: SPI + in-memory -> JDBC store -> observability
   
   Reference: [apache/polaris#3205](https://github.com/apache/polaris/pull/3205)
   
   ### Why are the changes needed?
   
   Epic #12049. Reviewers on PR #10751 requested a design document covering 
multi-node idempotency before proceeding with implementation.
   
   ### Does this PR introduce any user-facing change?
   
   No. Documentation only.
   
   ### How was this patch tested?
   
   N/A - design document only.


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