On 2014-09-29 16:16:38 -0400, Tom Lane wrote:
> Andres Freund <andres@2ndquadrant.com> writes:
> > On 2014-09-29 14:44:42 -0400, Tom Lane wrote:
> >> Personally I think a hardwired #define should be plenty. What's the
> >> argument that users will need to tune this at runtime?
>
> > That right now it can make quite noticeable differences in
> > scalability. And we have not much data to justify 8 as the default. And
> > that's surely not going to change if we require recompiles.
>
> I wonder why it's a fixed constant at all, and not something like
> "wal_buffers / 8".
Because that'd be horrible performancewise on a system with many
wal_buffers. There's several operations where all locks are checked in
sequence (to see whether there's any stragglers that need to finish
inserting) and even some where they're acquired concurrently (e.g. for
xlog switch, checkpoint and such).
Greetings,
Andres Freund
-- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services