Re: pg_restore takes ages

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: pg_restore takes ages
Дата
Msg-id 1182.1065216584@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: pg_restore takes ages  ("scott.marlowe" <scott.marlowe@ihs.com>)
Ответы Re: pg_restore takes ages
Список pgsql-general
"scott.marlowe" <scott.marlowe@ihs.com> writes:
> Yes, you are.  Basically, with fsync on, things have to happen in order.
> I.e.
> write to WAL what you're gonna do.  WAIT for confirmation on write
> write the tuples out.  wait for confirmation
> checkpoint the WAL.  wait for confirmation

Not really.  With fsync on, we *only* sync the WAL writes.  Data writes
can happen whenever, so long as we know the corresponding WAL writes
went down first.  We only wait for data writes to complete before
considering that a checkpoint is complete --- which is something that is
not in the main line of execution and doesn't block other activity.

This is one good reason for keeping WAL on a separate drive from the
data files --- you are then freeing the system to schedule data I/O as
optimally as it can.

> Note that if you're running on IDE drives, you already ARE probably
> running with fsync off if write caching is enabled, so you'll need to turn
> it off (hdparm -W0 /dev/hdx in linux) to ensure fsync actually works.

It'd be interesting to think about whether a write-caching IDE drive
could safely be used for data storage, if WAL is elsewhere.

Right offhand I think the only problem is how to know when it's safe
to consider a checkpoint complete.  Maybe all that would be needed is
a long enough time delay after issuing sync(2) in the checkpoint code.
Do these drives guarantee "data will be written within 30 seconds" or
something like that?  Or can the delay be indefinite when load is heavy?

            regards, tom lane

В списке pgsql-general по дате отправления:

Предыдущее
От: Gene Vital
Дата:
Сообщение: Re: book on advanced postgresql?
Следующее
От: "scott.marlowe"
Дата:
Сообщение: Re: pg_restore takes ages