Method for Selecting Backup Destination, Electronic Device, and Computer Program Product

By setting a unique subset code for each candidate subset and performing code transformation, generating more candidate subsets, the problem of large amount of computational volume of backup destination selection in the storage device collection is solved, and processing speed and system performance are improved.

CN114265721BActive Publication Date: 2025-08-05EMC IP HLDG CO LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202010973689.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-09-16
Publication Date
2025-08-05
Estimated Expiration
2040-09-16

AI Technical Summary

Technical Problem

When selecting a backup destination in a large collection of storage devices, the existing technology faces huge computing problems, resulting in inefficient processing and inability to effectively provide suggestions for backup destinations.

Method used

Set a unique subset code for each candidate subset, generate a new subset code through code transformation, reduce the amount of calculation, and select the local optimal backup destination.

Benefits of technology

Within the limited time and computing overhead, the speed of selecting a backup destination and the overall performance of the storage system are improved, achieving local optimal target subset selection.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114265721B_ABST
    Figure CN114265721B_ABST
Patent Text Reader

Abstract

Implementations of the present disclosure provide a method, an electronic device, and a computer program product for selecting a backup destination. In one method, in a set of storage devices, a first set of candidate subsets is obtained, and the number of storage devices included in a candidate subset in the first set of candidate subsets is determined based on the number of copies specified in a backup task. A first set of subset codes for the first set of candidate subsets is determined. A second set of subset codes is generated based on the first set of subset codes, and the codes in the second set of subset codes uniquely identify the candidate subsets. Based on the first set of candidate subsets and a second set of candidate subsets corresponding to the second set of subset codes, a target subset is selected as the backup destination for the backup task. According to an exemplary implementation of the present disclosure, a corresponding apparatus, electronic device, and computer program product are provided. Through the implementations of the present disclosure, the computational amount for selecting the target subset can be greatly reduced, thereby improving the automation level and performance of the storage system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Implementations of the present disclosure generally relate to storage systems, and more particularly to methods, electronic devices, and computer program products for selecting backup destination storage devices. Background Art

[0002] Today, many companies or enterprises generate a large amount of data every day. For data security, data protection has become increasingly important. In this regard, backup storage systems can provide data protection and can copy the data to be backed up to multiple storage devices, thereby obtaining multiple data copies stored in different storage devices.

[0003] Currently, a technique has been proposed to select a subset of storage devices that can be used as backup destinations based on the states of multiple optional storage devices in a set of storage devices. For example, scores can be set for the states of each storage device in the set of storage devices, and scores for various combination methods (e.g., based on permutations and combinations) of generating the subset of storage devices can be determined. However, when there are a large number (e.g., dozens or even more) of storage devices, there will be tens of thousands or even hundreds of thousands of combination methods based on the number of storage devices involved in the backup destination. At this time, when selecting a backup destination, a huge amount of computation will be involved, and thus it is not possible to provide suggestions for backup destinations to users in an effective manner. Summary of the Invention

[0004] Implementations of the present disclosure propose a technical solution for determining a backup destination for data backup in a set of storage devices, and specifically provide a method, an electronic device, and a computer program product for selecting a backup destination.

[0005] In a first aspect of the present disclosure, there is provided a method for selecting a backup destination for a backup task, including: in a set of storage devices, obtaining a first set of candidate subsets, the number of storage devices included in a candidate subset in the first set of candidate subsets being determined based on the number of copies specified by the backup task; determining a first set of subset codes for the first set of candidate subsets, the codes in the first set of subset codes uniquely identifying the candidate subsets in the first set of candidate subsets; generating a second set of subset codes based on the first set of subset codes, the codes in the second set of subset codes uniquely identifying the candidate subsets; and selecting a target subset as the backup destination for the backup task based on the first set of candidate subsets and a second set of candidate subsets corresponding to the second set of subset codes.

[0006] In a second aspect of the present disclosure, an electronic device is provided. The electronic device includes: at least one processor; and at least one memory storing computer program instructions, the at least one memory and the computer program instructions being configured to, together with the at least one processor, cause the electronic device to perform an action for selecting a backup destination for a backup task. The action includes: obtaining a first set of candidate subsets in a set of storage devices, the number of storage devices included in the candidate subsets in the first set of candidate subsets being determined based on the number of copies specified by the backup task; determining a first set of subset codes for the first set of candidate subsets, the codes in the first set of subset codes uniquely identifying the candidate subsets in the first set of candidate subsets; generating a second set of subset codes based on the first set of subset codes, the codes in the second set of subset codes uniquely identifying the candidate subsets; and selecting a target subset as the backup destination for the backup task based on the first set of candidate subsets and a second set of candidate subsets corresponding to the second set of subset codes.

[0007] In a third aspect of the present disclosure, a computer program product is provided. The computer program product is tangibly stored on a non-volatile computer-readable medium and includes machine-executable instructions. The machine-executable instructions, when executed, cause the machine to perform the steps of the method according to the first aspect.

[0008] It should be understood that the content described in the Summary of the Invention section is not intended to limit the key or important features of the implementation manners of the present disclosure, nor to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] By referring to the drawings and reading the following detailed description, the above and other objects, features, and advantages of the implementation manners of the present disclosure will become easily understood. In the drawings, several implementation manners of the present disclosure are shown in an exemplary rather than restrictive manner.

[0010] Figure 1 A block diagram schematically showing an application environment in which an exemplary implementation manner of the present disclosure can be implemented.

[0011] Figure 2 A block diagram schematically showing a process for determining a backup destination according to an exemplary implementation manner of the present disclosure.

[0012] Figure 3 A flowchart schematically showing a method for determining a backup destination according to an exemplary implementation manner of the present disclosure.

[0013] Figure 4 A block diagram schematically showing a process for obtaining a first set of candidate subsets according to an exemplary implementation manner of the present disclosure.

[0014] Figure 5A block diagram schematically showing a process for determining a device code according to an exemplary implementation of the present disclosure.

[0015] Figure 6 A block diagram schematically showing a process for determining a subset code according to an exemplary implementation of the present disclosure.

[0016] Figure 7A and 7B Block diagrams respectively schematically showing processes for generating a second set of subset codes based on swap operations according to exemplary implementations of the present disclosure.

[0017] Figure 8 A block diagram schematically showing a process for generating a second set of subset codes based on flip operations according to an exemplary implementation of the present disclosure.

