This enhancement is implemented as follows: 

1. The default value for BuildIndexThreads  is changed from 0 to 128. This means that offline ordered index builds are now multithreaded by default. 

2. The default value for TwoPassInitialNodeRestartCopy  is changed from false  to true . This means that an initial node restart first copies all data from a “live”  node to one that is starting —without creating any indexes—builds ordered indexes offline, and then again synchronizes its data with the live node, that is, synchronizing twice and building indexes offline between the two synchonizations. This causes an initial node restart to behave more like the normal restart of a node, and reduces the time required for building indexes. 

3. A new thread type ( idxbld ) is defined for the ThreadConfig  configuration parameter, to allow locking of offline index build threads to specific CPUs. 

In addition, NDB  now distinguishes the thread types that are accessible to ThreadConfig  by these two criteria: 

1. Whether the thread is an execution thread. Threads of types main , ldm , recv , rep , tc , and send are execution threads; thread types io , watchdog , and idxbld  are not. 

2. Whether the allocation of the thread to a given task is permanent or temporary. Currently all thread types except idxbld  are permanent. 

For additonal information, see the descriptions of the indicated parameters in the Manual. (Bug #25835748, Bug #26928111) 

• logbuffers table backup process information.  When performing an NDB backup, the ndbinfo.logbuffers  table now displays information regarding buffer usage by the backup process on each data node. This is implemented as rows reflecting two new log types in addition to REDO  and DD-UNDO . One of these rows has the log type BACKUP-DATA , which shows the amount of data buffer used during backup to copy fragments to backup files. The other row has the log type BACKUP-LOG , which displays the amount of log buffer used during the backup to record changes made after the backup has started. One each of these log_type  rows is shown in the logbuffers  table for each data node in the cluster. Rows having these two log types are present in the table only while an NDB backup is currently in progress. (Bug #25822988) 

• ndbinfo.processes table on Windows.  The process ID of the monitor process used on Windows platforms by RESTART  to spawn and restart a mysqld  is now shown in the processes  table as an angel_pid . 

• String hashing improvements.  Prior to NDB 8.0, all string hashing was based on first transforming the string into a normalized form, then MD5-hashing the resulting binary image. This could give rise to some performance problems, for the following reasons: 

•The normalized string is always space padded to its full length. For a VARCHAR , this often involved adding more spaces than there were characters in the original string. 

•The string libraries were not optimized for this space padding, which added considerable overhead in some use cases. 

•The padding semantics varied between character sets, some of which were not padded to their full length. 

•The transformed string could become quite large, even without space padding; some Unicode 9.0 collations can transform a single code point into 100 bytes or more of character data. 

