Re: Unhappy about API changes in the no-fsm-for-small-rels patch

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@postgresql.org, John Naylor <john.naylor@2ndquadrant.com>, Amit Kapila <amit.kapila16@gmail.com>
Date: 2019-04-16T19:24:30Z
Lists: pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
> On 2019-04-16 14:31:25 -0400, Tom Lane wrote:
>> This can only work at all if an inaccurate map is very fail-soft,
>> which I'm not convinced it is

> I think it better needs to be fail-soft independent of this the no-fsm
> patch. Because the fsm is not WAL logged etc, it's pretty easy to get a
> pretty corrupted version. And we better deal with that.

Yes, FSM has to be fail-soft from a *correctness* viewpoint; but it's
not fail-soft from a *performance* viewpoint.  It can take awhile for
us to self-heal a busted map.  And this fake map spends almost all its
time busted and in need of (expensive) corrections.  I think this may
actually be the same performance complaint you're making, in different
words.

			regards, tom lane



Commits

  1. Revert "Avoid the creation of the free space map for small heap relations".

  2. Improve code comments in b0eaa4c51b.

  3. During pg_upgrade, conditionally skip transfer of FSMs.

  4. Add more tests for FSM.

  5. Fix typos in commit 8586bf7ed8.

  6. tableam: introduce table AM infrastructure.

  7. Clear the local map when not used.

  8. Doc: Update the documentation for FSM behavior for small tables.

  9. Make FSM test portable.

  10. Avoid creation of the free space map for small heap relations, take 2.