pgsql: Introduce transaction_timeout

From: Alexander Korotkov <akorotkov(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Introduce transaction_timeout
Date: 2024-02-15 21:57:10
Message-ID: E1rajjC-006QFS-Aw@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Introduce transaction_timeout

This commit adds timeout that is expected to be used as a prevention
of long-running queries. Any session within the transaction will be
terminated after spanning longer than this timeout.

However, this timeout is not applied to prepared transactions.
Only transactions with user connections are affected.

Discussion: https://postgr.es/m/CAAhFRxiQsRs2Eq5kCo9nXE3HTugsAAJdSQSmxncivebAxdmBjQ%40mail.gmail.com
Author: Andrey Borodin <amborodin(at)acm(dot)org>
Author: Japin Li <japinli(at)hotmail(dot)com>
Author: Junwang Zhao <zhjwpku(at)gmail(dot)com>
Reviewed-by: Nikolay Samokhvalov <samokhvalov(at)gmail(dot)com>
Reviewed-by: Andres Freund <andres(at)anarazel(dot)de>
Reviewed-by: Fujii Masao <masao(dot)fujii(at)oss(dot)nttdata(dot)com>
Reviewed-by: bt23nguyent <bt23nguyent(at)oss(dot)nttdata(dot)com>
Reviewed-by: Yuhang Qiu <iamqyh(at)gmail(dot)com>

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/51efe38cb92f4b15b68811bcce9ab878fbc71ea5

Modified Files
--------------
doc/src/sgml/config.sgml | 36 ++++++++++++
src/backend/access/transam/xact.c | 4 ++
src/backend/postmaster/autovacuum.c | 2 +
src/backend/storage/lmgr/proc.c | 1 +
src/backend/tcop/postgres.c | 46 +++++++++++++++-
src/backend/utils/errcodes.txt | 1 +
src/backend/utils/init/globals.c | 1 +
src/backend/utils/init/postinit.c | 10 ++++
src/backend/utils/misc/guc_tables.c | 11 ++++
src/backend/utils/misc/postgresql.conf.sample | 1 +
src/bin/pg_dump/pg_backup_archiver.c | 1 +
src/bin/pg_dump/pg_dump.c | 2 +
src/bin/pg_rewind/libpq_source.c | 1 +
src/include/miscadmin.h | 1 +
src/include/storage/proc.h | 1 +
src/include/utils/guc_hooks.h | 1 +
src/include/utils/timeout.h | 1 +
src/test/isolation/Makefile | 3 +
src/test/isolation/expected/timeouts-long.out | 69 +++++++++++++++++++++++
src/test/isolation/expected/timeouts.out | 79 ++++++++++++++++++++++++++-
src/test/isolation/isolation_schedule | 1 +
src/test/isolation/specs/timeouts-long.spec | 35 ++++++++++++
src/test/isolation/specs/timeouts.spec | 40 +++++++++++++-
23 files changed, 343 insertions(+), 5 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Alexander Korotkov 2024-02-16 01:43:43 pgsql: Followup fixes for transaction_timeout
Previous Message Tom Lane 2024-02-15 21:45:14 pgsql: Doc: improve a couple of comments in postgresql.conf.sample.