• recover : A recovery thread retrieves data from a local checkpoint. A recovery thread specified as such never acts as a query thread. 

It is also possible to combine the existing main  and rep  threads in either of two ways: 

•Into a single thread by setting either one of these arguments to 0. When this is done, the resulting combined thread is shown with the name main_rep  in the ndbinfo.threads  table. 

•Together with the recv  thread by setting both ldm  and tc  to 0, and setting recv  to 1. In this case, the combined thread is named main_rep_recv . 

In addition, the maximum numbers of a number of existing thread types have been increased. The new maximums, including those for query threads and recovery threads, are listed here: 

•LDM: 332 

•Query: 332 

•Recovery: 332 

•TC: 128 

•Receive: 64 

•Send: 64 

•Main: 2 

Maximums for other thread types remain unchanged. 

For more information, see the descriptions of the ThreadConfig  parameter and the ndbinfo.threads  table. 

Also, as the result of work done relating to this task, NDB  now employs mutexes to protect job buffers when using more than 32 block threads. While this can cause a slight decrease in performance (1 to 2 percent in most cases), it also significantly reduces the amount of memory required by very large configurations. For example, a setup with 64 threads which used 2 GB of job buffer memory prior to NDB 8.0.23 should require only about 1 GB instead in NDB 8.0.23 and later. In our testing this has resulted in an overall improvement on the order of 5 percent in the execution of very complex queries. 

• ndbmtd Thread Auto-Configuration.  Beginning with NDB 8.0.23, it is possible to employ automatic configuration of threads for multi-threaded data nodes using the ndbmtd  configuration parameter AutomaticThreadConfig . When this parameter is set to 1, NDB  sets up thread assignments automatically, based on the number of processors available to applications, for all thread supported thread types, including the new query  and recover  thread types described in the previous item. If 

