📝 8 新 Issues
✅ 6 关闭
✨ 11 新 PRs
🎉 6 合并
🔥 核心要点
- 🎉 PR #2781 Coordinator Server 支持协调器 Epoch 保护,修复领导者选举竞态条件,提升 HA 稳定性
- 🎉 PR #2710 修复 TableChangeWatcher 因 CuratorCache 异步 getData 竞态导致丢失 CreateTableEvent 的问题
- 🎉 PR #3034 Helm Chart 支持 extraVolumes、extraVolumeMounts、initContainers 配置
- 🎉 PR #2934 添加 Fluss Rust SDK 介绍博客文章
- ✨ PR #3042 Spark 支持为 lake 启用的主键表进行批处理 union read
⚠️ 重点关注
- ⚠️ Issue #1018 TableChangeWatcherTest.testTableChanges 不稳定,标记为 priority=critical(已关闭)
💬 Issue/PR 动态
Issue 讨论
Issue #2781 [Feature] Coordinator Server Supports coordinator epoch protect
- @zcoo: 添加了2个测试用例以提升 Coordinator epoch 传播到 TabletServer/Zookeeper 的测试覆盖率
- @wuchong: 提交了修复领导者选举竞态条件的 commit,重构 coordinator epoch 为不可变,涉及多个组件的重构
Issue #3040 [test] Unstable test TableChangeWatcherTest.testTableChanges
- @wuchong: 指出该问题已通过 PR #2710 修复
Issue #1767 Can the Fluss cluster change the datalake configuration from the cluster level to the table level?
- @coolderli: 表示这是一个重要功能,公司有不同场景使用不同的 lake table formats,期望通过 fluss 实现单表支持
Issue #3045 [common] Deep copy BinaryString in createDeepFieldGetter to fix use-after-free
- @luoyuxia: 担心复制 STRING 可能会导致性能下降,建议参考 #3008 的方案
- @YannByron: 认为 #3008 的 copyStrings flag 方案更精确,将关闭此 PR 采用该方案
- @fresh-borzoni: 指出 #3008 可能是更好的解决方法
Issue #3047 [server] Manage users for sasl/plain authentication via cluster properties.
- @Copilot: 多次审查指出 API 兼容性破坏、JAAS 配置注入风险、类型转换风险、测试状态泄漏等问题
Issue #3058 chore: fix docs for RustFS AssumeRole
- @Copilot: 建议统一使用 s3.path-style-access 拼写,并使用有效的 AWS 角色 ARN 示例
PR Review
PR #2710 [server] Fix TableChangeWatcher missing CreateTableEvent due to CuratorCache async getData race
- @wuchong: 审查并通过合并
- @swuferhong: 表示已处理审查意见
PR #3034 [helm] Add extraVolumes, extraVolumeMounts, initContainers
- @morazow: 建议使用 Maven Central 链接,并确认 $FLUSS_VERSION$ 是否会在文档站点渲染
- @affo: 表示已处理审查意见
PR #2972 [flink] Implement SupportsWatermarkPushDown for FlinkTableSource
- @LiebingYu: 分析该问题在大多数 Flink 版本不存在,仅在 2.3 及以后版本可能有影响
PR #3030 [server] Implement JBOD Phase 1 Local Multi-Directory Support
- @Copilot: 审查指出远程日志索引查找返回 -1 的潜在问题、缓存大小语义变化、日志级别建议等
PR #2740 [spark] support map type
- @YannByron: 指出 CI 失败由已知的 #2992 flaky UT 引起
- @beryllw: 建议可能不需要调用 InternalRowUtils.copyArray,并提供了代码链接参考
📝 新建 Issue/PR
Issues
- #3055 [flink] Fix NPE then flink reading in batch mode and "scan.startup.mode" is not "FULL". @gyang94
- #3052 [client] LogFetchCollector uses immutable fetchOffset for staleness check, causing cross-poll CompletedFetch to be drained @platinumhamburg
- #3049 Introduce `netty.server.max-request-size` to limit the request size @loserwang1024
- #3048 [lake][iceberg] Iceberg does not support union read for primary key table @Yohahaha
- #3046 Support add users for SASL/Plain authentication @loserwang1024
- #3040 [test] Unstable test TableChangeWatcherTest.testTableChanges @app/github-actions
- #3039 [spark] Support delete records for pk table @Yohahaha
- #3038 [docs] Fix website broken anchors @wuchong good first issue
Pull Requests
- #3058 chore: fix docs for RustFS AssumeRole @fresh-borzoni
- #3057 [spark] Fix column projection on log/upsert read path @fresh-borzoni
- #3056 [fix] fix: add lakeSource check in batch mode @gyang94
- #3054 [common] Optimize getNullCounts() to return int[] instead of Long[] @platinumhamburg
- #3053 Fix stale fetch detection across poll boundaries @platinumhamburg
- #3050 [server][netty] Introduce netty.server.max-request-size to limit the request size @loserwang1024
- #3047 [server] Manage users for sasl/plain authentication via cluster properties. @loserwang1024
- #3043 [client] release pending fetch semaphore on discarding @zuston
- #3042 [spark] Support batch union read for lake-enabled primary key tables @Yohahaha
- #3041 [spark] support scala 2.13 @YannByron
- #3037 [docs] Add Insert If Not Exists section to Lookup Joins documentation @platinumhamburg
✅ 关闭 Issue/PR
已关闭 Issues
- #3040 [test] Unstable test TableChangeWatcherTest.testTableChanges @app/github-actions
- #3033 [helm] Enable the user to set volumes and initContainers for tablet and coordinator @affo
- #2778 [Feature] Support Epoch and ZkEpoch protect for Coordinator leader change @zcoo
- #1152 Perfect the acquisition of coordinatorEpoch and prevent offline coordinator send requests again @swuferhong component=server
- #1018 TableChangeWatcherTest.testTableChanges is not stable @wuchong good first issue, component=test, priority=critical
- #188 [Feature] CoordinatorServer Supports High-Available @wuchong component=server
已合并 PRs
- #3044 [helm] Fix wrong resource name in coordinator sts @morazow
- #3034 [helm] Add extraVolumes, extraVolumeMounts, initContainers @affo
- #3027 [client] Catch the exception for list offsets api. @loserwang1024
- #2934 [Blog] Fluss Rust SDK introduction blog @fresh-borzoni
- #2781 [Feature] Coordinator Server Supports coordinator epoch protect @zcoo
- #2710 [server] Fix TableChangeWatcher missing CreateTableEvent due to CuratorCache async getData race @swuferhong