+1

Test environment:
  - OS: macOS (Darwin 25.2.0, ARM64/Apple Silicon)
  - Java: OpenJDK 21.0.1 LTS (TencentKonaJDK)
  - Fluss: 0.9.0-incubating (binary distribution)
  - Flink: 2.2.0
  - Connector: `fluss-flink-2.2-0.9.0-incubating.jar` (built from 0.9 
source)
  - Tiering JAR: `fluss-flink-tiering-0.9.0-incubating.jar`
  - Fluss Cluster: local-cluster mode (1 CoordinatorServer + 1 
TabletServer)
  - Flink Cluster: Standalone (1 JobManager + 1 TaskManager, process=4096m)


Tested Flink + Fluss Lakehouse Tiering (Paimon + Iceberg) with 40 test cases, 
all passed:*OK*


  - Tiering to Paimon — PK table 
(create/insert/tiering/$lake-query/$lake-agg/union-read/upsert/delete): *OK* 
(10 cases)
  - Tiering to Paimon — Log table 
(create/insert/tiering/$lake-query/$lake-agg/streaming-query): *OK* (5 cases)
  - Tiering to Paimon — Complex types PK table with ARRAY/MAP/ROW 
(create/insert/tiering/$lake-query/$lake-agg): *OK* (5 cases)
  - Tiering to Paimon — System table $lake$snapshots: *OK* (1 case)
  - Tiering to Iceberg — PK table 
(create/insert/tiering/$lake-query/$lake-agg/union-read/upsert): *OK* (8 cases)
  - Tiering to Iceberg — Log table 
(create/insert/tiering/$lake-query/$lake-agg/streaming-query): *OK* (5 cases)
  - Tiering to Iceberg — Complex types PK table with ARRAY/MAP/ROW 
(create/insert/tiering/$lake-query/$lake-agg): *OK* (5 cases)
  - Tiering to Iceberg — System table $lake$snapshots: *OK* (1 case)


Detailed test cases:


  | # | Lake | Category | Test Case | Mode | Result |
  |---|------|----------|-----------|------|--------|
  | 1 | Paimon | PK Table | Create PK table with datalake enabled 
(freshness=10s) | batch | *OK* |
  | 2 | Paimon | PK Table | Insert 5 rows into PK table | batch | *OK* |
  | 3 | Paimon | PK Table | Point query (order_id=1) | batch | *OK* |
  | 4 | Paimon | PK Table | $lake query (read from Paimon storage) | batch 
| *OK* |
  | 5 | Paimon | PK Table | $lake aggregation (COUNT + SUM) | batch | *OK* 
|
  | 6 | Paimon | PK Table | Union Read (Fluss + Paimon) | batch | *OK* |
  | 7 | Paimon | PK Table | Upsert update (id=1) | batch | *OK* |
  | 8 | Paimon | PK Table | Verify upsert (point query id=1) | batch | 
*OK* |
  | 9 | Paimon | PK Table | Delete record (id=5) | batch | *OK* |
  | 10 | Paimon | PK Table | Verify delete ($lake COUNT) | batch | *OK* |
  | 11 | Paimon | Log Table | Create Log table with datalake enabled | 
batch | *OK* |
  | 12 | Paimon | Log Table | Insert 4 rows into Log table | batch | *OK* |
  | 13 | Paimon | Log Table | $lake query Log table | batch | *OK* |
  | 14 | Paimon | Log Table | $lake aggregation (GROUP BY event_type) | 
batch | *OK* |
  | 15 | Paimon | Log Table | Streaming query Log table (earliest) | 
streaming | *OK* |
  | 16 | Paimon | Complex Types | Create PK table with ARRAY/MAP/ROW + 
datalake | batch | *OK* |
  | 17 | Paimon | Complex Types | Insert complex type data (3 rows) | 
batch | *OK* |
  | 18 | Paimon | Complex Types | Point query complex types (id=1) | batch 
| *OK* |
  | 19 | Paimon | Complex Types | $lake query complex types | batch | *OK* 
|
  | 20 | Paimon | Complex Types | $lake aggregation complex types (COUNT) 
| batch | *OK* |
  | 21 | Paimon | System Table | $lake$snapshots (snapshot_id, 
commit_user, total_record_count) | batch | *OK* |
  | 22 | Iceberg | PK Table | Create PK table with datalake enabled 
