mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-23 10:10:50 +00:00
dbms: Throttler: improvement [#METR-15052].
This commit is contained in:
parent
e09225d230
commit
2920dba21d
@ -7,7 +7,7 @@
|
||||
|
||||
/** Позволяет ограничить скорость чего либо (в штуках в секунду) с помощью sleep.
|
||||
* Особенности работы:
|
||||
* - считается только средняя скорость, от момента создания объекта;
|
||||
* - считается только средняя скорость, от момента первого вызова функции add;
|
||||
* если были периоды с низкой скоростью, то в течение промежутка времени после них, скорость будет выше;
|
||||
*/
|
||||
class Throttler
|
||||
@ -23,10 +23,16 @@ public:
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(mutex);
|
||||
|
||||
if (0 == count)
|
||||
{
|
||||
watch.start();
|
||||
elapsed_ns = 0;
|
||||
}
|
||||
else
|
||||
elapsed_ns = watch.elapsed();
|
||||
|
||||
count += amount;
|
||||
new_count = count;
|
||||
|
||||
elapsed_ns = watch.elapsed();
|
||||
}
|
||||
|
||||
/// Сколько должно было бы пройти времени, если бы скорость была равна max_speed.
|
||||
|
Loading…
Reference in New Issue
Block a user