scott.marlowe wrote:
> On Tue, 4 Nov 2003, Tom Lane wrote:
> 
> > Jan Wieck <[EMAIL PROTECTED]> writes:
> > > What still needs to be addressed is the IO storm cause by checkpoints. I 
> > > see it much relaxed when stretching out the BufferSync() over most of 
> > > the time until the next one should occur. But the kernel sync at it's 
> > > end still pushes the system hard against the wall.
> > 
> > I have never been happy with the fact that we use sync(2) at all.  Quite
> > aside from the "I/O storm" issue, sync() is really an unsafe way to do a
> > checkpoint, because there is no way to be certain when it is done.  And
> > on top of that, it does too much, because it forces syncing of files
> > unrelated to Postgres.
> > 
> > I would like to see us go over to fsync, or some other technique that
> > gives more certainty about when the write has occurred.  There might be
> > some scope that way to allow stretching out the I/O, too.
> > 
> > The main problem with this is knowing which files need to be fsync'd.
> 
> Wasn't this a problem that the win32 port had to solve by keeping a list 
> of all files that need fsyncing since Windows doesn't do sync() in the 
> classical sense?  If so, then could we use that code to keep track of the 
> files that need fsyncing?

Yes, I have that code from SRA.  They used threading, so they recorded
all the open files in local memory and opened/fsync/closed them for
checkpoints.  We have to store the file names in a shared area, perhaps
an area of shared memory with an overflow to a disk file.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to