OmniSciDB  340b00dbf6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
lockmgr Namespace Reference

Namespaces

 helpers
 

Classes

class  TableSchemaLockMgr
 Locks protecting a physical table object returned from the catalog. Table Metadata Locks prevent incompatible concurrent operations on table objects. For example, before dropping or altering a table, a metadata write lock must be acquired. This prevents concurrent read + drop, concurrent drops, etc. More...
 
class  InsertDataLockMgr
 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...
 
class  TableDataLockMgr
 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...
 
class  TableLockContainerImpl
 
class  TableSchemaLockContainer
 
class  TableSchemaLockContainer< ReadLock >
 
class  TableSchemaLockContainer< WriteLock >
 
class  TableDataLockContainer
 
class  TableDataLockContainer< WriteLock >
 
class  TableDataLockContainer< ReadLock >
 
class  TableInsertLockContainer
 
class  TableInsertLockContainer< WriteLock >
 
class  TableInsertLockContainer< ReadLock >
 
class  MutexTracker
 
class  TrackedRefLock
 
class  AbstractLockContainer
 
class  LockContainerImpl
 
class  TableLockMgrImpl
 

Typedefs

using LockedTableDescriptors = std::vector< std::unique_ptr< lockmgr::AbstractLockContainer< const TableDescriptor * >>>
 
using MutexTypeBase = mapd_shared_mutex
 
using WriteLockBase = mapd_unique_lock< MutexTypeBase >
 
using ReadLockBase = mapd_shared_lock< MutexTypeBase >
 
using MutexType = MutexTracker
 
using WriteLock = TrackedRefLock< WriteLockBase >
 
using ReadLock = TrackedRefLock< ReadLockBase >
 

Functions

template<typename T >
std::ostream & operator<< (std::ostream &os, const TableLockMgrImpl< T > &lock_mgr)
 

Typedef Documentation

using lockmgr::LockedTableDescriptors = typedef std::vector<std::unique_ptr<lockmgr::AbstractLockContainer<const TableDescriptor*>>>

Definition at line 268 of file LockMgr.h.

Definition at line 83 of file LockMgrImpl.h.

Definition at line 31 of file LockMgrImpl.h.

Definition at line 86 of file LockMgrImpl.h.

Definition at line 34 of file LockMgrImpl.h.

Definition at line 85 of file LockMgrImpl.h.

Definition at line 33 of file LockMgrImpl.h.

Function Documentation

template<typename T >
std::ostream& lockmgr::operator<< ( std::ostream &  os,
const TableLockMgrImpl< T > &  lock_mgr 
)

Definition at line 181 of file LockMgrImpl.h.

181  {
182  for (const auto& table_key : lock_mgr.getLockedTables()) {
183  for (const auto& k : table_key) {
184  os << k << " ";
185  }
186  os << "\n";
187  }
188  return os;
189 }