On Tue, Dec 6, 2011 at 7:12 AM, Florian Weimer <fweimer@bfk.de> wrote:
> * Robert Haas:
>
>> I tried whacking out the call to GetPageWithFreeSpace() in
>> RelationGetBufferForTuple(), and also with the unpatched code, but the
>> run-to-run randomness was way more than any difference the change
>> made. Is there a better test case?
>
> I think that if you want to exercise file system lookup performance, you
> need a larger directory, which presumably means a large number of
> tables.
OK. I created 100,000 dummy tables, 10,000 at a time avoid blowing up
the lock manager. I then repeated my previous tests, and I still
can't see any meaningful difference (on my MacBook Pro, running MacOS
X v10.6.8). So at least on this OS, it doesn't seem to matter much.
I'm inclined to defer putting any more work into it until such time as
someone can demonstrate that it actually causes a problem and provides
a reproducible test case. I don't deny that there's probably an
effect and it would be nice to improve this, but it doesn't seem worth
spending a lot of time on until we can find a case where the effect is
measurable.
On the other hand, the problem of the FSM taking up 24kB for an 8kB
table seems clearly worth fixing, but I don't think I have the cycles
for it at present. Maybe a TODO is in order.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company