[0018] Figure 9 A block diagram schematically showing a process for selecting a target subset based on global balance according to an exemplary implementation of the present disclosure.

[0019] Figure 10 A block diagram schematically showing a device that can be used to implement an exemplary implementation of the present disclosure.

[0020] Throughout all the figures, the same or similar reference numerals are used to denote the same or similar components. Detailed Implementation Modes

[0021] The principles and spirit of the present disclosure will be described below with reference to several exemplary implementations shown in the drawings. It should be understood that the description of these implementations is only for enabling those skilled in the art to better understand and implement the present disclosure, and does not limit the scope of the present disclosure in any way. In the description and claims herein, unless otherwise defined, all technical terms and scientific terms used herein have the meanings commonly understood by those of ordinary skill in the art to which the present disclosure pertains.

[0022] Currently, the concept of a distributed storage system has been proposed. A distributed storage system may include hundreds or even more storage devices. For example, these storage devices may be distributed at various geographical locations around the world. First, refer to Figure 1 Describe an application environment according to an exemplary implementation of the present disclosure. Figure 1 A block diagram schematically showing an example application environment in which an exemplary implementation of the present disclosure can be implemented. Figure 1 A block diagram 100 schematically showing an example application environment in which an exemplary implementation of the present disclosure can be implemented. As Figure 1 shown, the storage system may include a set of storage devices 110, and this set may include N storage devices, such as Figure 1The storage devices 110-1, 110-2, 110-3, 110-4, 110-5, 110-6, 110-7, ……, and 110-N shown.

[0023] The backup task 120 can specify the number of backup copies. For example, it can be specified that 3 backup copies are required. At this time, 3 storage devices need to be selected from a large number of storage devices as backup destinations. It will be understood that there can be multiple candidate subsets 130, and each candidate subset includes 3 storage devices. For example, the candidate subset 130-1 can include the storage devices 110-1, 110-2, and 110-3, ……, and the candidate subset 130-M can include the storage devices 110-6, 110-7, and 110-N. Here, M and N are positive integers. At this time, the target subset 140 can be selected from the multiple candidate subsets 130 for use as the destination of the backup task 120.

[0024] Currently, a method has been proposed to select a subset of storage devices that can be used as backup destinations based on the status of multiple optional storage devices in the storage device set 110. For example, the scores of various combination methods (e.g., based on permutations and combinations) of the storage device subset can be determined. However, when there are a large number (e.g., dozens or even more) of storage devices, there will be tens of thousands or even hundreds of thousands of combination methods. Assuming there are N storage devices and it is desired to store X copies, then there can be combination methods. For example, when N = 1000 and X = 3, the number of combination methods is At this time, when selecting a backup destination, it will involve a huge amount of computation and thus the processing efficiency is low.

[0025] In view of the above problems and potential other problems in the traditional solutions, the implementation manners of the present disclosure propose a technical solution for selecting a backup destination for a backup task in a storage device set. In the implementation manners of the present disclosure, a unique subset code can be set for each candidate subset, and a new subset code can be generated through code transformation. Subsequently, the candidate subset represented by the new subset code can be used as a candidate for the backup destination. Hereinafter, a summary of an exemplary implementation manner according to the present disclosure will be described with reference to Figure 2 Describe the overview of an exemplary implementation manner according to the present disclosure.

[0026] Figure 2 FIG. 200 schematically shows a block diagram of a process for determining a backup destination according to an exemplary implementation manner of the present disclosure. As Figure 2 shown, a first group of candidate subsets 210 can be selected from the storage device set 110. For example, the first group of candidate subsets 210 can include U candidate subsets (U is a positive integer and its value can be much smaller than the number of combination methods )。Set subset codes for each candidate subset to form a first set of subset codes 230. For example, the code for candidate subset 210-1 is subset code 230-1, and the code for candidate subset 210-U is subset code 230-U, and so on.

[0027] A second set of subset codes 240 can be generated based on the first set of subset codes 230. It will be understood that the first set of subset codes 230 and the second set of subset codes 240 can have the same or different numbers of subset codes. For example, the second set of subset codes 240 can include subset codes 240-1, ……, and 240-V. Subsequently, a second set of candidate subsets 220 can be generated based on the second set of subset codes 240, and the target subset 140 can be selected from candidate subsets 220-1, …… and 220-V.

[0028] With the exemplary implementation of the present disclosure, it is not necessary to traverse each combination method one by one. Instead, more candidate subsets can be obtained based on the initial first set of candidate subsets 210. In this way, the computational amount for selecting the target subset can be greatly reduced. Although the target subset obtained in this way may not be globally optimal, this technical solution can obtain a locally optimal target subset within limited time and computational overhead. In this way, the speed of selecting the backup destination can be increased, and a balance can be achieved between the processing speed and the overall performance of the storage system.

[0029] In the following, reference will be made to Figure 3 Describe more details of the exemplary implementation according to the present disclosure. Figure 3 A flowchart of a method 300 for determining a backup destination according to an exemplary implementation of the present disclosure is schematically shown. At block 310, in the set of storage devices 110, a first set of candidate subsets 210 is obtained. The number of storage devices included in the candidate subsets in the first set of candidate subsets 210 is determined based on the number of copies specified by the backup task 120. Each candidate subset can be used as a backup destination.

[0030] According to an exemplary implementation of the present disclosure, the first set of candidate subsets 210 can be selected from multiple candidate subsets. For example, the first set of candidate subsets 210 can be selected from multiple candidate subsets of the set of storage devices based on a predetermined performance requirement for the backup destination. In this way, candidate subsets that do not meet the predetermined performance requirement can be excluded from the multiple candidate subsets, so as to ensure that each candidate subset in the first set of candidate subsets 210 used as the initial seed meets the performance requirement.

[0031] The number of copies specified by the backup task 120 can be determined. According to an exemplary implementation of the present disclosure, the number of copies can be input by a user of the storage system. For example, the user can specify the number of copies in a service level agreement (SLA). For the sake of convenience of description, hereinafter, only the number of copies 3 will be used as an example for description. It should be understood that the implementation of the present disclosure can be applied to any other number of copies.

