From: | Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at> |
---|---|
To: | qihua wu <staywithpin(at)gmail(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: Does statement_timeout apply to commit? |
Date: | 2023-01-30 13:19:50 |
Message-ID: | 84018b9c65559d57c854538f2a131edd4ab3d40d.camel@cybertec.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Mon, 2023-01-30 at 17:10 +0800, qihua wu wrote:
> I have a patroni cluster running in sync mode and at least 2 nodes should be
> synced for commit. Now I brought down one node, so only one slave is in sync,
> and then write a java program to write the data to primary in autocommit = false
> mode, I set statement_timeout to 10, hopping the jave will throw exception
> after 10 seconds after I send a commit command to postgresq, but after 10 seconds,
> it didn't throw any exception, so looks like statement_timeout doesn't apply to
> commit. Is that theory right?.
I assume you are talking about synchronous replication.
static void
CommitTransaction(void)
{
[...]
/* Prevent cancel/die interrupt while cleaning up */
HOLD_INTERRUPTS();
[...]
if (!is_parallel_worker)
{
/*
* We need to mark our XIDs as committed in pg_xact. This is where we
* durably commit.
*/
latestXid = RecordTransactionCommit();
}
[...]
RESUME_INTERRUPTS();
}
static TransactionId
RecordTransactionCommit(void)
{
[...]
/*
* Wait for synchronous replication, if required. Similar to the decision
* above about using committing asynchronously we only want to wait if
* this backend assigned an xid and wrote WAL. No need to wait if an xid
* was assigned due to temporary/unlogged tables or due to HOT pruning.
*
* Note that at this stage we have marked clog, but still show as running
* in the procarray and continue to hold locks.
*/
if (wrote_xlog && markXidCommitted)
SyncRepWaitForLSN(XactLastRecEnd, true);
[...]
}
So yes, it looks like you are right.
Yours,
Laurenz Albe
From | Date | Subject | |
---|---|---|---|
Next Message | Marc Millas | 2023-01-30 14:15:48 | Re: alter table impact on view |
Previous Message | Ron | 2023-01-30 13:18:35 | Re: How to control pg_catalog results for each users? |