Skip to content

[lake/tiering] Continue tiering after empty tables - #4374

Merged
luoyuxia merged 4 commits into
apache:mainfrom
beryllw:tiering/fix-empty-table-progress
Sep 18, 2026
Merged

luoyuxia merged 4 commits into
apache:mainfrom
beryllw:tiering/fix-empty-table-progress

Conversation

@beryllw

@beryllw beryllw commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Purpose

Linked issue: close #4372

Brief change log

Tests

API and Format

Documentation

@beryllw

beryllw commented Sep 17, 2026

Copy link
Copy Markdown
Contributor Author

@luoyuxia cc

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

One or more issues must be addressed before approval.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

This PR reduces lake-tiering delays by continuing table claims after empty tables, with controlled scheduling and focused tests.

Changes:

  • Adds injectable scheduling and delayed empty-table continuation.
  • Refactors startup dependencies for testability.
  • Adds tests for continuation, failover, failures, and shutdown.
File summaries
File Description
fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/source/enumerator/TieringSourceEnumeratorSchedulingTest.java Updated as part of this pull request.
fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/source/enumerator/TieringSourceEnumerator.java Updated as part of this pull request.
Review details

Suppressed comments (1)

fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/source/enumerator/TieringSourceEnumerator.java:534

  • This guard does not check whether any reader still demands a split, so an empty-table round can schedule a continuation after the last reader has been satisfied or unregistered. When it fires, requestTieringTableSplitsViaHeartBeat still performs a heartbeat (it only suppresses requestTable), adding an unnecessary coordinator RPC instead of falling back directly to the periodic poll. Include the demand check in this guard.
        if (closed || emptyTableContinuationScheduled) {
            return;
  • Files reviewed: 2/2 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@beryllw
beryllw requested a review from luoyuxia September 18, 2026 02:30
@luoyuxia
luoyuxia merged commit 6eed21b into apache:main Sep 18, 2026
15 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Lake tiering stalls up to 30s per empty table

3 participants