OmniSciDB
94e8789169
|
Prevents simultaneous inserts into the same table. To allow concurrent Insert/Select queries, Insert queries only obtain a write lock on table data when checkpointing (flushing chunks to disk). Inserts/Data load will take an exclusive (write) lock to ensure only one insert proceeds on each table at a time. More...
#include <LockMgr.h>
Static Public Member Functions | |
static InsertDataLockMgr & | 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 | |
InsertDataLockMgr () | |
![]() | |
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_ |
Prevents simultaneous inserts into the same table. To allow concurrent Insert/Select queries, Insert queries only obtain a write lock on table data when checkpointing (flushing chunks to disk). Inserts/Data load will take an exclusive (write) lock to ensure only one insert proceeds on each table at a time.
|
inlineprotected |
|
inlinestatic |