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




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


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 >


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 }