Hi,
While looking at a profile I noticed that non-concurrent index builds
use the page at a time mode. Since that causes more buffer lwlocks to be
taken, that's a noticeable slowdown according to a completely
unscientific hack.
The reason for not using the page at a time mode is that we only allow
it for mvcc snapshots, but we're using SnapshotAny. Since we're doing
additional visibility checks afterwards and since the table is locked
exlusively it seems safe to me to allow the page at a time mode?
I don't plan to implement this right now, but I do plan to pick it up
somewhere in the next cycle if nobody beats me to it.
Greetings,
Andres Freund
-- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services