You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-05 16:15:50 +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:
@@ -50,6 +50,7 @@ ShmKeys::ShmKeys()
|
||||
KEYRANGE_EMFREELIST_BASE = 0x30000 | (BRM_UID << 20);
|
||||
KEYRANGE_VBBM_BASE = 0x40000 | (BRM_UID << 20);
|
||||
KEYRANGE_CL_BASE = 0x50000 | (BRM_UID << 20);
|
||||
KEYRANGE_EXTENTMAP_INDEX_BASE = 0x60000 | (BRM_UID << 20);
|
||||
MST_SYSVKEY = 0xff000000 | BRM_UID;
|
||||
PROCESSSTATUS_SYSVKEY = 0xfd000000 | BRM_UID;
|
||||
SYSTEMSTATUS_SYSVKEY = 0xfc000000 | BRM_UID;
|
||||
@@ -62,7 +63,7 @@ ShmKeys::ShmKeys()
|
||||
string ShmKeys::keyToName(unsigned key)
|
||||
{
|
||||
ostringstream oss;
|
||||
oss << "InfiniDB-shm-";
|
||||
oss << "MCS-shm-";
|
||||
oss << setw(8) << setfill('0') << hex << key;
|
||||
return oss.str();
|
||||
}
|
||||
|
Reference in New Issue
Block a user