From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
Cc: | pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Is the attribute options cache actually worth anything? |
Date: | 2011-03-01 18:15:34 |
Message-ID: | [email protected] |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
So while poking at a recent example from Marc Cousin (hundreds of tables
each with 1000 attributes) I observed that a simple ANALYZE would bloat
the backend process to the tune of several hundred megabytes. I think
there is a leak in CacheMemoryContext, but haven't tracked it down yet.
But I also noticed that tens of megabytes were disappearing into "Attopt
cache", and after reading the code to see what the heck that was, I am
wondering what the justification for having it is at all. In the
presumably normal case where the attribute hasn't got options, all it's
saving us is a syscache access, which is probably not noticeably more
expensive than the hash lookup. In the case where there is an option,
it's saving us an attribute_reloptions() call, but it's not apparent
to me that that's so expensive as to justify putting a cache in front
of it, especially not if we're going to do a palloc cycle anyway.
Did anybody do any performance measurements to demonstrate that this
code has a reason to live? Because if I don't see some, I'm going
to rip it out.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Simon Riggs | 2011-03-01 18:18:27 | Re: Sync Rep v17 |
Previous Message | Teodor Sigaev | 2011-03-01 17:58:36 | Re: knngist - 0.8 |