Multi-threading aspect of data restoration process


The MSP360 Backup software performs backup operations by chunking the copied source files into smaller pieces and then processing and uploading them in-parallel via multiple threads. Threads and data chunking are important parameters for optimization of backup processes, but the former parameter also has its merit for the data restoration operations. This article is an overview of how the multi-threading is applied by the MSP360 Backup software in regards to restore.

Legacy backup format data restoration

Due to certain limitations of the original (now legacy) backup format design, there is no multi-threading feature for restoration of the corresponding backup data.

Regardless of the legacy-type backup specification (files, image, SQL, MS Exchange, VM), the restore is performed entirely in only one thread. This reduces the efficiency as well as settings flexibility of such a restore.

This important technical challenge, among others, eventually led to development of a new backup format and implementation of a restore multi-threading for it.

New backup format data restoration

Multi-threading for the new backup format (NBF) data restoration can be divided into two main parts:

  1. Data downloading multi-threading

When the NBF backup data starts getting requested and downloaded from the destination storage, the downloading is performed in accordance with the same threading settings as for backup (Backup software options -> Advanced -> Thread count):

By default, the value is 6. This means that the data downloading is pefromed simultaneously by 6 parallel threads. With a sufficient network bandwidth capacity, this provides an overall much faster backup data delivery from the storage to the target machine.

If needed, this parameter can be manually adjusted up or down, depending mainly on the aforementioned available network bandwith capacity (can be measured with many tools, including but not limited to Ookla Speed Test).

  1. Data processing multi-threading

The downloaded parts of the NBF backup data need to be processed further (decompressed, decrypted, reconstructed, and verified with MD5 checksum) once downloaded. That workload is also multi-threaded, however, the number of parallel threads for its handling is automatically determined by the number of physical processing cores present on the machine's CPU.

The number of CPU cores can be checked either via the system information page of your operating system or a web-site of your CPU manufacturer.

For example, if your machine is equipped with an Intel Core i5-11400H CPU, it has 6 processing physical cores. By default, it would mean 6 threads for data processing during the NBF data restoration with the MSP360 Backup software. But for the Hyper-Threading Technology-compatible Intel CPUs, this number will be doubled to 12 due to each physical core having an extra Hyper-Threading virtual core.

Same applies for other CPUs from other manufacturers in a corresponding manner.

The data processing multi-threading parameter cannot be adjusted manually through usual means. The configuration file "enginesettings.list" stored in the Backup software's settings folder contains the parameter "MaxParallelBlocks" with a default value at 0.

This exact value (0) means that the MSP360 Backup software utilizes the number of threads for NBF data restoration processing in full accordance with the principle explained above. In absolute majority of restore situations it is optimal and not recommended for any manual adjustment. If necessary, a deviation from that value can be considered in a conversation with an MSP360 support engineer after evaluating a particular NBF data restoration case.

Multi-threading capabilites of the NBF backups made data restoration faster and more robust. We aim to further improve restore efficiency based on internal research and development as well as on feedback of our clients.