Re: Page Scan Mode in Hash Index

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
Cc: Jesper Pedersen <jesper(dot)pedersen(at)redhat(dot)com>, Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Page Scan Mode in Hash Index
Date: 2017-09-20 10:34:48
Message-ID: CA+TgmoYNjOaCGiX_SONLaykR0R4mgwkUKMLw3QQGXBCTa0mVQQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Sep 19, 2017 at 11:34 PM, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> This point has been discussed above [1] and to avoid this problem we
> are keeping the scan always behind vacuum for unlogged and temporary
> tables as we are doing without this patch. That will ensure vacuum
> won't be able to remove the TIDs which we are going to mark as dead.
> This has been taken care in patch 0003. I understand that this is
> slightly ugly, but the other alternative (as mentioned in the email
> [1]) is much worse.

Hmm. So if I understand correctly, you're saying that the LSN check
in patch 0001 is actually completely unnecessary if we only apply
0001, but is needed in preparation for 0003, after which it will
really be doing something?

In more detail, I suppose the idea is: a TID cannot be reused until a
VACUUM has intervened; VACUUM always visits every data page in the
index; we won't allow a scan to pass VACUUM (and thus possibly have
one of its TIDs get reused) except when the LSN check is actually
sufficient to guarantee no TID reuse (i.e. table is not unlogged).
Page-at-a-time index vacuum as in _hash_vacuum_one_page doesn't matter
because such an operation doesn't allow TIDs to be reused.

Did I get it right?

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Petr Jelinek 2017-09-20 10:59:41 Re: src/test/subscription/t/002_types.pl hanging on particular environment
Previous Message Dagfinn Ilmari =?utf-8?Q?Manns=C3=A5ker?= 2017-09-20 10:26:46 Re: Show backtrace when tap tests fail