Re: [HACKERS] Faster CREATE DATABASE by delaying fsync (was 8.4.1 ubuntu karmic slow createdb)
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: pgsql-hackers@postgresql.org
Cc: pgsql-performance@postgresql.org, Michael Clemmons <glassresistor@gmail.com>, Hannu Krosing <hannu@2ndquadrant.com>, Scott Marlowe <scott.marlowe@gmail.com>
Date: 2009-12-28T22:59:43Z
Lists: pgsql-hackers, pgsql-performance
Attachments
- 0001-Delay-fsyncing-files-during-copying-in-CREATE-DATABA.patch (text/x-patch) patch 0001
On Monday 28 December 2009 23:54:51 Andres Freund wrote: > 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. Obviously the patch would be helpfull. Andres