Re: Typo in bufmgr.c that result in waste of memory - Mailing list pgsql-hackers

From Simon Riggs
Subject Re: Typo in bufmgr.c that result in waste of memory
Date
Msg-id CANP8+jKYgenEEKu+HP=X=+crk5Gat6K=y3w0G8+u5QPtX8++SA@mail.gmail.com
Whole thread Raw
In response to Typo in bufmgr.c that result in waste of memory  (Takashi Horikawa <t-horikawa@aj.jp.nec.com>)
Responses Re: Typo in bufmgr.c that result in waste of memory
Re: Typo in bufmgr.c that result in waste of memory
List pgsql-hackers
On 19 February 2016 at 02:58, Takashi Horikawa <t-horikawa@aj.jp.nec.com> wrote:
 
I have just found a typo in the source code (not in a comment) of bufmgr.c
that result in waste of memory. It might be a 'bug' but it does not result
in any incorrect operation but just results in waste of a few memory
resource.

As sizeof(PrivateRefCountArray) found in InitBufferPoolAccess() is 64 and
sizeof(PrivateRefCountEntry) which should be used here is 8, this typo
produces 56 byte of unused memory area per one PrivateRefCount entry in the
hash table. I think this result in not only the waste of memory but also
reduces the cache hit ratio.

X    hash_ctl.entrysize = sizeof(PrivateRefCountArray);
O    hash_ctl.entrysize = sizeof(PrivateRefCountEntry);

I see the problem, but I don't buy the argument that it wastes large amounts of memory. Or do you have some evidence that it does?

I think we should fix it, but not backpatch.

--
Simon Riggs                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

pgsql-hackers by date:

Previous
From: Fabien COELHO
Date:
Subject: Re: checkpointer continuous flushing - V16
Next
From: Simon Riggs
Date:
Subject: Re: Bug in StartupSUBTRANS