1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00

Merge pull request #1197 from tntnatbry/develop-batchinserts-improve

Improve batch inserts.
This commit is contained in:
Patrick LeBlanc
2020-06-02 14:05:47 -05:00
committed by GitHub
13 changed files with 306 additions and 36 deletions

View File

@ -1737,38 +1737,44 @@ int BRMWrapper::writeVB(IDBDataFile* pSourceFile, const VER_t transID, const OID
if (rc != NO_ERROR)
goto cleanup;
for (; processedBlocks < (k + rangeListCount); processedBlocks++)
std::vector<BRM::LBID_t> lbids(k);
std::vector<uint32_t> vbFBOs(k);
size_t idx = 0;
for (; processedBlocks < (k + rangeListCount); processedBlocks++, idx++)
{
rc = blockRsltnMgrPtr->writeVBEntry(transID, rangeList[processedBlocks].start,
freeList[i].vbOID, freeList[i].vbFBO + (processedBlocks - rangeListCount));
lbids[idx] = rangeList[processedBlocks].start;
vbFBOs[idx] = freeList[i].vbFBO + (processedBlocks - rangeListCount);
}
//cout << (uint64_t)rangeList[processedBlocks].start << endl;
if (rc != NO_ERROR)
rc = blockRsltnMgrPtr->bulkWriteVBEntry(transID, lbids, freeList[i].vbOID,
vbFBOs);
if (rc != NO_ERROR)
{
switch (rc)
{
switch (rc)
{
case ERR_DEADLOCK:
rc = ERR_BRM_DEAD_LOCK;
break;
case ERR_DEADLOCK:
rc = ERR_BRM_DEAD_LOCK;
break;
case ERR_VBBM_OVERFLOW:
rc = ERR_BRM_VB_OVERFLOW;
break;
case ERR_VBBM_OVERFLOW:
rc = ERR_BRM_VB_OVERFLOW;
break;
case ERR_NETWORK:
rc = ERR_BRM_NETWORK;
break;
case ERR_NETWORK:
rc = ERR_BRM_NETWORK;
break;
case ERR_READONLY:
rc = ERR_BRM_READONLY;
break;
case ERR_READONLY:
rc = ERR_BRM_READONLY;
break;
default:
rc = ERR_BRM_WR_VB_ENTRY;
}
goto cleanup;
default:
rc = ERR_BRM_WR_VB_ENTRY;
}
goto cleanup;
}
}
}