Re: Unhappy about API changes in the no-fsm-for-small-rels patch - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Unhappy about API changes in the no-fsm-for-small-rels patch
Date
Msg-id 20190507160656.7nd4yebxcwe2n4of@alap3.anarazel.de
Whole thread Raw
In response to Re: Unhappy about API changes in the no-fsm-for-small-rels patch  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Unhappy about API changes in the no-fsm-for-small-rels patch  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Hi,

On 2019-05-07 12:04:11 -0400, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
> > On 2019-05-07 09:34:42 -0400, Tom Lane wrote:
> >> I'm inclined to wonder why bother with invals at all.
> 
> > But when updating the free space for the first four blocks, we're going
> > to either have to do an smgrexists() to check whether somebody
> > concurrently created the FSM, or we might not update an existing FSM. An
> > inval seems much better.
> 
> I do not think sinval messaging is going to be sufficient to avoid that
> problem.  sinval is only useful to tell you about changes if you first
> take a lock strong enough to guarantee that no interesting change is
> happening while you hold the lock.  We are certainly not going to let
> writes take an exclusive lock, so I don't see how we could be certain
> that we've seen an sinval message telling us about FSM status change.

Sure, but it'll be pretty darn close, rather than there basically not
being any limit except backend lifetime to how long we might not notice
that we'd need to switch to the on-disk FSM.


> This seems tied into the idea we've occasionally speculated about
> of tracking relation sizes in shared memory to avoid lseek calls.
> If we could solve the problems around that, it'd provide a cheap(er)
> way to detect whether an FSM should exist or not.

I'm back on working on a patch that provides that, FWIW. Not yet really
spending time on it, but I've re-skimmed through the code I'd previously
written.

Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Heap lock levels for REINDEX INDEX CONCURRENTLY not quite right?
Next
From: Tom Lane
Date:
Subject: Re: REINDEX INDEX results in a crash for an index of pg_class since 9.6