From: | Andres Freund <andres(at)2ndquadrant(dot)com> |
---|---|
To: | Christian Ullrich <chris(at)chrullrich(dot)net> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Hard limit on WAL space used (because PANIC sucks) |
Date: | 2013-06-06 21:38:34 |
Message-ID: | 20130606213834.GH29964@alap2.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2013-06-06 23:28:19 +0200, Christian Ullrich wrote:
> * Heikki Linnakangas wrote:
>
> >The current situation is that if you run out of disk space while writing
> >WAL, you get a PANIC, and the server shuts down. That's awful. We can
>
> >So we need to somehow stop new WAL insertions from happening, before
> >it's too late.
>
> >A naive idea is to check if there's enough preallocated WAL space, just
> >before inserting the WAL record. However, it's too late to check that in
>
> There is a database engine, Microsoft's "Jet Blue" aka the Extensible
> Storage Engine, that just keeps some preallocated log files around,
> specifically so it can get consistent and halt cleanly if it runs out of
> disk space.
>
> In other words, the idea is not to check over and over again that there is
> enough already-reserved WAL space, but to make sure there always is by
> having a preallocated segment that is never used outside a disk space
> emergency.
That's not a bad technique. I wonder how reliable it would be in
postgres. Do all filesystems allow a rename() to succeed if there isn't
actually any space left? E.g. on btrfs I wouldn't be sure. We need to
rename because WAL files need to be named after the LSN timelineid...
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2013-06-06 21:46:45 | SPGist "triple parity" concept doesn't work |
Previous Message | Jeff Janes | 2013-06-06 21:30:46 | Re: Vacuum, Freeze and Analyze: the big picture |