[0032] According to an exemplary implementation of the present disclosure, the number of storage devices of each initial candidate subset in the multiple candidate subsets can be equal to the number of copies, that is, one data copy can be stored on each storage device. At this time, there will be candidate subsets. When the number of N is large, there will be a large number of candidate subsets. At this time, only candidate subsets. According to an exemplary implementation of the present disclosure, a predetermined number of candidate subsets can be selected. For example, 500 (or other numbers) candidate subsets can be randomly selected. At this time, the first group of candidate subsets 210 will include 500 candidate subsets. According to an exemplary implementation of the present disclosure, it can be specified that the first group of candidate subsets 210 should include all N storage devices.

[0033] Subsequently, the first group of candidate subsets 210 can be filtered based on predetermined performance requirements. For example, the predetermined performance requirements can be set based on the distance between storage devices. The predetermined performance requirements can include: the distance between any two storage devices in each candidate subset in the first group of candidate subsets 210 is greater than a threshold distance. Assume that a given candidate subset in the first group of candidate subsets 210 includes 3 storage devices, and the distance between two of them is less than the threshold distance. This candidate subset can be deleted from the first group of candidate subsets 210.

[0034] Furthermore, if it is determined that the distance between two storage devices in the storage device set is less than the threshold distance, the candidate subset including these two storage devices can be removed from the first group of candidate subsets 210. It will be understood that this threshold distance can ensure that the storage devices in each candidate subset have different physical environments, thus reducing the possibility that different storage devices are simultaneously affected by failures (such as power outages, floods, mechanical impacts, etc.). It will be understood that the specific values of the threshold distance listed here are only exemplary and do not limit the scope of the present disclosure in any way. In other implementations, the threshold distance can be set to any value according to the specific technical environment and performance requirements.

[0035] According to an exemplary implementation of the present disclosure, predetermined performance requirements can be set based on the available resources in the storage device. Specifically, the predetermined performance requirements may include: the available resource amount of any storage device in the first set of candidate subsets is greater than the threshold resource amount. In this way, it can be ensured that any candidate subset can complete the data backup task. For example, the available resource amount here may include the computing resource amount, memory resource amount, storage capacity, network bandwidth, etc. of the storage device. Therefore, if it is determined that the available resource amount of a certain (or certain) storage device is less than the threshold resource amount, the initial candidate subset including such a storage device can be excluded from the first set of candidate subsets. According to an exemplary implementation of the present disclosure, the threshold resource amount can be set based on the resource amount required for the backup task. In other implementations, the threshold resource amount can also be predetermined according to the specific technical environment and performance requirements.

[0036] According to an exemplary implementation of the present disclosure, the first set of candidate subsets 210 can also be determined based on the global balance degree of multiple candidate subsets. Here, the global balance degree indicates the usage balance degree of the storage device set when the storage devices in the candidate subsets are used for the backup task. It will be understood that the "usage balance degree" can refer to the balance degree of the "usage" of multiple storage devices in any aspect. For example, the "usage balance degree" can refer to the "usage balance degree" of the available storage capacity of multiple storage devices, the "usage balance degree" of the input network bandwidth of multiple storage devices, the "usage balance degree" of the processing resources of multiple storage devices, the "usage balance degree" of the memory resources of multiple storage devices, etc.

[0037] The global balance degree of each candidate subset in the multiple candidate subsets 130 can be determined respectively, and then the first set of candidate subsets 210 can be determined based on the global balance degree. In the following, more details will be referred to Figure 4 for description. The Figure 4 schematically shows a block diagram 400 of a process for obtaining the first set of candidate subsets according to an exemplary implementation of the present disclosure. As Figure 4 shown, the global balance degree 410-1 of the candidate subset 130-1 can be determined, ……, the global balance degree 410-M of the candidate subset 130-M can be determined, etc. The global balance degrees 410-1 to 410-M can be sorted, and a predetermined number (or a predetermined percentage) of candidate subsets can be selected to create the first set of candidate subsets 210.

[0038] According to an exemplary implementation of the present disclosure, the global balance degree can be determined based on multiple methods. According to an exemplary implementation of the present disclosure, the global balance degree of a candidate subset can be determined based on the usage metrics of each storage device in the candidate subset and the time required to transmit backup data to each storage device in the candidate subset.

[0039] According to an exemplary implementation of the present disclosure, it is desired that the utilization rate of multiple storage devices increases evenly, and it is not desired that a certain storage device is exhausted prematurely. Therefore, usage metrics can be used to measure the time when a storage device is exhausted. For example, the time when a storage device is exhausted can be determined based on the remaining storage capacity in the storage device, the size of the source data to be backed up, and the daily growth rate of the source data. For example, the time when the i-th storage device is exhausted can be determined based on the following formulas 1 and 2:

[0040]

[0041] where VE i represents the daily data growth of the i-th storage device, i is a positive integer and i ≤ the number N of storage devices, n represents the number of source data to be backed up, SDS s represents the S-th source data, DDI i represents the daily data growth of the i-th storage device (e.g., expressed as a percentage), and DR represents the data duplication rate.

[0042]

[0043] where ETFR i represents the predicted exhaustion time of the i-th storage device, where VE i represents the daily data growth of the i-th storage device, and RC i represents the available storage space on the i-th storage device.

[0044] Furthermore, the standard deviation of the exhaustion time of each storage device can be determined based on the following formula 3:

[0045]

[0046] where σ1 represents the standard deviation of the exhaustion time, N represents the number of storage devices, ETFR i represents the predicted exhaustion time of the i-th storage device, represents the mean of the exhaustion times of each storage device. It will be understood that the above formulas 1 to 3 are only specific examples for determining the component of the exhaustion time in the global balance degree. According to an exemplary implementation of the present disclosure, this component can be determined based on other formulas.

[0047] In the following, more information about determining the transmission time will be introduced. According to an exemplary implementation of the present disclosure, the time required to transmit source data to a certain storage device can be determined based on the bandwidth of each storage device. For example, the time to transmit source data to the i-th storage device can be determined based on the following formula 4.

[0048]

[0049] where ETC i represents the time for transmitting source data to the i-th storage device, VE i represents the daily data growth of the i-th storage device, and NB i represents the bandwidth of the i-th storage device.

[0050] Furthermore, the standard deviation of the transmission time for each storage device can be determined based on Equation 5:

[0051]

[0052] where σ2 represents the standard deviation of the transmission time, N represents the number of storage devices, ETC i represents the predicted transmission time of the i-th storage device, represents the mean value of the transmission times of each storage device. It will be understood that Equations 4 to 5 above are merely specific examples for determining the component related to the transmission time in the global balance degree. According to an exemplary implementation of the present disclosure, other formulas can be used to determine this component.

