mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Better concurrent parts removal with zero copy
This commit is contained in:
parent
bcafd7002a
commit
a2ed457219
@ -2451,12 +2451,14 @@ void MergeTreeData::clearPartsFromFilesystemImpl(const DataPartsVector & parts_t
|
||||
std::mutex part_names_mutex;
|
||||
ThreadPool pool(CurrentMetrics::MergeTreePartsCleanerThreads, CurrentMetrics::MergeTreePartsCleanerThreadsActive, num_threads);
|
||||
|
||||
/// This flag disallow straightforward concurrent parts removal. It's required only in case
|
||||
/// when we have parts on zero-copy disk + at least some of them were mutated.
|
||||
bool has_zero_copy_parts = false;
|
||||
if (settings->allow_remote_fs_zero_copy_replication && dynamic_cast<StorageReplicatedMergeTree *>(this) != nullptr)
|
||||
{
|
||||
has_zero_copy_parts = std::any_of(
|
||||
parts_to_remove.begin(), parts_to_remove.end(),
|
||||
[] (const auto & data_part) { return data_part->isStoredOnRemoteDiskWithZeroCopySupport(); }
|
||||
[] (const auto & data_part) { return data_part->isStoredOnRemoteDiskWithZeroCopySupport() && data_part->info.getMutationVersion() > 0; }
|
||||
);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user