Re: WIP: Avoid creation of the free space map for small tables
John Naylor <john.naylor@2ndquadrant.com>
From: John Naylor <john.naylor@2ndquadrant.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2019-02-11T17:18:28Z
Lists: pgsql-hackers
Attachments
- v2-0001-Improve-FSM-regression-test.patch (text/x-patch) patch v2-0001
- v2-0002-Document-that-functions-that-use-the-FSM-for-will.patch (text/x-patch) patch v2-0002
On 2/9/19, Amit Kapila <amit.kapila16@gmail.com> wrote: > On Tue, Feb 5, 2019 at 3:25 PM John Naylor <john.naylor@2ndquadrant.com> > wrote: >> >> On Tue, Feb 5, 2019 at 4:04 AM Amit Kapila <amit.kapila16@gmail.com> >> wrote: > This is certainly a good test w.r.t code coverage of new code, but I > have few comments: > 1. The size of records in test still depends on alignment (MAXALIGN). > Though it doesn't seem to be a problematic case, I still suggest we > can avoid using records whose size depends on alignment. If you > change the schema as CREATE TABLE fsm_check_size (num1 int, num2 int, > str text);, then you can avoid alignment related issues for the > records being used in test. Done. > 2. > +-- Fill most of the last block > .. > +-- Make sure records can go into any block but the last one > .. > +-- Insert large record and make sure it does not cause the relation to > extend > > The comments in some part of the test seems too focussed towards the > algorithm used for in-memory map. I think we can keep these if we > want, but it is required to write a more generic comment stating what > is the actual motive of additional tests (basically we are testing the > functionality of in-memory map (LSM) for the heap, so we should write > about it.). Done. > Shall we add a note to the docs of pg_freespacemap and > pgstattuple_approx indicating that for small relations, FSM won't be > created, so these functions won't give appropriate value? I've given this a try in 0002. > Or other > possibility could be that we return an error if the block number is > less than the threshold value, but not sure if that is a good > alternative as that can happen today also if the vacuum hasn't run on > the table. Yeah, an error doesn't seem helpful. -- John Naylor https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Improve code comments in b0eaa4c51b.
- 06c8a5090ed9 12.0 landed
-
During pg_upgrade, conditionally skip transfer of FSMs.
- 13e8643bfc29 12.0 landed
-
Add more tests for FSM.
- 6f918159a97a 12.0 landed
-
Doc: Update the documentation for FSM behavior for small tables.
- 29d108cdecbe 12.0 landed
-
Make FSM test portable.
- 08ecdfe7e5e0 12.0 landed
-
Avoid creation of the free space map for small heap relations, take 2.
- b0eaa4c51bbf 12.0 landed
-
Move page initialization from RelationAddExtraBlocks() to use, take 2.
- 0d1fe9f74e36 12.0 cited
-
Avoid creation of the free space map for small heap relations.
- ac88d2962a96 12.0 landed
-
In bootstrap mode, don't allow the creation of files if they don't already
- d66e3664b8ba 12.0 landed