v.24.6Backward Incompatible Changes
Enable Default Asynchronous Loading of Databases and Tables
Enable asynchronous load of databases and tables by default. See theasync_load_databasesin config.xml. While this change is fully compatible, it can introduce a difference in behavior. Whenasync_load_databasesis false, as in the previous versions, the server will not accept connections until all tables are loaded. Whenasync_load_databasesis true, as in the new version, the server can accept connections before all the tables are loaded. If a query is made to a table that is not yet loaded, it will wait for the table's loading, which can take considerable time. It can change the behavior of the server if it is part of a large distributed system under a load balancer. In the first case, the load balancer can get a connection refusal and quickly failover to another server. In the second case, the load balancer can connect to a server that is still loading the tables, and the query will have a higher latency. Moreover, if many queries accumulate in the waiting state, it can lead to a "thundering herd" problem when they start processing simultaneously. This can make a difference only for highly loaded distributed backends. You can set the value ofasync_load_databasesto false to avoid this problem. #57695 (Alexey Milovidov).