Re: PG8 Tuning - Mailing list pgsql-performance

From Tom Lane
Subject Re: PG8 Tuning
Date
Msg-id 7516.1124232599@sss.pgh.pa.us
Whole thread Raw
In response to Re: PG8 Tuning  (John A Meinel <john@arbash-meinel.com>)
Responses Re: PG8 Tuning
List pgsql-performance
John A Meinel <john@arbash-meinel.com> writes:
> Alvaro Herrera wrote:
>> I've been asked this a couple of times and I don't know the answer: what
>> happens if you give XLog a single drive (unmirrored single spindle), and
>> that drive dies?  So the question really is, should you be giving two
>> disks to XLog?

> I can propose a simple test. Create a test database. Run postgres,
> insert a bunch of stuff. Stop postgres. Delete everything in the pg_xlog
> directory. Start postgres again, what does it do?

That test would really be completely unrelated to the problem.

If you are able to shut down the database cleanly, then you do not need
pg_xlog anymore --- everything is on disk in the data area.  You might
have to use pg_resetxlog to get going again, but you won't lose anything
by doing so.

The question of importance is: if the xlog drive dies while the database
is running, are you going to be able to get the postmaster to shut down
cleanly?  My suspicion is "no" --- if the kernel is reporting write
failures on WAL, that's going to prevent writes to the data drives (good
ol' WAL-before-data rule).  You could imagine failure modes where the
drive is toast but isn't actually reporting any errors ... but one hopes
that's not a common scenario.

In a scenario like this, it might be interesting to have a shutdown mode
that deliberately ignores writing to WAL and just does its best to get
all the dirty pages down onto the data drives.

In the meantime ... use a mirrored drive for WAL.

            regards, tom lane

pgsql-performance by date:

Previous
From: "Gregory S. Williamson"
Date:
Subject: Re: choosing RAID level for xlogs
Next
From: John A Meinel
Date:
Subject: Re: PG8 Tuning