1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-12-15 12:09:09 +03:00

Checkpointing mods for IOC::read(). Doesn't build yet.

This commit is contained in:
Patrick LeBlanc
2019-03-27 16:27:15 -05:00
parent 238731622a
commit 6bd4b60a7b
7 changed files with 362 additions and 79 deletions

View File

@@ -129,6 +129,27 @@ MetadataFile::~MetadataFile()
vector<metadataObject> MetadataFile::metadataRead(off_t offset, size_t length)
{
// this version assumes mObjects is sorted by offset, and there are no gaps between objects
vector<metadataObject> ret;
size_t foundLen = 0;
auto i = mObjects.begin();
// find the first object in range
while (i != mObjects.end())
if (offset >= i->offset)
break;
// append objects until foundLen >= length or EOF
while (i != mObjects.end() && foundLen < length)
{
ret.push_back(*i);
foundLen += i->length;
++i;
}
return ret;
#if 0
// this version assumed mObjects was unsorted
vector<metadataObject> returnObjs;
uint64_t startData = offset;
uint64_t endData = offset + length;
@@ -157,6 +178,7 @@ vector<metadataObject> MetadataFile::metadataRead(off_t offset, size_t length)
}
return returnObjs;
#endif
}
metadataObject MetadataFile::addMetadataObject(const char *filename, size_t length)