ClickHouse/dbms/src/Storages/MergeTree/ReplicatedMergeTreeCleanupThread.h
Vitaliy Lyudvichenko 1e29795cf9 Fix race condition between cleanup and fetch thread. [#CLICKHOUSE-2989]
It was happening during ALTERs.
TODO: stop fetches during ALTER.
2017-05-25 13:08:52 +03:00

46 lines
843 B
C++

#pragma once
#include <common/logger_useful.h>
#include <thread>
namespace DB
{
class StorageReplicatedMergeTree;
/** Removes obsolete data from a table of type ReplicatedMergeTree.
*/
class ReplicatedMergeTreeCleanupThread
{
public:
ReplicatedMergeTreeCleanupThread(StorageReplicatedMergeTree & storage_);
~ReplicatedMergeTreeCleanupThread()
{
if (thread.joinable())
thread.join();
}
private:
StorageReplicatedMergeTree & storage;
Logger * log;
std::thread thread;
void run();
void iterate();
/// Remove old records from ZooKeeper.
void clearOldLogs();
/// Remove old block hashes from ZooKeeper. This makes a leading replica.
void clearOldBlocks();
/// TODO Removing old quorum/failed_parts
/// TODO Removing old nonincrement_block_numbers
};
}