mirror of
https://github.com/postgres/postgres.git
synced 2026-01-29 12:02:15 +03:00
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@acm.org> Author: Japin Li <japinli@hotmail.com> Author: Junwang Zhao <zhjwpku@gmail.com> Reviewed-by: Nikolay Samokhvalov <samokhvalov@gmail.com> Reviewed-by: Andres Freund <andres@anarazel.de> Reviewed-by: Fujii Masao <masao.fujii@oss.nttdata.com> Reviewed-by: bt23nguyent <bt23nguyent@oss.nttdata.com> Reviewed-by: Yuhang Qiu <iamqyh@gmail.com>
This commit is contained in:
@@ -91,6 +91,7 @@ extern PGDLLIMPORT volatile sig_atomic_t InterruptPending;
|
||||
extern PGDLLIMPORT volatile sig_atomic_t QueryCancelPending;
|
||||
extern PGDLLIMPORT volatile sig_atomic_t ProcDiePending;
|
||||
extern PGDLLIMPORT volatile sig_atomic_t IdleInTransactionSessionTimeoutPending;
|
||||
extern PGDLLIMPORT volatile sig_atomic_t TransactionTimeoutPending;
|
||||
extern PGDLLIMPORT volatile sig_atomic_t IdleSessionTimeoutPending;
|
||||
extern PGDLLIMPORT volatile sig_atomic_t ProcSignalBarrierPending;
|
||||
extern PGDLLIMPORT volatile sig_atomic_t LogMemoryContextPending;
|
||||
|
||||
@@ -429,6 +429,7 @@ extern PGDLLIMPORT int DeadlockTimeout;
|
||||
extern PGDLLIMPORT int StatementTimeout;
|
||||
extern PGDLLIMPORT int LockTimeout;
|
||||
extern PGDLLIMPORT int IdleInTransactionSessionTimeout;
|
||||
extern PGDLLIMPORT int TransactionTimeout;
|
||||
extern PGDLLIMPORT int IdleSessionTimeout;
|
||||
extern PGDLLIMPORT bool log_lock_waits;
|
||||
|
||||
|
||||
@@ -155,6 +155,7 @@ extern void assign_timezone_abbreviations(const char *newval, void *extra);
|
||||
extern bool check_transaction_deferrable(bool *newval, void **extra, GucSource source);
|
||||
extern bool check_transaction_isolation(int *newval, void **extra, GucSource source);
|
||||
extern bool check_transaction_read_only(bool *newval, void **extra, GucSource source);
|
||||
extern void assign_transaction_timeout(int newval, void *extra);
|
||||
extern const char *show_unix_socket_permissions(void);
|
||||
extern bool check_wal_buffers(int *newval, void **extra, GucSource source);
|
||||
extern bool check_wal_consistency_checking(char **newval, void **extra,
|
||||
|
||||
@@ -31,6 +31,7 @@ typedef enum TimeoutId
|
||||
STANDBY_TIMEOUT,
|
||||
STANDBY_LOCK_TIMEOUT,
|
||||
IDLE_IN_TRANSACTION_SESSION_TIMEOUT,
|
||||
TRANSACTION_TIMEOUT,
|
||||
IDLE_SESSION_TIMEOUT,
|
||||
IDLE_STATS_UPDATE_TIMEOUT,
|
||||
CLIENT_CONNECTION_CHECK_TIMEOUT,
|
||||
|
||||
Reference in New Issue
Block a user