MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MDL_map_partition Class Reference

Public Member Functions

 MDL_map_partition ()
 ~MDL_map_partition ()
MDL_lockfind_or_insert (const MDL_key *mdl_key, my_hash_value_type hash_value)
void remove (MDL_lock *lock)
my_hash_value_type get_key_hash (const MDL_key *mdl_key) const

Detailed Description

A partition in a collection of all MDL locks. MDL_map is partitioned for scalability reasons. Maps MDL_key to MDL_lock instances.

Definition at line 121 of file mdl.cc.

Constructor & Destructor Documentation

MDL_map_partition::MDL_map_partition ( )

Initialize the partition in the container with all MDL locks.

Definition at line 723 of file mdl.cc.

MDL_map_partition::~MDL_map_partition ( )

Destroy the partition in container for all MDL locks.

Precondition
It must be empty.

Definition at line 754 of file mdl.cc.

Member Function Documentation

MDL_lock * MDL_map_partition::find_or_insert ( const MDL_key mdl_key,
my_hash_value_type  hash_value 
)
inline

Find MDL_lock object corresponding to the key and hash value in MDL_map partition, create it if it does not exist.

Return values
non-NULL- Success. MDL_lock instance for the key with locked MDL_lock::m_rwlock.
NULL- Failure (OOM).

Definition at line 818 of file mdl.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

void MDL_map_partition::remove ( MDL_lock lock)
inline

Destroy MDL_lock object belonging to specific MDL_map partition or delegate this responsibility to whatever thread that holds the last outstanding reference to it.

Definition at line 986 of file mdl.cc.

Here is the caller graph for this function:


The documentation for this class was generated from the following file: