hutiefang76 opened a new pull request, #3505: URL: https://github.com/apache/fluss/pull/3505
## What is changed Fixes #3413. This change keeps lake writes limited to non-empty bucket write results, but collects committed Fluss log offsets and max tiered timestamps from all completed bucket write results in a mixed commit round. That preserves offsets for buckets that only advanced through an empty materialized batch while another bucket produced lake data in the same commit. The existing empty-write-result test now asserts that the empty bucket offset is included in the committed lake snapshot metadata. ## Why Before this change, `TieringCommitOperator` built the `logEndOffsets` map from only non-empty write results. In a mixed commit, empty-batch buckets with `writeResult() == null` were filtered out, so their completed log offsets were not committed even though the commit round had lake data to publish. ## Tests - Red/green verified `TieringCommitOperatorTest#testCommitMeetsEmptyWriteResult`; before the production change it failed because bucket 0 offset was missing from the committed snapshot. - `mvn -s <empty-settings> -pl fluss-flink/fluss-flink-common -am -Dtest=TieringCommitOperatorTest#testCommitMeetsEmptyWriteResult -Dsurefire.failIfNoSpecifiedTests=false test` - `mvn -s <empty-settings> -pl fluss-flink/fluss-flink-common -am -Dtest=TieringCommitOperatorTest -Dsurefire.failIfNoSpecifiedTests=false test` - `git diff --check` I used an empty temporary Maven settings file locally to avoid a private mirror configured in my user Maven settings. ## AI assistance This PR was prepared with assistance from OpenAI Codex. I reviewed the change and verified the tests above. -- 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]
