You've already forked mariadb-columnstore-engine
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:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user