> (you don't have to strictly follow this form)

**Use case**

Sometimes, for really sophisticated scenarios it can be hard to control the amount of in-progress backups run externally. For the purpose of simpler control we can introduce server-level setting which disallows running concurrent backups of any type. 

Something like this in `config.xml` (enabled by default):
`<allow_concurrent_backups>true</allow_concurrent_backups>`

**Describe the solution you'd like**

It's important that backups can be executed in distributed way on multiple servers. Need to take it into account.

**Describe alternatives you've considered**
External check of `system.backups` table, but it can be complex.

backup_open_params.backup_info = backup_info;
        backup_open_params.base_backup_info = restore_settings.base_backup_info;
        backup_open_params.password = restore_settings.password;
        BackupPtr backup = BackupFactory::instance().createBackup(backup_open_params);
        setNumFilesAndSize(restore_id, backup->getNumFiles(), backup->getUncompressedSize(), backup->getCompressedSize());
        String current_database = context->getCurrentDatabase();
        
        
        ClusterPtr cluster;
        bool on_cluster = !restore_query->cluster.empty();
        if (on_cluster)
        {
            restore_query->cluster = context->getMacros()->expand(restore_query->cluster);
            cluster = context->getCluster(restore_query->cluster);
            restore_settings.cluster_host_ids = cluster->getHostIDs();
            
            
            
            auto addresses = cluster->filterAddressesByShardOrReplica(restore_settings.shard_num, restore_settings.replica_num);
            for (const auto * address : addresses)
            {
                restore_settings.host_id = address->toString();
                auto restore_elements = restore_query->elements;
                String addr_database = address->default_database.empty() ? current_database : address->default_database;
                for (auto & element : restore_elements)
                    element.setCurrentDatabase(addr_database);
                RestorerFromBackup dummy_restorer{restore_elements, restore_settings, nullptr, backup, context};
                dummy_restorer.run(RestorerFromBackup::CHECK_ACCESS_ONLY);
            }
        }