You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
MCOL-4912 This patch introduces Extent Map index to improve EM scaleability
EM scaleability project has two parts: phase1 and phase2. This is phase1 that brings EM index to speed up(from O(n) down to the speed of boost::unordered_map) EM lookups looking for <dbroot, oid, partition> tuple to turn it into LBID, e.g. most bulk insertion meta info operations. The basis is boost::shared_managed_object where EMIndex is stored. Whilst it is not debug-friendly it allows to put a nested structs into shmem. EMIndex has 3 tiers. Top down description: vector of dbroots, map of oids to partition vectors, partition vectors that have EM indices. Separate EM methods now queries index before they do EM run. EMIndex has a separate shmem file with the fixed id MCS-shm-00060001.
This commit is contained in:
committed by
Leonid Fedorov
parent
fb3eaabd29
commit
4c26e4f960
@ -103,7 +103,7 @@ class DBRM
|
||||
// The param noBRMFcns suppresses init of the ExtentMap, VSS, VBBM, and CopyLocks.
|
||||
// It can speed up init if the caller only needs the other structures.
|
||||
EXPORT DBRM(bool noBRMFcns = false);
|
||||
EXPORT ~DBRM() throw();
|
||||
EXPORT ~DBRM();
|
||||
|
||||
EXPORT static void refreshShm()
|
||||
{
|
||||
@ -780,12 +780,12 @@ class DBRM
|
||||
const std::vector<execplan::CalpontSystemCatalog::ColDataType>& colDataTypes)
|
||||
DBRM_THROW;
|
||||
template <typename T>
|
||||
EXPORT int getExtentMaxMin(const LBID_t lbid, T& max, T& min, int32_t& seqNum) throw();
|
||||
EXPORT int getExtentMaxMin(const LBID_t lbid, T& max, T& min, int32_t& seqNum);
|
||||
|
||||
EXPORT int setExtentMaxMin(const LBID_t lbid, const int64_t max, const int64_t min,
|
||||
const int32_t seqNum) DBRM_THROW;
|
||||
|
||||
EXPORT int getExtentCPMaxMin(const LBID_t lbid, CPMaxMin& cpMaxMin) throw();
|
||||
EXPORT int getExtentCPMaxMin(const LBID_t lbid, CPMaxMin& cpMaxMin);
|
||||
|
||||
/** @brief Updates the max and min casual partitioning info for the passed extents.
|
||||
*
|
||||
@ -984,6 +984,9 @@ class DBRM
|
||||
EXPORT void invalidateUncommittedExtentLBIDs(execplan::CalpontSystemCatalog::SCN txnid, bool allExtents,
|
||||
std::vector<LBID_t>* plbidList = NULL);
|
||||
|
||||
size_t EMIndexShmemSize();
|
||||
size_t EMIndexShmemFree();
|
||||
|
||||
private:
|
||||
DBRM(const DBRM& brm);
|
||||
DBRM& operator=(const DBRM& brm);
|
||||
|
Reference in New Issue
Block a user