内容提要
作者首次参加Apache Community Over Code格拉斯哥大会,认为Apache数据生态与PostgreSQL社区协同潜力巨大。其闪电演讲介绍ColdFront:透明地将PostgreSQL数据分层至Iceberg,应用仍使用普通PostgreSQL。支持分层与解耦模式、冷层可写,TPC-DS全部99个查询通过,并用Lamport算法与TLA+防止写冲突。项目现为1.0.0-beta3,已开源。
延伸解读
ColdFront 的透明分层如何降低迁移成本
ColdFront 的核心设计是让应用继续使用普通 PostgreSQL,而数据在后台被透明地迁移到 Apache Iceberg。这意味着现有应用无需修改代码或查询逻辑,就能将不常访问的旧数据转移到更便宜的存储,同时保留合规访问能力。这种透明性降低了采用新存储架构的迁移成本和风险,尤其适合那些希望优化存储成本但不愿重构应用的企业。
分层与解耦模式:灵活应对不同数据生命周期
ColdFront 提供两种模式:分层模式下,旧数据自动迁移到 Iceberg;解耦模式下,数据从第一行起就存储在 Iceberg 中。这种灵活性允许用户根据数据访问频率和生命周期选择策略。结合存储与计算分离,读操作可以横向扩展,写操作则通过 Spock 实现主动-主动扩展,为高并发场景提供了可扩展性基础。
写冲突防护与冷层可写性的技术保障
ColdFront 的冷层支持 UPDATE、MERGE、ALTER TABLE 等写操作,并成功运行了 TPC-DS 全部 99 个查询,表明其具备处理复杂分析负载的能力。为防止多节点间的写冲突,项目采用 Lamport 面包店算法,并用 TLA+ 进行了形式化验证。这为分布式环境下的数据一致性提供了可信保障,但实际生产中的性能表现仍需进一步观察。
项目状态与社区协同潜力
ColdFront 目前处于 1.0.0-beta3 阶段,正逐步接近稳定版 1.0.0,并已基于 PostgreSQL 许可证开源。作者在 Apache Community Over Code 大会上强调,Apache 数据生态与 PostgreSQL 社区之间存在巨大的协同潜力,ColdFront 正是这种协同的例证。对于关注数据分层和开放表格式的团队,可以关注其后续稳定版发布和详细博客。
Q&A
ColdFront 是什么?它如何透明地将 PostgreSQL 数据分层到 Iceberg?
ColdFront 是一个开源工具,它透明地将 PostgreSQL 数据移动到 Apache Iceberg,应用程序仍然使用普通的 PostgreSQL 接口。它支持分层模式(旧数据自动移动到 Iceberg)和解耦模式(数据从第一行就存储在 Iceberg),并保持冷层可写,支持 UPDATE、MERGE、ALTER TABLE 等操作。
ColdFront 如何防止分布式写入冲突?
ColdFront 使用 Lamport 的面包店算法来防止节点之间的写冲突,并且该算法在 TLA+ 中进行了形式化验证。
ColdFront 在性能测试中表现如何?
ColdFront 成功运行了 TPC-DS 的全部 99 个查询,证明了其处理复杂分析工作负载的能力。
ColdFront 的当前版本和许可证是什么?
ColdFront 目前处于 1.0.0-beta3 版本,正在向稳定的 1.0.0 版本迈进。它是在 PostgreSQL 许可证下开源的。
ColdFront 支持哪些使用场景?
ColdFront 支持将旧数据移动到廉价存储同时保持可访问性以满足合规要求,支持解耦存储和计算以扩展读取,并通过 active-active Spock 扩展写入。它还利用 Parquet 行组统计作为倒排索引实现免费的向量搜索。
在哪里可以找到 ColdFront 的代码和文档?
ColdFront 的代码托管在 GitHub 上:github.com/pgEdge/coldfront,文档位于 docs.pgedge.com/coldfront。