(freshness=10s) | batch | *OK* |
  | 23 | Iceberg | PK Table | Insert 5 rows into PK table | batch | *OK* |
  | 24 | Iceberg | PK Table | Point query (order_id=1) | batch | *OK* |
  | 25 | Iceberg | PK Table | $lake query (read from Iceberg storage, 5 
rows with __bucket/__offset/__timestamp) | batch | *OK* |
  | 26 | Iceberg | PK Table | $lake aggregation (COUNT=5, SUM=808.39) | 
batch | *OK* |
  | 27 | Iceberg | PK Table | Union Read (Fluss + Iceberg) | batch | *OK* |
  | 28 | Iceberg | PK Table | Upsert update (id=1, customer→Alice_Updated) 
| batch | *OK* |
  | 29 | Iceberg | PK Table | Verify upsert (point query id=1, 
Alice_Updated confirmed) | batch | *OK* |
  | 30 | Iceberg | Log Table | Create Log table with datalake enabled | 
batch | *OK* |
  | 31 | Iceberg | Log Table | Insert 4 rows into Log table | batch | *OK* 
|
  | 32 | Iceberg | Log Table | $lake query Log table (4 rows with 
timestamps) | batch | *OK* |
  | 33 | Iceberg | Log Table | $lake aggregation (GROUP BY event_type: 
click=2, view=1, buy=1) | batch | *OK* |
  | 34 | Iceberg | Log Table | Streaming query Log table (earliest, 4 
rows) | streaming | *OK* |
  | 35 | Iceberg | Complex Types | Create PK table with ARRAY/MAP/ROW + 
datalake | batch | *OK* |
  | 36 | Iceberg | Complex Types | Insert complex type data (3 rows) | 
batch | *OK* |
  | 37 | Iceberg | Complex Types | Point query complex types (id=1, 
tags=[vip,active]) | batch | *OK* |
  | 38 | Iceberg | Complex Types | $lake query complex types (3 rows with 
ARRAY/MAP/ROW) | batch | *OK* |
  | 39 | Iceberg | Complex Types | $lake aggregation complex types 
(COUNT=3) | batch | *OK* |
  | 40 | Iceberg | System Table | $lake$snapshots (snapshot_id, 
operation=append/overwrite, summary) | batch | *OK* |


Notes:
  - Paimon: 1.3.1 (`paimon-flink-2.0-1.3.1.jar` + 
`paimon-bundle-1.3.1.jar`)
  - Iceberg: 1.10.1 (`iceberg-flink-runtime-2.0-1.10.1.jar`)
  - Iceberg required `hadoop-client-api-3.3.6.jar` + 
`hadoop-client-runtime-3.3.6.jar` (Hadoop 3.x) to resolve 
`FileSystem.openFile()` API compatibility
  - Iceberg required patching `LakeFlinkCatalog.java` to use 3-arg 
`createCatalog(String, Map, Configuration)` via reflection (Iceberg 1.10.1 API 
change)
  - Tiering Service ran as Flink streaming job, data verified via `$lake` 
virtual table queries reading directly from lake storage
  - All `$lake` queries returned correct data with Fluss metadata columns 
(__bucket, __offset, __timestamp)


ForwardXu
[email protected]



        



         原始邮件
         
       
发件人:Yunhong Zheng <[email protected]&gt;
发件时间:2026年2月13日 22:51
收件人:dev <[email protected]&gt;
主题:Re: [VOTE] Release Fluss 0.9.0-incubating (RC1)



       +1&nbsp;(binding)
&nbsp;
I&nbsp;have&nbsp;verified&nbsp;the&nbsp;following&nbsp;new&nbsp;introduced&nbsp;features:&nbsp;aggregate&nbsp;merge&nbsp;engine,&nbsp;auto&nbsp;increment&nbsp;column,&nbsp;add&nbsp;column,&nbsp;rebalance&nbsp;and&nbsp;the&nbsp;kv&nbsp;snapshot&nbsp;lease.&nbsp;All&nbsp;of&nbsp;these&nbsp;features&nbsp;passed&nbsp;in&nbsp;RC1.&nbsp;

Looking&nbsp;forward&nbsp;to&nbsp;the&nbsp;final&nbsp;release&nbsp;of&nbsp;Fluss&nbsp;0.9-incubating!

Yours,
Yunhong(Swuferhong)

