mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03:00
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
This commit is contained in:
parent
8f9fe6edce
commit
7095003cbe
@ -5266,7 +5266,8 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
|
|||||||
practice. On a heavily loaded server you might want to raise it.
|
practice. On a heavily loaded server you might want to raise it.
|
||||||
Ideally the setting should exceed your typical transaction time,
|
Ideally the setting should exceed your typical transaction time,
|
||||||
so as to improve the odds that a lock will be released before
|
so as to improve the odds that a lock will be released before
|
||||||
the waiter decides to check for deadlock.
|
the waiter decides to check for deadlock. Only superusers can change
|
||||||
|
this setting.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -1532,8 +1532,8 @@ static struct config_int ConfigureNamesInt[] =
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
/* This is PGC_SIGHUP so all backends have the same value. */
|
/* This is PGC_SUSET to prevent hiding from log_lock_waits. */
|
||||||
{"deadlock_timeout", PGC_SIGHUP, LOCK_MANAGEMENT,
|
{"deadlock_timeout", PGC_SUSET, LOCK_MANAGEMENT,
|
||||||
gettext_noop("Sets the time to wait on a lock before checking for deadlock."),
|
gettext_noop("Sets the time to wait on a lock before checking for deadlock."),
|
||||||
NULL,
|
NULL,
|
||||||
GUC_UNIT_MS
|
GUC_UNIT_MS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user