On Wed, 2008-12-24 at 18:31 +0900, Fujii Masao wrote:
> > Frankly, I myself have every doubt
> > that on a relatively high load setup, the standby will not be able
> > keep pace with the primary for two reasons:
> >
> > - Lack of read ahead of data blocks (Suzuki-san's work may help this)
> > - Single threaded recovery
> >
> > But then these are general problems which may impact any log-based replication.
>
> Right. Completely high load setup is probably impossible. There is
> certainly a price to pay. But, in order to reduce a price as much as
> possible, I think that we should not focus two or more operations
> on single process (walsender) just like single threaded recovery.
I think we may be pleasantly surprised.
In 8.3 there were two main sources of wait:
* restartpoints
* waiting for archive files
Restartpoints will now be handled by bgwriter, giving probably 20% gain,
plus the WAL data is streamed directly into memory by walreceiver. So I
think the startup process may achieve a better steady state and perform
very quickly.
Suzuki-san's numbers show that full_page_writes = on does not benefit
significantly from having read ahead and we already know that is
effective in reducing the I/O bottleneck during recovery.
If we want to speed up recovery more, I think we'll see the need for an
additional process to do WAL CRC checks.
-- Simon Riggs www.2ndQuadrant.comPostgreSQL Training, Services and Support