Method, device and computer program product for scheduling backup tasks

By detecting and adjusting the execution priority of backup tasks, the problem that backup tasks in the existing technology cannot be completed as planned is solved, ensuring timely backup of important data and efficient utilization of system resources, and improving the recovery point target and service level agreement Satisfaction.

CN112764890BActive Publication Date: 2024-12-27EMC IP HLDG CO LLC
View PDF 10 Cites 0 Cited by

Patent Information

Application Number
CN201911001247.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2019-10-21
Publication Date
2024-12-27
Estimated Expiration
2039-10-21

AI Technical Summary

Technical Problem

In existing data protection systems, the scheduling of backup tasks cannot be completed as expected, resulting in the inability to ensure recovery point targets (RPOs) and service level agreements (SLAs). Since system resources are occupied by long-term tasks, important data cannot be protected as planned.

Method used

By detecting the generation of target backup tasks, obtaining their predetermined execution information, determining execution priority, and adding them to the waiting queue based on the priority of existing tasks in the waiting queue, dynamically adjusting the execution order of backup tasks to ensure the important data Timely backup.

Benefits of technology

It achieves better utilization of system resources, ensures that important data meets the recovery point target, improves the satisfaction of service level agreements, and avoids system performance degradation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112764890B_ABST
    Figure CN112764890B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to methods, devices, and computer program products for scheduling backup tasks. A method for scheduling backup tasks is proposed, comprising: in response to detecting that a target backup task is generated, obtaining scheduled execution information of the target backup task; determining the execution priority of the target backup task based on the scheduled execution information of the target backup task; determining the execution priority of existing backup tasks in a waiting queue; and adding the target backup task to the waiting queue based on the execution priority of the existing backup tasks and the execution priority of the target backup task. Through the embodiments of the present disclosure, system resources can be better utilized to achieve recovery point targets for important data, thereby ensuring a service level agreement.
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 information processing, and more particularly to a method, device, and computer program product for scheduling backup tasks. Background Art

[0002] In current data protection systems, backup tasks are scheduled only according to the time specified by the administrator. However, due to the increase in system workload, data backup often cannot be performed at the expected time, and it is difficult to know the actual time required to complete the backup task. Therefore, the RPO (recovery point objective) of the data to be protected cannot be ensured. Although users think they have protected the data, the actual backup service level may not meet expectations. Since existing solutions fail to solve this problem and can only let the backup task run to the end, users cannot ensure that their important assets are protected as planned. Summary of the invention

[0003] Embodiments of the present disclosure provide a method, device, and computer program product for scheduling backup tasks.

[0004] In a first aspect of the present disclosure, a method for scheduling backup tasks is provided. The method includes: in response to detecting that a target backup task is generated, obtaining scheduled execution information of the target backup task; determining an execution priority of the target backup task based on the scheduled execution information of the target backup task; determining an execution priority of an existing backup task in a waiting queue; and adding the target backup task to the waiting queue based on the execution priority of the existing backup task and the execution priority of the target backup task.

[0005] In a second aspect of the present disclosure, a device for scheduling backup tasks is provided. The device includes: at least one processing unit; at least one memory, the at least one memory is coupled to the at least one processing unit and stores instructions for being executed by the at least one processing unit, and when the at least one processing unit executes the instructions, the device performs an action, the action including: in response to detecting that a target backup task is generated, obtaining scheduled execution information of the target backup task; determining an execution priority of the target backup task based on the scheduled execution information of the target backup task; determining an execution priority of an existing backup task in a waiting queue; and adding the target backup task to the waiting queue based on the execution priority of the existing backup task and the execution priority of the target backup task.

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

[0007] 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

[0008] 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 in conjunction with the accompanying drawings, wherein like reference numerals generally represent like components throughout the exemplary embodiments of the present disclosure.

[0009] Figure 1 A block diagram illustrating an example backup system in which embodiments of the present disclosure can be implemented;

[0010] Figure 2 A flowchart of an example method for scheduling backup tasks according to an embodiment of the present disclosure is shown;

[0011] Figure 3 A flowchart of an example method for scheduling backup tasks according to an embodiment of the present disclosure is shown;

