You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@fluss.apache.org by "fxbing (via GitHub)" <gi...@apache.org> on 2026/10/20 11:29:37 UTC

[PR] [client] Support explicit target buckets for append writes [fluss]

fxbing opened a new pull request, #4761:
URL: https://github.com/apache/fluss/pull/4761

   ### Purpose
   
   Linked issue: close #4760 
   
   Allow Fluss-to-Fluss replication to carry the source bucket ID into append requests, preserving bucket assignment for log tables without bucket keys.
   
   ### Brief change log
   
   - Add explicit bucket overloads to raw, typed, and multi-table append APIs. Reject negative or out-of-range IDs and buckets that conflict with a keyed log table's hash routing.
   - Reuse valid cached metadata; resolve missing or stale partition layouts before validating explicit buckets. Retry transient refresh failures within the request-timeout budget.
   - Preserve explicit buckets across batch rollover, retries, and layout resolution during memory allocation.
   
   ### Tests
   
   - Passed unit coverage in `BucketRoutingTest`, `WriterClientTest`, `MetadataUpdaterTest`, `DynamicPartitionCreatorTest`, and `MultiTableWriteRecordTest`.
   - Passed integration coverage in `MultiTableWriterITCase`, `FlussTypedClientITCase`, `PartitionedTableITCase`, `PartitionBucketCountRescaleITCase`, and selected `FlussTableITCase` methods, including source-to-target bucket replication. Flink Undo regression tests also passed.
   - After the final cleanup, 10 targeted cases passed in both Maven test executions of `verify`; Spotless, Checkstyle, RAT, and packaging passed.
   
   The full repository suite was not run. An earlier full-class run timed out in `FlussTableITCase.testAppendAndPoll[INDEXED]`; the same failure reproduced on the pre-change baseline `5f1466f31`. The method passed in isolation on both revisions. Its root cause was not established during this validation.
   
   ### API and Format
   
   New APIs:
   
   - `AppendWriter.append(InternalRow, int)`
   - `TypedAppendWriter.append(T, int)`
   - `MultiTableWriteRecord.forAppend(TablePath, InternalRow, int, int)`
   
   The writer overloads are abstract methods, so third-party implementations must implement them. Existing append calls and primary-key upsert/delete APIs retain automatic routing. No RPC protocol or storage format changes.
   
   Explicit writes may block while resolving metadata. The request-timeout budget prevents further refresh attempts after expiry; waiting for the metadata lock or an in-progress RPC can exceed that budget.
   
   ### Documentation
   
   Add API Javadocs describing bucket scope, routing constraints, validation, and metadata waiting.
   
   Generated-by: OpenAI Codex


-- 
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: issues-unsubscribe@fluss.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [client] Support explicit target buckets for append writes [fluss]

Posted by "fxbing (via GitHub)" <gi...@apache.org>.
fxbing closed pull request #4761: [client] Support explicit target buckets for append writes
URL: https://github.com/apache/fluss/pull/4761


-- 
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: issues-unsubscribe@fluss.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org