// // Created by Kirill Zhukov on 20.04.2025. // #ifndef COMPACTOR_H #define COMPACTOR_H #include #include #include #include "utils/datastructures/LFSkipList.h" #include "utils/io/SSTableIO.h" #include "utils/hash/Hash128.h" namespace usub::utils { class Compactor { public: explicit Compactor(VersionManager& vm); void add_sstable_l0(const std::string& filename); void run(); private: void compact_level0(); void compact_level1(); private: std::vector level0_files; std::vector level1_files; std::vector level2_files; std::atomic running{true}; std::thread background_thread; VersionManager& version_manager; }; // utils } // usub #endif //COMPACTOR_H