You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
MCOL-5021 Add an option in Columnstore.xml, fastdelete (disabled
by default), which when enabled, indiscriminately invalidates all column extents and performs the actual DELETE only on the AUX column. The trade-off with this approach would now be that the first SELECT for certain query patterns (those containing a WHERE predicate) after the DELETE operation will slow down as the invalidated column extent would need to be scanned again to set the min/max values.
This commit is contained in:
@ -68,6 +68,7 @@ unsigned Config::m_FilesPerColumnPartition = DEFAULT_FILES_PER_COLUMN_PARTITION;
|
||||
unsigned Config::m_ExtentsPerSegmentFile = DEFAULT_EXTENTS_PER_SEGMENT_FILE;
|
||||
int Config::m_BulkProcessPriority = DEFAULT_BULK_PROCESS_PRIORITY;
|
||||
string Config::m_BulkRollbackDir;
|
||||
bool Config::m_FastDelete;
|
||||
unsigned Config::m_MaxFileSystemDiskUsage = DEFAULT_MAX_FILESYSTEM_DISK_USAGE;
|
||||
unsigned Config::m_NumCompressedPadBlks = DEFAULT_COMPRESSED_PADDING_BLKS;
|
||||
bool Config::m_ParentOAMModuleFlag = DEFAULT_PARENT_OAM;
|
||||
@ -185,6 +186,17 @@ void Config::checkReload()
|
||||
m_BulkRollbackDir += "/rollback";
|
||||
}
|
||||
|
||||
const std::string fastDeleteTemp = cf->getConfig("WriteEngine", "FastDelete");
|
||||
|
||||
if (fastDeleteTemp.length() == 0 || boost::iequals(fastDeleteTemp, "false"))
|
||||
{
|
||||
m_FastDelete = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_FastDelete = true;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Initialize max disk usage
|
||||
//--------------------------------------------------------------------------
|
||||
@ -516,6 +528,20 @@ std::string Config::getBulkRollbackDir()
|
||||
return m_BulkRollbackDir;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* DESCRIPTION:
|
||||
* Get the fast delete option
|
||||
* PARAMETERS:
|
||||
* none
|
||||
******************************************************************************/
|
||||
bool Config::getFastDelete()
|
||||
{
|
||||
boost::mutex::scoped_lock lk(fCacheLock);
|
||||
checkReload();
|
||||
|
||||
return m_FastDelete;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* DESCRIPTION:
|
||||
* Get Max percentage of allowable file system disk usage for each DBRoot
|
||||
|
Reference in New Issue
Block a user