[0053] According to an exemplary implementation of the present disclosure, the global balance degree function GE associated with each candidate subset can be determined based on the following Equation 6:

[0054] GE = σ1 * v1 + σ2 * v2 + v3 Equation 6

[0055] where v1 and v2 respectively represent custom weights, σ1 and σ2 are components determined according to the formulas described above, and v3 represents a custom offset value. It will be understood that Equation 6 here is merely illustrative. According to an exemplary implementation of the present disclosure, other formulas can be used to determine the global balance degree function GE. For example, the global balance degree function GE can be determined based on the product of σ1 and σ2.

[0056] According to an exemplary implementation of the present disclosure, the corresponding global balance degree function GE can be determined for each candidate subset in the first set of candidate subsets 210. Assume that the storage device set includes N storage devices, and the state parameters of each storage device are as shown in Table 1 below:

[0057] Table 1 State parameters of storage devices

[0058] <![CDATA[VE t (GB / day)]]> <![CDATA[RC t (GB)]]> <![CDATA[NB t (GB / s)]]> <![CDATA[VE t (GB / s)]]> The first storage device 150 18,000 0.1 0.001736 The second storage device 80 16,000 0.1 0.000926 … … … … … The Nth storage device 90 15,000 0.1 0.001042

[0059] Suppose it is required to generate 3 copies and 6GB of data is added every day. Then the first set of candidate subsets 210 includes U candidate subsets, and the global equilibrium degree GE of each candidate subset in the first set of candidate subsets 210 can be as shown in Table 2 below.

[0060] Table 2 Global Equilibrium Degree of Candidate Subsets

[0061] Candidate subset Global balance degree The first candidate subset 10.70986 … The Uth candidate subset 10.36655

[0062] The global equilibrium degrees in Table 2 can be sorted, and candidate subsets with larger global equilibrium degrees can be filtered out from the first set of candidate subsets 210. In other words, candidate subsets with smaller global equilibrium degrees can be preferentially selected to generate the first set of candidate subsets 210.

[0063] According to an exemplary implementation of the present disclosure, a threshold of the global equilibrium degree can be specified, and candidate subsets higher than this threshold can be specified to be filtered out from the first set of candidate subsets 210. According to an exemplary implementation of the present disclosure, this threshold can be set based on historical experience. According to an exemplary implementation of the present disclosure, this threshold can be set based on the current state of each storage device.

[0064] It will be understood that the global equilibrium degree here represents the difference in the usage of each storage device in the set of storage devices after selecting a certain candidate subset as the backup destination. The smaller the value of the global equilibrium degree, the more it indicates that selecting this candidate subset is more conducive to the usage balance of each storage device. Using an exemplary implementation of the present disclosure, candidate subsets that are conducive to the usage balance of each storage device can be selected as much as possible to generate the first set of candidate subsets 210. Further, the first set of candidate subsets 210 can be used as a "seed" to generate richer candidate subsets, thereby helping to find locally optimal candidate subsets.

[0065] The specific steps for determining the first set of candidate subsets 210 have been described above, and will be returned to below Figure 3 to continue describing how to determine the subset code of the candidate subset. At Figure 3 box 320, a first set of subset codes 230 of the first set of candidate subsets 210 is determined. Each subset code in the first set of subset codes 230 can uniquely identify a candidate subset in the first set of candidate subsets 210. According to an exemplary implementation of the present disclosure, the subset code of the candidate subset can be determined based on the device codes of multiple storage devices included in the candidate subset. First, refer to Figure 5 to describe the specific details of determining the device code. This Figure 5 schematically shows a block diagram 500 of a process for determining the device code according to an exemplary implementation of the present disclosure.

[0066] The number of devices of multiple storage devices in the storage device set 110 can be determined first. As Figure 5 shown, if the number of devices is N at this time, the device code of each storage device can be determined based on the number of devices N. For example, the storage device 110-1 can be represented by the device code 510-1, the storage device 110-2 can be represented by the device code 510-2, the storage device 110-3 can be represented by the device code 510-3, ……, the storage device 110-N can be represented by the device code 510-N.

[0067] For a given storage device among multiple storage devices, the length of the device code can be determined based on the number of devices N. According to an exemplary implementation of the present disclosure, the device code of the storage device can be represented using binary. At this time, the length of the device code can be determined based on the following formula Assume N = 1024, then the device code can be represented with a length of 10 bits. As Figure 5 shown, the first storage device 110-1 can be represented by the device code 510-1 (i.e., 00…000), the second storage device 110-2 can be represented by the device code 510-2 (i.e., 00…001), the third storage device 110-3 can be represented by the device code 510-3 (i.e., 00…010), ……, the Nth storage device 110-N can be represented by the device code 510-N (i.e., 11…111).

[0068] It will be understood that the above only shows a specific example of representing the device code based on binary in a schematic manner. According to an exemplary implementation of the present disclosure, the device code can also be represented based on other methods. For example, the device code can be represented based on quaternary, octal or hexadecimal.

[0069] Furthermore, based on the device codes of each storage device in a given candidate subset, the code of the given candidate subset can be determined. In the following, more details will be referred to Figure 6 for description, and the Figure 6 block diagram 600 schematically showing the process for determining the subset code according to an exemplary implementation of the present disclosure is shown. The candidate subset 210-1 includes 3 storage devices: the storage device 110-1, the storage device 110-2, and the storage device 110-3. The subset code 230-1 of the candidate subset 210-1 can be determined based on the device codes of the above three storage devices. As Figure 6 shown, the device code 510-1, the device code 510-2, and the device code 510-N can be combined to generate the subset code 230-1. Since the length of each device code is 10 bits, the length of the subset code will be 10×3 = 30 bits at this time. When other methods are adopted, the device code and the subset code can have different lengths.

[0070] The specific process of determining the subset codes has been described above. Similar operations can be performed for each candidate subset in the first set of candidate subsets 210 to determine the corresponding subset code for each candidate subset. In the following, it will be returned Figure 3 More details regarding the generation of the second set of subset codes 240 will be described. At block 330, the second set of subset codes 240 is generated based on the first set of subset codes 230, and each code in the second set of subset codes 240 uniquely identifies a candidate subset. According to an exemplary implementation of the present disclosure, a part of the first set of subset codes 210 can be exchanged to generate the second set of subset codes.

