For some reasons when we delete a MergeTree Part in atomic way something may go wrong - and leave the `delete_tmp_*` folder or it's part on disk. This may lead to a disk space consumption over time.

It's suggested to delete this folders at least at server start-up. Current solution with `clearOldTemporaryDirectories()` doesn't work because this method is called periodically from a thread without any locks or advisory on folders - it may cause the race conditions.
SpacePtr getDestinationForMoveTTL(const TTLDescription & move_ttl, bool is_insert = false) const;
    
    
    bool isPartInTTLDestination(const TTLDescription & ttl, const IMergeTreeDataPart & part) const;
    
    
    
    size_t getTotalMergesWithTTLInMergeList() const;
    using WriteAheadLogPtr = std::shared_ptr<MergeTreeWriteAheadLog>;
    WriteAheadLogPtr getWriteAheadLog();
    MergeTreeDataFormatVersion format_version;
    
    const MergingParams merging_params;
    bool is_custom_partitioned = false;
    
    Int64 minmax_idx_date_column_pos = -1; 
    Int64 minmax_idx_time_column_pos = -1; 
    
    static ExpressionActionsPtr getMinMaxExpr(const KeyDescription & partition_key, const ExpressionActionsSettings & settings);
    
    static Names getMinMaxColumnsNames(const KeyDescription & partition_key);
    
    static DataTypes getMinMaxColumnsTypes(const KeyDescription & partition_key);
    ExpressionActionsPtr getPrimaryKeyAndSkipIndicesExpression(const StorageMetadataPtr & metadata_snapshot) const;
    ExpressionActionsPtr getSortingKeyAndSkipIndicesExpression(const StorageMetadataPtr & metadata_snapshot) const;
    
    
    CompressionCodecPtr getCompressionCodecForPart(size_t part_size_compressed, const IMergeTreeDataPart::TTLInfos & ttl_infos, time_t current_time) const;
    std::lock_guard<std::mutex> getQueryIdSetLock() const { return std::lock_guard<std::mutex>(query_id_set_mutex); }