[0012] Figure 4 A flowchart showing an example method of determining adjustment parameters for scheduling of backup tasks according to an embodiment of the present disclosure; and

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

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

[0015] The preferred embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although the 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. On the contrary, 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.

[0016] As used herein, the term "including" and its variations mean 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.

[0017] In current data protection systems, backup tasks are scheduled by the system administrator at the specified backup time. Since it is difficult to know how long it will take to complete all backup tasks, such scheduling will result in failure to ensure that all backup tasks are completed as planned. For example, if the backup cycle in the data protection system is set to two hours, but there are many backup tasks that take more than two hours, then the subsequent backup tasks can only be delayed.

[0018] Currently, there is no solution to solve this problem except to let the backup task run to completion. This may lead to serious problems: because system resources are occupied by tasks that take a long time to execute, the important data to be protected will not meet the recovery point objective (RPO). For example, although the administrator specifies that important data sets should be backed up at regular intervals (such as 15 minutes), the previous backup task takes several hours to complete. When the expected backup time arrives, the system is still occupied by the previous backup task that is running, so the expected backup every 15 minutes cannot be achieved. In addition, if the backup task fills up the task queue, it will cause a sharp drop in system performance.

[0019] The embodiments of the present disclosure propose a solution for scheduling backup tasks to solve one or more of the above problems and other potential problems. The solution sets the execution priority of the backup tasks and sorts the backup tasks according to the execution priority, thereby ensuring that more important assets are protected as much as possible, making better use of system resources to achieve the recovery point objective (RPO) for important data, and ensuring the service level agreement (SLA).

[0020] Figure 1 1 shows a block diagram of an example backup system 100 in which embodiments of the present disclosure can be implemented. Figure 1 As shown, the backup system 100 includes a scheduling device 110 and one or more backup devices 120-1 to 120-4 (collectively referred to as backup devices 120). The various methods according to the embodiments of the present disclosure can be implemented at the scheduling device 110. It should be understood that the structure of the backup system 100 is described only for exemplary purposes and does not imply any limitation on the scope of the present disclosure. For example, the embodiments of the present disclosure can also be applied to systems different from the backup system 100. It should be understood that the specific numbers of the above-mentioned devices are given only for illustrative purposes and do not imply any limitation on the scope of the present disclosure. For example, the embodiments of the present disclosure can also be applied to more or fewer devices.

[0021] The scheduling device 110 is a device that determines the priority of the backup task and schedules the backup task according to the priority. In some embodiments, the backup task can be, for example, a task generated according to a predetermined policy that specifies when to perform backup on which device or devices. The scheduling device 110 can be, for example, a computer, a virtual machine, a server, etc., and the present disclosure is not limited in this respect. The backup device 120 is a device that stores data, assets, etc. to be protected and performs backup tasks on it. The backup device 120 can be, for example, a computer, a virtual machine, a server, etc., and the present disclosure is not limited in this respect. The scheduling device 110 and the backup device 120 communicate with each other via a network, and the network can be, for example, the Internet, an intranet, etc.

[0022] Figure 2 FIG. 2 is a flowchart of an exemplary method 200 for scheduling backup tasks according to an embodiment of the present disclosure. For example, the method 200 may be performed as follows: Figure 1 The method 200 is performed by the scheduling device 110 shown in the figure. It should be understood that the method 200 can also be performed by other devices, and the scope of the present disclosure is not limited in this respect. It should also be understood that the method 200 can also include additional actions not shown and / or can omit the actions shown, and the scope of the present disclosure is not limited in this respect.

[0023] The following combination Figure 1 and Figure 2 The method 200 will be described in detail.

[0024] The scheduling device 110 may generate a backup task. In some embodiments, the scheduling device 110 may generate a backup task according to a predetermined policy, and the predetermined policy may specify a time to generate the backup task. Alternatively or additionally, in other embodiments, the scheduling device 110 may generate a backup task according to input from a system administrator or user. As mentioned above, a backup task may specify when to back up which data on which devices.

[0025] At 210, the scheduling device 110 detects whether a target backup task is generated. In some embodiments, the scheduling device 110 may periodically detect whether a target backup task is generated. Alternatively or additionally, in other embodiments, the scheduling device 110 may receive a notification when a target backup task is generated.

