Skip to content

[lake/paimon] Fix partition expiration never triggered in Paimon lake table managed by Tiering Service#2862

Merged
luoyuxia merged 2 commits into
apache:mainfrom
LiebingYu:paimon-partition-expire
Mar 13, 2026
Merged

[lake/paimon] Fix partition expiration never triggered in Paimon lake table managed by Tiering Service#2862
luoyuxia merged 2 commits into
apache:mainfrom
LiebingYu:paimon-partition-expire

Conversation

@LiebingYu

Copy link
Copy Markdown
Contributor

Purpose

Linked issue: close #2861

Brief change log

Tests

API and Format

Documentation

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.

Pull request overview

Fixes Paimon lake-table partition expiration not being triggered when tables are managed by the Fluss Tiering Service, addressing the lifecycle mismatch where a new Paimon TableCommitImpl is created every tiering round.

Changes:

  • Enable Paimon end-input.check-partition-expire in PaimonLakeCommitter when snapshot expiration is enabled (i.e., non-write-only commits).
  • Add a parameterized unit test that simulates multiple tiering rounds and validates partition expiration behavior.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/PaimonLakeCommitter.java Enables Paimon’s end-input partition-expiration trigger during non-write-only tiering commits.
fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringTest.java Adds coverage to ensure partition expiration occurs across repeated tiering rounds.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +439 to +446
// Use a fixed ancient date so the partition is always considered expired.
// "20200101" with expiration-time=1d is always past-due – no wall-clock dependency.
String expiredPartition = "20200101";

Map<String, String> tableOptions = new HashMap<>();
tableOptions.put(CoreOptions.PARTITION_EXPIRATION_TIME.key(), "1 d");
tableOptions.put(CoreOptions.PARTITION_EXPIRATION_CHECK_INTERVAL.key(), "10 min");
tableOptions.put(CoreOptions.PARTITION_TIMESTAMP_FORMATTER.key(), "yyyyMMdd");

@luoyuxia luoyuxia 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.

+1

@luoyuxia luoyuxia merged commit 96aee59 into apache:main Mar 13, 2026
6 checks passed
hemanthsavasere pushed a commit to hemanthsavasere/fluss that referenced this pull request Mar 14, 2026
wxplovecc pushed a commit to tongcheng-elong/fluss that referenced this pull request Apr 17, 2026
wxplovecc pushed a commit to tongcheng-elong/fluss that referenced this pull request Apr 20, 2026
Ugbot pushed a commit to Ugbot/fluss that referenced this pull request Apr 26, 2026
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.

[lake/paimon] Partition expiration never fires in Paimon lake table when managed by Tiering Service

3 participants