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]
