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

Checkpointing a couple easy optimizations.

This commit is contained in:
Patrick LeBlanc
2019-08-08 18:21:16 -05:00
parent 1a7955c82e
commit 392b58f60b

View File

@@ -278,12 +278,20 @@ metadataObject MetadataFile::addMetadataObject(const boost::filesystem::path &fi
metadataObject addObject; metadataObject addObject;
auto &objects = jsontree->get_child("objects"); auto &objects = jsontree->get_child("objects");
if (!objects.empty())
{
auto &lastObject = objects.back().second;
addObject.offset = lastObject.get<size_t>("offset") + lastObject.get<size_t>("length");
}
/*
BOOST_FOREACH(const boost::property_tree::ptree::value_type &v, objects) BOOST_FOREACH(const boost::property_tree::ptree::value_type &v, objects)
{ {
size_t entryOff = v.second.get<size_t>("offset"), entryLen = v.second.get<size_t>("length"); size_t entryOff = v.second.get<size_t>("offset"), entryLen = v.second.get<size_t>("length");
if (addObject.offset < entryOff + entryLen) if (addObject.offset < entryOff + entryLen)
addObject.offset = entryOff + entryLen; addObject.offset = entryOff + entryLen;
} }
*/
addObject.length = length; addObject.length = length;
addObject.key = getNewKey(filename.string(), addObject.offset, addObject.length); addObject.key = getNewKey(filename.string(), addObject.offset, addObject.length);
boost::property_tree::ptree object; boost::property_tree::ptree object;
@@ -573,13 +581,11 @@ void MetadataFile::updateEntryLength(off_t offset, size_t newLength)
off_t MetadataFile::getMetadataNewObjectOffset() off_t MetadataFile::getMetadataNewObjectOffset()
{ {
off_t newObjectOffset = 0; auto &objects = jsontree->get_child("objects");
BOOST_FOREACH(const boost::property_tree::ptree::value_type &v, jsontree->get_child("objects")) if (objects.empty())
{ return 0;
off_t possibility = v.second.get<off_t>("offset"); auto &lastObject = jsontree->get_child("objects").back().second;
if (newObjectOffset < possibility) return lastObject.get<size_t>("offset") + lastObject.get<size_t>("length");
newObjectOffset = possibility;
}
/* /*
if (!mObjects.empty()) if (!mObjects.empty())
@@ -589,7 +595,7 @@ off_t MetadataFile::getMetadataNewObjectOffset()
} }
*/ */
return newObjectOffset; //return newObjectOffset;
} }
metadataObject::metadataObject() : offset(0), length(0) metadataObject::metadataObject() : offset(0), length(0)