Re: Checking for missing heap/index files

Поиск
Список
Период
Сортировка
Искать
От
Tom Lane
Тема
Re: Checking for missing heap/index files
Дата
Msg-id
2747057.1666129459@sss.pgh.pa.us
Ответ на
Список
Дерево обсуждения
Checking for missing heap/index files Bruce Momjian <bruce@momjian.us>
Re: Checking for missing heap/index files Stephen Frost <sfrost@snowman.net>
Re: Checking for missing heap/index files Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: Checking for missing heap/index files Stephen Frost <sfrost@snowman.net>
Re: Checking for missing heap/index files Robert Haas <robertmhaas@gmail.com>
Re: Checking for missing heap/index files Tom Lane <tgl@sss.pgh.pa.us>
Re: Checking for missing heap/index files Robert Haas <robertmhaas@gmail.com>
Re: Checking for missing heap/index files Stephen Frost <sfrost@snowman.net>
Re: Checking for missing heap/index files Robert Haas <robertmhaas@gmail.com>
Re: Checking for missing heap/index files Tom Lane <tgl@sss.pgh.pa.us>
Re: Checking for missing heap/index files Robert Haas <robertmhaas@gmail.com>
Re: Checking for missing heap/index files Tom Lane <tgl@sss.pgh.pa.us>
Re: Checking for missing heap/index files Robert Haas <robertmhaas@gmail.com>
Re: Checking for missing heap/index files Mark Dilger <mark.dilger@enterprisedb.com>
Re: Checking for missing heap/index files Bruce Momjian <bruce@momjian.us>
Re: Checking for missing heap/index files Peter Geoghegan <pg@bowt.ie>
Re: Checking for missing heap/index files Robert Haas <robertmhaas@gmail.com>
Re: Checking for missing heap/index files Bruce Momjian <bruce@momjian.us>
Re: Checking for missing heap/index files Peter Geoghegan <pg@bowt.ie>
Robert Haas  writes:
> On Tue, Oct 18, 2022 at 3:59 PM Tom Lane  wrote:
>> Isn't it already the case (or could be made so) that relation file
>> removal happens only in the checkpointer?

> I believe that individual backends directly remove all relation forks
> other than the main fork and all segments other than the first one.

Yeah, obviously some changes would need to be made to that, but ISTM
we could just treat all the forks as we now treat the first one.

> The discussion on various other threads has been in the direction of
> trying to standardize on moving that last case out of the checkpointer
> - i.e. getting rid of what Thomas dubbed "tombstone" files - which is
> pretty much the exact opposite of this proposal.

Yeah, we'd have to give up on that.  If that goes anywhere then
it kills this idea.

> But even apart from
> that, I don't think this would be that easy to implement. If you
> removed a large relation, you'd have to tell the checkpointer to
> remove many files instead of just 1.

The backends just implement this by deleting files until they don't
find the next one in sequence.  I fail to see how it'd be any
harder for the checkpointer to do that.

> And I don't think we really need to do any of that. We could invent a
> new kind of lock tag for  combination. Take a share lock
> to create or remove files. Take an exclusive lock to scan the
> directory. I think that accomplishes the same thing as your proposal,
> but more directly, and with less overhead. It's still substantially
> more than NO overhead, though.

My concern about that is that it implies touching a whole lot of
places, and if you miss even one then you've lost whatever guarantee
you thought you were getting.  More, there's no easy way to find
all the relevant places (some will be in extensions, no doubt).
So I have approximately zero faith that it could be made reliable.
Funneling things through the checkpointer would make that a lot
more centralized.  I concede that cowboy unlink() calls could still
be a problem ... but I doubt there's any solution that's totally
free of that hazard.

			regards, tom lane


В списке pgsql-hackers по дате отправления
От: Robert Haas
Дата:
От: Peter Smith
Дата:
Сообщение: Fix typo in code comment
FAQ