Use atomic ops to hand out pages to scan in parallel scan.

Heikki Linnakangas <heikki.linnakangas@iki.fi>

Commit: 3cda10f41bfed7e34b0db7013b66dd40a5f75926
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: 2017-08-16T13:18:41Z
Releases: 11.0
Use atomic ops to hand out pages to scan in parallel scan.

With a lot of CPUs, the spinlock that protects the current scan location
in a parallel scan can become a bottleneck. Use an atomic fetch-and-add
instruction instead.

David Rowley

Discussion: https://www.postgresql.org/message-id/CAKJS1f9tgsPhqBcoPjv9_KUPZvTLCZ4jy%3DB%3DbhqgaKn7cYzm-w@mail.gmail.com

Files

PathChange+/−
src/backend/access/heap/heapam.c modified +59 −43
src/include/access/relscan.h modified +3 −2

Discussion