Skip to content

Commit 7095003

Browse files
committed
Make deadlock_timeout PGC_SUSET rather than PGC_SIGHUP.
This allows deadlock_timeout to be reduced for transactions that are particularly likely to be involved in a deadlock, thus detecting it more quickly. It is also potentially useful as a poor-man's deadlock priority mechanism: a transaction with a high deadlock_timeout is less likely to be chosen as the victim than one with a low deadlock_timeout. Since that could be used to game the system, we make this PGC_SUSET rather than PGC_USERSET. At some point, it might be worth thinking about a more explicit priority mechanism, since using this is far from fool-proof. But let's see whether there's enough use case to justify the additional work before we go down that route. Noah Misch, reviewed by Shigeru Hanada
1 parent 8f9fe6e commit 7095003

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

doc/src/sgml/config.sgml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5266,7 +5266,8 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
52665266
practice. On a heavily loaded server you might want to raise it.
52675267
Ideally the setting should exceed your typical transaction time,
52685268
so as to improve the odds that a lock will be released before
5269-
the waiter decides to check for deadlock.
5269+
the waiter decides to check for deadlock. Only superusers can change
5270+
this setting.
52705271
</para>
52715272

52725273
<para>

src/backend/utils/misc/guc.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1532,8 +1532,8 @@ static struct config_int ConfigureNamesInt[] =
15321532
},
15331533

15341534
{
1535-
/* This is PGC_SIGHUP so all backends have the same value. */
1536-
{"deadlock_timeout", PGC_SIGHUP, LOCK_MANAGEMENT,
1535+
/* This is PGC_SUSET to prevent hiding from log_lock_waits. */
1536+
{"deadlock_timeout", PGC_SUSET, LOCK_MANAGEMENT,
15371537
gettext_noop("Sets the time to wait on a lock before checking for deadlock."),
15381538
NULL,
15391539
GUC_UNIT_MS

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy