mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 15:42:02 +00:00
Merge pull request #23863 from Algunenano/mutation_logs
Reduce the amount of logs that StorageMergeTree::selectPartsToMutate outputs in busy systems.
This commit is contained in:
commit
780b7cc8e1
@ -157,7 +157,7 @@ void StorageMergeTree::shutdown()
|
||||
{
|
||||
/// We clear all old parts after stopping all background operations.
|
||||
/// It's important, because background operations can produce temporary
|
||||
/// parts which will remove themselves in their descrutors. If so, we
|
||||
/// parts which will remove themselves in their destructors. If so, we
|
||||
/// may have race condition between our remove call and background
|
||||
/// process.
|
||||
clearOldPartsFromFilesystem(true);
|
||||
@ -882,6 +882,16 @@ std::shared_ptr<StorageMergeTree::MergeMutateSelectedEntry> StorageMergeTree::se
|
||||
if (current_mutations_by_version.empty())
|
||||
return {};
|
||||
|
||||
size_t max_source_part_size = merger_mutator.getMaxSourcePartSizeForMutation();
|
||||
if (max_source_part_size == 0)
|
||||
{
|
||||
LOG_DEBUG(
|
||||
log,
|
||||
"Not enough idle threads to apply mutations at the moment. See settings 'number_of_free_entries_in_pool_to_execute_mutation' "
|
||||
"and 'background_pool_size'");
|
||||
return {};
|
||||
}
|
||||
|
||||
auto mutations_end_it = current_mutations_by_version.end();
|
||||
for (const auto & part : getDataPartsVector())
|
||||
{
|
||||
@ -892,13 +902,14 @@ std::shared_ptr<StorageMergeTree::MergeMutateSelectedEntry> StorageMergeTree::se
|
||||
if (mutations_begin_it == mutations_end_it)
|
||||
continue;
|
||||
|
||||
size_t max_source_part_size = merger_mutator.getMaxSourcePartSizeForMutation();
|
||||
if (max_source_part_size < part->getBytesOnDisk())
|
||||
{
|
||||
LOG_DEBUG(log, "Current max source part size for mutation is {} but part size {}. Will not mutate part {}. "
|
||||
"Max size depends not only on available space, but also on settings "
|
||||
"'number_of_free_entries_in_pool_to_execute_mutation' and 'background_pool_size'",
|
||||
max_source_part_size, part->getBytesOnDisk(), part->name);
|
||||
LOG_DEBUG(
|
||||
log,
|
||||
"Current max source part size for mutation is {} but part size {}. Will not mutate part {} yet",
|
||||
max_source_part_size,
|
||||
part->getBytesOnDisk(),
|
||||
part->name);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user