Re: Unlogged Crash Detection

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: Gersner <gersner(at)gmail(dot)com>
Cc: PostgreSQL mailing lists <pgsql-general(at)postgresql(dot)org>
Subject: Re: Unlogged Crash Detection
Date: 2017-08-29 11:19:52
Message-ID: CAB7nPqSSQf5X5=wXw+suu4hNFY0HwXU+Q-W-sHzMprY2Kx4PPw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tue, Aug 29, 2017 at 6:06 PM, Gersner <gersner(at)gmail(dot)com> wrote:
> I see, interesting.

Please do not top-post. This is not the recommended way of dealing
with threads on this mailing list.

> We have lots of unlogged tables, upon a crash we want to create a
> feedback/alert that data disappeared.
>
> Not very familiar with the internal structure, but is it possible to
> identify if the current table is the INIT_FORKNUM?

Using pg_relation_filepath, you can know the path to a relation file
on disk. So a simple idea would be to use pg_read_binary_file with the
path of the file and the path of the init fork, which is suffixed with
"_init", and then a comparison between both. If the data read is the
same, the relation has been untouched. Note that you can only do such
a thing as a superuser, and that the data is read from disk, not from
shared buffers. So that's not perfect, but it give an indication.
--
Michael

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2017-08-29 11:48:33 Re: Out of memory/corrupted shared memory problem on server
Previous Message Gersner 2017-08-29 09:06:33 Re: Unlogged Crash Detection