[0071] In the following, more details regarding the exchange operation will be described only by taking two subset codes in the first set of candidate subsets 210 as an example. Figure 7A and 7B respectively schematically show block diagrams of a process for generating a second set of subset codes based on an exchange operation according to an exemplary implementation of the present disclosure. Specifically, Figure 7A shows a block diagram 700A of the subset codes before the exchange. Subset codes 710A and 720A are the codes of two candidate subsets in the first set of candidate subsets 210.

[0072] As Figure 7A shown, each code in the first set of subset codes 230 can be divided into multiple segments according to a predetermined length. For simplicity, Figure 7A only shows an example of dividing one subset code into two segments schematically. Specifically, the shaded part shows one segment, and the blank part shows the other segment. Each bit shown in the shaded part in subset codes 710A and 720A can be exchanged. As shown by arrow 730A, each bit "00...00" in subset code 710A will be exchanged with each bit "11...11" in subset code 720A.

[0073] Figure 7B shows a block diagram 700B of the subset codes after the exchange, where subset codes 710B and 720B are the subset codes after the exchange. As Figure 7B shown, at this time, each bit in the shaded part of subset code 710B has been set to "11...11", and each bit in the shaded part of subset code 710B has been set to "00...00". Using the exemplary implementation of the present disclosure, more subset codes (i.e., the second set of subset codes 240) can be generated based on the original first set of subset codes 230. In this way, it can be ensured that the generated subset codes have higher diversity.

[0074] It will be understood that although Figure 7A andFigure 7B Only an example of dividing the subset code into two segments is shown. According to an exemplary implementation of the present disclosure, the subset code can be divided into more segments. For example, the subset code can be divided into 4 segments, and the respective bits of the first segment and the third segment in two subset codes can be swapped. For another example, the respective bits of the first segment and the fourth segment in two subset codes can be swapped.

[0075] According to an exemplary implementation of the present disclosure, the length of each segment can be specified, and each segment can have the same or different lengths. For example, the length of the first segment can be 4, the length of the second segment can be 8, and the length of the third segment can be 18. For another example, the lengths of the three segments can all be 10.

[0076] It will be understood that although the specific ways of swapping the corresponding segments of two subset codes are described above. According to an exemplary implementation of the present disclosure, swapping can also be performed between the corresponding segments of multiple subset codes. For example, the first set of candidate subsets 210 can be divided into multiple groups. Assuming that each group includes K candidate subsets, the corresponding segments in K subset codes can be swapped cyclically. For example, in one group, the first segment in the 2nd subset code can be used to replace the first segment in the 1st subset code, the first segment in the 3rd subset code can be used to replace the first segment in the 2nd subset code, and so on.

[0077] According to an exemplary implementation of the present disclosure, swapping can be performed between different segments of multiple subset codes. Assuming that the lengths of each segment are the same, the different segments in each subset code can be directly swapped. Assuming that the lengths of each segment are different, the shorter length can be obtained through a truncation operation, and the longer length can be obtained through a padding operation. Specifically, assuming that the lengths of the first segment and the second segment are 4 and 6 respectively, during the swapping process, the first segment (including 4 bits) of subset code A can be stored in a temporary storage area, and the first 4 bits in the second segment (including 6 bits) of subset code B can be used to replace the first segment of subset code A. Subsequently, the 4-bit value in the temporary storage area and a randomly generated 2-bit value can be used to replace the second segment of subset code B.

[0078] It will be understood that the above only schematically shows the process of generating new subset codes based on the swapping operation. According to an exemplary implementation of the present disclosure, in multiple rounds, new subset codes can be continuously generated based on the existing subset codes. In this way, more subset codes can be obtained, and thus richer candidate subsets can be obtained. Using the exemplary implementation of the present disclosure, the rich candidate subsets can ensure covering as many situations as possible. In this way, it can be ensured that locally optimal candidate subsets are generated within a larger range.

[0079] According to an exemplary implementation of the present disclosure, at least one subset code can be selected from the first set of subset codes 230, and then at least a part of the at least one subset code can be updated to form at least one updated subset code. Specifically, a predetermined number (or proportion) of subset codes can be selected from the first set of subset codes 230, and one or some digits in the selected subset codes can be changed. In this way, the second set of subset codes 240 can be determined.

[0080] According to an exemplary implementation of the present disclosure, at least a part of the digits in the code can be changed. Specifically, the positions and the number of the bits to be modified can be specified in advance. For example, it can be specified to change 3 bits, and it can be specified to change the 1st bit, the 10th bit, and the 20th bit. When the subset code is represented in binary, the specified digits can be flipped. Hereinafter, more details regarding the modification operation will be referred to Figure 8 which Figure 8 schematically shows a block diagram 800 of a process for generating a second set of subset codes based on a flipping operation according to an exemplary implementation of the present disclosure. As Figure 8 shown, 3 bits shown in shadow in the subset code 710A can be flipped. As shown by the arrow 820, '0' can be flipped to '1'; as shown by the arrow 822, '0' can be flipped to '1'; as shown by the arrow 824, '1' can be flipped to '0'.

[0081] It will be understood that the above Figure 8 only schematically shows the specific details of the modification operation of the subset code represented in binary. When the subset code is represented in other ways, the specified bits can be modified based on other mathematical operations. For example, the value of the specified bit can be incremented by one, decremented by one, or other mathematical operations can be performed. It will be understood that the above only schematically shows the process of generating a new subset code based on the modification operation. According to an exemplary implementation of the present disclosure, in multiple rounds, new subset codes can be continuously generated based on the existing subset codes, and in this way, more subset codes can be obtained, and further more candidate subsets can be obtained.

[0082] According to an exemplary implementation of the present disclosure, the above-described swapping operation and modification operation can be performed in one or more rounds to generate richer subset codes. In this way, more second set of subset codes 240 can be generated from the original first set of subset codes 230 in a simple and effective manner. At this time, the second set of subset codes 240 will include more possible combinations, and thus enrich the scenarios covered by the candidate subsets of the combinations for selecting the target subset.

[0083] Return Figure 3 Continue to describe more details regarding the selection of the target subset 140. InFigure 3 At the frame 340, based on the first set of candidate subsets 210 and the second set of candidate subsets 220 corresponding to the second set of subset codes 240, a target subset 140 is selected as the backup destination for the backup task 140. In the following, reference will be made to Figure 9 which shows more details. The Figure 9 FIG. 900 is a block diagram schematically showing a process for selecting a target subset based on a global balance degree according to an exemplary implementation of the present disclosure.