On&nbsp;2026/02/13&nbsp;13:10:22&nbsp;Yang&nbsp;Wang&nbsp;wrote:
&gt;&nbsp;+1&nbsp;(non-binding)
&gt;&nbsp;
&gt;&nbsp;&nbsp;&nbsp;-&nbsp;verified&nbsp;signatures&nbsp;and&nbsp;checksums:&nbsp;ok
&gt;&nbsp;&nbsp;&nbsp;-&nbsp;verified&nbsp;the&nbsp;source&nbsp;builds&nbsp;correctly:&nbsp;ok
&gt;&nbsp;&nbsp;&nbsp;-&nbsp;checked&nbsp;the&nbsp;LICENSE&nbsp;and&nbsp;NOTICE&nbsp;files&nbsp;are&nbsp;correct
&gt;&nbsp;&nbsp;&nbsp;-&nbsp;tested&nbsp;Rebalance&nbsp;feature&nbsp;with&nbsp;Flink&nbsp;2.2.0&nbsp;(1&nbsp;coordinator&nbsp;+&nbsp;3
&gt;&nbsp;&nbsp;&nbsp;tablet-servers):&nbsp;ok
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;interface&nbsp;validation&nbsp;(add_server_tag,&nbsp;rebalance,
&gt;&nbsp;&nbsp;&nbsp;list_rebalance,&nbsp;cancel_rebalance)
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;effect&nbsp;verification&nbsp;(node&nbsp;offline&nbsp;migration,&nbsp;replica
&gt;&nbsp;&nbsp;&nbsp;distribution,&nbsp;leader&nbsp;distribution)
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;data&nbsp;correctness&nbsp;across&nbsp;rebalance&nbsp;operations
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;confirmed&nbsp;list_rebalance&nbsp;ClassCastException&nbsp;from&nbsp;rc0&nbsp;is
&gt;&nbsp;&nbsp;&nbsp;fixed&nbsp;in&nbsp;rc1
&gt;&nbsp;&nbsp;&nbsp;-&nbsp;tested&nbsp;Delta&nbsp;Join&nbsp;with&nbsp;Flink&nbsp;2.2.0:&nbsp;ok
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;verified&nbsp;DeltaJoin&nbsp;optimization&nbsp;works&nbsp;correctly&nbsp;for&nbsp;CDC
&gt;&nbsp;&nbsp;&nbsp;sources&nbsp;with&nbsp;table.delete.behavior='IGNORE'
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;built&nbsp;and&nbsp;verified&nbsp;with&nbsp;official&nbsp;git&nbsp;tag
&gt;&nbsp;&nbsp;&nbsp;(v0.9.0-incubating-rc1)
&gt;&nbsp;&nbsp;&nbsp;-&nbsp;tested&nbsp;Paimon&nbsp;DV&nbsp;Union&nbsp;Read&nbsp;with&nbsp;Flink&nbsp;1.20.3&nbsp;+&nbsp;Paimon&nbsp;1.3.1:
&gt;&nbsp;&nbsp;&nbsp;ok
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;confirmed&nbsp;PR&nbsp;#2326&nbsp;resolved&nbsp;rc0&nbsp;issues&nbsp;where&nbsp;DV&nbsp;table&nbsp;Union
&gt;&nbsp;&nbsp;&nbsp;Read&nbsp;returned&nbsp;0&nbsp;rows&nbsp;or&nbsp;stale&nbsp;data
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Union&nbsp;Read&nbsp;correctly&nbsp;returns&nbsp;complete&nbsp;and&nbsp;up-to-date&nbsp;data
&gt;&nbsp;&nbsp;&nbsp;across&nbsp;multiple&nbsp;update&nbsp;scenarios
&gt;&nbsp;
&gt;&nbsp;Best,
&gt;&nbsp;Yang
&gt;&nbsp;
&gt;&nbsp;yuxia&nbsp;<[email protected]&gt;&nbsp;于2026年2月12日周四&nbsp;20:03写道:
&gt;&nbsp;
&gt;&nbsp;&gt;&nbsp;Hi&nbsp;everyone,
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;Please&nbsp;review&nbsp;and&nbsp;vote&nbsp;on&nbsp;the&nbsp;release&nbsp;candidate&nbsp;#1&nbsp;for&nbsp;the&nbsp;Apache&nbsp;Fluss
&gt;&nbsp;&gt;&nbsp;version&nbsp;0.9.0-incubating,&nbsp;as&nbsp;follows:
&gt;&nbsp;&gt;&nbsp;[&nbsp;]&nbsp;+1,&nbsp;Approve&nbsp;the&nbsp;release
&gt;&nbsp;&gt;&nbsp;[&nbsp;]&nbsp;-1,&nbsp;Do&nbsp;not&nbsp;approve&nbsp;the&nbsp;release&nbsp;(please&nbsp;provide&nbsp;specific&nbsp;comments)
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;The&nbsp;complete&nbsp;staging&nbsp;area&nbsp;is&nbsp;available&nbsp;for&nbsp;your&nbsp;review,&nbsp;includes:
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;The&nbsp;official&nbsp;source&nbsp;release&nbsp;and&nbsp;binary&nbsp;convenience&nbsp;releases&nbsp;to&nbsp;be&nbsp;deployed
&gt;&nbsp;&gt;&nbsp;to:
&gt;&nbsp;&gt;&nbsp;*
&gt;&nbsp;&gt;&nbsp;https://dist.apache.org/repos/dist/dev/incubator/fluss/fluss-0.9.0-incubating-rc1
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;Helm&nbsp;charts&nbsp;are&nbsp;available&nbsp;on:
&gt;&nbsp;&gt;&nbsp;*&nbsp;https://dist.apache.org/repos/dist/dev/incubator/fluss/helm-chart
&gt;&nbsp;&gt;&nbsp;(NB:&nbsp;you&nbsp;have&nbsp;to&nbsp;build&nbsp;the&nbsp;Docker&nbsp;images&nbsp;locally&nbsp;with&nbsp;the&nbsp;version
&gt;&nbsp;&gt;&nbsp;0.9.0-incubating&nbsp;in&nbsp;order&nbsp;to&nbsp;test&nbsp;Helm&nbsp;charts)
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;All&nbsp;the&nbsp;files&nbsp;are&nbsp;signed&nbsp;with&nbsp;the&nbsp;key&nbsp;with&nbsp;fingerprint&nbsp;56A9F259A4C18F9C,
&gt;&nbsp;&gt;&nbsp;you&nbsp;can&nbsp;find&nbsp;the&nbsp;KEYS&nbsp;file&nbsp;here:
&gt;&nbsp;&gt;&nbsp;*&nbsp;https://dist.apache.org/repos/dist/release/incubator/fluss/KEYS
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;All&nbsp;artifacts&nbsp;to&nbsp;be&nbsp;deployed&nbsp;to&nbsp;the&nbsp;Maven&nbsp;Central&nbsp;Repository:
&gt;&nbsp;&gt;&nbsp;*&nbsp;https://repository.apache.org/content/repositories/orgapachefluss-1004/
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;Git&nbsp;tag&nbsp;for&nbsp;the&nbsp;release:
&gt;&nbsp;&gt;&nbsp;*&nbsp;https://github.com/apache/fluss/releases/tag/v0.9.0-incubating-rc1
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;Git&nbsp;commit&nbsp;for&nbsp;the&nbsp;release:
&gt;&nbsp;&gt;&nbsp;*
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;https://github.com/apache/fluss/commit/d6fd1f1f607a2672bff5d18d5ca811bfa920bbd7
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;Website&nbsp;pull&nbsp;request&nbsp;for&nbsp;the&nbsp;release&nbsp;announcement&nbsp;blog&nbsp;post
&gt;&nbsp;&gt;&nbsp;*&nbsp;https://github.com/apache/fluss/pull/2590
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;Upgrade&nbsp;note&nbsp;for&nbsp;the&nbsp;new&nbsp;release:
&gt;&nbsp;&gt;&nbsp;*
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;https://github.com/apache/fluss/blob/release-0.9/website/docs/maintenance/operations/upgrade-notes-0.9.md
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;Docker&nbsp;images&nbsp;for&nbsp;the&nbsp;release&nbsp;candidate:
&gt;&nbsp;&gt;&nbsp;*&nbsp;fluss:&nbsp;apache/fluss:0.9.0-incubating-rc1
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;Please&nbsp;download,&nbsp;verify&nbsp;and&nbsp;test.&nbsp;To&nbsp;learn&nbsp;more&nbsp;about&nbsp;how&nbsp;to&nbsp;verify:
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;https://fluss.apache.org/community/how-to-release/verifying-a-fluss-release/
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;The&nbsp;vote&nbsp;will&nbsp;be&nbsp;open&nbsp;for&nbsp;at&nbsp;least&nbsp;72&nbsp;hours.&nbsp;It&nbsp;is&nbsp;adopted&nbsp;by&nbsp;majority
&gt;&nbsp;&gt;&nbsp;approval,&nbsp;with&nbsp;at&nbsp;least&nbsp;3&nbsp;PPMC&nbsp;affirmative&nbsp;votes.
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;
&gt;&nbsp;&gt;&nbsp;Best&nbsp;regards,
&gt;&nbsp;&gt;&nbsp;Yuxia
&gt;&nbsp;&gt;
&gt;&nbsp;

Reply via email to