[0026] If the scheduling device 110 detects that the target backup task is generated, the scheduling device 110 obtains scheduled execution information of the target backup task at 220 .

[0027] In some embodiments, the scheduled execution information may be a predetermined priority of the target backup task specified by the user. Additionally, in some preferred embodiments, the predetermined priority may be an integer. For example, the predetermined priority may be any integer from 1 to 10.

[0028] Additionally or alternatively, in some other embodiments, the scheduled execution information may be a scheduled execution interval of the target backup task specified by the user. In some preferred embodiments, the scheduled execution interval indicates the importance level of the data. It is easy to understand that the smaller the scheduled execution interval, the more important the data to be backed up is. For example, the scheduled execution interval may be any time interval from 15 minutes to 1 month.

[0029] Additionally or alternatively, in some other embodiments, the predetermined execution information may be an estimated execution duration of the target backup task. Although it is difficult to estimate the execution duration of a backup task very accurately, some methods may be used to roughly and accurately estimate the execution duration of a backup task. For example, the execution duration may be estimated based on historical data of backup task execution using an autoregressive integrated moving average (ARMIA) model. Then, a prediction equation may be used to calculate the task execution time for the current time. It should be understood that the method of estimating the execution duration of a backup task is described for exemplary purposes only and does not imply any limitation on the scope of the present disclosure. For example, other methods may also be used to estimate the execution duration of a backup task, and the present disclosure is not limited in this respect.

[0030] At 230 , the scheduling device 110 determines the execution priority of the target backup task according to the scheduled execution information of the target backup task.

[0031] In some embodiments, the scheduling device 110 may obtain an adjustment parameter for the scheduled execution information of the target backup task, and determine the execution priority of the target backup task according to the scheduled execution information of the target backup task and the adjustment parameter. The adjustment parameter indicates the influence of different scheduled execution information on the execution priority to be determined. The method for determining the execution priority of the target backup task in some preferred embodiments will be described in detail later.

[0032] At 240 , the scheduling device 110 determines the execution priority of the existing backup tasks in the waiting queue.

[0033] In some embodiments, similar to the description above regarding the target backup task, the scheduling device 110 may obtain the scheduled execution information of the existing backup task in the waiting queue. Similarly, similar to the description above regarding the target backup task, the scheduled execution information of the existing backup task may be the scheduled priority and / or the scheduled execution interval and / or the estimated execution duration of the existing backup task. No further details will be given here.

[0034] Additionally, in some other embodiments, the scheduling device 110 may also determine the waiting time of the existing backup task in the waiting queue. In some embodiments, the waiting time may be set as the increment between the current timestamp of the system and the time when the existing backup task was created.

[0035] Additionally, in some other embodiments, the scheduling device 110 may obtain scheduled execution information for an existing backup task and adjustment parameters of the waiting time.

[0036] The following describes in detail a model for determining the execution priority of existing backup tasks in the waiting queue in some preferred embodiments:

[0037] Pr=Pc×10+a*log R+b*log Bc*log W (1)

[0038] Pc∈R|1≤Pc≤10

[0039] R∈N|15≤R≤44640

[0040] B∈N|0<B≤44640

[0041] W∈N|0≤W≤44640

[0042] 0<a<1; 0<b<1; 0<c<1; a+b+c=1

[0043] Wherein Pr represents the execution priority to be determined, Pc represents the scheduled priority of the backup task, R represents the scheduled execution interval, B represents the expected execution duration, W represents the waiting time, and a, b, and c are adjustment parameters for the scheduled execution interval, the expected execution duration, and the waiting time, respectively.

