> (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.

else if (expression->as<ASTAsterisk>())
                    {
                        have_asterisk = true;
                    }
                    else if (!expression->as<ASTLiteral>())
                    {
                        use_columns_from_insert_query = false;
                        break;
                    }
                }
                
                for (const auto & column_name : columns_names)
                {
                    if (!structure_hint.has(column_name) || virtual_column_names.contains(column_name))
                    {
                        use_columns_from_insert_query = false;
                        break;
                    }
                }
                
                
                
                if (use_columns_from_insert_query && !have_asterisk && !columns_names.empty())
                {
                    
                    if (table_function_ptr->getName() == "input")
                        use_columns_from_insert_query = FormatFactory::instance().checkIfFormatSupportsSubsetOfColumns(getInsertFormat());
                    else
                        use_columns_from_insert_query = table_function_ptr->supportsReadingSubsetOfColumns();
                }