标签

数据库

PostgreSQL 逻辑复制为何吃满磁盘:从 pg_replslot 泄漏到 streaming 调优

来源: postgr.es 25
PostgreSQL 的逻辑复制通常安静得让人忘记它的存在,直到发布端的 目录突然出现成千上万个文件,磁盘告警随之响起。更棘手的是,这些文件可能在大事务提交后立即消失,只留下一个恢复正常的目录和几项累计统计。 问题往往不是复制槽失效,也不一定是订阅端落后,而是逻辑解码正在为尚未提交的大事务暂存数据。订阅越多,同一份 WAL 就会被重复解码和暂存越多次。...

AI 写的 PostgreSQL 索引都能用,为什么还是会拖慢写入

来源: postgr.es 29
现在的编码代理已经很会写 PostgreSQL:GIN、GiST、部分索引、表达式索引、,以及以租户 ID 开头的复合索引,通常都能写对。真正的问题不再是索引无效,而是每个索引单独看都合理,叠到同一张高频更新表上却形成了昂贵的写放大。 一组针对 30 份模型生成 schema 的实验加载并检查了 838 个索引。只有 10 个找不到明确需求,其余大多具...

OpsDump v0.1.0:用单进程平台统一数据库备份与任务调度

来源: oschina.net 36
数据库备份工具真正困难的部分,往往不是执行一次 ,而是持续解决定时运行、结果追踪、失败发现和部署维护。OpsDump v0.1.0 将这些能力收进一个基于 GoFrame v2 的单进程平台:使用单二进制交付,以 SQLite 保存平台数据,并通过 Web 页面完成管理,同时兼顾数据库备份和通用任务调度。 当前版本已经实现并跑通,适合用于验证轻量运维平...

PostgreSQL 的 max_connections:别把连接上限当成吞吐量旋钮

来源: postgr.es 30
看起来像一个容量参数,很容易让人产生这样的直觉:把它从 100 调到 500,数据库就能同时处理五倍请求。实际情况恰恰不同。它更接近一份内存预算和一道熔断器,决定数据库最多接纳多少客户端连接,却不能增加 CPU 核心、存储 IOPS 或内存带宽。 真正需要回答的问题不是“能连多少”,而是“多少连接可以同时做有效工作,以及连接积压时应该在哪里排队”。 每...

Neki 如何用 512 个分片将 PostgreSQL 推到每秒 1.185 亿次查询

来源: planetscale.com 32
Neki 的这组数据很容易让人先记住一个数字:每秒 1.185 亿次查询。更值得分析的是背后的规模模型:一个大规模分片 PostgreSQL 集群,拥有 512 个分片,单个分片约承载每秒 20 万次查询。 这类结果并不意味着单个 PostgreSQL 实例突然获得了超大吞吐,而是把请求、数据和连接压力拆散到大量相互独立的分片上。工程重点从“如何让一台...

你的 AI Agent 可以自己关掉数据库的“熔断开关”

来源: postgr.es 34
给 AI Agent 配一个专用 PostgreSQL 角色时,很多团队会执行两条熟悉的加固命令:限制单条语句的执行时间,并让事务默认只读。 从管理员视角看,角色配置已经被限制:查询最多运行两秒,事务默认不能写入。但这份安全感有一个关键前提:客户端不能在连接建立时覆盖这些参数。 写入的是会话启动时的默认值,不是数据库层面的强制约束。连接创建后,会话本身...

Kubernetes 1.37:让高优先级 Pod 的原地扩容主动抢占资源

来源: kubernetes.io 18
Kubernetes 1.35 已将 Pod 原地调整资源能力推进到 GA:运行中的容器可以修改 CPU 和内存请求,而不必通过重建 Pod 才能生效。但这只解决了“如何调整”,没有完全解决“节点空间不足时怎么办”。 Kubernetes 1.37 引入 Alpha 特性 。当高优先级 Pod 的原地扩容因节点容量不足而进入 状态时,调度器可以抢占同一...

让 PostgreSQL 聚合更聪明:用 SupportRequestSimplifyAggref 移除冗余排序

来源: postgr.es 25
PostgreSQL 19 为聚合函数开放了一个新的 planner support hook:。它允许扩展在规划阶段改写聚合表达式,而不需要修改 PostgreSQL 核心代码。 这个能力看似只是一个新的扩展接口,实际用途却很直接:清理应用生成器留下的冗余 ,或者针对数据的固定精度和小数位,为 替换更快的实现。 考虑下面两个查询: 对于普通的 来说,...

Neki 进入平台预览:PlanetScale 开始探索分片 Postgres

来源: planetscale.com 31
PlanetScale 宣布 Neki 进入平台预览。它被定义为一项分片 Postgres 服务,意味着团队希望把水平扩展能力带进开发者熟悉的 PostgreSQL 生态。现阶段公开信息仍然有限,因此比功能清单更值得关注的是:应用应该如何为分片建模,以及平台预览阶段适合验证什么。 单机或主从架构中的 PostgreSQL 通常允许应用把数据库视为一个整...

把 PostgreSQL 迁移做得足够无聊:任务关键数据库的降风险方法

来源: postgr.es 32
任务关键型 PostgreSQL 迁移,真正的终点不是“按计划上线”,而是数据完整、系统稳定,并且出了问题仍然能在目标时间内恢复。为了换取一次干净的切换,把上线日期推迟一周,往往比在凌晨面对数据不一致和无法回退更便宜。 一场优秀的迁移结束后,业务人员只会觉得系统正常运行。这种“没人记得迁移发生过”的平静,不是运气,而是明确的验收标准、反复的演练、可执行...