pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Richard Huxton <dev@archonet.com>
To: Sergey Konoplev <gray.ru@gmail.com>
Cc: Stephen Frost <sfrost@snowman.net>
Cc: Anibal David Acosta <aa@devshock.com>
Cc: pgsql-performance@postgresql.org
Subject: Re: unlogged tables
Date: Mon, 14 Nov 2011 10:17:58 +0000
Message-ID: <4EC0EAD6.9010302@archonet.com> (raw)
In-Reply-To: <CAL_0b1tuxi9YVhGKsNUSTZCUBXgOmppan7w+KkRZARbQ=u4P5w@mail.gmail.com>
References: <005501cca0ad$b9478440$2bd68cc0$@devshock.com>
	<20111111201822.GN24234@tamriel.snowman.net>
	<CAL_0b1t02q77ft2JWdjMv8q4vaGm=x__K0rzVkpNSvSy2-SjzA@mail.gmail.com>
	<4EC0D827.8090601@archonet.com>
	<CAL_0b1tuxi9YVhGKsNUSTZCUBXgOmppan7w+KkRZARbQ=u4P5w@mail.gmail.com>

On 14/11/11 10:08, Sergey Konoplev wrote:
> On 14 November 2011 12:58, Richard Huxton<dev@archonet.com>  wrote:
>> Because they bypass the transaction-log (WAL), hence unlogged.
>> There's no way to know whether there were partial updates applied when the
>> system restarts.
>
> I probably did not understand the "truncate" meaning correct. It
> truncates all the records of the table or several recent records only?

All.

Let's say you were doing something like "UPDATE unlogged_table SET x=1 
WHERE y=2". If a crash occurs during this command, there's no guarantee 
that the affected disk pages were all updated. Worse, a single page 
might be partially updated or even have rubbish in it (depending on the 
nature of the crash).

Without the WAL there's no way to check whether the table is good or 
not, or even to know what the last updates were. So - the only safe 
thing to do is truncate the unlogged tables.

In the event of a normal shutdown, we can flush all the writes to disk 
so we know all the data has been written, so there is no need to truncate.

-- 
   Richard Huxton
   Archonet Ltd



view thread (42+ messages)  latest in thread

Message-ID: <4EC0EAD6.9010302@archonet.com>
Permalink:  ../4EC0EAD6.9010302@archonet.com/
Also on:    postgresql.org/message-id/4EC0EAD6.9010302@archonet.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: dev@archonet.com, gray.ru@gmail.com, sfrost@snowman.net, aa@devshock.com
  Subject: Re: unlogged tables
  In-Reply-To: <4EC0EAD6.9010302@archonet.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox