305                              const rec_t *old_end);
 
  319                             const rec_t *orig_succ,
 
  393                            const rec_t *orig_pred,
 
  485    const ulint *offsets,     
 
  544                                         const ulint *offsets,
 
  609    const ulint *offsets, 
 
  649    MY_ATTRIBUTE((nonnull));
 
  692    bool remove_also_table_sx_locks); 
 
  768                 Trx_locks_cache &lock1_cache);
 
  958              "LOCK_MODE_MASK & LOCK_TYPE_MASK");
 
  993    "(LOCK_WAIT | LOCK_GAP | LOCK_REC_NOT_GAP | LOCK_INSERT_INTENTION | " 
  994    "LOCK_PREDICATE | LOCK_PRDT_PAGE) & LOCK_TYPE_MASK");
 
 1029  void resize(
size_t n_cells);
 
 1031  template <
typename F>
 
 1033  template <
typename F>
 
 1035  template <
typename F>
 
 1037  template <
typename F>
 
 1043  template <
typename F>
 
The database buffer pool global types for the directory.
 
Read view lists the trx ids of those transactions for which a consistent read should not see the modi...
Definition: read0types.h:48
 
Definition: hash0hash.h:375
 
The class which handles the logic of latching of lock_sys queues themselves.
Definition: lock0latches.h:103
 
