Re: pgsql: Avoid creation of the free space map for small heap relations, t
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, John Naylor <john.naylor@2ndquadrant.com>
Cc: Amit Kapila <akapila@postgresql.org>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2019-02-27T04:05:49Z
Lists: pgsql-hackers
Attachments
- fix_loc_map_clear_2.patch (application/octet-stream) patch
On Tue, Feb 26, 2019 at 2:58 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > On Mon, Feb 25, 2019 at 10:32 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > > > > To fix this symptom, we can ensure that once we didn't get any block > from local map, we must clear it. See the attached patch. I will try > to evaluate this code path to see if there is any similar race > condition and will also try to generate a reproducer. I don't have > any great idea to write a reproducer for this issue apart from trying > some thing similar to ecpg/test/thread/prep.pgc, if you can think of > any, I am all ears. > I have tried this test many times (more than 1000 times) by varying thread count, but couldn't reproduce it. My colleague, Kuntal has tried a similar test overnight, but the issue didn't reproduce which is not surprising to me seeing the nature of the problem. As I could reproduce it via the debugger, I think we can go ahead with the fix. I have improved the comments in the attached patch and I have also tried to address Tom's concern w.r.t comments by adding additional comments atop of data-structure used to maintain the local map. Let me know what you think? -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
Commits
-
Clear the local map when not used.
- 9c32e4c35026 12.0 landed
-
Remove unneeded argument from _bt_getstackbuf().
- 2ab23445bc6a 12.0 cited
-
Avoid creation of the free space map for small heap relations, take 2.
- b0eaa4c51bbf 12.0 cited