[0044] In the described preferred embodiment, according to the value range of each variable in formula (1), when Pc is an integer, the interval of the value obtained by Pc×10 is 10, and the maximum value obtained by a*log R+b*log Bc*log W is less than 10. Therefore, a higher predetermined priority will result in a higher execution priority. Only when multiple backup tasks have the same predetermined priority, the scheduling device 110 will determine the execution priority of the multiple backup tasks based on the predetermined execution interval, the expected execution duration and the waiting time. In addition, it can be seen from formula (1) that the execution priority is positively correlated with the predetermined execution interval, positively correlated with the expected execution duration, and negatively correlated with the waiting time. Therefore, a smaller predetermined execution interval, a shorter expected execution duration and a longer waiting time will result in a higher execution priority. It should be understood that the value range of each variable in formula (1) is defined only for exemplary purposes, and does not imply any limitation on the scope of the present disclosure. For example, each variable in formula (1) can also be defined as other value ranges, and the present disclosure is not limited in this respect.

[0045] The model in the preferred embodiment for determining the execution priority of the target backup task is similar to formula (1), except that there is no term c*log W corresponding to the waiting time.

[0046] In a more preferred embodiment, the model for determining the execution priority of an existing backup task can be described as:

[0047] Pr=Pc×10+0.07*log R+0.78*log B-0.15*log W (2)

[0048] The values ​​of a, b, and c are obtained by evaluating the execution results of a large number of backup tasks. In some embodiments, the execution results of the backup tasks are evaluated in the following manner: if the execution of the backup task meets the SLA, a value of 1 is returned; if the SLA is not met, a value of 0 is returned. Then, the adjustment parameter that gives a better priority can be determined based on the sum returned by a large number of backup tasks. For example, the larger the sum returned, the better the corresponding adjustment parameter. Additionally, in some embodiments, a backup task that completes the backup within the specified expected time is considered to meet the SLA.

[0049] At 250 , the scheduling device 110 adds the target backup task to the waiting queue according to the execution priority of the existing backup task and the execution priority of the target backup task.

[0050] In some embodiments, the scheduling device 110 may sort the target backup task and the existing backup task according to the execution priority of the existing backup task and the execution priority of the target backup task, and then add the target backup task to the waiting queue according to the sorting result. Additionally, in some embodiments, the scheduling device 110 may sort the execution priorities of the existing backup task and the target backup task from high to low, and then insert the target backup task into a suitable position in the waiting queue according to the sorting.

[0051] Additionally, in some preferred embodiments, the scheduling device 110 can use an insertion sorting algorithm to sort, because the waiting queue is relatively ordered, and the use of the insertion sorting algorithm can save time complexity. It should be understood that the insertion sorting algorithm is used for sorting only for exemplary purposes, and does not imply any limitation on the scope of the present disclosure. For example, other sorting algorithms can also be used, and the present disclosure is not limited in this respect.

[0052] In the above exemplary embodiment, the target backup task and the existing backup tasks in the waiting queue are sorted according to their execution priority, so that the backup tasks with higher execution priority can be executed earlier, so that as much data as possible can reach the recovery point objective (RPO) according to the actual system performance, ensuring the service level agreement (SLA).

[0053] Figure 3 FIG. 3 is a flowchart of an exemplary method 300 for scheduling backup tasks according to an embodiment of the present disclosure. For example, the method 300 may be performed as follows: Figure 1 The method 300 is performed by the scheduling device 110 shown in the figure. It should be understood that the method 300 can also be performed by other devices, and the scope of the present disclosure is not limited in this respect. It should also be understood that the method 300 can also include additional actions not shown and / or can omit the actions shown, and the scope of the present disclosure is not limited in this respect.

[0054] At 310, the scheduling device 110 determines whether there is available capacity in the backup system 100. In some embodiments, the scheduling device 110 periodically detects whether there is available capacity to perform the backup task.

[0055] If the scheduling device 110 determines that there is available capacity in the backup system 100 at 310, it determines the execution priority of the multiple existing backup tasks in the waiting queue at 320. This step is generally the same as described above with respect to 240 and will not be repeated here.

[0056] Additionally, in some embodiments, in order to reduce the computational complexity, the scheduling device 110 may predetermine the value related to the scheduled execution information of the existing backup task, and then only calculate the item related to the waiting time of the existing backup task when the waiting queue needs to be sorted, that is, c*log W as shown in formula (1). This is because the scheduled execution information for each backup task is predetermined and unchanged, while the waiting time in the waiting queue changes with the passage of time. Therefore, the scheduling device 110 can use the previously determined execution priority and the current waiting time to re-determine the current execution priority without recalculating all items.