An object which can be passed to consecutive calls to rec_lock_has_to_wait(trx, mode,...
Definition: lock0lock.h:728
 
page_id_t m_cached_page_id
Definition: lock0lock.h:734
 
bool m_computed
Definition: lock0lock.h:730
 
bool has_granted_blocker(const trx_t *trx, const lock_t *waiting_lock)
Definition: lock0lock.cc:820
 
const trx_t * m_cached_trx
Definition: lock0lock.h:733
 
bool m_has_s_lock_on_record
Definition: lock0lock.h:731
 
size_t m_cached_heap_no
Definition: lock0lock.h:735
 
Page identifier.
Definition: buf0types.h:207
 
size_t find_set_in_this_shard(size_t start_pos)
Finds a smallest position which is set and belongs to the same shard as start_pos,...
Definition: ut0sharded_bitset.h:121
 
dberr_t
Definition: db0err.h:39
 
Data dictionary global types.
 
ib_id_t table_id_t
Table or partition identifier (unique within an InnoDB instance).
Definition: dict0types.h:221
 
The simple hash table utility.
 
static int flags[50]
Definition: hp_test1.cc:40
 
#define F
Definition: jit_executor_value.cc:374
 
bool lock_clust_rec_cons_read_sees(const rec_t *rec, dict_index_t *index, const ulint *offsets, ReadView *view)
Checks that a record is seen in a consistent read.
Definition: lock0lock.cc:236
 
constexpr uint32_t LOCK_PRDT_PAGE
Page lock.
Definition: lock0lock.h:987
 
const char * lock_get_type_str(const lock_t *lock)
Gets the type of a lock in a human readable string.
Definition: lock0lock.cc:5745
 
void lock_update_split_left(const buf_block_t *right_block, const buf_block_t *left_block)
Updates the lock table when a page is split to the left.
Definition: lock0lock.cc:3019
 
void lock_trx_release_locks(trx_t *trx)
Releases a transaction's locks, and releases possible other transactions waiting because of these loc...
Definition: lock0lock.cc:5890
 
bool lock_rec_expl_exist_on_page(const page_id_t &page_id)
Determines if there are explicit record locks on a page.
Definition: lock0lock.cc:744
 
void lock_update_discard(const buf_block_t *heir_block, ulint heir_heap_no, const buf_block_t *block)
Updates the lock table when a page is discarded.
Definition: lock0lock.cc:3100
 
void lock_sys_close(void)
Closes the lock system at database shutdown.
Definition: lock0lock.cc:449
 
constexpr uint32_t LOCK_MODE_MASK
Lock modes and types.
Definition: lock0lock.h:949
 
bool lock_is_waiting(const lock_t &lock)
Checks if the lock is waiting (as opposed to granted).
Definition: lock0lock.cc:478
 
void lock_make_trx_hit_list(trx_t *trx, hit_list_t &hit_list)
Iterate over the granted locks which conflict with trx->lock.wait_lock and prepare the hit list for A...
Definition: lock0lock.cc:1959
 
void lock_report_trx_id_insanity(trx_id_t trx_id, const rec_t *rec, const dict_index_t *index, const ulint *offsets, trx_id_t next_trx_id)
Reports that a transaction id is insensible, i.e., in the future.
Definition: lock0lock.cc:208
 
static void lock_wait_mutex_exit()
Release the lock_sys->wait_mutex.
Definition: lock0lock.h:1195
 
uint32_t lock_get_type(const lock_t *lock)
Gets the type of a lock.
Definition: lock0lock.cc:5651
 
void lock_rec_unlock(trx_t *trx, const buf_block_t *block, const rec_t *rec, lock_mode lock_mode)
Removes a granted record lock of a transaction from the queue and grants locks to other transactions ...
Definition: lock0lock.cc:3832
 
void lock_print_info_summary(FILE *file)
Prints info of locks for all transactions.
Definition: lock0lock.cc:4449
 
constexpr uint32_t LOCK_PREDICATE
Predicate lock.
Definition: lock0lock.h:985
 
void lock_update_insert(const buf_block_t *block, const rec_t *rec)
Updates the lock table when a new user record is inserted.
Definition: lock0lock.cc:3149
 
constexpr uint32_t LOCK_WAIT
Waiting lock flag; when set, it means that the lock has not yet been granted, it is just waiting for ...
Definition: lock0lock.h:962
 
static ulint lock_get_min_heap_no(const buf_block_t *block)
Gets the heap_no of the smallest user record on a page.
 
const dict_index_t * lock_rec_get_index(const lock_t *lock)
For a record lock, gets the index on which the lock is.
Definition: lock0lock.cc:5793
 
static uint64_t lock_rec_hash_value(const page_id_t &page_id)
Calculates the hash value of a page file address: used in inserting or searching for a lock in the ha...
 
void lock_rtr_move_rec_list(const buf_block_t *new_block, const buf_block_t *block, rtr_rec_move_t *rec_move, ulint num_move)
Moves the explicit locks on user records to another page if a record list start is moved to another p...
Definition: lock0lock.cc:2854
 
const lock_t * lock_find_record_lock_by_guid(page_id_t page_id, const lock_guid_t &guid)
Inspect the lock queues associated with the given page_id in search for a lock which has guid equal t...
Definition: lock0lock.cc:2349
 
bool lock_validate()
Validates the lock system.
Definition: lock0lock.cc:5087
 
bool lock_rec_clear_request_no_wakeup(lock_t *lock, uint16_t heap_no)
Reset the nth bit of a record lock.
Definition: lock0lock.cc:725
 
bool lock_sec_rec_cons_read_sees(const rec_t *rec, const dict_index_t *index, const ReadView *view)
Checks that a non-clustered index record is seen in a consistent read.
Definition: lock0lock.cc:273
 
constexpr uint32_t LOCK_ORDINARY
this flag denotes an ordinary next-key lock in contrast to LOCK_GAP or LOCK_REC_NOT_GAP
Definition: lock0lock.h:966
 
dberr_t lock_clust_rec_read_check_and_lock_alt(const buf_block_t *block, const rec_t *rec, dict_index_t *index, lock_mode mode, ulint gap_mode, que_thr_t *thr)
Checks if locks of other transactions prevent an immediate read, or passing over by a read cursor,...
Definition: lock0lock.cc:5555
 
void lock_unlock_table_autoinc(trx_t *trx)
Unlocks AUTO_INC type locks that were possibly reserved by a trx.
Definition: lock0lock.cc:5836
 
void lock_rec_free_all_from_discard_page(const buf_block_t *block)
Removes record lock objects set on an index page which is discarded.
Definition: lock0lock.cc:2383
 
void lock_sys_resize(ulint n_cells)
Resize the lock hash tables.
Definition: lock0lock.cc:342
 
void lock_rec_store_on_page_infimum(const buf_block_t *block, const rec_t *rec)
Stores on the page infimum record the explicit locks of another record.
Definition: lock0lock.cc:3207
 
dberr_t lock_clust_rec_read_check_and_lock(lock_duration_t duration, const buf_block_t *block, const rec_t *rec, dict_index_t *index, const ulint *offsets, select_mode sel_mode, lock_mode mode, ulint gap_mode, que_thr_t *thr)
Checks if locks of other transactions prevent an immediate read, or passing over by a read cursor,...
Definition: lock0lock.cc:5495
 
void lock_sys_create(ulint n_cells)
Creates the lock system at database start.
Definition: lock0lock.cc:305
 
ulint lock_rec_find_next_set_bit(const lock_t *lock, ulint heap_no)
Looks for the next set bit in the record lock bitmap.
Definition: lock0lock.cc:702
 
const char * lock_rec_get_index_name(const lock_t *lock)
For a record lock, gets the name of the index on which the lock is.
Definition: lock0lock.cc:5804
 
bool lock_table_has_locks(const dict_table_t *table)
Check if there are any locks (table or rec) against table.
Definition: lock0lock.cc:6006
 
void lock_move_rec_list_end(const buf_block_t *new_block, const buf_block_t *block, const rec_t *rec)
Moves the explicit locks on user records to another page if a record list end is moved to another pag...
Definition: lock0lock.cc:2689
 
void lock_update_copy_and_discard(const buf_block_t *new_block, const buf_block_t *block)
Updates the lock table when a page is copied to another and the original page is removed from the cha...
Definition: lock0lock.cc:2992
 
dberr_t lock_sec_rec_read_check_and_lock(lock_duration_t duration, const buf_block_t *block, const rec_t *rec, dict_index_t *index, const ulint *offsets, select_mode sel_mode, lock_mode mode, ulint gap_mode, que_thr_t *thr)
Like lock_clust_rec_read_check_and_lock(), but reads a secondary index record.
Definition: lock0lock.cc:5446
 
const table_name_t & lock_get_table_name(const lock_t *lock)
Determine which table a lock is associated with.
Definition: lock0lock.cc:5787
 
void lock_wait_request_check_for_cycles()
Notifies the thread which analyzes wait-for-graph that there was at least one new edge added or modif...
Definition: lock0wait.cc:204
 
void lock_rec_convert_impl_to_expl(const buf_block_t *block, const rec_t *rec, dict_index_t *index, const ulint *offsets)
If a transaction has an implicit x-lock on a record, but no explicit x-lock set on the record,...
Definition: lock0lock.cc:5287
 
table_id_t lock_get_table_id(const lock_t *lock)
Gets the id of the table on which the lock is.
Definition: lock0lock.cc:5775
 
bool innobase_deadlock_detect
Definition: lock0lock.cc:71
 
void lock_wait_timeout_thread()
A thread which wakes up threads whose lock wait may have lasted too long.
Definition: lock0wait.cc:1432
 
void lock_trx_release_read_locks(trx_t *trx, bool only_gap)
Release read locks of a transaction.
Definition: lock0lock.cc:4089
 
void lock_move_rec_list_start(const buf_block_t *new_block, const buf_block_t *block, const rec_t *rec, const rec_t *old_end)
Moves the explicit locks on user records to another page if a record list start is moved to another p...
Definition: lock0lock.cc:2774
 
ulint lock_number_of_tables_locked(const trx_t *trx)
Return the number of table locks for a transaction.
Definition: lock0lock.cc:1081
 
void lock_table_ix_resurrect(dict_table_t *table, trx_t *trx)
Creates a table IX lock object for a resurrected transaction.
Definition: lock0lock.cc:3632
 
dberr_t lock_table_for_trx(dict_table_t *table, trx_t *trx, enum lock_mode mode)
Sets a lock on a table based on the given mode.
Definition: lock0lock.cc:3764
 
constexpr uint32_t LOCK_TYPE_MASK
mask used to extract lock type from the type_mode field in a lock
Definition: lock0lock.h:956
 
void lock_update_merge_right(const buf_block_t *right_block, const rec_t *orig_succ, const buf_block_t *left_block)
Updates the lock table when a page is merged to the right.
Definition: lock0lock.cc:2943
 
bool lock_trx_has_rec_x_lock(que_thr_t *thr, const dict_table_t *table, const buf_block_t *block, ulint heap_no)
Check if the transaction holds an exclusive lock on a record.
Definition: lock0lock.cc:6040
 
void lock_update_split_right(const buf_block_t *right_block, const buf_block_t *left_block)
Updates the lock table when a page is split to the right.
Definition: lock0lock.cc:2918
 
dberr_t lock_rec_insert_check_and_lock(ulint flags, const rec_t *rec, buf_block_t *block, dict_index_t *index, que_thr_t *thr, mtr_t *mtr, bool *inherit)
Checks if locks of other transactions prevent an immediate insert of a record.
Definition: lock0lock.cc:5125
 
constexpr uint32_t LOCK_INSERT_INTENTION
this bit is set when we place a waiting gap type record lock request in order to let an insert of an ...
Definition: lock0lock.h:983
 
void lock_update_merge_left(const buf_block_t *left_block, const rec_t *orig_pred, const buf_block_t *right_block)
Updates the lock table when a page is merged to the left.
Definition: lock0lock.cc:3038
 
constexpr uint32_t LOCK_TABLE
Lock types.
Definition: lock0lock.h:952
 
void lock_update_delete(const buf_block_t *block, const rec_t *rec)
Updates the lock table when a record is removed.
Definition: lock0lock.cc:3175
 
void lock_trx_print_wait_and_mvcc_state(FILE *file, const trx_t *trx)
Prints transaction lock wait and MVCC state.
Definition: lock0lock.cc:4638
 
void lock_update_root_raise(const buf_block_t *block, const buf_block_t *root)
Updates the lock table when the root page is copied to another in btr_root_raise_and_insert.
Definition: lock0lock.cc:2976
 
ib_mutex_t Lock_mutex
Definition: lock0lock.h:1003
 
page_id_t lock_rec_get_page_id(const lock_t *lock)
For a record lock, gets the tablespace number and page number on which the lock is.
Definition: lock0lock.cc:5812
 
bool lock_cancel_if_waiting_and_release(TrxVersion trx_version)
Cancels the waiting lock request of the trx, if any.
Definition: lock0lock.cc:5943
 
static void lock_wait_mutex_enter()
Acquire the lock_sys->wait_mutex.
Definition: lock0lock.h:1191
 
dberr_t lock_clust_rec_modify_check_and_lock(ulint flags, const buf_block_t *block, const rec_t *rec, dict_index_t *index, const ulint *offsets, que_thr_t *thr)
Checks if locks of other transactions prevent an immediate modify (update, delete mark,...
Definition: lock0lock.cc:5336
 
bool lock_check_trx_id_sanity(trx_id_t trx_id, const rec_t *rec, const dict_index_t *index, const ulint *offsets)
Checks that a transaction id is sensible, i.e., not in the future.
Definition: lock0lock.cc:219
 
const char * lock_get_mode_str(const lock_t *lock)
Gets the mode of a lock in a human readable string.
Definition: lock0lock.cc:5690
 
void lock_print_info_all_transactions(FILE *file)
Prints info of locks for each transaction.
Definition: lock0lock.cc:4780
 
trx_id_t lock_get_trx_id(const lock_t *lock)
Gets the id of the transaction owning a lock.
Definition: lock0lock.cc:5656
 
static bool lock_wait_mutex_own()
Test if lock_sys->wait_mutex is owned.
Definition: lock0lock.h:1185
 
lock_sys_t * lock_sys
The lock system.
Definition: lock0lock.cc:198
 
void lock_on_statement_end(trx_t *trx)
Called to inform lock-sys that a statement processing for a trx has just finished.
Definition: lock0lock.cc:2430
 
void lock_move_reorganize_page(const buf_block_t *block, const buf_block_t *oblock)
Updates the lock table when we have reorganized a page.
Definition: lock0lock.cc:2583
 
void lock_get_psi_event(const lock_t *lock, ulonglong *thread_id, ulonglong *event_id)
Get the performance schema event (thread_id, event_id) that created the lock.
Definition: lock0lock.cc:5666
 
void lock_rec_reset_and_inherit_gap_locks(const buf_block_t *heir_block, const buf_block_t *block, ulint heir_heap_no, ulint heap_no)
Resets the original locks on heir and replaces them with gap type locks inherited from rec.
Definition: lock0lock.cc:3086
 
ulint lock_rec_find_set_bit(const lock_t *lock)
Looks for a set bit in a record lock bitmap.
Definition: lock0lock.cc:691
 
void lock_update_split_point(const buf_block_t *right_block, const buf_block_t *left_block)
Requests the Lock System to update record locks regarding the gap between the last record of the left...
Definition: lock0lock.cc:3003
 
lock_duration_t
Used to specify the intended duration of a record lock.
Definition: lock0lock.h:510
 
@ AT_LEAST_STATEMENT
Keep the lock around for at least the duration of the current statement, in particular make sure it i...
 
@ REGULAR
Keep the lock according to the rules of particular isolation level, in particular in case of READ COM...
 
dberr_t lock_sec_rec_modify_check_and_lock(ulint flags, buf_block_t *block, const rec_t *rec, dict_index_t *index, que_thr_t *thr, mtr_t *mtr)
Checks if locks of other transactions prevent an immediate modify (delete mark or delete unmark) of a...
Definition: lock0lock.cc:5388
 
dberr_t lock_table(ulint flags, dict_table_t *table, lock_mode mode, que_thr_t *thr)
Locks the specified database table in the mode given.
Definition: lock0lock.cc:3534
 
constexpr uint32_t LOCK_GAP
when this bit is set, it means that the lock holds only on the gap before the record; for instance,...
Definition: lock0lock.h:971
 
void lock_wait_suspend_thread(que_thr_t *thr)
Puts a user OS thread to wait for a lock to be released.
Definition: lock0wait.cc:206
 
void lock_rec_restore_from_page_infimum(const buf_block_t *block, const rec_t *rec, const buf_block_t *donator)
Restores the state of explicit lock requests on a single record, where the state was stored on the in...
Definition: lock0lock.cc:3230
 
constexpr uint32_t LOCK_REC_NOT_GAP
this bit means that the lock is only on the index record and does NOT block inserts to the gap before...
Definition: lock0lock.h:977
 
lock_t * lock_alloc_from_heap(mem_heap_t *heap, size_t bitmap_bytes=0)
Allocates memory suitable for holding a lock_t from specified heap.
Definition: lock0lock.cc:1093
 
bool lock_has_to_wait(const lock_t *lock1, const lock_t *lock2)
Checks if a lock request lock1 has to wait for request lock2.
Definition: lock0lock.cc:681
 
void lock_rec_discard(lock_t *in_lock)
Removes a record lock request, waiting or granted, from the queue.
Definition: lock0lock.cc:2320
 
void lock_remove_all_on_table(dict_table_t *table, bool remove_also_table_sx_locks)
Removes locks on a table to be dropped.
Definition: lock0lock.cc:4282
 
ulint lock_number_of_rows_locked(const trx_lock_t *trx_lock)
Return approximate number or record locks (bits set in the bitmap) for this transaction.
Definition: lock0lock.cc:1072
 
void lock_set_timeout_event()
Set the lock system timeout event.
Definition: lock0lock.cc:6036
 
constexpr uint32_t LOCK_REC
record lock
Definition: lock0lock.h:954
 
void lock_trx_alloc_locks(trx_t *trx)
Allocate cached locks for the transaction.
Definition: lock0lock.cc:6243
 
The transaction lock system.
 
The predicate lock system.
 
The transaction lock system global types.
 
select_mode
Definition: lock0types.h:47
 
lock_mode
Definition: lock0types.h:54
 
Mini-transaction buffer global types.
 
unsigned long long int ulonglong
Definition: my_inttypes.h:56
 
static my_thread_id thread_id
Definition: my_thr_init.cc:60
 
static PFS_engine_table_share_proxy table
Definition: pfs.cc:61
 
const std::string FILE("FILE")
 
bool index(const std::string &value, const String &search_for, uint32_t *idx)
Definition: contains.h:76
 
Provides atomic access in shared-exclusive modes.
Definition: shared_spin_lock.h:79
 
Definition: lock0guards.h:34
 
bool owns_page_shard(const page_id_t &page_id)
Tests if given page shard can be safely accessed by the current thread.
Definition: lock0lock.cc:172
 
bool owns_table_shard(const dict_table_t &table)
Test if given table shard can be safely accessed by the current thread.
Definition: lock0lock.cc:176
 
bool owns_shared_global_latch()
Tests if lock_sys latch is owned in shared mode by the current thread.
Definition: lock0lock.cc:168
 
bool owns_lock_shard(const lock_t *lock)
Checks if shard which contains lock is latched (or that an exclusive latch on whole lock_sys is held)...
Definition: lock0lock.cc:180
 
bool owns_exclusive_global_latch()
Tests if lock_sys latch is exclusively owned by the current thread.
Definition: lock0lock.cc:164
 
bool has_to_wait(const lock_t *lock1, const lock_t *lock2, Trx_locks_cache &lock1_cache)
Checks if a lock request lock1 has to wait for request lock2.
Definition: lock0lock.cc:664
 
Unique_ptr< T, std::nullptr_t > make_unique(size_t size)
In-place constructs a new unique pointer with no specific allocator and with array type T.
 
mode
Definition: file_handle.h:61
 
This file contains a set of libraries providing overloads for regular dynamic allocation routines whi...
Definition: aligned_alloc.h:48
 
constexpr size_t INNODB_CACHE_LINE_SIZE
CPU cache line size.
Definition: ut0cpu_cache.h:41
 
std::conditional_t< !std::is_array< T >::value, std::unique_ptr< T, detail::Deleter< T > >, std::conditional_t< detail::is_unbounded_array_v< T >, std::unique_ptr< T, detail::Array_deleter< std::remove_extent_t< T > > >, void > > unique_ptr
The following is a common type that is returned by all the ut::make_unique (non-aligned) specializati...
Definition: ut0new.h:2444
 
PSI_memory_key_t make_psi_memory_key(PSI_memory_key key)
Convenience helper function to create type-safe representation of PSI_memory_key.
Definition: ut0new.h:190
 
Query graph global types.
 
Record manager global types.
 
byte rec_t
Definition: rem0types.h:41
 
A hashmap used by lock sys, to organize locks by page (block), so that it is easy to maintain a list ...
Definition: lock0lock.h:1018
 
Locks_hashtable(Locks_hashtable &&)=delete
 
void erase(lock_t *lock, uint64_t hash_value)
Definition: lock0lock.cc:432
 
lock_t * find_on_block(const buf_block_t *block, F &&f)
Definition: lock0priv.h:1151
 
size_t get_cell_id(uint64_t hash_value)
Definition: lock0lock.cc:381
 
ut::unique_ptr< hash_table_t > ht
Definition: lock0lock.h:1064
 
void prepend(lock_t *lock, uint64_t hash_value)
Definition: lock0lock.cc:424
 
Locks_hashtable(size_t n_cells)
Definition: lock0lock.h:1020
 
void move_to_front(lock_t *lock, uint64_t hash_value)
Definition: lock0lock.cc:440
 
void append(lock_t *lock, uint64_t hash_value)
Definition: lock0lock.cc:416
 
void resize(size_t n_cells)
Definition: lock0lock.cc:369
 
Locks_hashtable & operator=(Locks_hashtable &&)=delete
 
lock_t * find(F &&f)
Definition: lock0priv.h:1164
 
lock_t * find_on_page(page_id_t page_id, F &&f)
Definition: lock0priv.h:1141
 
size_t find_set_in_this_shard(size_t start_pos)
Definition: lock0lock.h:1048
 
size_t get_n_cells()
Definition: lock0lock.h:1047
 
Locks_hashtable(const Locks_hashtable &)=delete
 
Locks_hashtable & operator=(const Locks_hashtable &)=delete
 
lock_t * find_on_record(const struct RecID &rec_id, F &&f)
Definition: lock0priv.h:1156
 
lock_t * find_in_cell(size_t cell_id, F &&f)
Definition: lock0priv.h:1126
 
Cells_in_use cells_in_use
Definition: lock0lock.h:1065
 
Record lock ID.
Definition: lock0priv.h:634
 
Definition: trx0types.h:635
 
The buffer control block structure.
Definition: buf0buf.h:1764
 
Data structure for an index.
Definition: dict0mem.h:1041
 
Data structure for a database table.
Definition: dict0mem.h:1922
 
Definition: hash0hash.h:61
 
Used to represent locks requests uniquely over time.
Definition: lock0types.h:106
 
Lock operation struct.
Definition: lock0lock.h:998
 
dict_table_t * table
table to be locked
Definition: lock0lock.h:999
 
lock_mode mode
lock mode
Definition: lock0lock.h:1000
 
The lock system struct.
Definition: lock0lock.h:1069
 
locksys::Latches latches
The latches protecting queues of record and table locks.
Definition: lock0lock.h:1071
 
char pad2[ut::INNODB_CACHE_LINE_SIZE]
Padding to avoid false sharing of wait_mutex field.
Definition: lock0lock.h:1093
 
Locks_hashtable rec_hash
The hash table of the record (LOCK_REC) locks, except for predicate (LOCK_PREDICATE) and predicate pa...
Definition: lock0lock.h:1075
 
lock_sys_t(size_t n_cells)
Definition: lock0lock.h:1083
 
srv_slot_t * last_slot
The highest slot ever used in the waiting_threads array.
Definition: lock0lock.h:1104
 
Locks_hashtable prdt_hash
The hash table of predicate (LOCK_PREDICATE) locks.
Definition: lock0lock.h:1078
 
bool rollback_complete
true if rollback of all recovered transactions is complete.
Definition: lock0lock.h:1108
 
uint32_t n_resizes
number of calls to lock_sys_resize() so far.
Definition: lock0lock.h:1090
 
srv_slot_t * waiting_threads
Array of user threads suspended while waiting for locks within InnoDB.
Definition: lock0lock.h:1100
 
Lock_mutex wait_mutex
The mutex protecting the next two fields.
Definition: lock0lock.h:1096
 
std::chrono::steady_clock::duration n_lock_max_wait_time
Max lock wait time observed, for innodb_row_lock_time_max reporting.
Definition: lock0lock.h:1111
 
os_event_t timeout_event
Set to the event that is created in the lock wait monitor thread.
Definition: lock0lock.h:1115
 
Locks_hashtable prdt_page_hash
The hash table of the predicate page (LOCK_PRD_PAGE) locks.
Definition: lock0lock.h:1081
 
std::atomic< uint64_t > m_seq
Lock timestamp counter, used to assign lock->m_seq on creation.
Definition: lock0lock.h:1119
 
Lock struct; protected by lock_sys latches.
Definition: lock0priv.h:137
 
The info structure stored at the beginning of a heap block.
Definition: mem0mem.h:302
 
Mini-transaction handle and buffer.
Definition: mtr0mtr.h:177
 
InnoDB condition variable.
Definition: os0event.cc:63
 
Definition: que0que.h:242
 
Definition: gis0type.h:167
 
Thread slot in the thread table.
Definition: srv0srv.h:1218
 
Table name wrapper for pretty-printing.
Definition: dict0mem.h:465
 
Latching protocol for trx_lock_t::que_state.
Definition: trx0trx.h:401
 
Definition: trx0trx.h:675
 
Transaction system global type definitions.
 
ib_id_t trx_id_t
Transaction identifier (DB_TRX_ID, DATA_TRX_ID)
Definition: trx0types.h:138
 
std::vector< TrxVersion, ut::allocator< TrxVersion > > hit_list_t
Definition: trx0types.h:642
 
Version control for database, common definitions, and include files.
 
unsigned long int ulint
Definition: univ.i:406
 
#define mutex_enter(M)
Definition: ut0mutex.h:117
 
PSI_memory_key mem_key_lock_sys
Definition: ut0new.cc:57
 
A vector of pointers to data items.