Re: Use pg_nextpower2_* in a few more places
Zhihong Yu <zyu@yugabyte.com>
From: Zhihong Yu <zyu@yugabyte.com>
To: David Rowley <dgrowleyml@gmail.com>
Cc: PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2021-06-12T14:13:09Z
Lists: pgsql-hackers
On Sat, Jun 12, 2021 at 6:40 AM David Rowley <dgrowleyml@gmail.com> wrote: > Thanks for having a look. > > On Sun, 13 Jun 2021 at 00:50, Zhihong Yu <zyu@yugabyte.com> wrote: > > - newalloc = Max(LWLockTrancheNamesAllocated, 8); > > - while (newalloc <= tranche_id) > > - newalloc *= 2; > > + newalloc = pg_nextpower2_32(Max(8, tranche_id + 1)); > > > > Should LWLockTrancheNamesAllocated be included in the Max() expression > (in case it gets to a high value) ? > > I think the new code will produce the same result as the old code in all > cases. > > All the old code did was finding the next power of 2 that's >= 8 and > larger than tranche_id. LWLockTrancheNamesAllocated is just a hint at > where the old code should start searching from. The new code does not > need that hint. All it seems to do is save the old code from having to > start the loop at 8 each time we need more space. > > David > Hi, Maybe add an assertion after the assignment, that newalloc >= LWLockTrancheNamesAllocated. Cheers
Commits
-
Improve various places that double the size of a buffer
- 3788c66788e9 15.0 landed