mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-14 18:32:29 +00:00
Trying to investigate the errors after attaching the part.
+ A new entry is added to the part_log.
This commit is contained in:
parent
831b90f272
commit
e309dd275a
@ -460,7 +460,7 @@ public:
|
|||||||
|
|
||||||
/// Remove parts from working set immediately (without wait for background
|
/// Remove parts from working set immediately (without wait for background
|
||||||
/// process). Transfer part state to temporary. Have very limited usage only
|
/// process). Transfer part state to temporary. Have very limited usage only
|
||||||
/// for new parts which don't already present in table.
|
/// for new parts which aren't already present in table.
|
||||||
void removePartsFromWorkingSetImmediatelyAndSetTemporaryState(const DataPartsVector & remove);
|
void removePartsFromWorkingSetImmediatelyAndSetTemporaryState(const DataPartsVector & remove);
|
||||||
|
|
||||||
/// Removes parts from the working set parts.
|
/// Removes parts from the working set parts.
|
||||||
|
@ -1382,8 +1382,12 @@ MergeTreeData::MutableDataPartPtr StorageReplicatedMergeTree::attachPartHelperFo
|
|||||||
part->loadColumnsChecksumsIndexes(true, false);
|
part->loadColumnsChecksumsIndexes(true, false);
|
||||||
|
|
||||||
if (entry.part_checksum == part->checksums.getTotalChecksumHex())
|
if (entry.part_checksum == part->checksums.getTotalChecksumHex())
|
||||||
|
{
|
||||||
|
part->is_temp = true;
|
||||||
|
part->modification_time = disk->getLastModified(part_path).epochTime();
|
||||||
return part;
|
return part;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
@ -1437,6 +1441,12 @@ bool StorageReplicatedMergeTree::executeLogEntry(LogEntry & entry)
|
|||||||
renameTempPartAndReplace(part, nullptr, &transaction);
|
renameTempPartAndReplace(part, nullptr, &transaction);
|
||||||
checkPartChecksumsAndCommit(transaction, part);
|
checkPartChecksumsAndCommit(transaction, part);
|
||||||
|
|
||||||
|
writePartLog(PartLogElement::Type::NEW_PART, {},
|
||||||
|
0, // well, not really, but don't have the idea how to measure the time here TODO
|
||||||
|
part->name, part,
|
||||||
|
{part}, // not sure whether the initial parts vector should be empty or contain the part itself TODO
|
||||||
|
nullptr);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3706,6 +3716,7 @@ bool StorageReplicatedMergeTree::fetchPart(const String & part_name, const Stora
|
|||||||
String interserver_scheme;
|
String interserver_scheme;
|
||||||
std::optional<CurrentlySubmergingEmergingTagger> tagger_ptr;
|
std::optional<CurrentlySubmergingEmergingTagger> tagger_ptr;
|
||||||
std::function<MutableDataPartPtr()> get_part;
|
std::function<MutableDataPartPtr()> get_part;
|
||||||
|
|
||||||
if (part_to_clone)
|
if (part_to_clone)
|
||||||
{
|
{
|
||||||
get_part = [&, part_to_clone]()
|
get_part = [&, part_to_clone]()
|
||||||
|
Loading…
Reference in New Issue
Block a user