Re: Proposal: Out-of-Order NOTIFY via GUC to Improve LISTEN/NOTIFY Throughput - Mailing list pgsql-hackers

From Matheus Alcantara
Subject Re: Proposal: Out-of-Order NOTIFY via GUC to Improve LISTEN/NOTIFY Throughput
Date
Msg-id DCP54NVNAPVS.3EQE94XPLR2PK@gmail.com
Whole thread Raw
In response to Re: Proposal: Out-of-Order NOTIFY via GUC to Improve LISTEN/NOTIFY Throughput  (Rishu Bagga <rishu.postgres@gmail.com>)
Responses Re: Proposal: Out-of-Order NOTIFY via GUC to Improve LISTEN/NOTIFY Throughput
List pgsql-hackers
On Tue Sep 9, 2025 at 8:14 PM -03, Rishu Bagga wrote:
> Oops again - I didn't "git add" the new files, so they weren't showing
> up in the patch. I added async_xlog.h as well now,
> and tested to make sure the patch applies and compiles. Sorry about
> that, it should work now.
>
Thanks, it's compiling now.

You wrote:
> I wasn’t able to run the TAP tests; however, in the updated patch, we
> can be confident that entries in the queue are from committed
> transactions. If there is a crash before committing and after writing to
> the queue, this would be within the critical section, so a notification
> from an uncommitted transaction would never be read in the queue.
> That allows us to remove the XidInMVCCSnapshot and
> TransactionIdDidCommit check.
>
I've executed the TAP test that I've attached on [1] and the test is
failing due to an assert failure:
TRAP: failed Assert("CritSectionCount == 0 || (context)->allowInCritSection"), File:
"../src/backend/utils/mmgr/mcxt.c",Line: 1372, PID: 79968 
0   postgres                            0x0000000105661860 ExceptionalCondition + 236
1   postgres                            0x00000001056b7a0c palloc + 248
2   postgres                            0x0000000104f96850 SignalBackends + 36
3   postgres                            0x0000000104edd50c XactLogCommitRecord + 1632
4   postgres                            0x0000000104ee0188 RecordTransactionCommit + 860
5   postgres                            0x0000000104edcb8c CommitTransaction + 896
6   postgres                            0x0000000104ed7b38 CommitTransactionCommandInternal + 256
7   postgres                            0x0000000104ed7a24 CommitTransactionCommand + 16
8   postgres                            0x0000000105402220 finish_xact_command + 32
9   postgres                            0x00000001053ffb60 exec_simple_query + 1556
10  postgres                            0x00000001053feb78 PostgresMain + 3424
11  postgres                            0x00000001053f5504 BackendInitialize + 0
12  postgres                            0x00000001052c11f4 postmaster_child_launch + 492
13  postgres                            0x00000001052c9660 BackendStartup + 336
14  postgres                            0x00000001052c70e0 ServerLoop + 432
15  postgres                            0x00000001052c5a38 PostmasterMain + 7096
16  postgres                            0x0000000105166488 main + 952
17  dyld                                0x000000019145ab98 start + 6076

There is also some other tests failing, like isolation, regress and
others.

[1] https://www.postgresql.org/message-id/DCLSWKOKDAX4.3HS2NBE53P0M2%40gmail.com

--
Matheus Alcantara




pgsql-hackers by date:

Previous
From: Melanie Plageman
Date:
Subject: Re: Incorrect logic in XLogNeedsFlush()
Next
From: Kirill Reshke
Date:
Subject: Display is_prev_bucket_same_wrt of xl_hash_squeeze_page