JingsongLi opened a new pull request, #10491: URL: https://github.com/apache/paimon/pull/10491
### Purpose Add the REST table commit lease protocol and catalog client APIs as an independently buildable foundation for coordinated snapshot publication. `POST .../commit-lock` and `POST .../commit-lock/renew` use a stable table UUID and the exact `commitUser`. A successful grant returns the authoritative snapshot head and lease duration. `rest.commit.lock-enabled` is the table capability flag and defaults to false; callers explicitly acquire and renew leases through the catalog API. The snapshot commit request is unchanged. Servers must check the owner together with the authenticated caller in the same transaction as snapshot publication, including for writers that never acquire leases. A new successful publication clears the lease atomically; an abandoned lease expires when renewal stops. There is no separate unlock RPC. This is owner admission, not a fencing token, so snapshot UUID CAS and file conflict validation remain required. This PR contains the request/response models, REST paths and client calls, Catalog methods and delegate forwarding, the REST capability option, protocol documentation and wire tests. Automatic renewal scopes, `commit.lock-on-retry`, and writer retry integration remain in the follow-up #10489. ### Tests - `mvn -o -pl paimon-core -am -DfailIfNoTests=false -DwildcardSuites=none -Dtest=CommitLockProtocolTest,CatalogSnapshotCommitTest test` - REST OpenAPI validation with `docs/scripts/validate-rest-openapi.js`. The wire test covers acquire/renew ownership, the granted snapshot head, and preserving the existing snapshot commit payload without a lock token. Maven validation includes formatting, Checkstyle and enforcer checks. -- 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]
