Re: Group commit, revised

Jesper Krogh <jesper@krogh.cc>

From: Jesper Krogh <jesper@krogh.cc>
To: Jeff Janes <jeff.janes@gmail.com>
Cc: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>, Robert Haas <robertmhaas@gmail.com>, Peter Geoghegan <peter@2ndquadrant.com>, Simon Riggs <simon@2ndquadrant.com>, PG Hackers <pgsql-hackers@postgresql.org>
Date: 2012-01-29T19:53:01Z
Lists: pgsql-hackers

Attachments

On 2012-01-29 01:48, Jeff Janes wrote:
> I ran three modes, head, head with commit_delay, and the group_commit patch
>
> shared_buffers = 600MB
> wal_sync_method=fsync
>
> optionally with:
> commit_delay=5
> commit_siblings=1
>
> pgbench -i -s40
>
> for clients in 1 5 10 15 20 25 30
> pgbench -T 30 -M prepared -c $clients -j $clients
>
> ran 5 times each, taking maximum tps from the repeat runs.
>
> The results are impressive.
>
> clients	head	head_commit_delay	group_commit
> 1	23.9	23.0	23.9
> 5	31.0	51.3	59.9
> 10	35.0	56.5	95.7
> 15	35.6	64.9	136.4
> 20	34.3	68.7	159.3
> 25	36.5	64.1	168.8
> 30	37.2	83.8	71.5
>
> I haven't inspected that deep fall off at 30 clients for the patch.
>
> By way of reference, if I turn off synchronous commit, I get
> tps=1245.8 which is 100% CPU limited.  This sets an theoretical upper
> bound on what could be achieved by the best possible group committing
> method.
>
> If the group_commit patch goes in, would we then rip out commit_delay
> and commit_siblings?

Adding to the list of tests that isn't excactly a real-world system I 
decided
to repeat Jeff's tests on a Intel(R) Core(TM)2 Duo CPU     E7500  @ 2.93GHz
with 4GB of memory and an Intel X25-M 160GB SSD drive underneath.


	Baseline 	Commitdelay 	Group commit
1 	1168.67 	1233.33 	1212.67
5 	2611.33 	3022.00 	2647.67
10 	3044.67 	3333.33 	3296.33
15 	3153.33 	3177.00 	3456.67
20 	3087.33 	3126.33 	3618.67
25 	2715.00 	2359.00 	3309.33
30 	2736.33 	2831.67 	2737.67


Numbers are average over 3 runs.

I have set checkpoint_segments to 30 .. otherwise same configuration as 
Jeff.
Attached is a graph.

Nice conclusion is.. group commit outperforms baseline in all runs (on 
this system).

My purpose was actual more to try to quantify the difference between a 
single SSD and
a single rotating disk.

-- 
Jesper