This commit is contained in:
Michael Kolupaev 2014-07-25 18:31:50 +04:00
parent 876f4144f1
commit 18eb2d8b8f

View File

@ -1039,7 +1039,7 @@ bool StorageReplicatedMergeTree::queueTask(BackgroundProcessingPool::Context & p
void StorageReplicatedMergeTree::mergeSelectingThread() void StorageReplicatedMergeTree::mergeSelectingThread()
{ {
pullLogsToQueue(); bool need_pull = true;
while (!shutdown_called && is_leader_node) while (!shutdown_called && is_leader_node)
{ {
@ -1047,6 +1047,14 @@ void StorageReplicatedMergeTree::mergeSelectingThread()
try try
{ {
if (need_pull)
{
/// Нужно загрузить новую запись в очередь перед тем, как выбирать куски для слияния.
/// (чтобы кусок добавился в virtual_parts).
pullLogsToQueue();
need_pull = false;
}
size_t merges_queued = 0; size_t merges_queued = 0;
/// Есть ли в очереди или в фоновом потоке мердж крупных кусков. /// Есть ли в очереди или в фоновом потоке мердж крупных кусков.
bool has_big_merge = context.getBackgroundPool().getCounter("replicated big merges") > 0; bool has_big_merge = context.getBackgroundPool().getCounter("replicated big merges") > 0;
@ -1106,11 +1114,9 @@ void StorageReplicatedMergeTree::mergeSelectingThread()
entry.parts_to_merge.push_back(part->name); entry.parts_to_merge.push_back(part->name);
} }
zookeeper->create(zookeeper_path + "/log/log-", entry.toString(), zkutil::CreateMode::PersistentSequential); need_pull = true;
/// Нужно загрузить новую запись в очередь перед тем, как в следующий раз выбирать куски для слияния. zookeeper->create(zookeeper_path + "/log/log-", entry.toString(), zkutil::CreateMode::PersistentSequential);
/// (чтобы кусок добавился в virtual_parts).
pullLogsToQueue();
String month_name = parts[0]->name.substr(0, 6); String month_name = parts[0]->name.substr(0, 6);
for (size_t i = 0; i + 1 < parts.size(); ++i) for (size_t i = 0; i + 1 < parts.size(); ++i)