Skip to content

勘误与版本说明 ​

Apache Paimon 源码学习

作者 X老师(DaemonforY),Paimon 2.0 / master 源码,按 CC BY-NC-SA 4.0 发布。配套实验和代码在 GitHub。

Yui和Kai整理版本与勘误档案
Yui和Kai整理版本与勘误档案AI 生成配图

准确是本教程的底线。发现错误请提 Issue(注明章节、原文、你认为正确的说法和依据),确认后会在这里记录并致谢。

版本基线 ​

用基准尺对齐源码与实验版本
用基准尺对齐源码与实验版本AI 生成配图
内容基于
教程正文中的源码类名、方法、行号Apache Paimon master @ d15d250cf(2.2-SNAPSHOT,2026-09-24)
labs/ 实验默认运行版本Apache Paimon 2.0.0(Maven Central 正式版)+ Flink 1.20.1
实验记录(labs/notes/)中的输出2.2-SNAPSHOT 首次采集;2026-10-02 用 labs/run-all.sh 复核:实验 1~4 的 34 项在 2.0.0 与 2.2-SNAPSHOT 上全部通过;加入实验 5、6 后共 46 项在 2.0.0 上全部通过

源码行号只对 d15d250cf 有效。对照源码调试(实验 4)时,请用该提交编译安装并运行: PAIMON_VERSION=2.2-SNAPSHOT ./debug.sh sql/lab04/trace-write.sql

已知差异 ​

(暂无。若某个结论在不同版本上表现不同,会记录在这里。)

勘误记录 ​

在档案馆给错误记录贴修补标签
在档案馆给错误记录贴修补标签AI 生成配图
日期位置原文更正致谢
2026-10-02labs/README.md 依赖说明、labs/pom.xml嵌入式运行需要 flink-connector-base 和 flink-connector-filesflink-connector-files 已 shade 了 flink-connector-base 的类,只需前者;单独加 connector-base 是多余的(实验 5 场景 3~5 验证)自查(实验 5)
2026-10-02labs/README.md 依赖说明这些依赖“都是 Flink 发行版 lib/ 里本来就有的”Flink 发行版 lib/ 自带 log4j2 和 flink-connector-files,不带 Hadoop(Flink 1.20.1 flink-dist/.../bin.xml),生产部署需自行提供 Hadoop自查(实验 5)
2026-10-0202-paimon-core整体架构.md 第 4 节写入流程写缓冲“缓冲满 → flushWriteBuffer()”写出 L0 文件默认 write-buffer-spillable = true,缓冲满时先溢写到本地磁盘、提交前统一归并成一个 L0 文件;只有关闭溢写才会提前刷盘(labs/sql/lab04/compare-buffer-full.sql:可溢写 1 个文件、关闭溢写 20 个文件)。正常情况下 L0 文件在 prepareCommit 时生成(labs/jdb-stacks.sh 抓到的调用栈)自查(S1 第 5 期、S2 第 1 讲)
2026-10-0407-Lookup-Changelog.md 第 1 节 lookup-waitcompactNotCompleted() 中 needLookup && L0 非空 视为未完成,prepareCommit 会等它lookup-wait 的生效位置是 Flink sink:StoreSinkWrite.java:146 把 prepareCommitWaitCompaction()(需要 lookup 且 lookup-wait)作为每次 prepareCommit 的 waitCompaction;compactNotCompleted() 用于判断写入器能否被清理自查(S2 第 8 讲)
2026-10-0508-FlinkSink与Checkpoint提交.md 第 4 节故障恢复committer 恢复时用 RestoreAndFailCommittableStateManager,补提交后一律故意失败一次只有 FlinkWriteSink 默认实现(主键表等)用 RestoreAndFail…;无桶 Append 表(RowAppendTableSink)和 postpone bucket 表用 RestoreCommittableStateManager,只补提交不故意失败(实验 11 实测)自查(S2 第 9 讲)

代码示例在页面里运行时使用 HiveGPT 的模型接口。延伸阅读来自 JavaGuide(Apache-2.0),版权归原作者。