发布于 2026-09-10T10:59:46.053345Z · Greg Burd · PostgreSQL hackers

Greg Burd 提交第四版补丁,把 port/atomics.h 重新实现在 C11 <stdatomic.h> 之上,由 -Duse_stdatomic 选项启用,默认关闭。关键发现是读操作必须用 seq_cst 而不是 relaxed,因为传统 volatile 读隐含的编译器排序需要等价保证,这由 RISC-V 上并行哈希连接的失败测试验证。写操作用 relaxed,避开 aarch64 上约 5 倍的争用开销。
Greg Burd 提交第四版补丁,把 port/atomics.h 重新实现在 C11 <stdatomic.h> 之上,由 -Duse_stdatomic 选项启用,默认关闭。关键发现是读操作必须用 seq_cst 而不是 relaxed,因为传统 volatile 读隐含的编译器排序需要等价保证,这由 RISC-V 上并行哈希连接的失败测试验证。写操作用 relaxed,避开 aarch64 上约 5 倍的争用开销。
来源记录
- center.info_item · 3a766d898e44f7bd · 2026-10-03T04:08:35.169032Z
- pgweb.info_item · 3a766d898e44f7bd · 2026-10-03T04:08:55.967155Z