mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-14 19:45:11 +00:00
Fix error
This commit is contained in:
parent
688d5d59af
commit
a18dc73271
@ -4426,19 +4426,18 @@ void MergeTreeData::delayInsertOrThrowIfNeeded(Poco::Event * until, const Contex
|
||||
allowed_parts_over_threshold = settings->inactive_parts_to_throw_insert - settings->inactive_parts_to_delay_insert;
|
||||
}
|
||||
|
||||
if (allowed_parts_over_threshold == 0 || parts_over_threshold > allowed_parts_over_threshold) [[unlikely]]
|
||||
throw Exception(
|
||||
ErrorCodes::LOGICAL_ERROR,
|
||||
"Incorrect calculation of {} parts over threshold: allowed_parts_over_threshold={}, parts_over_threshold={}",
|
||||
(use_active_parts_threshold ? "active" : "inactive"),
|
||||
allowed_parts_over_threshold,
|
||||
parts_over_threshold);
|
||||
|
||||
const UInt64 max_delay_milliseconds = (settings->max_delay_to_insert > 0 ? settings->max_delay_to_insert * 1000 : 1000);
|
||||
if (allowed_parts_over_threshold == 0 || parts_over_threshold > allowed_parts_over_threshold)
|
||||
{
|
||||
delay_milliseconds = max_delay_milliseconds;
|
||||
}
|
||||
else
|
||||
{
|
||||
double delay_factor = static_cast<double>(parts_over_threshold) / allowed_parts_over_threshold;
|
||||
const UInt64 min_delay_milliseconds = settings->min_delay_to_insert_ms;
|
||||
delay_milliseconds = std::max(min_delay_milliseconds, static_cast<UInt64>(max_delay_milliseconds * delay_factor));
|
||||
}
|
||||
}
|
||||
|
||||
ProfileEvents::increment(ProfileEvents::DelayedInserts);
|
||||
ProfileEvents::increment(ProfileEvents::DelayedInsertsMilliseconds, delay_milliseconds);
|
||||
|
Loading…
Reference in New Issue
Block a user