Commit f3e12c75 authored by Konstantin Osipov's avatar Konstantin Osipov

Add comments to a few MDL deadlock-search related variables

and methods.
parent 559e3889
...@@ -119,8 +119,18 @@ class Deadlock_detection_context ...@@ -119,8 +119,18 @@ class Deadlock_detection_context
victim(NULL), victim(NULL),
current_search_depth(0) current_search_depth(0)
{ } { }
/**
The context which has initiated the search. There
can be multiple searches happening in parallel at the same time.
*/
MDL_context *start; MDL_context *start;
/** If a deadlock is found, the context that identifies the victim. */
MDL_context *victim; MDL_context *victim;
/** Set to the MAX_SEARCH_DEPTH at start. Decreased whenever
we descend into another MDL context (aka traverse to the next
wait-for graph node). When 0 is reached, we assume that
a deadlock is found, even if we have not found a loop.
*/
uint current_search_depth; uint current_search_depth;
/** /**
Maximum depth for deadlock searches. After this depth is Maximum depth for deadlock searches. After this depth is
...@@ -408,7 +418,7 @@ mdl_locks_key(const uchar *record, size_t *length, ...@@ -408,7 +418,7 @@ mdl_locks_key(const uchar *record, size_t *length,
statement, the design capitalizes on that to later save on statement, the design capitalizes on that to later save on
look ups in the table definition cache. This leads to reduced look ups in the table definition cache. This leads to reduced
contention overall and on LOCK_open in particular. contention overall and on LOCK_open in particular.
Please see the description of MDL_context::acquire_shared_lock() Please see the description of MDL_context::acquire_lock_impl()
for details. for details.
*/ */
......
...@@ -322,6 +322,7 @@ class MDL_request ...@@ -322,6 +322,7 @@ class MDL_request
DBUG_ASSERT(ticket == NULL); DBUG_ASSERT(ticket == NULL);
type= type_arg; type= type_arg;
} }
/* A helper used to determine which lock request should be aborted. */
uint get_deadlock_weight() const; uint get_deadlock_weight() const;
static MDL_request *create(MDL_key::enum_mdl_namespace mdl_namespace, static MDL_request *create(MDL_key::enum_mdl_namespace mdl_namespace,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment