Method, electronic device and computer program product for managing backup system

By obtaining the state of the backup system and using neural network to adjust the number of threads and buffer size, the problem that traditional solutions cannot be applied to solid-state disks is solved, and efficient backup and performance improvement on solid-state disks are achieved.

CN114185711BActive Publication Date: 2025-08-22EMC IP HLDG CO LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202010965809.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-09-15
Publication Date
2025-08-22
Estimated Expiration
2040-09-15

AI Technical Summary

Technical Problem

The traditional backup system optimization solution for hard disk-based backup systems cannot be applied to solid-state disk-based backup systems, resulting in a degradation in backup performance.

Method used

By obtaining the status of the backup system, using the neural network to determine the number of multiple threads and buffer size, dynamically adjust the configuration information of the backup system to adapt to the read and write characteristics of the solid-state disk and improve backup performance.

Benefits of technology

It realizes efficient data backup on solid-state disks, reduces management overhead, gives full play to the advantages of solid-state disks, and improves the overall performance of the backup system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114185711B_ABST
    Figure CN114185711B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to methods, electronic devices, and computer program products for managing a backup system. One method includes obtaining the status of a backup system, where the backup system includes a backup server and at least one backup client, the backup server utilizing multiple threads to back up data from the at least one backup client via a buffer to a persistent storage device; determining a reward score corresponding to the status of the backup system; and, based on the status of the backup system and the reward score, determining configuration information for the backup system, the configuration information indicating at least one of the number of multiple threads and the size of the buffer. Embodiments of the present disclosure can dynamically adjust the number of write threads and the buffer size for the persistent storage device based on the status of the backup system, thereby improving the performance of the backup system and reducing the management overhead of the backup system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure generally relate to the field of data storage, and more particularly to methods, electronic devices, and computer program products for managing a backup system. Background Art

[0002] In order to avoid data loss, a backup system is usually used to save data. The backup system usually includes a backup server and a backup client, wherein the backup client is connected to the backup server through a network, and the backup server is used to back up the data at the backup client.

[0003] In traditional backup systems, backup servers typically back up data from backup clients to persistent storage devices such as hard disk drives (HDDs). To improve backup system performance, traditional solutions have proposed several optimization schemes for HDD-based backup systems, taking into account the read and write characteristics of HDDs. With the development of new persistent storage devices such as solid-state drives (SSDs), an increasing number of storage vendors have begun releasing SSD-based backup systems. However, traditional optimization schemes for HDD-based backup systems often fail to apply to SSD-based backup systems. Summary of the Invention

[0004] Embodiments of the present disclosure provide methods, electronic devices, and computer program products for managing a backup system.

[0005] In a first aspect of the present disclosure, a method for managing a backup system is provided. The method includes: obtaining a status of the backup system, the backup system including a backup server and at least one backup client, the backup server utilizing multiple threads to back up data from the at least one backup client via a buffer to a persistent storage device; determining a reward score corresponding to the status of the backup system; and determining configuration information for the backup system based on the status of the backup system and the reward score, the configuration information indicating at least one of the number of threads and the size of the buffer.

[0006] In a second aspect of the present disclosure, an electronic device is provided. The electronic device includes at least one processing unit and at least one memory. The at least one memory is coupled to the at least one processing unit and stores instructions for execution by the at least one processing unit. When executed by the at least one processing unit, the instructions cause the electronic device to perform actions, the actions comprising: obtaining a status of a backup system, the backup system including a backup server and at least one backup client, the backup server utilizing multiple threads to back up data from the at least one backup client via a buffer to a persistent storage device; determining a reward score corresponding to the status of the backup system; and determining configuration information for the backup system based on the status of the backup system and the reward score, the configuration information indicating at least one of the number of threads and the size of the buffer.

[0007] In a third aspect of the present disclosure, a computer program product is provided. The computer program product is tangibly stored in a non-transitory computer storage medium and includes machine-executable instructions. The machine-executable instructions, when executed by a device, cause the device to perform any of the steps of the method described in the first aspect of the present disclosure.

[0008] This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the disclosure, nor is it intended to limit the scope of the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] The above and other objects, features and advantages of the present disclosure will become more apparent through a more detailed description of exemplary embodiments of the present disclosure with reference to the accompanying drawings, wherein like reference numerals generally represent like components throughout the exemplary embodiments of the present disclosure.

[0010] Figure 1 A schematic diagram illustrating an example environment in which embodiments of the present disclosure can be implemented;

[0011] Figure 2 A schematic block diagram of a neural network for managing a backup system according to an embodiment of the present disclosure is shown;

[0012] Figure 3A A schematic diagram for training a performer network according to an embodiment of the present disclosure is shown;

[0013] Figure 3B A schematic diagram for training a critic network according to an embodiment of the present disclosure is shown;

[0014] Figure 4 A flowchart illustrating an example method for managing a backup system according to an embodiment of the present disclosure; and

[0015] Figure 5 A schematic block diagram of an example device that may be used to implement embodiments of the present disclosure is shown.

[0016] In the various drawings, the same or corresponding reference numerals denote the same or corresponding parts. DETAILED DESCRIPTION

[0017] The preferred embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although preferred embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. Rather, these embodiments are provided to make the present disclosure more thorough and complete, and to fully convey the scope of the present disclosure to those skilled in the art.

[0018] As used herein, the term "including" and its variations represent open inclusion, i.e., "including but not limited to." Unless otherwise stated, the term "or" means "and / or." The term "based on" means "based at least in part on." The terms "an example embodiment" and "an embodiment" mean "at least one example embodiment." The term "another embodiment" means "at least one additional embodiment." The terms "first," "second," etc. may refer to different or the same objects. Other explicit and implicit definitions may also be included below.

[0019] As mentioned above, to ensure data loss at the backup client, the data at the backup client needs to be regularly backed up to the storage server. In traditional backup systems, the backup server typically backs up data from the backup client to a hard disk drive (HDD). To improve backup system performance, several optimization schemes for hard disk-based backup systems have been proposed based on the read and write characteristics of HDDs. These schemes include pre-writing data to a buffer before writing to the HDD to reduce HDD seek time and avoiding multiple threads writing to the same HDD.

[0020] With the development of SSDs, more and more storage vendors have begun releasing SSD-based backup systems. SSD read and write operations have their own unique characteristics, such as: 1) A page is the smallest write unit on an SSD, so each write must be aligned to the page to avoid write amplification; 2) When large amounts of data are written, resulting in long write times, the SSD's garbage collection mechanism will affect its read and write performance, so writing data that is too large should be avoided; 3) Multithreading can be used to improve SSD read and write performance, but when a small number of read and write threads already occupy a large amount of the SSD's bandwidth, increasing the number of threads will reduce overall read and write performance.

[0021] An embodiment of the present disclosure proposes a solution for managing a backup system. In this solution, the state of the backup system is acquired, and the backup system includes a backup server and at least one backup client. The backup server uses multiple threads to back up data from at least one backup client to a persistent storage device via a buffer. A reward score corresponding to the state of the backup system is determined. In addition, based on the state of the backup system and the reward score, a neural network is used to determine configuration information for the backup system, and the configuration information indicates at least one of the number of multiple threads and the size of the buffer. In this way, the solution can dynamically adjust the number of write threads and the buffer size for the persistent storage device (e.g., SSD) based on the state of the backup system, thereby improving the performance of the backup system and reducing the management overhead of the backup system. The solution can take into account the read and write characteristics of different persistent storage devices and give full play to the advantages of different persistent storage devices. It should be understood that in addition to being applicable to SSD-based backup systems, the solution is also applicable to backup systems based on other persistent storage devices.

[0022] The embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. Figure 1 A block diagram of an example environment 100 is shown in which embodiments of the present disclosure can be implemented. It should be understood that the structure of environment 100 is described for exemplary purposes only and does not imply any limitation on the scope of the present disclosure.

[0023] like Figure 1 As shown, environment 100 may include a backup manager 110 and a backup system 120. Backup manager 110 may be implemented using, for example, any physical host, server, virtual machine, etc. Backup system 120 may include a backup server 121 and multiple backup clients 122-1, 122-2, and 122-3 (collectively or individually referred to as "backup clients 122"). Backup server 121 and / or backup clients 122 may be implemented using, for example, any physical host, server, virtual machine, etc.

[0024] The backup server 121 is connected to the network ( Figure 1 (not shown) communicates with the backup client 122 and is used to back up data at one or more backup clients 122. Figure 1As shown, the backup server 121 may include a backup processor 123, a buffer 124, and a persistent storage device 125 (e.g., an SSD). The backup processor 123 may receive backup data from the backup client 122 and cache it in the buffer 124 in the memory. When the amount of data in the buffer 124 reaches a certain threshold, the backup processor 123 may write the data in the buffer 124 to the persistent storage device 125. Since the performance of memory read and write operations far exceeds the read and write performance of the persistent storage device 125, backing up the backup data from the backup client 122 to the persistent storage device 125 via the buffer 124 can effectively improve the read and write performance of data backup. To further improve backup performance, the backup processor 123 may use multiple threads to back up the backup data from the backup client 122 to the persistent storage device 125 (e.g., an SSD).

[0025] In some embodiments, the backup manager 110 can obtain a status 101 of the backup system 120. The status 101 can include, for example, a status of the backup server 121 (also referred to as "server status"), status of multiple backup clients 122 (also referred to as "client status"), and / or a network status of a network used by the backup clients 122 to communicate with the backup server 121.

[0026] In some embodiments, the status of backup server 121 may include, for example, at least one of the following: the backup success rate of backup server 121, the storage usage of persistent storage device 125 (e.g., storage space occupancy), CPU usage at backup server 121 (e.g., CPU usage during data backup for one or more backup clients 122), memory usage at backup server 121 (e.g., memory usage during data backup for one or more backup clients 122), and input / output (I / O) operation usage for persistent storage device 125 (e.g., read / write bandwidth usage during data backup for one or more backup clients 122). In some embodiments, the status of each backup client 122 may include, for example, at least one of the following: the number of files to be backed up at backup client 122, the size of data to be backed up at backup client 122, the average execution time of backup tasks for backup client 122, and the success rate of backup tasks for backup client 122 (e.g., 0-100%). In some embodiments, the network status may include, for example, the round-trip latency of the network and / or the network bandwidth available for data backup.

[0027] It should be understood that the above examples of indicators that can serve as the status of the backup system 120 are provided for illustrative purposes only and are not intended to be limiting. In some embodiments, the status of the backup system 120 may include other indicators. In some embodiments, the indicators serving as the status of the backup system 120 may be pre-processed using any known or to-be-developed algorithm (e.g., a batch normalization algorithm) before use. The scope of the present disclosure is not limited in this respect.

[0028] In some embodiments, the backup manager 110 may determine a reward score 102 for the status 101 of the backup system 120. The reward score 102 may be, for example, a reward for the last backup action performed by the backup system 120, which may be obtained based on the status 101 of the backup system 120. In some embodiments, for example, the backup server 121 may include multiple backup tasks for performing data backups for multiple backup clients 122, wherein each backup task may correspond to one backup client 122 and each backup client 122 may correspond to one or more backup tasks (for example, different backup tasks may be created for different data types or different disks at each backup client 122). In some embodiments, the status 101 of the backup system 120 may indicate the execution time and execution result (for example, success or failure) of the last execution of each backup task in the multiple backup tasks. In some embodiments, the backup manager 110 may determine the reward score 102 based on the execution time and execution result of the last execution of each backup task in the multiple backup tasks, as shown in the following formula (1):

[0029]

[0030] Where N represents the number of backup tasks; T n represents the execution time of the last execution of the nth backup task; and P n Represents the execution result of the last execution of the nth backup task, for example, 1 represents success and 0 represents failure. As can be seen from formula (1), when the backup task in the backup system is successfully completed in a shorter time, a higher reward score can be obtained. Reward score 102 can be used to measure the quality of the current status 101 of the backup system 120. Alternatively, in other embodiments, reward score 102 can also be determined based on other information indicated in the status 101 of the backup system 120.

[0031] In some embodiments, the backup manager 110 can determine configuration information 103 for the backup system 120 based on the backup system 120 status 101 and the reward score 102. This configuration information 103 corresponds to the backup action to be performed by the backup system 120. For example, this configuration information 103 indicates the size of the buffer 124 and / or the number of I / O threads used by the backup processor 123. Hereinafter, the "configuration information" for the backup system is sometimes referred to as a "backup action." The backup manager 103 can configure the configuration information 103 to the backup server 121, causing the backup server 121 to perform the corresponding backup action.

[0032] For example, in the initial phase, backup server 121 may only have a small number of I / O threads for persistent storage device 125. At this point, backup server 121 initiates some new backup tasks. Backup manager 110 obtains backup system 120 status 101 and determines that to fully utilize the read and write bandwidth of persistent storage device 125, backup data should be written to persistent storage device 125 as quickly as possible. Therefore, backup manager 110 may determine that the backup action to be performed is to increase the number of I / O threads used by backup processor 123 while reducing the size of buffer 124. For another example, in some cases, backup server 121 may already have a large number of I / O threads for persistent storage device 125. At this point, backup server 121 initiates some new backup tasks. Backup manager 110 obtains backup system 120 status 101 and determines that the read and write bandwidth of persistent storage device 125 is already heavily utilized and that the number of threads should be reduced to improve the execution efficiency of these I / O threads. Therefore, the backup manager 110 may determine that the backup action to be performed is to reduce the number of I / O threads used by the backup processor 123 while increasing the size of the buffer 124 .

[0033] In some embodiments, the backup manager 110 can utilize a neural network to determine the backup action 103 to be performed by the backup system 120 based on the state 101 and the reward score 102 of the backup system 120. This neural network can be designed, for example, based on the Deep Deterministic Policy Gradient (DDPG) algorithm to implement continuous control. The DDPG algorithm is designed based on the Deep Q-Network (DQN) and improves the stability and convergence of the Actor-Critic (Actor-Critic) network, making it more suitable for handling backup planning problems for backup systems.

[0034] Figure 2 FIG. 2 shows a schematic block diagram of a neural network 200 for managing a backup system according to an embodiment of the present disclosure. The neural network 200 can be used, for example, in Figure 1 The backup manager 110 is shown as being implemented therein.

[0035] like Figure 2 As shown, the neural network 200 may generally include a performer network 210 and a critic network 260, both of which may receive the state 101 of the backup system 120. The performer network 210 and the critic network 260 are coupled to each other. The neural network 200 may also include an action gradient module 220 and a policy gradient module 230, both of which are used to update the network parameters of the performer network 210 based on the output of the critic network 260. Hereinafter, the action gradient module 220 and the policy gradient module 230 are also collectively referred to as the "first sub-network" for updating the network parameters of the performer network 210. The neural network 200 may also include a temporal difference (TD) error module 240 and a target Q network 250, both of which are used to update the network parameters of the critic network 260 based on the output of the critic network 260 and the reward score 102 corresponding to the state 101. Hereinafter, the TD error module 240 and the target Q network 250 are also collectively referred to as the "second sub-network" for updating the network parameters of the critic network 260.

[0036] Figure 3A FIG. 2 shows a schematic diagram for training a performer network 210 according to an embodiment of the present disclosure. Figure 3A As shown, the performer network 210 may include a performer evaluation network 211 and a performer target network 212, wherein the network parameters of the performer evaluation network 211 (also referred to as "first network parameters") may be updated as the performer network 210 is trained, and the network parameters of the performer target network 212 are typically determined based on empirical values ​​and may be constant.

[0037] The performer evaluation network 211 and the performer target network 212 may receive the status 301 of the backup system 120 at the current moment (e.g., it may be Figure 1101 shown). The performer evaluation network 211 can determine a backup action 302 at the current moment based on the state 301 obtained at the current moment and the first network parameter. The performer target network 212 can determine a target backup action 303 at the current moment based on the state 301 obtained at the current moment. The backup action 302 and the target backup action 303 can be provided to the critic network 260. The critic network 260 can generate an evaluation 304 for the backup action 302 based on the backup action 302, the target backup action 303, and the state 301 of the backup system 120 at the current moment, and provide the evaluation 304 to the action gradient module 230. The action gradient module 230 can determine an action gradient 305 of the evaluation 304 with respect to the backup action 302, and provide the action gradient 305 to the policy gradient module 220. The policy gradient module 220 can determine a policy gradient 306 of the first network parameter with respect to the backup action 302, wherein the action gradient 305 will determine how fast the policy gradient rises. Policy gradient 306 is used to update the network parameters (i.e., first network parameters) of performer evaluation network 211, so that performer evaluation network 211 determines the backup action at the next moment based on the state of backup system 120 obtained at the next moment (e.g., after backup action 302 is applied to backup system 120) and the updated first network parameters. During the training of performer network 210, the network parameters of policy gradient module 220 and performer evaluation network 211 are updated.

[0038] Figure 3B FIG. 2 shows a schematic diagram for training a reviewer network 260 according to an embodiment of the present disclosure. Figure 3B As shown, the critic network 260 may include a critic evaluation network 261 and a critic target network 262, wherein the network parameters of the critic evaluation network 261 (also referred to as "second network parameters") may be updated as the critic network 260 is trained, and the network parameters of the critic target network 262 are generally determined based on empirical values ​​and may be unchanged.

[0039] The critic evaluation network 261 may receive the backup action 302 at the current moment provided by the performer evaluation network 211, and determine an evaluation 304 for the backup action 302 based on the state 301 of the backup system 120 at the current moment and the second network parameter. The critic target network 262 may receive the target backup action 303 at the current moment provided by the performer target network 212, and determine a target evaluation 307 for the target backup action 303 based on the state 301 of the backup system 120 at the current moment. The evaluation 304 and the target evaluation 307 may be provided to the TD error module 240. The TD error module 240 may determine an error 308 between the evaluation 304 and the target evaluation 307, and provide the error 308 to the target Q network 250. The target Q network 250 may determine the target evaluation 307 based on the reward score 309 corresponding to the state 301 (e.g., which may be as shown in FIG. 2 ). Figure 1 The reward score 102 shown in FIG. 1 and the error 308 are used to generate an output 310 for updating the network parameters (i.e., the second network parameters) of the critic evaluation network 261, so that the critic evaluation network 261 determines the evaluation of the backup action at the next moment provided by the performer evaluation network 211 based on the state of the backup system 120 obtained at the next moment (e.g., after the backup action 302 is applied to the backup system 120) and the updated second network parameters. During the training of the critic network 260, the network parameters of the TD error module 240, the target Q network 250, and the critic evaluation network 261 will be updated.

[0040] In this way, by training the performer network 210 and the critic network 260, Figure 2 The neural network 200 shown can automatically adjust the configuration information (i.e., backup actions) for the backup system 120 in real time based on the acquired status of the backup system 120, thereby improving the performance of the backup system 120. Since a large number of manual operations for managing the backup system are replaced by artificial intelligence, the management overhead of the backup system 120 will be greatly reduced.

[0041] Figure 4 FIG. 4 is a flow chart showing an example method 400 for managing a backup system according to an embodiment of the present disclosure. For example, the method 400 may be performed by Figure 1 The following is performed by the backup manager 110 shown in FIG. Figure 1 It should be understood that the method 400 may also include additional actions not shown and / or may omit actions shown, and the scope of the present disclosure is not limited in this respect.

[0042] At block 410 , the backup manager 110 obtains a status of a backup system, where the backup system includes a backup server and at least one backup client. The backup server utilizes multiple threads to back up data from the at least one backup client to a persistent storage device via a buffer.

[0043] In some embodiments, the status of the backup system includes at least one of: a server status of the backup server; a client status of each of the at least one backup client; and a network status of a network for communicating between the at least one backup client and the backup server.

[0044] In some embodiments, the server status includes at least one of the following: a backup success rate of the backup server; storage usage of the backup server; CPU usage of the backup server; memory usage of the backup server; and input / output operation usage for the persistent storage device.

[0045] In some embodiments, the client status of the backup client includes at least one of the following: the number of files to be backed up at the backup client; the size of data to be backed up at the backup client; the average execution time of backup tasks for the backup client; and the success rate of backup tasks for the backup client.

[0046] In some embodiments, the network status includes at least one of: a round trip delay of the network; and an available network bandwidth of the network.

[0047] In some embodiments, the persistent storage device comprises a solid state disk.

[0048] At block 420 , the backup manager 110 determines a reward score corresponding to the status of the backup system.

[0049] In some embodiments, the backup server includes multiple backup tasks for performing data backup for at least one backup client, and the status of the backup system indicates an execution time and an execution result of a last execution of each of the multiple backup tasks. In some embodiments, determining a reward score includes determining the reward score based on the execution time and the execution result of the last execution of each of the multiple backup tasks.

[0050] At block 430 , the backup manager 110 determines configuration information for the backup system based on the state of the backup system and the reward score, the configuration information indicating at least one of the number of threads and the size of the buffer.

[0051] In some embodiments, determining the configuration information includes: determining the configuration information for the backup system using a neural network based on the status of the backup system and the reward score.

[0052] In some embodiments, the neural network includes a performer network and a critic network, the performer network includes a performer evaluation network and a performer target network, the critic network includes a critic evaluation network and a critic target network, and the neural network further includes a first sub-network for updating first network parameters of the performer evaluation network and a second sub-network for updating second network parameters of the critic evaluation network.

[0053] In some embodiments, the performer evaluation network is configured to determine configuration information for the backup system at the current moment based on the state of the backup system obtained at the current moment and the first network parameter of the performer evaluation network, and the configuration information is provided to the critic evaluation network.

[0054] In some embodiments, the performer target network is configured to determine target configuration information for the backup system at the current moment based on the state of the backup system obtained at the current moment, and the target configuration information is provided to the critic target network.

[0055] In some embodiments, the reviewer evaluation network is configured to determine an evaluation of the configuration information based on the status of the backup system acquired at the current moment and a second network parameter of the reviewer evaluation network, and provide the evaluation to the first sub-network and the second sub-network.

[0056] In some embodiments, the reviewer target network is configured to determine a target evaluation of the target configuration information based on a status of the backup system obtained at a current moment, and the target evaluation is provided to the second sub-network.

[0057] In some embodiments, the first sub-network is configured to update a first network parameter based on the evaluation.

[0058] In some embodiments, the second sub-network is configured to update second network parameters based on a difference between the evaluation and the target evaluation and the reward score.

[0059] Figure 5 1 shows a schematic block diagram of an example device 500 that can be used to implement embodiments of the present disclosure. Figure 1 The backup manager 110 shown may be implemented by the device 500. Figure 5As shown, the device 500 includes a central processing unit (CPU) 501, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 502 or loaded from a storage page 508 into a random access memory (RAM) 503. Various programs and data required for the operation of the device 500 can also be stored in the RAM 503. The CPU 501, ROM 502, and RAM 503 are connected to each other via a bus 504. An input / output (I / O) interface 505 is also connected to the bus 504.

[0060] Various components in device 500 are connected to I / O interface 505, including: input unit 506, such as a keyboard, mouse, etc.; output unit 507, such as various types of displays, speakers, etc.; storage unit 508, such as a magnetic disk, optical disk, etc.; and communication unit 509, such as a network card, modem, wireless communication transceiver, etc. Communication unit 509 allows device 500 to exchange information / data with other devices via a computer network such as the Internet and / or various telecommunication networks.

[0061] The various processes and processing described above, such as method 400, may be performed by processing unit 501. For example, in some embodiments, method 400 may be implemented as a computer software program that is tangibly embodied in a machine-readable medium, such as storage page 508. In some embodiments, part or all of the computer program may be loaded and / or installed onto device 500 via ROM 502 and / or communication unit 509. When the computer program is loaded into RAM 503 and executed by CPU 501, one or more actions of method 400 described above may be performed.

[0062] The present disclosure may be a method, an apparatus, a system and / or a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for executing various aspects of the present disclosure.

[0063] Computer-readable storage media can be a tangible device that can hold and store instructions used by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (non-exhaustive list) of computer-readable storage media include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination thereof. The computer-readable storage media used herein is not to be interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (for example, a light pulse by a fiber optic cable), or an electrical signal transmitted by a wire.

[0064] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in the computer-readable storage medium in each computing / processing device.

[0065] The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, and conventional procedural programming languages ​​such as "C" language or similar programming languages. Computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., utilizing an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be personalized by utilizing the state information of the computer-readable program instructions. The electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present disclosure.

[0066] Various aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.

[0067] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine such that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device is generated that implements the functions / actions specified in one or more blocks in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, where these instructions cause the computer, programmable data processing device, and / or other device to operate in a specific manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.

[0068] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more blocks in the flowchart and / or block diagram.

[0069] The flow charts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the systems, methods and computer program products according to multiple embodiments of the present disclosure. In this regard, each box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and the part of the module, program segment or instruction contains one or more executable instructions for realizing the prescribed logical function. In some alternative implementations, the functions marked in the box can also occur in a sequence different from that marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a dedicated hardware-based system that performs the prescribed function or action, or can be implemented by a combination of dedicated hardware and computer instructions.

[0070] While various embodiments of the present disclosure have been described above, the foregoing description is intended to be illustrative, non-exhaustive, and not limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is selected to best explain the principles of the embodiments, their practical applications, or technical improvements to existing technologies, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. A method for managing a backup system, comprising: Obtaining a status of a backup system, the backup system comprising a backup server and at least one backup client, the backup server utilizing multiple threads to back up data from the at least one backup client via a buffer to a persistent storage device, the backup server comprising multiple backup tasks for performing data backup for the at least one backup client, and the status of the backup system indicating an execution time and an execution result of a last execution of each of the multiple backup tasks; Determining a reward score corresponding to the state of the backup system includes: determining the reward score based on the execution time and the execution result of the last execution of each backup task in the plurality of backup tasks; as well as Configuration information for the backup system is determined based on the state of the backup system and the reward score, the configuration information indicating at least one of the plurality of threads and a size of the buffer.

2. The method according to claim 1, wherein the status of the backup system comprises at least one of the following: The server status of the backup server; a client status of each backup client of the at least one backup client; and A network status of a network used for the at least one backup client to communicate with the backup server.

3. The method according to claim 2, wherein the server status comprises at least one of the following: The backup success rate of the backup server; storage usage of the persistent storage device; CPU usage of the backup server; Memory usage of the backup server; and Input / output usage of the persistent storage device.

4. The method according to claim 2, wherein the client status of the backup client comprises at least one of the following: The number of files to be backed up at the backup client; The size of the data to be backed up at the backup client; The average execution time of the backup tasks for the backup client; as well as The success rate of backup tasks for the backup client.

5. The method according to claim 2, wherein the network status comprises at least one of the following: the round-trip delay of the network; and The available network bandwidth of the network.

6. The method of claim 1 , wherein determining the configuration information comprises: The configuration information is determined using a neural network based on the status of the backup system and the reward score.

7. The method of claim 6, wherein the neural network comprises a performer network and a critic network, the performer network comprises a performer evaluation network and a performer target network, the critic network comprises a critic evaluation network and a critic target network, the neural network further comprises a first sub-network for updating a first network parameter of the performer evaluation network and a second sub-network for updating a second network parameter of the critic evaluation network, and wherein: The performer evaluation network is configured to: determine the configuration information for the backup system at the current moment based on the state of the backup system acquired at the current moment and the first network parameter of the performer evaluation network, the configuration information being provided to the critic evaluation network; The performer target network is configured to: determine target configuration information for the backup system at the current moment based on the state of the backup system acquired at the current moment, and the target configuration information is provided to the commentator target network; The reviewer evaluation network is configured to: determine an evaluation of the configuration information based on the state of the backup system acquired at the current moment and the second network parameter of the reviewer evaluation network, and provide the evaluation to the first sub-network and the second sub-network; The reviewer target network is configured to: determine a target evaluation of the target configuration information based on the state of the backup system obtained at the current moment, and the target evaluation is provided to the second sub-network; The first sub-network is configured to: update the first network parameter based on the evaluation; as well as The second sub-network is configured to update the second network parameters based on a difference between the evaluation and the target evaluation and the reward score. The method of claim 1 , wherein the persistent storage device comprises a solid state drive.

9. An electronic device comprising: at least one processing unit; at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the electronic device to perform actions, the actions comprising: Obtaining a status of a backup system, the backup system comprising a backup server and at least one backup client, the backup server utilizing multiple threads to back up data from the at least one backup client via a buffer to a persistent storage device, the backup server comprising multiple backup tasks for performing data backup for the at least one backup client, and the status of the backup system indicating an execution time and an execution result of a last execution of each of the multiple backup tasks; Determining a reward score corresponding to the state of the backup system includes: determining the reward score based on the execution time and the execution result of the last execution of each backup task in the plurality of backup tasks; and Configuration information for the backup system is determined based on the state of the backup system and the reward score, the configuration information indicating at least one of the plurality of threads and a size of the buffer.

10. The electronic device according to claim 9, wherein the status of the backup system comprises at least one of the following: The server status of the backup server; a client status of each backup client of the at least one backup client; and A network status of a network used for the at least one backup client to communicate with the backup server.

11. The electronic device according to claim 10, wherein the server status comprises at least one of the following: The backup success rate of the backup server; storage usage of the persistent storage device; CPU usage of the backup server; Memory usage of the backup server; and Input / output usage of the persistent storage device.

12. The electronic device according to claim 10, wherein the network status comprises at least one of the following: the round-trip delay of the network; and The available network bandwidth of the network.

13. The electronic device of claim 9, wherein determining the configuration information comprises: The configuration information is determined using a neural network based on the status of the backup system and the reward score.

14. The electronic device of claim 13 , wherein the neural network comprises a performer network and a critic network, the performer network comprises a performer evaluation network and a performer target network, the critic network comprises a critic evaluation network and a critic target network, the neural network further comprises a first sub-network for updating a first network parameter of the performer evaluation network and a second sub-network for updating a second network parameter of the critic evaluation network, and wherein: The performer evaluation network is configured to: determine the configuration information for the backup system at the current moment based on the state of the backup system acquired at the current moment and the first network parameter of the performer evaluation network, the configuration information being provided to the critic evaluation network; The performer target network is configured to: determine target configuration information for the backup system at the current moment based on the state of the backup system acquired at the current moment, and the target configuration information is provided to the commentator target network; The reviewer evaluation network is configured to: determine an evaluation of the configuration information based on the state of the backup system acquired at the current moment and the second network parameter of the reviewer evaluation network, and provide the evaluation to the first sub-network and the second sub-network; The reviewer target network is configured to: determine a target evaluation of the target configuration information based on the state of the backup system obtained at the current moment, and the target evaluation is provided to the second sub-network; The first sub-network is configured to: update the first network parameter based on the evaluation; as well as The second sub-network is configured to update the second network parameters based on a difference between the evaluation and the target evaluation and the reward score.

15. The electronic device of claim 9, wherein the persistent storage device comprises a solid state drive.

16. A non-transitory computer-readable medium comprising instructions that, when executed by a processor, perform a method for managing a backup system, the method comprising: Obtaining a status of a backup system, the backup system comprising a backup server and at least one backup client, the backup server utilizing multiple threads to back up data from the at least one backup client via a buffer to a persistent storage device, the backup server comprising multiple backup tasks for performing data backup for the at least one backup client, and the status of the backup system indicating an execution time and an execution result of a last execution of each of the multiple backup tasks; Determining a reward score corresponding to the state of the backup system includes: determining the reward score based on the execution time and the execution result of the last execution of each backup task in the plurality of backup tasks; as well as Configuration information for the backup system is determined based on the state of the backup system and the reward score, the configuration information indicating at least one of the plurality of threads and a size of the buffer.

17. The non-transitory computer-readable medium of claim 16, wherein determining the configuration information comprises: The configuration information is determined using a neural network based on the status of the backup system and the reward score.

Citation Information

Patent Citations

  • Efficient file replication

    US9852140B1