微软开源 pg_durable:在 PostgreSQL 内部实现持久化任务执行

微软近日开源了一款名为 pg_durable 的 PostgreSQL 扩展,旨在将“持久化执行”能力直接引入数据库内部。该工具允许后端和数据工程师直接使用 SQL 定义工作流,并由 PostgreSQL 负责执行和检查点记录,从而确保即使在系统崩溃、重启或单个步骤失败时,任务也能从上次保存的进度无损恢复,无需人工干预。

pg_durable 的核心价值在于架构极简。传统的后台任务通常需要组合 Cron 调度器、消息队列、状态表以及外部编排器(如 Airflow 或 Temporal),而 pg_durable 让这些逻辑回归数据库内部。它采用 SQL 原生的 DSL(领域特定语言)定义函数图,利用 Rust 编写并基于 pgrx 框架运行,无需 Redis 等额外基础设施。

该工具特别适用于构建向量嵌入管道、数据摄取、API 集成及需要容错性的批处理任务。虽然目前处于预览阶段且仅支持 PostgreSQL 17 和 18 版本,但它展示了“计算向数据靠拢”的趋势,为重度依赖 Postgres 的团队提供了一种高效的轻量级工作流解决方案。

事件分析

从技术架构视角分析,pg_durable 代表了“Database-First”架构的进一步深化。传统的持久化执行通常依赖外部中间件(如 Temporal 或 Cadence),通过网络回调操作数据库,增加了延迟和系统复杂度。pg_durable 通过扩展的方式将编排引擎直接下沉至数据库进程内部,利用共享内存和本地存储进行状态管理,极大减少了外部依赖。

对于 AI 和数据处理场景,这一变化具有重要意义。现代 AI 应用(如 RAG 流程)涉及大量的数据清洗、向量化处理和批处理,这些步骤逻辑复杂且极易出错。pg_durable 允许在数据存放地直接定义容错逻辑,避免了在应用层和数据库层之间维护繁琐的状态同步。虽然该方案受限于 SQL 的表达能力,且不适合高并发的即时响应请求,但对于后台作业和 ETL 流程,它提供了一种极具吸引力的“SQLite for orchestrations”式的极简路径。

💡 核心观点:pg_durable 将编排能力下沉至数据库内核,标志着 PostgreSQL 正从单一数据存储向应用运行时演进,极大简化了 AI 与数据处理工程的技术栈。

原文链接:Hacker News

C code80.ai · AI 编码 API 聚合 Claude / GPT 多模型统一接入,稳定不限速,按量计费,几行配置接入 Claude Code。 了解一下 ›

抢沙发

评论前必须登录!

立即登录   注册