惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
U
Unit 42
人人都是产品经理
人人都是产品经理
罗磊的独立博客
Recent Announcements
Recent Announcements
云风的 BLOG
云风的 BLOG
aimingoo的专栏
aimingoo的专栏
T
Tailwind CSS Blog
GbyAI
GbyAI
Blog — PlanetScale
Blog — PlanetScale
I
InfoQ
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
B
Blog RSS Feed
WordPress大学
WordPress大学
腾讯CDC
H
Help Net Security
博客园 - Franky
博客园 - 【当耐特】
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
B
Blog
Vercel News
Vercel News
博客园 - 司徒正美

InfoQ - 促进软件开发领域知识与创新的传播

Meta 收购 Manus 这事儿泡汤了 5.5万 Star 开源项目 Ghostty 被迫出走,GitHub 正在终结一代技术人的乌托邦 Slack 长时运行多智能体系统的上下文管理方案 从 T+1 到分钟级:金城银行基于 Apache Doris 构建高可靠、强一致的实时数据平台 谷歌云推出 Agents CLI,简化 AI 智能体开发全流程 Claude官方击穿高薪、高学历的安全防线!Anthropic点名10大高危职业,但有群人暂时稳了 亚马逊云科技终止 WorkMail 服务,并将 App Runner 转入维护模式 OPPO小布记忆:全模态碎片化内容的理解与智能整理实践|AICon上海 模力工场038周AI应用周榜:工具在消失,工作流在出现 Akamai CEO Tom Leighton:Agent 时代来临,云基础设施正从“中心化”转向“分布式边缘” 日均数百亿入库背后:从“人肉调度”到K8s弹性架构,度小满金融基于OceanBase重构入库架构实践 百度文库网盘发布GenFlow 4.0:月活用户超1亿,要把网盘变成全端AI工作台 Altman 投的 Agent 终端 Warp 开源了!斩获3.5万star 哪些客户需要拒, 敢让龙虾决定吗?_AI&大模型_InfoQ 中文站_InfoQ精选视频 从开发到生产:为什么越来越多的机器学习团队纷纷迁移到 Snowflake | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 探索多智能体工作流:LangGraph Snowflake Cortex AI | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 腾讯云分布式缓存数据库:AI Agent - 从提示词工程到 Harness 工程 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 基于 Streamlit 为 CSV 数据构建分析智能体 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 AI 智能体:告别文档缺漏 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 构建 AI 驱动的数据管道:深度探讨 Snowflake Openflow 与非结构化数据 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 云端太贵、本地不够聪明,英特尔押注“端云混合AI”:智能体PC会替人完成工作 不到10%的存储投入,可能拖垮90%的GPU投资!IBM把AI Agent塞进存储系统,算清企业最容易忽略的一笔账 Snowpark 上手实战 | BUILD 2025_大数据_王玮_InfoQ精选视频 ClickHouse + Langfuse,构建 Agent 可观测基石 腾讯云分布式缓存数据库:Cluster Proxy 共享连接架构深度解析 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 AI 写代码太烧钱了:Copilot、Claude 一起涨价,不如把程序员请回来? 英特尔发布至强600系列工作站处理器与锐炫Pro B70 GPU,全新AI工作站来了 腾讯云分布式缓存数据库:从 Redis 到 Valkey - 开源社区如何快速创新 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 印奇这次要“从0重做”智驾模型!首谈阶跃和千里双公司布局:中国AI商业闭环要靠车跑出来 从Cursor返聘归来,90后华裔女高管带Claude开启日更模式:token成本比工程师工资低多了!
微软开源用于数据库内持久执行的 PostgreSQL 扩展
作者:Sergio De Simone平川 · 2026-06-17 · via InfoQ - 促进软件开发领域知识与创新的传播

pg_durable微软最近开源的一款 PostgreSQL 扩展。它支持在数据库内部原生运行持久化工作流,而不需要依赖外部的编排系统。

据微软介绍,pg_durable 使开发人员不用将 cron 任务、后台工作单元、消息队列和外部协调器拼接在一起,即可实现长期运行且具有容错能力的 SQL 函数。而且,工作流直接通过 SQL 表达,该扩展负责处理重试、扇出和恢复等执行相关的问题。

借助 pg_durable,工作流可以直接在 SQL 中定义,重试状态、进度跟踪和检查点管理完全在 PostgreSQL 内部完成,无需依赖外部应用程序。微软指出,这样做的一大优势在于“某些应用层工作单元、队列消费者或调度器粘合层会完全消失”。

pg_durable 函数是一个 SQL 执行步骤图,PostgreSQL 在执行过程中会对其进行检查点记录。如果数据库发生崩溃、重启或某个步骤失败,系统将从最后一个持久检查点继续执行,而无需手动重建状态。

该扩展将函数的执行状态持久化存储在 PostgreSQL 表中,确保工作流在系统崩溃、重启和故障转移时仍然能正常运行。它提供了一种领域特定语言(DSL),其中包含用于调度、条件和并行执行等操作的一等原语。

以下是一个简短的示例,展示了一个分步骤处理数据的持久化函数:

SELECT df.start(    'SELECT id FROM documents WHERE processed = false LIMIT 100' |=> 'batch'    ~> 'UPDATE documents SET processed = true WHERE id = ANY($batch)');

复制代码

上面的代码片段展示了 ~> 和 |=> 这两个由 pg_durable 定义的特殊运算符,它们分别用于实现节点的顺序执行以及将结果绑定到变量。df.start 函数用于启动持久化函数的执行。下面的示例演示了如何并行执行两个节点,并使用 df.join 函数(或与其等效的 & 运算符)等待它们完成:

df.join('SELECT count(*) FROM a', 'SELECT count(*) FROM b')\'SELECT 1' & 'SELECT 2'

复制代码

微软将该扩展定位于向量嵌入管道场景,其中,数据需分块处理、发送至嵌入 API,然后写入 pgvector;同时也适用于计划维护任务,例如检测数据膨胀、触发通知、等待审批以及执行后续操作。此外,该扩展还适用于依赖外部 API 的工作流。

从架构上讲,pg_durable 刻意保持了极简设计,它仅包含一个 Postgres 扩展以及一个后台工作进程,而不包含任何外部控制平面。负责运行持久化函数的工作进程基于两个 Rust 库构建:duroxide 提供编排运行时,包括确定性重放、检查点、子编排和定时器;duroxide-pg 则将实例、历史记录、工作队列及其他运行时状态持久化存储在由 duroxide 提供的专用模式中。

持久化执行是一种软件范式,它使长期运行的工作流能够从故障点自动恢复,省去了复杂的手动状态恢复过程。该模型简化了分布式系统,有助于构建健壮的代理架构和云控制平面。InfoQ 之前曾经发文探讨过 TemporalCloudflare 等平台所支持的持久化执行技术。

原文链接:https://www.infoq.com/news/2026/06/postgresql-pg-durable/