Skip to content

Conversation

@luoyuxia
Copy link
Contributor

@luoyuxia luoyuxia commented Apr 22, 2025

Purpose

Linked issue: close #433

Brief change log

  • Introduce a table option table.datalake.tiering.interval to control the data fressness tiered from fluss in datalake.
  • Introduce a LakeTableTIeringManager to coordinator server to manage the lifecycle of the lake table to be tiered, the state macheine looks as follows:
New -> Scheduled
Scheduled --> |after lake tiering interval| Pending
Pending --> |lake tiering service request table| Tiering
Tiering --> |once lake tiering finish| Scheduled
Tiering --> |lake tiering heartbeat timout| Scheduled

Then, LakeTiering can requet table from LakeTableTIeringManager:
1: After requet a table, it wil send heartbeat periodically to tell coordiantor the table is still tiering.
2: If the table hasn't been notified to be alive for a while, coordinator will assign the table to another tiering service
3: After tiering service finish one round of tiering for the table, notify the table has finished the tiering via heartbeat. Then LakeTableTIeringManager will wait table.datalake.tiering.interval to assign the table to other tiering service

Tests

LakeTableTieringManagerTest.
Let's add IT after we introduce RPC in 432

API and Format

Documentation

@luoyuxia luoyuxia force-pushed the introduce-lake-tiering-assigment-manager branch 2 times, most recently from 98dd54d to 41a2e6b Compare April 22, 2025 04:18
@luoyuxia luoyuxia marked this pull request as ready for review April 22, 2025 06:00
@luoyuxia luoyuxia requested review from leonardBang and wuchong April 22, 2025 06:00
@luoyuxia luoyuxia changed the title [coordinator/lake] Introduce tiering assignment manager [lake] Introduce tiering assignment manager to coordiantor service Apr 22, 2025
@luoyuxia luoyuxia changed the title [lake] Introduce tiering assignment manager to coordiantor service [lake] Introduce tiering assignment manager to CoordinatorServer Apr 22, 2025
private class ExpiredOperationReaper extends ShutdownableThread {

public ExpiredOperationReaper() {
super("ExpiredOperationReaper", false);
Copy link
Member

Choose a reason for hiding this comment

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

"LakeTieringExpiredOperationReaper" to distinguish with the name of DelayedOperationManager.ExpiredOperationReaper.

@luoyuxia luoyuxia force-pushed the introduce-lake-tiering-assigment-manager branch 2 times, most recently from fb6432a to f27ea79 Compare May 7, 2025 08:28
@luoyuxia
Copy link
Contributor Author

luoyuxia commented May 7, 2025

@wuchong Comments addressed.

@luoyuxia luoyuxia force-pushed the introduce-lake-tiering-assigment-manager branch from f27ea79 to 1ef3c0a Compare May 9, 2025 08:06
@luoyuxia luoyuxia force-pushed the introduce-lake-tiering-assigment-manager branch from 813807b to 42ee3e9 Compare May 12, 2025 05:41
@luoyuxia
Copy link
Contributor Author

@wuchong Comments addressed.

@luoyuxia luoyuxia force-pushed the introduce-lake-tiering-assigment-manager branch from 42ee3e9 to 8bedfab Compare May 13, 2025 02:39
@luoyuxia luoyuxia force-pushed the introduce-lake-tiering-assigment-manager branch 2 times, most recently from c4dd395 to 8450590 Compare May 13, 2025 07:50
@luoyuxia luoyuxia force-pushed the introduce-lake-tiering-assigment-manager branch from 8450590 to a387802 Compare May 13, 2025 07:58
@wuchong
Copy link
Member

wuchong commented May 13, 2025

@luoyuxia please take a look the modified changes.

Copy link
Contributor Author

@luoyuxia luoyuxia left a comment

Choose a reason for hiding this comment

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

@wuchong Thanks for the suggestion commits, LGTM!

* Tiering --> |lake tiering report tiering| Failed
* Tiered -> Scheduled
* Failed -> Pending
* ┌─────┐ ┌──────┐
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This digram looks cool!

@wuchong wuchong merged commit dfdaa6e into apache:main May 13, 2025
6 of 9 checks passed
ZmmBigdata pushed a commit to ZmmBigdata/fluss that referenced this pull request Jun 20, 2025
polyzos pushed a commit to polyzos/fluss that referenced this pull request Aug 30, 2025
polyzos pushed a commit to Alibaba-HZY/fluss that referenced this pull request Aug 31, 2025
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.

Implement task allocation logic in Fluss Server to assign synchronization tasks to Tiering Service

2 participants