Re: WIP: dynahash replacement for buffer table - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: WIP: dynahash replacement for buffer table
Date
Msg-id CAA4eK1Jz7wVsXe3M3qV_5tmRfT18AmD06T9NgKHFwVBNH3LcgA@mail.gmail.com
Whole thread Raw
In response to Re: WIP: dynahash replacement for buffer table  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
On Tue, Jan 27, 2015 at 9:50 AM, Robert Haas <robertmhaas@gmail.com> wrote:
This developed a slight merge conflict.  I've rebased the attached
version, and I also took the step of getting rid of buf_table.c, as I
think I proposed somewhere upthread.  This avoids the overhead of
constructing a BufferTag only to copy it into a BufferLookupEnt, plus
some function calls and so forth.  A quick-and-dirty test suggests
this might not have cut down on the 1-client overhead much, but I
think it's worth doing anyway: it's certainly saving a few cycles, and
I don't think it's complicating anything measurably.

Performance data at some of the configurations.

Configuration and Db Details
----------------------------------------------
IBM POWER-8 24 cores, 192 hardware threads
RAM = 492GB
checkpoint_segments=300
checkpoint_timeout    =25min
Client Count = number of concurrent sessions and threads (ex. -c 8 -j 8)
Duration of each individual run = 5min
Scale_factor - 5000
HEAD (commit id - 168a809d)

Below is the data for median of 3-runs with pgbench read-only
(using -M prepared) configuration


Shared_buffers=8GB
Client Count/No. Of Runs (tps)18163264128256
HEAD 17748119106164949246632216763183177173055
HEAD + patch17802119721167422298746457863422621356756
 

Shared_buffers=16GB
Client Count/No. Of Runs (tps)18163264128256
HEAD 18139113265169217270172310936238490215308
HEAD + patch17900119960174196314866448238425916347919


Observations as per data
--------------------------------------
a. It improves the tps by great margin at higher client count. 
b. It is evident that as we increase the shared buffers, the gain
is relatively less (gain when shared_buffers is 16GB is lesser as
compare to when shared_buffers is 8GB)

I think the patch is valuable for such loads even though it will show
lesser benefit at higher shared buffers value, although we might want
to once verify that it doesn't topple at configurations such as
(shared_buffers = scale_factor).


With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Unnecessary pointer-NULL checks in pgp-pgsql.c
Next
From: Tom Lane
Date:
Subject: Release note bloat is getting out of hand