1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-27 21:01:50 +03:00

fix(brm): This refactors shmem RWLocks operations for EM, EMIndex and FreeList so that re-map operation always takes shmem lock in Exclusive mode

---------

Co-authored-by: Roman Nozdrin <rnozdrin@mariadb.com>
This commit is contained in:
drrtuy
2023-09-06 20:07:44 +02:00
committed by GitHub
parent 1c9cd9db9f
commit 5f4d2705fd
2 changed files with 71 additions and 102 deletions

View File

@ -34,7 +34,7 @@
#include <tr1/unordered_map>
#include <mutex>
//#define NDEBUG
// #define NDEBUG
#include <cassert>
#include <boost/functional/hash.hpp> //boost::hash
#include <boost/interprocess/allocators/allocator.hpp>
@ -1175,6 +1175,11 @@ class ExtentMap : public Undoable
int _markInvalid(const LBID_t lbid, const execplan::CalpontSystemCatalog::ColDataType colDataType);
MSTEntry* _getTableLock(const OPS op, std::atomic<bool>& lockedState, const int table);
void _getTableLockUpgradeIfNeeded(const OPS op, std::atomic<bool>& lockedState, const int table);
void _getTableLockDowngradeIfNeeded(const OPS op, std::atomic<bool>& lockedState, const int table);
void _releaseTable(const OPS op, std::atomic<bool>& lockedState, const int table);
template <typename T>
void load(T* in);