OmniSciDB  a5dc49c757
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LockMgr.h File Reference
#include "LockMgr/LegacyLockMgr.h"
#include "LockMgr/LockMgrImpl.h"
#include <map>
#include <memory>
#include <string>
#include "Catalog/Catalog.h"
#include "Shared/heavyai_shared_mutex.h"
#include "Shared/types.h"
+ Include dependency graph for LockMgr.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  lockmgr::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  lockmgr::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  lockmgr::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  lockmgr::TableSchemaLockContainer< LOCK_TYPE >
 
class  lockmgr::TableSchemaLockContainer< ReadLock >
 
class  lockmgr::TableSchemaLockContainer< WriteLock >
 
class  lockmgr::TableDataLockContainer< LOCK_TYPE >
 
class  lockmgr::TableDataLockContainer< WriteLock >
 
class  lockmgr::TableDataLockContainer< ReadLock >
 
class  lockmgr::TableInsertLockContainer< LOCK_TYPE >
 
class  lockmgr::TableInsertLockContainer< WriteLock >
 
class  lockmgr::TableInsertLockContainer< ReadLock >
 

Namespaces

 lockmgr
 

Typedefs

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

Functions

void lockmgr::validate_table_descriptor_after_lock (const TableDescriptor *td_prelock, const Catalog_Namespace::Catalog &cat, const std::string &table_name, const bool populate_fragmenter)