luoyuxia opened a new pull request, #3630: URL: https://github.com/apache/fluss/pull/3630
### Purpose Linked issue: N/A (FIP-28 follow-up) This PR adds historical partition lookup support for datalake-enabled primary key tables. It lets clients resolve an expired Fluss partition to the corresponding lake partition and serve point lookups from lake storage when the partition is no longer available in Fluss. ### Brief change log - Add historical partition metadata utilities and client-side lookup plumbing for requests carrying partition names. - Add lake lookup SPI plus the Paimon implementation, including key conversion, row encoding, schema evolution padding, and lookup cache temp context. - Route historical lookup requests through TabletServer/ReplicaManager to lake lookup instead of normal KV lookup. - Add dedicated historical lookup admission control with `netty.server.max-queued-historical-requests` and a retriable throttle error. - Add client-side backoff for historical lookup throttling without blocking normal lookup dispatch. ### Tests - `./mvnw test -pl fluss-rpc -am -Dtest=ApiErrorTest -DfailIfNoTests=false` - `./mvnw test -pl fluss-client -am -Dtest=LookupSenderTest -DfailIfNoTests=false` - `./mvnw test -pl fluss-server -am -Dtest=HistoricalLakeLookupManagerTest -DfailIfNoTests=false` - `./mvnw spotless:check -pl fluss-common,fluss-rpc,fluss-client,fluss-server` Full affected-module `verify` was started locally, but the environment hit unrelated local-state issues: disk usage was above the server disk-lock threshold and stale `target/test-classes` contained a removed `LakeStorageUtilsTest` class. ### API and Format - Adds `LakeTableLookuper`/lookup context APIs for lake lookup implementations. - Adds `partition_name` to lookup RPC bucket requests for historical lookup routing. - Adds `HISTORICAL_LOOKUP_THROTTLED` RPC error mapping. - Adds `netty.server.max-queued-historical-requests` server config. ### Documentation - Adds the FIP-28 historical partition lookup design documentation in English and Chinese. ### Generative AI disclosure Yes. Generated with OpenAI Codex and reviewed by the human developer. -- 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]
