OmniSciDB
94e8789169
|
Locks protecting table data. Read queries take a read lock, while write queries (update, delete) obtain a write lock. Note that insert queries do not currently take a write lock (to allow concurrent inserts). Instead, insert queries obtain a write lock on the table metadata to allow existing read queries to finish (and block new ones) before flushing the inserted data to disk. More...
#include <LockMgr.h>
Static Public Member Functions | |
static TableDataLockMgr & | instance () |
![]() | |
static WriteLock | getWriteLockForTable (const Catalog_Namespace::Catalog &cat, const std::string &table_name) |
static WriteLock | getWriteLockForTable (const ChunkKey table_key) |
static ReadLock | getReadLockForTable (const Catalog_Namespace::Catalog &cat, const std::string &table_name) |
static ReadLock | getReadLockForTable (const ChunkKey table_key) |
Protected Member Functions | |
TableDataLockMgr () | |
![]() | |
TableLockMgrImpl () | |
Additional Inherited Members | |
![]() | |
MutexType * | getTableMutex (const ChunkKey table_key) |
std::set< ChunkKey > | getLockedTables () const |
![]() | |
std::mutex | map_mutex_ |
std::map< ChunkKey, std::unique_ptr< MutexType > > | table_mutex_map_ |
Locks protecting table data. Read queries take a read lock, while write queries (update, delete) obtain a write lock. Note that insert queries do not currently take a write lock (to allow concurrent inserts). Instead, insert queries obtain a write lock on the table metadata to allow existing read queries to finish (and block new ones) before flushing the inserted data to disk.
|
inlineprotected |
|
inlinestatic |
Definition at line 76 of file LockMgr.h.
Referenced by DBHandler::execute_rel_alg(), and DBHandler::sql_execute().