ReplicatedMergeTreeCleanupThread.h 931 字节
Newer Older
1 2
#pragma once

3
#include <Core/Types.h>
4
#include <common/logger_useful.h>
5
#include <thread>
6
#include <map>
7 8 9 10 11 12 13 14


namespace DB
{

class StorageReplicatedMergeTree;


F
f1yegor 已提交
15
/** Removes obsolete data from a table of type ReplicatedMergeTree.
16 17 18 19
  */
class ReplicatedMergeTreeCleanupThread
{
public:
20
    ReplicatedMergeTreeCleanupThread(StorageReplicatedMergeTree & storage_);
21

22 23 24 25 26
    ~ReplicatedMergeTreeCleanupThread()
    {
        if (thread.joinable())
            thread.join();
    }
27 28

private:
29 30 31
    StorageReplicatedMergeTree & storage;
    Logger * log;
    std::thread thread;
32

33 34
    void run();
    void iterate();
35

F
f1yegor 已提交
36
    /// Remove old records from ZooKeeper.
37
    void clearOldLogs();
38

F
f1yegor 已提交
39
    /// Remove old block hashes from ZooKeeper. This makes a leading replica.
40
    void clearOldBlocks();
41

42 43
    std::map<String, Int64> cached_block_ctime;

F
f1yegor 已提交
44 45
    /// TODO Removing old quorum/failed_parts
    /// TODO Removing old nonincrement_block_numbers
46 47 48 49
};


}