Postgres data stored in Parquet on S3: LTAP architecture explained
11 days ago
- #OLTP Innovation
- #Database Architecture
- #Cloud Storage
- 作者最初以为OLTP数据库已获解决,但Databricks的构建过程揭示了它们的笨重与脆弱性,这催生了Lakebase的诞生。
- 像Postgres这样的传统单体数据库采用预写日志(WAL)实现快速写入,使用数据文件进行读取,但该架构会引发数据丢失、扩展困难和工作负载干扰等问题。
- Lakebase通过外部化存储解决这些问题:WAL被发送到分布式SafeKeeper服务,借助Paxos复制确保持久性;数据文件则交由PageServer服务处理,后者将数据页面具体化并存储到云对象存储中。
- 这种无状态计算架构支持无限存储、无服务器弹性计算、零数据丢失的持久写入、更简单的高可用性,以及无需物理复制的即时分支与克隆。
- Lakebase演进为LTAP(Lake Transactional/Analytical Processing)架构,数据以开放列式格式(如Parquet)存储为单一副本,既可通过Postgres进行事务处理,也可通过Lakehouse引擎进行分析,消除了CDC或镜像延迟。
- LTAP通过让分析查询从对象存储中读取数据来保证时效性,同时利用Postgres的日志序列号(LSN),合并PageServer中的近期变更,且不影响事务性能。
- 与试图在单一引擎中统一工作负载却面临功能、生态系统和隔离性问题的HTAP系统不同,LTAP在存储层实现统一,同时采用专用引擎,从而提供更优的性能与兼容性。