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.
{
    if (disk->supportZeroCopyReplication())
    {
        FreezeMetaData meta;
        meta.fill(*this);
        meta.save(disk, backup_part_path);
    }
}
class ReplicatedMergeTreeRestoreTask : public IRestoreTask
{
public:
    ReplicatedMergeTreeRestoreTask(
        const std::shared_ptr<StorageReplicatedMergeTree> & storage_,
        const std::unordered_set<String> & partition_ids_,
        const BackupPtr & backup_,
        const StorageRestoreSettings & restore_settings_,
        const std::shared_ptr<IRestoreCoordination> & restore_coordination_)
        : storage(storage_)
        , partition_ids(partition_ids_)
        , backup(backup_)
        , restore_settings(restore_settings_)
        , restore_coordination(restore_coordination_)
    {
    }
    RestoreTasks run() override