[0084] As Figure 9 shown, the global balance degree of each candidate subset in the first set of candidate subsets 210 and the second set of candidate subsets 220 can be determined, and based on the global balance degree of each candidate subset, a target subset is determined among the first set of candidate subsets 210 and the second set of candidate subsets 220. Subsequently, based on the global balance degree 910-1 of the candidate subset 210-1, ……, the global balance degree 910-U of the candidate subset 210-U, the global balance degree 920-1 of the candidate subset 220-1, ……, the global balance degree 920-V of the candidate subset 220-V, the target subset 140 is determined.

[0085] The target subset 140 can be determined based on various methods. For example, a threshold balance degree can be set, and if the global balance degree of a certain candidate subset is higher than the threshold balance degree, then this candidate subset is identified as the target subset. In this way, multiple target subsets can be determined to facilitate the user to select a desired target subset therefrom. For another example, the global balance degrees can be sorted to select the target subset 140 with the best local balance degree.

[0086] According to an exemplary implementation of the present disclosure, data to be backed up can be transmitted to each storage device in the target subset 140, and thus the backup task 120 is completed. Assume that the backup task 120 specifies backing up source data to 3 storage devices, and the target subset 140 includes storage devices 110-1, 110-2, and 110-3, then the source data can be backed up to the storage devices 110-1, 110-2, and 110-3 respectively. At this time, a copy of the source data will be included in each of the storage devices 110-1, 110-2, and 110-3 respectively.

[0087] Using the exemplary implementation of the present disclosure, by setting a globally unique subset code for each candidate subset, more subset codes can be generated based on the exchange operation and modification operation of the codes, and further more candidate subsets can be determined. In this way, more candidate subsets including various combinations can be obtained based on the initial candidate subsets, and further the locally optimal candidate subset can be selected from more candidate subsets.

[0088] Reference has been made above to Figures 2 to 9A method for performing an exemplary implementation according to the present disclosure is described. According to an exemplary implementation of the present disclosure, a device for selecting a backup destination for a backup task is provided. The device includes: an acquisition module configured to acquire, in a set of storage devices, a first set of candidate subsets, the number of storage devices included in the candidate subsets in the first set of candidate subsets being determined based on the number of copies specified for the backup task; a determination module configured to determine a first set of subset codes for the first set of candidate subsets, the codes in the first set of subset codes uniquely identifying the candidate subsets in the first set of candidate subsets; a generation module configured to generate a second set of subset codes based on the first set of subset codes, one of the codes in the second set of subset codes uniquely identifying a candidate subset; and a selection module configured to select a target subset as the backup destination for the backup task based on the first set of candidate subsets and a second set of candidate subsets corresponding to the second set of subset codes. According to an exemplary implementation of the present disclosure, the device further includes modules for performing other steps in the method described above.

[0089] Figure 10 A block diagram of a device 1000 that can be used to implement an exemplary implementation of the present disclosure is schematically shown. According to an exemplary implementation of the present disclosure, the device 1000 may be an electronic device. The exemplary device 1000 includes a central processing unit (CPU) 1001 that can perform various appropriate actions and processes according to computer program instructions stored in a read-only storage device (ROM) 1002 or computer program instructions loaded from a storage unit 1008 into a random access storage device (RAM) 1003. In the RAM 1003, various programs and data required for the operation of the exemplary device 1000 may also be stored. The CPU 1001, ROM 1002, and RAM 1003 are connected to each other via a bus 1004. An input / output (I / O) interface 1005 is also connected to the bus 1004.

[0090] A plurality of components in the exemplary device 1000 are connected to the I / O interface 1005, including: an input unit 1006, such as a keyboard, a mouse, etc.; an output unit 1007, such as various types of displays, speakers, etc.; a storage unit 1008, such as a magnetic disk, an optical disk, etc.; and a communication unit 1009, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 1009 allows the exemplary device 1000 to exchange information / data with other devices via a computer network such as the Internet and / or various telecommunication networks.

[0091] Each of the processes and treatments described above, such as the example method or example process, may be executed by the processing unit 1001. For example, according to an exemplary implementation of the present disclosure, various example methods or example processes may be implemented as computer software programs, which are tangibly included in a machine-readable medium, such as the storage unit 1008. According to an exemplary implementation of the present disclosure, part or all of the computer program may be loaded and / or installed onto the example device 1000 via the ROM 1002 and / or the communication unit 1009. When the computer program is loaded into the RAM 1003 and executed by the CPU 1001, one or more steps of the example methods or example processes described above may be executed.

[0092] According to an exemplary implementation of the present disclosure, there is provided an electronic device, including: at least one processor; and at least one memory storing computer program instructions, the at least one memory and the computer program instructions being configured to, together with the at least one processor, cause the electronic device to perform an action for selecting a backup destination for a backup task. The action includes: in a set of storage devices, obtaining a first set of candidate subsets, the number of storage devices included in a candidate subset in the first set of candidate subsets being determined based on the number of copies specified by the backup task; determining a first set of subset codes for the first set of candidate subsets, the codes in the first set of subset codes uniquely identifying the candidate subsets in the first set of candidate subsets; generating a second set of subset codes based on the first set of subset codes, one of the codes in the second set of subset codes uniquely identifying a candidate subset; and selecting a target subset as the backup destination for the backup task based on the first set of candidate subsets and a second set of candidate subsets corresponding to the second set of subset codes.

[0093] According to an exemplary implementation of the present disclosure, determining the first set of subset codes for the first set of candidate subsets includes: for a given candidate subset in the first set of candidate subsets, determining the number of devices of multiple storage devices in the set of storage devices; based on the number of devices, respectively determining the device codes of the multiple storage devices; and based on the device codes of each storage device in the given candidate subset, determining the code of the given candidate subset.

[0094] According to an exemplary implementation of the present disclosure, respectively determining the device codes of the multiple storage devices includes: for a given storage device in the multiple storage devices, determining the length of the device code of the given storage device based on the number of devices; and based on the length, representing the device code of the storage device using binary.

[0095] According to an exemplary implementation of the present disclosure, generating the second set of subset codes based on the first set of subset codes includes: swapping a part of the first set of subset codes so as to generate the second set of subset codes.

