`DataTypeFactory::get` locks a mutex inside shared a context, there was a case when many threads were locked inside it

https://pastila.nl/?0043b3e6/c557368f4cf0eb87a3c6f2cc162bc693

It is not clear which thread locked the mutex for a long time. However, it may be possible to lock less inside `DataTypeFactory::get`.
mutable std::mutex zookeeper_mutex;
    mutable zkutil::ZooKeeperPtr zookeeper;                 
    ConfigurationPtr zookeeper_config;                      
#if USE_NURAFT
    mutable std::mutex keeper_dispatcher_mutex;
    mutable std::shared_ptr<KeeperDispatcher> keeper_dispatcher;
#endif
    mutable std::mutex auxiliary_zookeepers_mutex;
    mutable std::map<String, zkutil::ZooKeeperPtr> auxiliary_zookeepers;    
    ConfigurationPtr auxiliary_zookeepers_config;           
    String interserver_io_host;                             
    UInt16 interserver_io_port = 0;                         
    String interserver_scheme;                              
    MultiVersion<InterserverCredentials> interserver_io_credentials;
    String path;                                            
    String flags_path;                                      
    String user_files_path;                                 
    String dictionaries_lib_path;                           
    String user_scripts_path;                               
    String user_defined_path;                               
    ConfigurationPtr config;                                
    String tmp_path;                                        
    mutable VolumePtr tmp_volume;                           
    mutable std::unique_ptr<EmbeddedDictionaries> embedded_dictionaries;    
    mutable std::unique_ptr<ExternalDictionariesLoader> external_dictionaries_loader;
    mutable std::unique_ptr<ExternalUserDefinedExecutableFunctionsLoader> external_user_defined_executable_functions_loader;
    mutable std::unique_ptr<ExternalModelsLoader> external_models_loader;
    ExternalLoaderXMLConfigRepository * external_models_config_repository = nullptr;
    scope_guard models_repository_guard;