[0057] At 330, the scheduling device 110 sorts the multiple existing backup tasks according to their execution priorities. The sorting method has been mentioned in the description of 250 above and will not be repeated here.

[0058] At 340, the scheduling device 110 removes a predetermined number of existing backup tasks from the waiting queue according to the sorting result. In some embodiments, the scheduling device 110 may sort the existing backup tasks in the waiting queue from high to low according to the execution priority, and then remove the predetermined number of existing backup tasks with the highest sorting from the waiting queue. Additionally, in some embodiments, the predetermined number is determined based on the detected available capacity in the backup system 100. Additionally, in some embodiments, the predetermined number of existing backup tasks with a higher sorting may be moved from the waiting queue to the execution queue.

[0059] At 350, the scheduling device 110 executes the removed existing backup tasks. In some embodiments, the executed backup tasks report their progress and status to the scheduling device 110. Additionally or alternatively, in other embodiments, the completed backup tasks are stored in the task repository. Additionally, in still other embodiments, the information of the completed backup tasks in the task repository can be used to determine the estimated execution duration and optimize the adjustment parameters.

[0060] In the above exemplary embodiment, the backup system can execute an appropriate number of backup tasks when available capacity is detected, and update the execution order of the backup tasks according to the waiting time of the backup tasks in the waiting queue at this time, thereby achieving the purpose of dynamically adjusting the order of the backup tasks.

[0061] Figure 4 FIG. 4 is a flowchart of an exemplary method 400 for determining adjustment parameters for scheduling of backup tasks according to an embodiment of the present disclosure. For example, the method 400 may be performed as follows: Figure 1The method 400 is performed by the scheduling device 110 shown in the figure. It should be understood that the method 400 can also be performed by other devices, and the scope of the present disclosure is not limited in this respect. It should also be understood that the method 400 can also include additional actions not shown and / or can omit the actions shown, and the scope of the present disclosure is not limited in this respect.

[0062] At 410, the scheduling device 110 obtains data related to the completed backup task.

[0063] In some embodiments, the scheduling device 110 may periodically obtain data related to completed backup tasks from the task repository, and the data may be, for example, estimated execution information of the backup tasks, actual execution time, effective load, etc. Additionally, in some embodiments, the scheduling device 110 may only select backup tasks that have not been used to calculate adjustment parameters.

[0064] At 420 , the scheduling device 110 determines adjustment parameters based on the data.

[0065] In some embodiments, the scheduling device 110 can set different adjustment parameter combinations, and then the scheduling device 110 uses multiple simulation threads to simulate the determination of execution priority and the execution of backup tasks according to different adjustment parameter combinations. The determination of execution priority and the execution of backup tasks are similar to the above description of Figure 2 and Figure 3 The description is similar, except that the simulation thread simulates the execution time with a counter based on the actual execution time of the backup task obtained in 410 instead of actually executing the backup task. For each simulation thread, when the simulation execution time of a backup task ends, the backup task will be marked as completed or timed out, and then the scheduling device 110 resets the counter and triggers the simulation thread to execute a new execution priority sorting again until all backup tasks are completed or timed out. As mentioned in the description of formula (2) above, the scheduling device 110 calculates the sum of the return values ​​of each simulation thread based on the execution result of the backup task, and finds the simulation thread with a larger sum of return values, then the adjustment parameter combination corresponding to the simulation thread is a better adjustment parameter combination.

[0066] Additionally, in a preferred embodiment, in order to reduce time complexity, the scheduling device 110 may use an incremental algorithm to combine adjustment parameters. For example, the scheduling device 110 first selects 0.1 as the step value to combine adjustment parameters. Then, after finding a better adjustment parameter combination with a step value of 0.1, based on the better adjustment parameter combination, 0.01 is continued to be selected as the step value to continue to optimize the adjustment parameter combination. Through this algorithm, the time complexity is n×10 3 Instead of n×10 6 .

[0067] In the above exemplary embodiments, by utilizing more and more data related to completed backup tasks to regularly update adjustment parameters, the adjustment parameters suitable for a specific backup system can be further dynamically optimized, thereby further optimizing the determination of the execution priority of the backup tasks and better achieving the RPO.

