Definition: hash0hash.h:375
A RAII helper which latches global_latch in exclusive mode during constructor, and unlatches it durin...
Definition: lock0guards.h:40
Global_exclusive_latch_guard(ut::Location location)
Definition: lock0guards.cc:38
~Global_exclusive_latch_guard()
Definition: lock0guards.cc:43
A RAII helper which tries to exclusively latch the global_lach in constructor and unlatches it,...
Definition: lock0guards.h:51
bool owns_lock() const noexcept
Checks if succeeded to latch the global_latch during construction.
Definition: lock0guards.h:58
bool m_owns_exclusive_global_latch
Did the constructor succeed to acquire exclusive global lock_sys latch?
Definition: lock0guards.h:62
~Global_exclusive_try_latch()
Definition: lock0guards.cc:54
Global_exclusive_try_latch(ut::Location location)
Definition: lock0guards.cc:49
A RAII helper which latches global_latch in shared mode during constructor, and unlatches it during d...
Definition: lock0guards.h:71
Global_shared_latch_guard(ut::Location location)
Definition: lock0guards.cc:94
bool is_x_blocked_by_us()
Checks if there is a thread requesting the global_latch in exclusive mode blocked by our thread.
Definition: lock0guards.cc:101
~Global_shared_latch_guard()
Definition: lock0guards.cc:98
A RAII wrapper class which combines Global_shared_latch_guard and Shard_naked_latch_guard to s-latch ...
Definition: lock0guards.h:118
Shard_latch_guard(ut::Location location, const page_id_t &page_id)
Definition: lock0guards.h:127
Shard_latch_guard(ut::Location location, const dict_table_t &table)
Definition: lock0guards.h:123
Global_shared_latch_guard m_global_shared_latch_guard
Definition: lock0guards.h:119
Shard_naked_latch_guard m_shard_naked_latch_guard
Definition: lock0guards.h:120
A RAII wrapper class which s-latches the global lock_sys shard, and mutexes protecting specified shar...
Definition: lock0guards.h:171
Shard_latches_guard(ut::Location location, const buf_block_t &block_a, const buf_block_t &block_b)
Definition: lock0guards.h:173
Global_shared_latch_guard m_global_shared_latch_guard
Definition: lock0guards.h:180
Shard_naked_latches_guard m_shard_naked_latches_guard
Definition: lock0guards.h:181
A RAII helper which latches the mutex protecting given shard during constructor, and unlatches it dur...
Definition: lock0guards.h:91
~Shard_naked_latch_guard()
Definition: lock0guards.cc:88
Lock_mutex & m_shard_mutex
The mutex protecting the shard requested in constructor.
Definition: lock0guards.h:109
Shard_naked_latch_guard(ut::Location location, Lock_mutex &shard_mutex)
Definition: lock0guards.cc:63
A RAII helper which latches the mutexes protecting specified shards for the duration of its scope.
Definition: lock0guards.h:144
~Shard_naked_latches_guard()
Definition: lock0guards.cc:124
static constexpr std::less< Lock_mutex * > MUTEX_ORDER
The ordering on shard mutexes used to avoid deadlocks.
Definition: lock0guards.h:160
Lock_mutex & m_shard_mutex_1
The "smallest" of the two shards' mutexes in the latching order.
Definition: lock0guards.h:156
Shard_naked_latches_guard(Lock_mutex &shard_mutex_a, Lock_mutex &shard_mutex_b)
Definition: lock0guards.cc:107
Lock_mutex & m_shard_mutex_2
The "largest" of the two shards' mutexes in the latching order.
Definition: lock0guards.h:158
Page identifier.
Definition: buf0types.h:207
A utility class which, if inherited from, prevents the descendant class from being copied,...
Definition: ut0class_life_cycle.h:41
ib_id_t table_id_t
Table or partition identifier (unique within an InnoDB instance).
Definition: dict0types.h:232
The transaction lock system.
ib_mutex_t Lock_mutex
Definition: lock0lock.h:1003
Definition: lock0guards.h:34
The buffer control block structure.
Definition: buf0buf.h:1690
Data structure for a database table.
Definition: dict0mem.h:1909
Utilities related to class lifecycle.
unsigned long id[MAX_DEAD]
Definition: xcom_base.cc:510