[0096] According to an exemplary implementation of the present disclosure, swapping a part of the first set of subset codes includes: dividing each subset code in the first set of subset codes into multiple segments according to a predetermined length; and swapping at least one segment of the multiple segments of each subset code.

[0097] According to an exemplary implementation of the present disclosure, generating a second set of subset codes based on the first set of subset codes includes: selecting at least one subset code from the first set of subset codes; updating at least a part of the at least one subset code to form at least one updated subset code; and determining the second set of subset codes based on the at least one updated subset code.

[0098] According to an exemplary implementation of the present disclosure, updating at least a part of the at least one subset code includes: changing at least a part of the digits in the at least one subset code.

[0099] According to an exemplary implementation of the present disclosure, determining a first set of candidate subsets includes: selecting a first set of candidate subsets from multiple candidate subsets of a set of storage devices based on a predetermined performance requirement for a backup destination.

[0100] According to an exemplary implementation of the present disclosure, the predetermined performance requirement includes at least any one of the following: the distance between any two storage devices in each candidate subset of the first set of candidate subsets is greater than a threshold distance; and the available resource amount of any storage device in the first set of candidate subsets is greater than a threshold resource amount.

[0101] According to an exemplary implementation of the present disclosure, determining a first set of candidate subsets includes: respectively determining the global balance degree of candidate subsets in multiple candidate subsets of a set of storage devices, where the global balance degree indicates the usage balance degree of the set of storage devices when the storage devices in the candidate subset are used for backup tasks; and determining the first set of candidate subsets based on the global balance degrees of candidate subsets in the multiple candidate subsets.

[0102] According to an exemplary implementation of the present disclosure, determining the global balance degree of a candidate subset includes: determining the global balance degree based on at least any one of the following: the usage metrics of each storage device in the candidate subset; and the time required to transmit backup data to each storage device in the candidate subset.

[0103] According to an exemplary implementation of the present disclosure, selecting a target subset includes: determining the global balance degrees of each candidate subset in the first set of candidate subsets and the second set of candidate subsets; and determining the target subset based on the global balance degrees of each candidate subset in the first set of candidate subsets and the second set of candidate subsets.

[0104] According to an exemplary implementation of the present disclosure, determining a target subset includes: for a given candidate subset in a first set of candidate subsets and a second set of candidate subsets, in response to determining that the global balance degree of the given candidate subset is higher than a threshold balance degree, identifying the given candidate subset as the target subset.

[0105] According to an exemplary implementation of the present disclosure, there is provided a computer program product, which is tangibly stored on a non-volatile computer-readable medium and includes machine-executable instructions that, when executed, cause the machine to perform the methods described above.

[0106] According to an exemplary implementation of the present disclosure, there is provided a computer-readable medium that includes machine-executable instructions that, when executed, cause the machine to perform the methods described above.

[0107] As used herein, the term "comprising" and its like terms should be understood as open inclusion, that is, "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "an implementation" or "the implementation" should be understood as "at least one implementation". The terms "first", "second", etc. may refer to different or the same objects. There may also be other explicit and implicit definitions herein.

[0108] As used herein, the term "determine" encompasses a variety of actions. For example, "determine" may include operations, calculations, processing, derivations, investigations, lookups (e.g., looking up in a table, database, or another data structure), ascertaining, etc. In addition, "determine" may include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory), etc. In addition, "determine" may include parsing, selecting, picking, establishing, etc.

[0109] It should be noted that the implementations of the present disclosure can be realized by hardware, software, or a combination of software and hardware. The hardware part can be realized by using dedicated logic; the software part can be stored in a memory and executed by an appropriate instruction execution system, such as a microprocessor or dedicated designed hardware. Those skilled in the art can understand that the above devices and methods can be realized by using computer-executable instructions and / or included in processor control code, such as providing such code on a programmable memory or a data carrier such as an optical or electronic signal carrier.

[0110] In addition, although the operations of the methods of the present disclosure are described in a particular order in the drawings, this is not a requirement or implication that the operations must be performed in that particular order, or that all of the shown operations must be performed to achieve the desired result. On the contrary, the steps depicted in the flowcharts may be changed in their order of execution. Additionally or alternatively, certain steps may be omitted, multiple steps may be combined into one step for execution, and / or one step may be decomposed into multiple steps for execution. It should also be noted that the features and functions of two or more devices according to the present disclosure may be embodied in one device. Conversely, the features and functions of one device described above may be further divided and embodied by multiple devices.

[0111] Although the present disclosure has been described with reference to several specific implementations, it should be understood that the present disclosure is not limited to the specific implementations disclosed. The present disclosure aims to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.

Claims

1. A method for selecting a backup destination for a backup task, comprising: Obtaining a first candidate subset from the set of storage devices, wherein the number of storage devices included in the candidate subset in the first candidate subset is determined based on the number of replicas specified by the backup task; determining a first set of subset codes for the first set of candidate subsets, wherein a code in the first set of subset codes uniquely identifies a candidate subset in the first set of candidate subsets; generating a second set of subset codes based on the first set of subset codes, wherein a code in the second set of subset codes uniquely identifies a candidate subset; as well as A target subset is selected as the backup destination of the backup task based on the first set of candidate subsets and a second set of candidate subsets corresponding to the second set of subset codes.

2. The method of claim 1 , wherein determining the first set of subset codes for the first set of candidate subsets comprises: For a given candidate subset in the first set of candidate subsets, Determining the number of storage devices in the storage device set; Based on the number of devices, respectively determine device codes of the plurality of storage devices; as well as The code of the given candidate subset is determined based on the device codes of the respective storage devices in the given candidate subset.

3. The method according to claim 2, wherein respectively determining the device codes of the plurality of storage devices comprises: For a given storage device among the plurality of storage devices, determining a length of a device code for the given storage device based on the number of devices; as well as The device code of the storage device is represented in binary based on the length.

4. The method of claim 3 , wherein generating the second set of subset codes based on the first set of subset codes comprises: A portion of the first set of subset codes is exchanged to generate the second set of subset codes.

5. The method of claim 4 , wherein exchanging the portion of the first set of subset codes comprises: Dividing each subset code in the first group of subset codes into a plurality of segments according to a predetermined length; as well as At least one segment of the plurality of segments of the respective subset codes is exchanged.

6. The method of claim 3 , wherein generating the second set of subset codes based on the first set of subset codes comprises: selecting at least one subset code from said first set of subset codes; updating at least a portion of the at least one subset code to form at least one updated subset code; as well as The second set of subset codes is determined based on the at least one updated subset code.