[0068] Figure 5 Schematic block diagram of an example device 500 that can be used to implement embodiments of the present disclosure is shown. Figure 1 The scheduling device 110 shown may be implemented by the device 500. Figure 5 As 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 computer program instructions loaded from a storage unit 508 into a random access memory (RAM) 503. In the RAM 503, various programs and data required for the operation of the device 500 can also be stored. The CPU 501, the ROM 502, and the 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.

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

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

[0071] 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.

[0072] Computer readable storage medium can be a tangible device that can hold and store instructions used by an instruction execution device. Computer readable storage medium 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 of the above. More specific examples (non-exhaustive list) of computer readable storage medium include: portable computer disk, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanical encoding device, such as a punch card or a convex structure in a groove on which instructions are stored, and any suitable combination of the above. The computer readable storage medium used here is not 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 (e.g., a light pulse by an optical fiber cable), or an electrical signal transmitted by a wire.

[0073] 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, optical fiber transmissions, wireless transmissions, 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 for storage in the computer-readable storage medium in each computing / processing device.

[0074] The computer program instructions for performing the operation of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related 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++, etc., and conventional procedural programming languages, such as "C" language or similar programming languages. Computer-readable program instructions may be executed completely 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 completely 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., using 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 customized by utilizing the state information of the computer-readable program instructions, and the electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present disclosure.

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

[0076] These computer-readable program instructions can be provided to a processing device of a general-purpose computer, a special-purpose computer or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processing device of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0077] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operating 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 boxes in the flowchart and / or block diagram.

[0078] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple embodiments of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of the module, program segment or instruction includes one or more executable instructions for realizing the specified logical function. In some alternative implementations, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs the specified function or action, or can be implemented with a combination of special hardware and computer instructions.

[0079] The embodiments of the present disclosure have been described above, and the above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The selection of terms used herein is intended to best explain the principles of the embodiments, practical applications, or technical improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.

Claims

1. A method for scheduling a backup task, comprising: In response to detecting that a target backup task is generated, obtaining scheduled execution information of the target backup task, wherein the scheduled execution information of the target backup task includes an estimated execution duration of the target backup task estimated by using an autoregressive integrated moving average (ARMIA) model based on historical data of backup task execution; Determining the execution priority of the target backup task based on the scheduled execution information of the target backup task; Determine the execution priority of existing backup tasks in the waiting queue; as well as Based on the execution priority of the existing backup task and the execution priority of the target backup task, adding the target backup task to the waiting queue; Determining the execution priority of the target backup task includes: Determine the data of the completed backup tasks; Determining a target simulation thread having a larger total return value by processing the data of the completed backup tasks using a plurality of simulation threads, wherein each simulation thread of the plurality of simulation threads is assigned one adjustment parameter combination of a plurality of adjustment parameter combinations; Using the adjustment parameter combination corresponding to the target simulation thread to update the adjustment parameters of the predetermined execution information for the target backup task; and An execution priority of the target backup task is determined based on the scheduled execution information of the target backup task and the adjustment parameter.

2. The method according to claim 1, wherein obtaining the scheduled execution information of the target backup task comprises: At least one of the following is obtained: a predetermined priority and a predetermined execution interval of the target backup task.

3. The method according to claim 1, further comprising: In response to determining that there is available capacity in the backup system for executing the backup task, determining execution priorities of the plurality of existing backup tasks in the waiting queue; sorting the multiple existing backup tasks based on the execution priorities of the multiple existing backup tasks; Based on the result of the sorting, removing a predetermined number of existing backup tasks from the waiting queue; as well as The removed existing backup task is executed.

4. The method according to claim 1, wherein determining the execution priority of the existing backup task comprises: Acquire scheduled execution information of the existing backup task, wherein the scheduled execution information of the existing backup task includes at least one of the following: a scheduled priority, a scheduled execution interval, and an estimated execution duration of the existing backup task; Determine the waiting time of the existing backup task in the waiting queue; Acquire scheduled execution information for the existing backup task and adjustment parameters of the waiting time; as well as The execution priority of the existing backup task is determined based on the scheduled execution information of the existing backup task, the waiting time and the adjustment parameter.

