#pragma once #include #include #include #include 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() }; std::atomic need_stop { false }; std::thread thread; }; }