跳到主要内容

6 篇博文 含有标签「database」

查看所有标签

数据库连接池:AI 流水线中被忽视的性能瓶颈

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的 AI 功能上线了。在预发环境中,响应时间看起来还不错。一周后,生产环境开始出现神秘的 p99 尖峰——在中等负载下,延迟从 800ms 飙升至 8 秒,而 GPU 压力正常,模型没有报错,也找不到明显原因。你扩容了更多副本,没有改善。你对模型服务做了性能剖析,没有问题。你加了缓存,还是没用。

最终,有人查了数据库连接池的等待时间。从第三天起,它的利用率就已经高达 95%。

这是 AI 生产事故中最常见的一类,却鲜有人谈及——因为连接池耗尽的表现很像模型变慢。症状出现在错误的层级:你看到的是 LLM 调用延迟高,而不是数据库查询慢,所以定位问题往往需要数天,而用户一直在忍受降级的响应。

数据库规模的有状态对话:每个生产聊天功能都需要的会话存储架构

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数工程师在生产中而非设计评审时发现他们的会话架构是错误的。演示运行良好:你用五条消息进行了测试,对话历史可以放入内存,LLM 也能连贯地响应。然后你上线了,在第一批千个并发会话与第一次部署滚动之间,用户开始遇到上下文遗忘、部分响应或会话无故重置的问题。让聊天功能原型设计变得简单的内存模式,正是使其在运营中变得脆弱的根源。

这并不是一个微妙的架构错误。对话状态与请求状态有着本质区别。请求状态只存活数毫秒;对话状态必须能够在 Pod 重启、水平扩展、部署周期和移动网络中断中存活——持续数分钟、数小时或数天。建立在错误抽象上的系统会产生可靠性债务,随着对话长度增长和用户负载增加而累积。

为什么你的数据库在AI功能上线后崩溃:LLM感知的连接池设计

· 阅读需 10 分钟
Tian Pan
Software Engineer

在AI功能上线之前,你的连接池一直运行良好。登录正常,仪表板加载顺畅,CRUD操作以个位数毫秒的延迟稳定运行。然后团队部署了一个RAG驱动的搜索、一个Agent驱动的工作流,或者一个LLM支持的摘要端点——几个小时内,你的核心产品开始超时。数据库并没有变慢,你的连接池只是被一种它从未被设计来处理的工作负载吞噬了。

这就是LLM连接池问题,随着AI功能从原型走向生产环境,它正在影响整个行业的团队。解决方案不是"增加更多连接"。事实上,这通常会让事情变得更糟。

当数据库迁移悄然摧毁 AI Agent 的世界模型

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的团队在周二执行了一次常规数据库迁移——将 last_login_date 重命名为 last_activity_ts,并扩展其语义以包含 API 调用。没有服务中断。测试通过。仪表盘更新。但你的 AI Agent——那个回答客户关于用户活跃度问题的 Agent——开始悄悄给出错误答案。没有报错,没有告警,没有堆栈跟踪。它只是自信地基于一个已经不存在的世界进行推理。

这就是 AI 工程中几乎无人关注的 Schema 迁移问题。你的 Agent 从工具描述、few-shot 示例和检索上下文中构建了一个隐式的数据模型。当底层 Schema 发生变化时,这个模型就变成了谎言——而 Agent 没有任何机制来检测这种矛盾。

数据库原生 AI:当你的 Postgres 学会了嵌入

· 阅读需 8 分钟
Tian Pan
Software Engineer

大多数 RAG 架构长得都一样:你的应用从 Postgres 读取数据,将文本发送到嵌入 API,将向量写入 Pinecone 或 Weaviate,并在读取时查询两个系统。你维护着两个数据存储、两套一致性模型、两套备份策略,以及一条同步管道——这条管道总是离让你的向量索引落后源数据数周只差一个边缘情况。

如果数据库自己就能搞定一切呢?这已经不再是假设。PostgreSQL 扩展如 pgvector、pgai 和 pgvectorscale——以及 AlloyDB AI 等托管服务——正在将整个嵌入与检索堆栈折叠进数据库本身。结果不仅仅是减少了活动部件,而是一种根本不同的运维模型:你的向量始终与其所代表的数据保持事务一致。

你的数据库模式是 AI Agent 的心智模型

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数构建智能体(agent)的团队将数据库模式(schema)视为后端关注的问题。这种模式是由工程师为工程师设计的,遵循了数十年关系型数据库的最佳实践:积极规范化、避免冗余、拆分引用表、强制执行外键。这种方法对于联机事务处理(OLTP)系统是正确的,但对于 AI 智能体来说通常是错误的。

当智能体读取你的模式以确定如何回答问题时,它并不是在解析数据结构,而是在构建你业务的心智模型。如果你的模式是为已经理解该领域的应用程序代码构建的,那么智能体将根据为别人绘制的地图进行工作。结果就是幻觉式的联接、错误的聚合,以及原本只需两步却需要八步的工具调用链。