5. The method according to claim 1, wherein determining the execution priority of the existing backup task comprises: Acquire a predetermined value related to the execution priority of the existing backup task, where the predetermined value has been determined by the scheduled execution information of the existing backup task; Determine the waiting time of the existing backup task in the waiting queue; as well as Based on the predetermined value and the waiting time, an execution priority of the existing backup task is determined.

6. The method according to claim 1, wherein adding the target backup task to the waiting queue comprises: sorting the target backup task and the existing backup task based on the execution priority of the target backup task and the execution priority of the existing backup task; as well as Based on the result of the sorting, the target backup task is added to the waiting queue.

7. A device for scheduling backup tasks, 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 apparatus to perform actions comprising: In response to detecting that a target backup task is generated, obtaining scheduled execution information of the target backup task, wherein the scheduled execution information of the target backup task includes an estimated execution duration of the target backup task estimated by using an autoregressive integrated moving average (ARMIA) model based on historical data of backup task execution; Determining the execution priority of the target backup task based on the scheduled execution information of the target backup task; Determine the execution priority of existing backup tasks in the waiting queue; and Based on the execution priority of the existing backup task and the execution priority of the target backup task, adding the target backup task to the waiting queue; Determining the execution priority of the target backup task includes: Determine the data of the completed backup tasks; Determining a target simulation thread having a larger sum of return values ​​by processing the data of the completed backup tasks using a plurality of simulation threads, wherein each simulation thread of the plurality of simulation threads is assigned one adjustment parameter combination of a plurality of adjustment parameter combinations; Using the adjustment parameter combination corresponding to the target simulation thread to update the adjustment parameters of the predetermined execution information for the target backup task; and The execution priority of the target backup task is determined based on the predetermined execution information of the target backup task and the adjustment parameter.

8. The device according to claim 7, wherein obtaining the scheduled execution information of the target backup task comprises: At least one of the following is obtained: a predetermined priority and a predetermined execution interval of the target backup task.

9. The apparatus of claim 7, wherein the actions further comprise: In response to determining that there is available capacity in the backup system for executing the backup task, determining execution priorities of the plurality of existing backup tasks in the waiting queue; sorting the multiple existing backup tasks based on the execution priorities of the multiple existing backup tasks; Based on the result of the sorting, removing a predetermined number of existing backup tasks from the waiting queue; as well as The removed existing backup task is executed.

10. The device according to claim 7, wherein determining the execution priority of the existing backup task comprises: Acquire scheduled execution information of the existing backup task, wherein the scheduled execution information of the existing backup task includes at least one of the following: a scheduled priority, a scheduled execution interval, and an estimated execution duration of the existing backup task; Determine the waiting time of the existing backup task in the waiting queue; Acquire scheduled execution information for the existing backup task and adjustment parameters of the waiting time; as well as The execution priority of the existing backup task is determined based on the scheduled execution information of the existing backup task, the waiting time and the adjustment parameter.

11. The device according to claim 7, wherein determining the execution priority of the existing backup task comprises: Acquire a predetermined value related to the execution priority of the existing backup task, where the predetermined value has been determined by the scheduled execution information of the existing backup task; Determine the waiting time of the existing backup task in the waiting queue; as well as Based on the predetermined value and the waiting time, an execution priority of the existing backup task is determined.

12. The device according to claim 7, wherein adding the target backup task to the waiting queue comprises: sorting the target backup task and the existing backup task based on the execution priority of the target backup task and the execution priority of the existing backup task; as well as Based on the result of the sorting, the target backup task is added to the waiting queue.

13. A computer program product tangibly stored in a non-transitory computer storage medium and comprising machine executable instructions which, when executed by a device, cause the device to perform the method according to any one of claims 1-6.

Citation Information

Patent Citations

  • Method and equipment used for virtual machine backup

    CN108287747A

  • Thread number evaluation method and device

    CN110069340A

  • Thread based governor for time scheduled process application

    US20010042090A1

  • System and method for thread scheduling with weak preemption policy

    US20030208521A1

  • Method and System for Scheduling and Controlling Backups in a Computer System

    US20090300633A1