From: | Martijn van Oosterhout <kleptog(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: [PATCH] Improve performance of NOTIFY over many databases (issue blocking on AccessExclusiveLock on object 0 of class 1262 of database 0) |
Date: | 2019-07-24 08:30:12 |
Message-ID: | CADWG95v-ki2UKg+9TmRzLrxhCb_Pk5WgQ2djGvPkodLbAw38DQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, 23 Jul 2019 at 23:32, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> Martijn van Oosterhout <kleptog(at)gmail(dot)com> writes:
> > I mean tracking the listening backends specifically, so you can
> > replace the loops:
> > for (i=0; i < MaxBackends; i++)
> > with
> > for (i=QUEUE_FIRST_LISTENING_BACKEND; i; i = QUEUE_NEXT_LISTENING_BACKEND(i))
>
> Ah ... but surely you would not put such info in AsyncQueueEntry,
> where there'd be a separate copy for each message. I think you
> meant to add the info to AsyncQueueControl.
Umm, yeah. Got that mixed up.
> It might be better to redefine the backends[] array as being mostly
> contiguous (ie, a new backend takes the first free slot not the one
> indexed by its own BackendId), at the price of needing to store
> BackendId in each slot explicitly instead of assuming it's equal to
> the array index. I suspect the existing data structure is putting too
> much of a premium on making sizeof(QueueBackendStatus) a power of 2.
This would require adding a "MyListenerId" to each backend which I'm not sure
helps the readability. And there's a chance of mixing the id up. The
power-of-2-ness
is I think indeed overrated.
I'll give it a shot a see how it looks.
Have a nice day,
--
Martijn van Oosterhout <kleptog(at)gmail(dot)com> http://svana.org/kleptog/
From | Date | Subject | |
---|---|---|---|
Next Message | Kyotaro Horiguchi | 2019-07-24 08:38:48 | Re: [bug fix] Produce a crash dump before main() on Windows |
Previous Message | Kyotaro Horiguchi | 2019-07-24 08:27:18 | Re: Spurious "apparent wraparound" via SimpleLruTruncate() rounding |