[ 
https://issues.apache.org/jira/browse/FLINK-40513?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mao Jiayi closed FLINK-40513.
-----------------------------
    Resolution: Invalid

> Validate forward routing and optimize Fluss sink writer with bucket affinity
> ----------------------------------------------------------------------------
>
>                 Key: FLINK-40513
>                 URL: https://issues.apache.org/jira/browse/FLINK-40513
>             Project: Flink
>          Issue Type: Improvement
>          Components: Flink CDC
>            Reporter: Mao Jiayi
>            Priority: Major
>              Labels: pull-request-available
>
> h3. Background
> FLINK-40331 / PR #4498 introduces an opt-in {{FORWARD}} routing strategy for 
> Fluss-to-Fluss synchronization. It preserves the upstream subtask 
> distribution and avoids repartitioning records before the Fluss sink.
> However, FORWARD routing is beneficial and safe only when the source and 
> target tables have compatible bucket layouts. The Fluss sink currently does 
> not validate this assumption or explicitly expose bucket-affinity behavior.
> h3. Proposed Changes
> Enhance the Fluss sink when {{{}sink.partitioning.strategy=FORWARD{}}}:
>  # Validate that source and target tables have compatible distribution 
> settings, including bucket count, bucket keys, partition keys, table type and 
> bucketing algorithm.
>  # Validate at runtime that each record is routed to the expected target 
> bucket before writing.
>  # Fail fast when bucket affinity cannot be guaranteed, such as log tables 
> without deterministic bucket keys.
>  # Cache table metadata and bucket calculators in {{{}FlussSinkWriter{}}}.
>  # Reuse {{MultiTableWriter}} and its per-table/bucket batching so that each 
> sink subtask writes only its affinity bucket subset.
>  # Add metrics and logs for validated records, validation failures and active 
> buckets.
> h3. Acceptance Criteria
>  * Compatible Fluss-to-Fluss FORWARD jobs write data correctly.
>  * Incompatible bucket layouts fail with a clear error instead of silently 
> degrading.
>  * Log tables without deterministic bucket keys are rejected in FORWARD mode.
>  * DEFAULT routing behavior remains unchanged.
>  * Unit and E2E tests cover successful and failed validation scenarios.
>  * The implementation is verified with both Flink 1.20 and Flink 2.x.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to