Re: [PATCH] OAuth: fix performance bug with stuck multiplexer events

From: Jacob Champion <jacob(dot)champion(at)enterprisedb(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Cc: Daniel Gustafsson <daniel(at)yesql(dot)se>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Peter Eisentraut <peter(at)eisentraut(dot)org>
Subject: Re: [PATCH] OAuth: fix performance bug with stuck multiplexer events
Date: 2025-07-28 20:52:42
Message-ID: CAOYmi+mRhhzGUvrcdickepAnsdaGbqhNcboNe4-YvgtkSzGNbQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi all,

On Thu, Jun 26, 2025 at 4:33 PM Jacob Champion
<jacob(dot)champion(at)enterprisedb(dot)com> wrote:
> My plan, if this code seems reasonable, is to backport 0001-0003, but
> keep the larger 0004 on HEAD only until it has proven to be stable.
> It's a big new suite and I want to make sure it's not flapping on some
> buildfarm animal. Eventually I'll backport that too.

Any thoughts on the approach? Too big/too scary/too BSD-specific?

A small bit of self-review: a comment I wrote in the tests suggested
that the choice of readable/writable events was up to the multiplexer
implementation, but it *must* choose readable, due to the hardcoded
use of PGRES_POLLING_READING throughout the current code. Updated in
v2.

Thanks,
--Jacob

Attachment Content-Type Size
since-v1.diff.txt text/plain 1.0 KB
v2-0001-oauth-Remove-stale-events-from-the-kqueue-multipl.patch application/octet-stream 10.2 KB
v2-0002-oauth-Remove-expired-timers-from-the-multiplexer.patch application/octet-stream 5.6 KB
v2-0003-oauth-Track-total-call-count-during-a-client-flow.patch application/octet-stream 4.8 KB
v2-0004-oauth-Add-unit-tests-for-multiplexer-handling.patch application/octet-stream 17.2 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Sami Imseih 2025-07-28 20:57:02 Re: track generic and custom plans in pg_stat_statements
Previous Message Dimitrios Apostolou 2025-07-28 20:41:54 Re: [PING] fallocate() causes btrfs to never compress postgresql files