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.
void forgetPartAndMoveToDetached(const DataPartPtr & part, const String & prefix = "", bool restore_covered = false);
    
    void tryRemovePartImmediately(DataPartPtr && part);
    
    
    DataPartsVector grabOldParts(bool force = false);
    
    void rollbackDeletingParts(const DataPartsVector & parts);
    
    void removePartsFinally(const DataPartsVector & parts);
    
    void flushAllInMemoryPartsIfNeeded();
    
    
    size_t clearOldPartsFromFilesystem(bool force = false);
    
    void clearPartsFromFilesystem(const DataPartsVector & parts, bool throw_on_error = true, NameSet * parts_failed_to_delete = nullptr);
    
    size_t clearOldWriteAheadLogs();
    
    
    size_t clearOldTemporaryDirectories(size_t custom_directories_lifetime_seconds);
    size_t clearEmptyParts();
    
    
    void dropAllData();
    
    void dropIfEmpty();