ClickHouse/dbms/include/DB/Storages/MergeTree/ReplicatedMergeTreeAlterThread.h
2016-07-31 06:53:16 +03:00

46 lines
1010 B
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <thread>
#include <zkutil/Types.h>
#include <DB/Core/Types.h>
#include <common/logger_useful.h>
namespace DB
{
class StorageReplicatedMergeTree;
/** Следит за изменением структуры таблицы в ZooKeeper и выполняет необходимые преобразования.
*
* NOTE Это не имеет отношения к манипуляциям с партициями,
* которые обрабатываются через очередь репликации.
*/
class ReplicatedMergeTreeAlterThread
{
public:
ReplicatedMergeTreeAlterThread(StorageReplicatedMergeTree & storage_);
~ReplicatedMergeTreeAlterThread()
{
need_stop = true;
wakeup_event->set();
if (thread.joinable())
thread.join();
}
private:
void run();
StorageReplicatedMergeTree & storage;
Logger * log;
zkutil::EventPtr wakeup_event { std::make_shared<Poco::Event>() };
std::atomic<bool> need_stop { false };
std::thread thread;
};
}