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: Sawada Masahiko <sawada.mshk@gmail.com>,
Mithun Cy <mithun.cy@enterprisedb.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2019-01-30T14:41:46Z
Lists: pgsql-hackers
Attachments
- simple-regression-test-plus-ctid-loop.patch (text/x-patch) patch
On Wed, Jan 30, 2019 at 2:11 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > This is much better than the earlier version of test and there is no > dependency on the vacuum. However, I feel still there is some > dependency on how the rows will fit in a page and we have seen some > related failures due to alignment stuff. By looking at the test, I > can't envision any such problem, but how about if we just write some > simple tests where we can check that the FSM won't be created for very > small number of records say one or two and then when we increase the > records FSM gets created, here if we want, we can even use vacuum to > ensure FSM gets created. Once we are sure that the main patch passes > all the buildfarm tests, we can extend the test to something advanced > as you are proposing now. I think that will reduce the chances of > failure, what do you think? That's probably a good idea to limit risk. I just very basic tests now, and vacuum before every relation size check to make sure any FSM extension (whether desired or not) is invoked. Also, in my last patch I forgot to implement explicit checks of the block number instead of assuming how many rows will fit on a page. I've used a plpgsql code block to do this. -- 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