Re: postgres on a non-journaling filesystem

From: maayan mordehai <maayanmordehai3(at)gmail(dot)com>
To: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: postgres on a non-journaling filesystem
Date: 2019-01-23 13:05:49
Message-ID: CAO56m1BLf4FqS-hgi41LpBMdm_C5vm45oTaFuakQOGomJAT2wQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Thank you!!

On Wed, Jan 23, 2019, 2:20 PM Heikki Linnakangas <hlinnaka(at)iki(dot)fi wrote:

> On 23/01/2019 01:03, maayan mordehai wrote:
> > hello,
> >
> > I'm Maayan, I'm in a DBA team that uses postgresql.
> > I saw in the documentation on wals:
> > https://www.postgresql.org/docs/10/wal-intro.html
> > In the tip box that, it's better not to use a journaling filesystem.
> and I
> > wanted to ask how it works?
> > can't we get corruption that we can't recover from?
> > I mean what if postgres in the middle of a write to a wal and there is a
> > crash, and it didn't finish.
> > I'm assuming it will detect it when we will start postgres and write that
> > it was rolled back, am I right?
>
> Yep, any half-written transactions will be rolled back.
>
> > and how does it work in the data level? if some of the 8k block is
> written
> > but not all of it, and then there is a crash, how postgres deals with it?
>
> The first time a block is modified after a checkpoint, a copy of the
> block is written to the WAL. At crash recovery, the block is restored
> from the WAL. This mechanism is called "full page writes".
>
> The WAL works just like the journal in a journaling filesystem. That's
> why it's not necessary to have journaling at the filesystem level.
>
> - Heikki
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2019-01-23 14:46:39 Re: Analyze all plans
Previous Message David Rowley 2019-01-23 12:44:00 Re: pg_dump multi VALUES INSERT