From: | Zhihong Yu <zyu(at)yugabyte(dot)com> |
---|---|
To: | David Rowley <dgrowleyml(at)gmail(dot)com> |
Cc: | PostgreSQL Developers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Use pg_nextpower2_* in a few more places |
Date: | 2021-06-12 14:13:09 |
Message-ID: | CALNJ-vQfeHXHEXO=pmOOPcFba5DoO-tkQ8sZnxcRwzt_Q9=NyQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sat, Jun 12, 2021 at 6:40 AM David Rowley <dgrowleyml(at)gmail(dot)com> wrote:
> Thanks for having a look.
>
> On Sun, 13 Jun 2021 at 00:50, Zhihong Yu <zyu(at)yugabyte(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2021-06-12 14:20:24 | Re: Race condition in recovery? |
Previous Message | Ranier Vilela | 2021-06-12 13:55:22 | Signed vs Unsigned (take 2) (src/backend/storage/ipc/procarray.c) |