7. The method of claim 6 , wherein updating the at least a portion of the at least one subset code comprises: At least a portion of the digits in the at least one subset code is changed.

8. The method of claim 1 , wherein determining the first set of candidate subsets comprises: The first set of candidate subsets is selected from a plurality of candidate subsets of the set of storage devices based on predetermined performance requirements for the backup destination.

9. The method according to claim 8, wherein the predetermined performance requirement comprises at least any one of the following: The distance between any two storage devices in each candidate subset of the first set of candidate subsets is greater than a threshold distance; and The available resource amount of any storage device in the first candidate subset is greater than a threshold resource amount.

10. The method of claim 1 , wherein determining the first set of candidate subsets comprises: determining a global balance degree of each candidate subset of the storage device set, wherein the global balance degree indicates a usage balance degree of the storage device set when the storage devices in the candidate subset are used for the backup task; as well as The first group of candidate subsets is determined based on the global balance of the candidate subsets in a plurality of candidate subsets.

11. The method of claim 10, wherein determining the global balance of the candidate subset comprises: The global balance is determined based on at least one of the following: a usage metric for each storage device in the candidate subset; as well as The time required to transfer the backup data to each storage device in the candidate subset.

12. The method of claim 1 , wherein selecting the target subset comprises: determining a global balance degree of each candidate subset in the first group of candidate subsets and the second group of candidate subsets, the global balance degree indicating a usage balance degree of the set of storage devices when the storage devices in the respective candidate subsets are used for the backup task; as well as In the first group of candidate subsets and the second group of candidate subsets, the target subset is determined based on the global balance of the respective candidate subsets.

13. The method of claim 12, wherein determining the target subset comprises: For a given candidate subset in the first group of candidate subsets and the second group of candidate subsets, in response to determining that the global balance degree of the given candidate subset is higher than a threshold balance degree, the given candidate subset is identified as the target subset.

14. An electronic device comprising: at least one processor; as well as At least one memory storing computer program instructions, wherein the at least one memory and the computer program instructions are configured to, together with the at least one processor, cause the electronic device to perform an action for selecting a backup destination for a backup task, the action comprising: Obtaining a first candidate subset from the set of storage devices, wherein the number of storage devices included in the candidate subset in the first candidate subset is determined based on the number of replicas specified by the backup task; determining a first set of subset codes for the first set of candidate subsets, wherein a code in the first set of subset codes uniquely identifies a candidate subset in the first set of candidate subsets; generating a second set of subset codes from the first set of subset codes, the codes in the second set of subset codes uniquely identifying a candidate subset; and A target subset is selected as the backup destination of the backup task based on the first set of candidate subsets and a second set of candidate subsets corresponding to the second set of subset codes.

15. The apparatus of claim 14, wherein determining the first set of subset codes for the first set of candidate subsets comprises: For a given candidate subset in the first set of candidate subsets, Determining the number of storage devices in the storage device set; Based on the number of devices, respectively determine device codes of the plurality of storage devices; as well as The code of the given candidate subset is determined based on the device codes of the respective storage devices in the given candidate subset.

16. The device of claim 15, wherein respectively determining the device codes of the plurality of storage devices comprises: For a given storage device among the plurality of storage devices, determining a length of a device code for the given storage device based on the number of devices; as well as The device code of the storage device is represented in binary based on the length.

17. The apparatus of claim 16, wherein generating the second set of subset codes from the first set of subset codes comprises: A portion of the first set of subset codes is exchanged to generate the second set of subset codes.

18. The apparatus of claim 17, wherein exchanging the portion of the first set of subset codes comprises: Dividing each subset code in the first group of subset codes into a plurality of segments according to a predetermined length; as well as At least one segment of the plurality of segments of the respective subset codes is exchanged.

19. The apparatus of claim 16, wherein generating the second set of subset codes from the first set of subset codes comprises: selecting at least one subset code from said first set of subset codes; updating at least a portion of the at least one subset code to form at least one updated subset code; as well as The second set of subset codes is determined based on the at least one updated subset code.

20. The apparatus of claim 19, wherein updating the at least a portion of the at least one subset code comprises: At least a portion of the digits in the at least one subset code is changed.

21. The apparatus of claim 14, wherein determining the first set of candidate subsets comprises: The first set of candidate subsets is selected from a plurality of candidate subsets of the set of storage devices based on predetermined performance requirements for the backup destination.

22. The apparatus according to claim 21, wherein the predetermined performance requirement comprises at least any one of the following: The distance between any two storage devices in each candidate subset of the first set of candidate subsets is greater than a threshold distance; and The available resource amount of any storage device in the first candidate subset is greater than a threshold resource amount.

23. The apparatus of claim 14, wherein determining the first set of candidate subsets comprises: determining a global balance degree of each candidate subset of the storage device set, wherein the global balance degree indicates a usage balance degree of the storage device set when the storage devices in the candidate subset are used for the backup task; as well as The first group of candidate subsets is determined based on the global balance of the candidate subsets in a plurality of candidate subsets.

24. The apparatus of claim 23, wherein determining the global balance of the candidate subset comprises: The global balance is determined based on at least one of the following: a usage metric for each storage device in the candidate subset; as well as The time required to transfer the backup data to each storage device in the candidate subset.

25. The apparatus of claim 14, wherein selecting the target subset comprises: determining a global balance degree of each candidate subset in the first group of candidate subsets and the second group of candidate subsets, the global balance degree indicating a usage balance degree of the set of storage devices when the storage devices in the respective candidate subsets are used for the backup task; as well as In the first group of candidate subsets and the second group of candidate subsets, the target subset is determined based on the global balance of the respective candidate subsets.

26. The apparatus of claim 25, wherein determining the target subset comprises: For a given candidate subset in the first group of candidate subsets and the second group of candidate subsets, in response to determining that the global balance degree of the given candidate subset is higher than a threshold balance degree, the given candidate subset is identified as the target subset.

27. A computer program product tangibly stored on a non-transitory computer-readable medium and comprising machine-executable instructions which, when executed, cause a machine to perform the steps of the method according to any one of claims 1 to 13.

Citation Information

Patent Citations

  • Optimized selection of storage device subsets for data backup

    CN114064351A

  • Method for selecting backup destination, electronic device and computer program product

    CN114265720A