From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | Curtis Faith <curtis(at)galtair(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Pgsql-Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Proposed LogWriter Scheme, WAS: Potential Large Performance |
Date: | 2002-10-05 11:49:52 |
Message-ID: | 200210051149.g95BnqS12763@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Curtis Faith wrote:
> Back-end servers would not issue fsync calls. They would simply block
> waiting until the LogWriter had written their record to the disk, i.e.
> until the sync'd block # was greater than the block that contained the
> XLOG_XACT_COMMIT record. The LogWriter could wake up committed back-
> ends after its log write returns.
>
> The log file would be opened O_DSYNC, O_APPEND every time. The LogWriter
> would issue writes of the optimal size when enough data was present or
> of smaller chunks if enough time had elapsed since the last write.
So every backend is to going to wait around until its fsync gets done by
the backend process? How is that a win? This is just another version
of our GUC parameters:
#commit_delay = 0 # range 0-100000, in microseconds
#commit_siblings = 5 # range 1-1000
which attempt to delay fsync if other backends are nearing commit.
Pushing things out to another process isn't a win; figuring out if
someone else is coming for commit is. Remember, write() is fast, fsync
is slow.
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2002-10-05 12:01:01 | Re: Proposed LogWriter Scheme, WAS: Potential Large Performance |
Previous Message | Manfred Koizar | 2002-10-05 09:58:22 | Re: [SQL] [GENERAL] CURRENT_TIMESTAMP |