dbms: lowered max delay of insert [#METR-11520].

This commit is contained in:
Alexey Milovidov 2014-06-20 22:45:19 +04:00
parent a83915b62c
commit 653c138564
2 changed files with 5 additions and 1 deletions

View File

@ -13,6 +13,9 @@
#define DBMS_DEFAULT_RECEIVE_TIMEOUT_SEC 300
#define DBMS_DEFAULT_POLL_INTERVAL 10
/// Насколько секунд можно максимально задерживать вставку в таблицу типа MergeTree, если в ней много недомердженных кусков.
#define DBMS_MAX_DELAY_OF_INSERT 200.0
/// При записи данных, для сжатия выделяется буфер размером max_compress_block_size. При переполнении буфера или если в буфер
/// записано данных больше или равно, чем min_compress_block_size, то при очередной засечке, данные так же будут сжиматься
/// В результате, для маленьких столбцов (числа 1-8 байт), при index_granularity = 8192, размер блока будет 64 KБ.

View File

@ -725,7 +725,8 @@ void MergeTreeData::delayInsertIfNeeded()
{
double delay = std::pow(settings.insert_delay_step, parts_count - settings.parts_to_delay_insert);
delay /= 1000;
delay = std::min(delay, 5 * 60.); /// Ограничим задержку 5 минутами.
delay = std::min(delay, DBMS_MAX_DELAY_OF_INSERT);
LOG_INFO(log, "Delaying inserting block by "
<< std::fixed << std::setprecision(4) << delay << "s because there are " << parts_count << " parts");
std::this_thread::sleep_for(std::chrono::duration<double>(delay));