mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-11 18:14:03 +00:00
Merge
This commit is contained in:
commit
1a9efb66c1
@ -614,16 +614,9 @@ public:
|
||||
void replaceParts(const DataPartsVector & remove, const DataPartsVector & add, bool clear_without_timeout);
|
||||
|
||||
/** Переименовывает кусок в prefix_кусок и убирает его из рабочего набора.
|
||||
* Лучше использовать только когда никто не может читать или писать этот кусок
|
||||
* (например, при инициализации таблицы).
|
||||
*/
|
||||
void renameAndDetachPart(DataPartPtr part, const String & prefix);
|
||||
|
||||
/** Убрать кусок из рабочего набора. Его данные удалятся при вызове clearOldParts, когда их перестанут читать.
|
||||
* Если clear_without_timeout, данные будут удалены при следующем clearOldParts, игнорируя old_parts_lifetime.
|
||||
*/
|
||||
void deletePart(DataPartPtr part, bool clear_without_timeout);
|
||||
|
||||
/** Удалить неактуальные куски. Возвращает имена удаленных кусков.
|
||||
*/
|
||||
Strings clearOldParts();
|
||||
|
@ -710,18 +710,10 @@ void MergeTreeData::renameAndDetachPart(DataPartPtr part, const String & prefix)
|
||||
Poco::ScopedLock<Poco::FastMutex> lock_all(all_data_parts_mutex);
|
||||
if (!all_data_parts.erase(part))
|
||||
throw Exception("No such data part", ErrorCodes::NO_SUCH_DATA_PART);
|
||||
part->remove_time = time(0);
|
||||
data_parts.erase(part);
|
||||
part->renameAddPrefix(prefix);
|
||||
}
|
||||
|
||||
void MergeTreeData::deletePart(DataPartPtr part, bool clear_without_timeout)
|
||||
{
|
||||
Poco::ScopedLock<Poco::FastMutex> lock(data_parts_mutex);
|
||||
part->remove_time = clear_without_timeout ? 0 : time(0);
|
||||
data_parts.erase(part);
|
||||
}
|
||||
|
||||
MergeTreeData::DataParts MergeTreeData::getDataParts()
|
||||
{
|
||||
Poco::ScopedLock<Poco::FastMutex> lock(data_parts_mutex);
|
||||
|
@ -1454,7 +1454,7 @@ void StorageReplicatedMergeTree::partCheckThread()
|
||||
removePartAndEnqueueFetch(part_name);
|
||||
|
||||
/// Удалим кусок локально.
|
||||
data.deletePart(part, true);
|
||||
data.renameAndDetachPart(part, "broken_");
|
||||
}
|
||||
}
|
||||
/// Если куска нет в ZooKeeper, удалим его локально.
|
||||
@ -1470,7 +1470,7 @@ void StorageReplicatedMergeTree::partCheckThread()
|
||||
else
|
||||
{
|
||||
LOG_ERROR(log, "Unexpected part " << part_name << ". Removing.");
|
||||
data.deletePart(part, false);
|
||||
data.renameAndDetachPart(part, "unexpected_");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user