选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

PostgreSQL 博览 RSS 订阅

当天收录 28 条。

外键内连接消除遇到触发器造成的间隙

Richard Guopgsql-hackers

Richard Guo 在 hackers 上指出基于外键的内连接消除存在正确性问题。这项优化假定外键约束始终成立从而重写连接,但父行删除与级联删除并非原子:在语句执行到 AFTER ROW 触发器触发之间,快照可能看到约束被违反,结果就错了。他列出六种处理方向,从放弃优化、加锁谓词到接受一个有文档记录的边缘情况。当前实现的加锁方案过于保守,会在整个事务里禁用优化;补丁将拆成优化机制与间隙处理两部分分别评审。

跨关系连接统计信息补丁的设计分歧

Chengpeng Yanpgsql-hackers

连接统计信息补丁进入 v7 评审。Chengpeng Yan 提了几个设计问题:索引到底是统计定义的持久组成部分还是只在创建时需要,存在等价索引时要不要阻止 DROP INDEX;对被探测关系执行 ANALYZE 不会刷新连接统计,规划器可能同时拿到新鲜的基表统计和过时的跨关系信息。Tomas Vondra 与 Tom Lane 同意第一版只做两表连接,但目录结构要为扩展留余地;表属于不同属主时的权限问题尚未解决。

给跑长查询的集群打开客户端断连检测

Christophe Pettusthebuild.com

Christophe Pettus 建议启用 client_connection_check_interval。该参数让后端在执行查询期间轮询客户端套接字,一旦内核报告连接已断就终止查询,不再为已经消失的客户端白耗资源。默认值 0 即关闭,它依赖 POLLRDHUP,在 Linux、macOS 和 BSD 上可用而 Windows 不支持,开销只是一次系统调用。他给的经验值是 OLTP 用 10 秒,分析型长查询可以到 5 秒。

外部表加物化视图做跨库分析

Richard Yenrichyen.com

Richard Yen 给出一种把外部数据用于分析的组合:外部表只当接入点,在它上面建物化视图把数据缓存到本地,再给物化视图加索引。他的判断是外部数据包装器优化的是开发体验而不是查询性能,远端延迟和不可靠的下推让性能难以预测。刷新用 REFRESH MATERIALIZED VIEW CONCURRENTLY,前提是有唯一键,代价是接受一段可控的数据陈旧。这样既避开远端系统的索引缺失与 OLTP 争用,也不必另搭一套 ETL。

Postgres Pro 发布分片扩展 Shardman 18

Postgres ProPostgres Pro 博客

Postgres Pro 发布 Shardman 18,这是一个把数据水平分布到多个节点的 PostgreSQL 分片扩展。新版本改进了分布式查询的规划与执行,增强监控,并跟进 PostgreSQL 18 的特性。扩展在分片之间自动分布数据,同时保持 ACID 语义和跨分布式表的复杂连接能力。厂商列出的主要改进包括跨分片查询性能优化、集群管理简化和故障转移机制增强,目标是在保留标准 SQL 接口和一致性保证的前提下提供横向扩展。

用备库方案从 Crunchy 算子迁到 Percona 算子

Slava SarzhanPercona 博客

Slava Sarzhan 给出从 Crunchy Data 算子迁到 Percona 算子的备库方案。Percona 的算子是 Crunchy 的硬分叉,底层仍是 Patroni、pgBackRest 和 PgBouncer,迁移因此相对直接:把 Percona 集群作为现有 Crunchy 主库的备库拉起来,经备份和流复制同步,最后一步才降级旧主、提升新集群,停机很短。文中还给出以 SeaweedFS 作共享存储的配置和回滚流程。

Redis Open Source 8.8 正式发布

RedisGitHub Releases

Redis Open Source 8.8 正式发布,是一次功能级更新而不是补丁。新增 Array 数据结构、INCREX、XNACK 和哈希字段级通知,JSON、TimeSeries 与 Search 能力同步扩展,并带来多项性能改进。INCREX 和 XNACK 分别对应应用侧限流与流消费者的重投递恢复。生产用户升级前应验证模块与客户端兼容性、streams 待处理消息语义、限流逻辑以及 Search 和 JSON 的查询行为变化。

约 900 个公开 S3 桶里躺着 Terraform state

vechronvechron.com

一份调查称发现约 900 个可公开读取的 S3 存储桶里存着 Terraform state 文件,其中 41 个含有仍然有效的 AWS 凭证。state 文件通常包含 provider 配置、资源属性、生成的凭证和内部拓扑,公开的 state 桶等于公开一张攻击路线图。这不是新型漏洞,却是云上最常见也最容易避免的问题之一。建议逐一检查各家对象存储后端的公共访问设置、桶策略、KMS 加密与访问日志。