Releases: apache/fluss
Apache Fluss 0.9.1-incubating
DISCLAIMER: Apache Fluss (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC.
Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects.
While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
Apache Fluss 0.9.1-incubating is a patch release on the 0.9 line containing bug fixes, Helm chart improvements, dependency upgrades, and documentation updates. It is fully compatible with 0.9.0 — no client or server changes are required to upgrade.
📥 Downloads: https://fluss.apache.org/downloads/#apache-fluss-091
🐛 Bug Fixes
Server / KV / Storage
- Fix Paimon
IOManagerleak inMergeTreeWritercausing/tmpdisk exhaustion during tiering (#3193) - Fix non-target columns not being nulled during partial update on first insert (#3157)
- Fix
OutOfBoundsExceptionin partial update / delete afterADD COLUMN(#3090) - Fix
ListDatabaseSummaryalways returning a table count of 0 or 1 (#2899) - Still remove server tag if the tablet server no longer exists (#2884)
- Validate non-primary-key tables for
KvSnapshotLeaseacquire / release APIs (#2736)
Client
- Fix early termination in
SortMergeReaderon changelog deletes (#3137) - Catch
Throwableto avoid silent failure on remote file download (#3136)
Flink Connector
- Fix
$changelogand$binlogvirtual tables failing with NPE on checkpoint completion (#2743) - Fix release of KV snapshot lease for log tables (#2721)
- Fix acquire of KV snapshot lease for legacy clusters (#2720)
Filesystem
- Propagate S3
path-style-accessconfig from server to client via delegation token (#3165)
✨ Improvements
- [flink] Push down lake filters for non-partitioned scans (#3181)
- [flink] Allow partial updates for the
AGGREGATIONmerge engine (#2905) - [server / netty] Introduce
netty.server.max-request-sizeto bound request size (#3108) - [filesystem / s3] Support the default AWS credential chain for S3 delegation (#3094)
- [filesystem / rustfs] Support
AssumeRoleSTS for RustFS (#2989)
⛵ Helm Chart
- Bump chart version to
0.9.1-incubating(#3205) - Add
existingSecretsupport for SASL credentials (#3189) - Support injecting environment variables and external secrets (#3184)
- Add pod annotations, labels, and PodDisruptionBudget support (#3185)
- Add scheduling primitives (nodeSelector / tolerations / affinity) (#3175)
- Backport general Helm chart improvements to
release-0.9(#3183) - Reintroduce the Quickstart image (#3166)
📦 Dependency Upgrades
- Bump
org.assertj:assertj-core3.23.1 → 3.27.7 (#3119) - Bump
org.apache.logging.log4j:log4j-1.2-api2.17.1 → 2.25.4 (#3118) - Bump
com.google.protobuf:protobuf-java2.5.0 → 3.25.5 (#3112) - Bump
org.apache.kafka:kafka-clients3.9.1 → 3.9.2 (#3111)
📚 Documentation
- Add "Insert If Not Exists" section to Lookup Joins documentation (#3037)
- Fix RustFS
AssumeRoledocumentation (#3058)
🔗 Full Changelog
Apache Fluss 0.9.0-incubating
DISCLAIMER: Apache Fluss (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC.
Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects.
While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
What's Changed
- [docs] Add labels to versions under releasing and Update Fluss Docker image repository by @wuchong in #1866
- [hotfix] Use literal directly instead of PARTITION_GENERATE_LEGCY_NAME to avoid NoSuchField error by @luoyuxia in #1880
- [server] Tablet server should register lakeCatalogDynamicLoader in dynamicConfigManager by @loserwang1024 in #1879
- [hotfix][client] Fix potential metadata inconsistency by deduplicating getBucketLocation call by @swuferhong in #1897
- [hotfix] fix sidebar naming conversion by @polyzos in #1898
- [hotfix][client] Use more efficient
EnumMapinConverterCommonsby @snuyanzin in #1882 - [docs] upgrade 0.7 to 0.8 about sasl authorization and default database. by @loserwang1024 in #1871
- [Docs] Add upgrade notes for fluss package changes by @caozhen1937 in #1869
- [FLUSS-1873][server] Added Retry Handler to Address Snapshotting Test Asynchrony by @rionmonster in #1881
- [lake] LakeCatalog supports multi-tenancy by @LiebingYu in #1901
- [docs] Update docs/website images for 0.8 release by @michaelkoepf in #1905
- [hotfix] Set paimon warehouse in FlinkCatalogITCase to make it consistent by @luoyuxia in #1902
- [lake/lance] add Flink memory usage note by @xx789633 in #1909
- [client] Add support for inner class and is/has methods for boolean by @snuyanzin in #1908
- [Docs] Remove unwanted emojis to make document standard Lakehouse by @MehulBatra in #1865
- refactor directory to fit helm charts into the project by @dreger1997 in #1917
- Add docs for Deploying with helm charts #1756 by @dreger1997 in #1862
- [doc] Add docs for delta join support with Flink 2.1 by @xuyangzhong in #1875
- Add documentation for updating table configs and cluster configs by @loserwang1024 in #1870
- remove sensitive catalog properties in getTable by @xx789633 in #1860
- [hotfix] Make paimonConfig of PaimonLakeStorage protected in case a subclass needs to use it by @LiebingYu in #1916
- [client][hotfix] Invoke
RowType#getFieldNamesonly once inConverterCommonsby @snuyanzin in #1920 - Fix timestamp precision by @buvb in #1931
- Aggregate fluss client connection metrics. by @loserwang1024 in #1896
- [lake] Avoid to generate empty split in tiering source enumerator by @LiebingYu in #1925
- [metric] Update metric group infix to meet document by @zcoo in #1942
- [website] Release 0.8 blog post and update Download page by @wuchong in #1868
- [release] Fix missing LICENSE and DISCLAIMER in binary distribution by @wuchong in #1922
- [Client] Fix LookupSender doesn't update bucket metadata when receive NotLeaderOrFollowerException in bucket level by @swuferhong in #1928
- [hotfix] add flink 2.1 missing jar by @polyzos in #1957
- [server] Recover log and index file for unclean shutdown by @LiebingYu in #1749
- [hotfix] add lake jars in the download page by @polyzos in #1960
- [doc] improve quickstart: merge Iceberg/Paimon sections & adjust DML behavior by @xx789633 in #1924
- [FLUSS-1935][docs] Added Fluss Team Section by @rionmonster in #1938
- [bug] fix Iceberg quickstart insertion SQL by @xx789633 in #1964
- [server] Tolerate Paimon lake table existent if the schema and properties matches by @LiebingYu in #1847
- [bug fix] set finish before notifying load in LanceArrowWriter setFinished method by @xx789633 in #1985
- [lake] Tolerate Paimon lake table existent with different insignificant options by @LiebingYu in #1995
- [lake/paimon] Support passing Fluss table comments through to the Paimon table by @LiebingYu in #1999
- [docs] Fix Lakehouse diagrams by @MehulBatra in #2001
- [website] Hero section update by @MehulBatra in #2002
- [flink] Tiering job name as per lake format by @MehulBatra in #2003
- Support Array type in log table (Arrow row format) by @XuQianJin-Stars in #1987
- [iceberg] minor improvements by @nastra in #2015
- [server] Register signal handlers to log termination due to SIGTERM, SIGHUP and SIGINT by @LiebingYu in #2012
- [server] Close the DynamicConfigManager before closing the ZookeeperClient to prevent exceptions by @LiebingYu in #2018
- [server] Close ZooKeeperClient only after all dependent components have been shut down to prevent exceptions by @LiebingYu in #2023
- [docs] Clarify the supported flink versions for delta join by @xuyangzhong in #2000
- [server] Set the waiting time of executing server shutdown hook to 120s to avoid an unclean server shutdown by @swuferhong in #2026
- [hotfix] remove kafka compatibility from the roadmap by @polyzos in #2027
- [Flink] Upgrade Flink dependency to 1.20.3 and 2.1.1 by @sd4324530 in #1988
- [docs] Make README consistent with developer guide regarding minimum Java version by @michaelkoepf in #1944
- [server] Disable shutdown hook for log4j to ensure Fluss log in shutdown hook can be collected by @LiebingYu in #2020
- [hotfix] fix typo in tiering enumerator by @polyzos in #2034
- [lake/paimon] Bump Paimon version to 1.3.1 by @sd4324530 in #2035
- [Hotfix] Revert Recover log and index file for unclean shutdown (#1749) by @swuferhong in #2036
- Fix thread-safety problem of PrimaryKeyLoookuper and PrefixKeyLookuper by @platinumhamburg in #1915
- Bump Hadoop to 3.4.0 by @nastra in #2009
- [iceberg] Upgrade iceberg version to 1.10.0 by @nastra in #2008
- [zk] Allow to set jute.maxbuffer for zk client by @luoyuxia in #2048
- [client]Support initial cluster with retries to avoid initial failed when bootstrap server only contains one available address by @swuferhong in #2024
- [hotfix][docs] Fix typo in downloads.md: hhttps -> https by @zhan7236 in #2050
- [server] Optimize log recovery time by @LiebingYu in #2044
- [client] Get tableInfo via the Admin API instead of via metadata updater by @swuferhong in #2016
- [hotfix][client] Retry to initial cluster when encounter TimeoutException by @swuferhong in #2055
- [client] Fix npe error throw by MetadataUpdater when getting bucket count by @swuferhong in #2054
- [client] Lookup sender need retry to send when leader not found in metadata cache by @swuferhong in #2052
- [FLUSS-1961][docs] Upgrade Docusaurus to 3.9.2 by @rionmonster in #1962
- Support Add Column in Fluss. by @loserwang1024 in #2010
- [Flink] Support Array type in Flink connector by @XuQianJin-Stars in #2040
- Avoid ReplicaFetcher busy loop retry storm during leader election or bucket migration by @platinumhamburg in #2075
- [rpc] Prevent EventLoop blocking and implement TCP-level backpressure in RequestChannel by @platinumhamburg in #2065
- Bump exec-maven-plugin to 3.1.0 by @loserwang1024 in #2082
- [FLUSS-2062][docs] Added Redirect for Latest Stable Version Docs by @rionmonster in #2085
- [FLUSS-2089][docs] Fixed Language Discrepancy in build_versioned_docs ...
Apache Fluss 0.8.0-incubating
DISCLAIMER: Apache Fluss (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC.
Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects.
While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
What's Changed
- [Docs] Add embedded Google calendar for community events by @michaelkoepf in #1089
- [hotfix] Fix data freshness don't work issue by @luoyuxia in #1090
- [docs] Add show partitions by given partition spec ddl in ddl.md by @swuferhong in #1093
- [row] improve test on VectorizedColumnBatch by @gyang94 in #1049
- [server] Fix Sasl's createPrincipal mismatch username and type by @loserwang1024 in #1099
- [test] Fix unstable test cases in FlussAuthorizationITCase by @swuferhong in #1102
- [minor][lake] Set default name for flink tiering service job by @leonardBang in #1105
- [lake/paimon] Fix than tiering service for paimon missed timestampNtz support by @leonardBang in #1122
- [lake/docs] Update paimon integration docs in lakehouse section by @leonardBang in #1113
- [lake/paimon] Fix union read timestamp type issue (#1128) by @luoyuxia in #1130
- minor paimon page improvements by @polyzos in #1133
- Add a use cases section in the introduction page by @polyzos in #1134
- [flink] Move Factory tests which depends on different version of Flink frameworks to submodule by @loserwang1024 in #1132
- [lake/docs] Update lakehouse storage pages to adapt to new architecture by @luoyuxia in #1139
- [docs] Add security documents including authentication and authorization. by @loserwang1024 in #1060
- [hotfix] Add isClosed protect for LogFetcher#handleFetchLogException to avoid throw exception if channel close by @swuferhong in #1107
- Fluss 0.7 Release Announcement by @polyzos in #1137
- Update source files use the standard Apache boilerplate headers by @wuchong in #1147
- [test] Expose Clock to FlussClusterExtension. by @loserwang1024 in #1136
- Add quickstart: Secure Your Fluss Cluster by @loserwang1024 in #1108
- [docs]Fix: Fix the formatting error of the coordinator.io-pool.size parameter table in the configuration document by @ZmmBigdata in #1169
- [doc] Add tips for building fluss with Java 8 by @leonardBang in #1177
- [connector] pass Fluss schema to lake writer by @xx789633 in #1192
- [test/flink] Se forkCount=1 for versioned flink e2e tests by @leonardBang in #1179
- [test/flink] Cover full data types in UnionRead tests and polish some tests by @naivedogger in #1167
- [doc]The type of Sink is incorrect. FinkSink is not public and cannot be referenced from outside the package by @ZmmBigdata in #1196
- [docs] fix small typo in security comments by @polyzos in #1199
- [website] Fix the formatting for other options by @MehulBatra in #1202
- [doc]The deletion operation requires the equivalence condition of the primary key by @ZmmBigdata in #1201
- [website] add agenda doc link in the community page by @MehulBatra in #1211
- [server] Fix zk partition residual when using dynamic partition by @zcoo in #1187
- [doc]Without switching the query mode of FlinkSQL, an exception will be thrown when deleting data from the fluss primary key table by @ZmmBigdata in #1189
- [docs] Add docs for racks by @swuferhong in #1148
- hotfix: typo by @gyang94 in #1174
- [Website] Remove version from "Building Fluss from Source" by @michaelkoepf in #1164
- [git] update the latest release version & change the task/feature description by @MehulBatra in #1218
- [server] Avoid memory copy when follower fetch log from leader by @swuferhong in #1186
- [hotfix] fix typos in getting-started.md by @yx91490 in #1223
- [hotfix] Fix the missing brackets in java-client.md by @LiebingYu in #1225
- [website][docs] Make figures consistent by @michaelkoepf in #1236
- [doc]Remove 'testcatalog'. 'testdb' from the ddl statement by @ZmmBigdata in #1234
- [doc]Adjust ddl.md document structure by @ZmmBigdata in #1232
- [doc]: add download link for tiering service jar by @gyang94 in #1229
- [doc]The DDL and DQL column names in the context do not match by @ZmmBigdata in #1190
- [doc]Code structure issues by @ZmmBigdata in #1240
- Add exception in throwable in lake writer & committer by @polyzos in #1254
- [blog]: tiering service deep dive by @gyang94 in #1249
- [lake] Ensure LakeStoragePlugin uses the plugin classloader for all operations by @beryllw in #1224
- [website] Add apache mailing list info for community by @MehulBatra in #1250
- [server] Optimize auto drop partition perfomance by @LiebingYu in #1047
- [HotFix] Class name for logger in RemoteLogIndexCache by @polyzos in #1265
- [hotfix] Fix typo in server.yaml by @XianmingZhou00 in #1277
- [client] Fluss client shouldn't load plugin by thread context classloader. by @loserwang1024 in #1267
- [website] Learn page for talks & videos draft version by @MehulBatra in #1278
- [Docs] Coordinator event metrics by @zcoo in #1272
- [File system] Add HuaweiCloud OBS integration by @andybj0228 in #1274
- [website] update roadmap to account latest requirements by @MehulBatra in #1214
- [website] create a seperate page for bug report & feature request by @MehulBatra in #1213
- [blog] Fluss java client guide by @polyzos in #1253
- Add Fluss ASF Blog Post by @polyzos in #1288
- [docs] Fix typo in configuration.md by @xiedeyantu in #1300
- rename fluss to Apache Fluss(Incubating) in readme by @polyzos in #1263
- [website] Fix community call phrase by @MehulBatra in #1308
- [website] Fix blog post author titles by @michaelkoepf in #1309
- [debug] Add coordinator event debug log by @zcoo in #1296
- Bump org.apache.commons:commons-lang3 from 3.12.0 to 3.18.0 by @dependabot[bot] in #1310
- [coordinator] add retry for Coordinator Server when register to zk by @zcoo in #1307
- Limit read permission to license-check.yml workflow by @wuchong in #1312
- Bump org.apache.kafka:kafka-clients from 3.9.0 to 3.9.1 in /fluss-kafka by @dependabot[bot] in #1294
- [build] update vcs.xml link addr by @totalo in #1293
- Potential fix for code scanning alert no. 5: Implicit narrowing conversion in compound assignment by @wuchong in #1313
- [hotfix] fix error word commitable to committable. by @zhuangchong in #1318
- [doc]Remove redundant statement terminators in the reads document by @ZmmBigdata in #1336
- [doc]Modify the table format in the pk-table document by @ZmmBigdata in #1335
- [docs] update apache fluss slack link by @MehulBatra in #1316
- [CI] add apache rat for license check of non java files by @MehulBatra in #1219
- set up fluss-lake-iceberg module and IcebergLakeStorage by @xx789633 in #1339
- [hotfix] Optimize the error msg when throwing LogOffsetOutOfRangeException by @swuferhong in #1216
- [docs][blog] fix: blog url and image by @gyang94 in #1349
- [kv] upgrade rocksdb to comm...
