↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

共享缓冲区哈希表改用两步删除,按 Buffer 删快三成 RSS

Heikki Linnakangas 指出新的 BufTableDelete() 让 InvalidateBuffer() 持缓冲区头部自旋锁的时间过长。Alexandre Felipe 认为问题不在持锁时长,而在自旋锁下操作的安全性难以论证,提出两步删除:取锁前完成查找,持锁期间只断开链表。他在 Dhruv Aron 的补丁上实现了这一方案,并加了按 Buffer 删除的变体,比按 BufferTag 删除快约 30%。

发布于 2026-09-10T10:59:48.423999Z · Alexandre Felipe · PostgreSQL hackers
性能 缓冲区

Heikki Linnakangas 指出新的 BufTableDelete() 让 InvalidateBuffer() 持缓冲区头部自旋锁的时间过长。Alexandre Felipe 认为问题不在持锁时长,而在自旋锁下操作的安全性难以论证,提出两步删除:取锁前完成查找,持锁期间只断开链表。他在 Dhruv Aron 的补丁上实现了这一方案,并加了按 Buffer 删除的变体,比按 BufferTag 删除快约 30%。

Heikki Linnakangas 指出新的 BufTableDelete() 让 InvalidateBuffer() 持缓冲区头部自旋锁的时间过长。Alexandre Felipe 认为问题不在持锁时长,而在自旋锁下操作的安全性难以论证,提出两步删除:取锁前完成查找,持锁期间只断开链表。他在 Dhruv Aron 的补丁上实现了这一方案,并加了按 Buffer 删除的变体,比按 BufferTag 删除快约 30%。

原始来源 ↗

来源记录
  • center.info_item · ab5911a234d114e9 · 2026-10-03T04:08:35.169032Z
  • pgweb.info_item · ab5911a234d114e9 · 2026-10-03T04:08:55.967155Z