From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | pgsql-performance(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org |
Cc: | Michael Clemmons <glassresistor(at)gmail(dot)com>, Hannu Krosing <hannu(at)2ndquadrant(dot)com>, Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com> |
Subject: | Faster CREATE DATABASE by delaying fsync (was 8.4.1 ubuntu karmic slow createdb) |
Date: | 2009-12-28 22:54:51 |
Message-ID: | 200912282354.51892.andres@anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-performance |
On Saturday 12 December 2009 21:38:41 Andres Freund wrote:
> On Saturday 12 December 2009 21:36:27 Michael Clemmons wrote:
> > If ppl think its worth it I'll create a ticket
> Thanks, no need. I will post a patch tomorrow or so.
Well. It was a long day...
Anyway.
In this patch I delay the fsync done in copy_file and simply do a second pass
over the directory in copy_dir and fsync everything in that pass.
Including the directory - which was not done before and actually might be
necessary in some cases.
I added a posix_fadvise(..., FADV_DONTNEED) to make it more likely that the
copied file reaches storage before the fsync. Without the speed benefits were
quite a bit smaller and essentially random (which seems sensible).
This speeds up CREATE DATABASE from ~9 seconds to something around 0.8s on my
laptop. Still slower than with fsync off (~0.25) but quite a worthy
improvement.
The benefits are obviously bigger if the template database includes anything
added.
Andres
From | Date | Subject | |
---|---|---|---|
Next Message | Dimitri Fontaine | 2009-12-28 22:55:42 | Re: Admission Control Policy |
Previous Message | Tom Lane | 2009-12-28 22:41:04 | Stats for inheritance trees |
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2009-12-28 22:59:43 | Re: [HACKERS] Faster CREATE DATABASE by delaying fsync (was 8.4.1 ubuntu karmic slow createdb) |
Previous Message | Craig James | 2009-12-28 18:37:12 | Re: SATA drives performance |