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.
bool insertQueryIdOrThrow(const String & query_id, size_t max_queries) const;
    bool insertQueryIdOrThrowNoLock(const String & query_id, size_t max_queries, const std::lock_guard<std::mutex> &) const;
    
    void removeQueryId(const String & query_id) const;
    void removeQueryIdNoLock(const String & query_id, const std::lock_guard<std::mutex> &) const;
    
    DataTypePtr getPartitionValueType() const;
    
    Block getSampleBlockWithVirtualColumns() const;
    
    
    Block getBlockWithVirtualPartColumns(const MergeTreeData::DataPartsVector & parts, bool one_part, bool ignore_empty = false) const;
    
    SimpleIncrement insert_increment;
    bool has_non_adaptive_index_granularity_parts = false;
    
    
    
    
    
    
    DataParts currently_moving_parts;
    
    mutable std::mutex moving_parts_mutex;
    PinnedPartUUIDsPtr getPinnedPartUUIDs() const;