While working on my patch to reduce the overhead of frequent table locks, I had cause to monkey with InitProcGlobal() and noticed that it's sort of a mess. For reasons that are not clear to me, it allocates one of the three PGPROC arrays using ShemInitStruct() and the other two using ShmemAlloc(). I'm not clear on why we should use different functions for different allocations, and it also seems like it would make sense to do the whole allocation at once instead of doing three separate ones. Also, the setup of AuxiliaryProcs is strangely split into two parts, one at the top of the function (where we allocate the memory) and the other at the bottom (where we initialize it), but there's no clear reason to break it up like that.
Any reason not to instead do something like the attached? -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
init-proc-global-cleanup.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers