Method, device, and program product for managing data backups

By obtaining the tolerance time length of the backup session, dividing and allocating time slices, the problem of high load on the backup system is solved, and load balancing and performance improvement of the backup system are achieved.

CN115480954BActive Publication Date: 2026-02-06EMC IP HLDG CO LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110664991.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-06-16
Publication Date
2026-02-06
Estimated Expiration
2041-06-16

AI Technical Summary

Technical Problem

Existing technologies cannot effectively manage data backups, causing backup systems to experience longer response times or even shutdowns under high loads, thus affecting data security.

Method used

By obtaining the tolerance time length of each backup session, the backup cycle is determined and divided into multiple time slices. The backup sessions are then evenly distributed across the time slices to achieve load balancing.

Benefits of technology

It achieves load balancing of the backup system, improves the performance and reliability of the backup system, and avoids the risk of data loss due to high load.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115480954B_ABST
    Figure CN115480954B_ABST
Patent Text Reader

Abstract

The present disclosure relates to methods, devices and program products for managing data backup. In one method, a plurality of tolerance time lengths respectively associated with a plurality of backup sessions are obtained, where a tolerance time length in the plurality of tolerance time lengths represents a length of time of lost data tolerated during a failure of a source storage device associated with a backup session in the plurality of backup sessions. A backup period for performing the plurality of backup sessions is determined based on the plurality of tolerance time lengths. The backup period is divided into a plurality of time slices based on a predetermined time interval. At least one time slice in the plurality of time slices is assigned to a backup session based on the tolerance time length. Corresponding devices and computer program products are provided. With exemplary implementations of the present disclosure, it can be ensured that the assignment of respective time slices to individual backup sessions is distributed as evenly as possible throughout the day, thereby ensuring load balancing of the backup system.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] Implementations of the present disclosure relate to data backup, and more particularly, to a method, device and computer program product for managing time allocation in a backup system. BACKGROUND

[0002] With the development of storage technology, various types of storage devices have been widely used in various application environments. For example, in a banking environment, a storage device can be used to store account information about each user; in a sales environment, a storage device can be used to store sales data about various products, and so on. In order to avoid an unrecoverable failure in a storage device, a backup session can be used to periodically backup data in various application systems to a backup system. However, if a large number of backup sessions occur at the same time in a certain time period, the working load of the backup system will be too high, and thus a failure such as a long response time or even a shutdown can occur. At this time, how to more effectively manage data backup becomes a research hotspot. SUMMARY

[0003] Therefore, it is desirable to develop and implement a technical solution for managing data backup in a more effective manner. It is desirable that the technical solution can manage data backup in a more convenient and effective manner, and thus improve the performance of the backup system.

[0004] According to a first aspect of the present disclosure, a method for managing data backup is provided. In the method, a plurality of tolerance time lengths respectively associated with a plurality of backup sessions are obtained, a tolerance time length in the plurality of tolerance time lengths representing a time length of lost data tolerated during a failure of a source storage device associated with a backup session in the plurality of backup sessions. A backup period for performing the plurality of backup sessions is determined based on the plurality of tolerance time lengths. The backup period is divided into a plurality of time slices based on a predetermined time interval. At least one time slice in the plurality of time slices is allocated to the backup session based on the tolerance time length.

[0005] According to a second aspect of the present disclosure, an electronic device is provided, comprising: at least one processor; a volatile memory; and a memory coupled with the at least one processor, the memory having stored therein instructions that, when executed by the at least one processor, cause the device to perform the method according to the first aspect of the present disclosure.

[0006] According to a third aspect of the present disclosure, a computer program product is provided, the computer program product being tangibly stored on a non-transitory computer readable medium and comprising machine executable instructions for performing the method according to the first aspect of the present disclosure. BRIEF DESCRIPTION OF DRAWINGS

[0007] The features, advantages, and other aspects of the present disclosure will become more apparent from the following detailed description in conjunction with the accompanying drawings, in which several implementations of the present disclosure are illustrated, by way of example, not limitation. In the drawings:

[0008] Figure 1 a block diagram schematically illustrating an application environment in which example implementations of the present disclosure can be implemented;

[0009] Figure 2 a block diagram schematically illustrating a time slice for managing data backup according to example implementations of the present disclosure;

[0010] Figure 3 a flowchart schematically illustrating a method for managing data backup according to example implementations of the present disclosure;

[0011] Figure 4 a block diagram schematically illustrating a tolerance time length according to example implementations of the present disclosure;

[0012] Figure 5 a block diagram schematically illustrating a process of allocating a time slice according to example implementations of the present disclosure;

[0013] Figure 6 a block diagram schematically illustrating a data structure for storing a state of a time slice according to example implementations of the present disclosure; and

[0014] Figure 7 a block diagram schematically illustrating an apparatus for managing data backup according to example implementations of the present disclosure. DETAILED DESCRIPTION

[0015] Preferred implementations of the present disclosure will be described herein below with reference to the accompanying drawings. While the preferred implementations of the present disclosure are shown in the drawings, it is understood that the present disclosure can be implemented in various forms and should not be limited by the implementations set forth herein. Rather, these implementations are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the present disclosure to those skilled in the art.

[0016] The term "includes" and its variants are used inclusively, i.e., "includes but is not limited to." The term "or" means "and / or" unless otherwise specifically indicated. The term "based on" means "based, at least in part, on." The terms "one example implementation" and "an implementation" mean "at least one example implementation." The term "another implementation" means "at least one additional implementation." The terms "first," "second," and the like can refer to different or identical objects. Other explicitly and implicitly recited definitions can also be included below.

[0017] For ease of description, first refer toFigure 1 This describes an application environment based on an exemplary implementation of the present disclosure. Figure 1 A block diagram schematically illustrates an application environment 100 in which exemplary implementations of this disclosure may be implemented. For example... Figure 1 As shown, the application environment 100 may include source storage devices 110, ..., 120 and destination storage device 130. The destination storage device serves as the backup destination in the backup system and can store data blocks from the various source storage devices. For example, backup session 114 can back up data block 112 from source storage device 110 to destination storage device 130 to form data block 112', and backup session 124 can back up data block 122 from source storage device 120 to destination storage device 130 to form data block 122'. Backup sessions can be used to perform backup operations periodically to ensure that data blocks backed up at multiple points in time are included in destination storage device 130.

[0018] It will be understood that the destination storage device 130 has limited resources (e.g., bandwidth, computing resources, etc.). If a large number of backup sessions occur concurrently within a short period, it will lead to resource shortages in the destination storage device 130, resulting in backup process interruptions and increasing the risk of data loss in the source storage device. Currently, technical solutions have been proposed to schedule multiple backup sessions based on the workload of the destination storage device 130. However, existing solutions cannot ensure that multiple backup sessions are evenly distributed throughout the day. Therefore, it is desirable to provide a technical solution that automatically allocates time slices for multiple backup sessions, and it is expected that this solution will be compatible with existing backup systems, thereby improving the overall performance of the backup system.

[0019] To at least partially eliminate the deficiencies in the aforementioned technical solutions, according to an exemplary implementation of this disclosure, a method for managing data backup is provided. In this method, a day can be divided into multiple time slices. Furthermore, corresponding time slices can be allocated to multiple backup sessions, thereby allowing the multiple backup sessions to be evenly distributed throughout the day.

[0020] See below. Figure 2 A summary of an exemplary implementation according to this disclosure is provided. Figure 2 A block diagram 200 illustrating a time slice for managing data backup according to an exemplary implementation of this disclosure is shown schematically. Figure 2As shown, assuming there are 10 backup sessions (labeled as Session 1 to Session 10 respectively), a day can be divided into multiple time slices: Time Slice 1, Time Slice 2, …, Time Slice 24, etc. Each session can be allocated a corresponding time slice according to its tolerance time length. Specifically, legends 211 to 220 show the time slices allocated to sessions 1 to 10 respectively. For example, Session 1 can be allocated Time Slice 1, 5, 9, 13, …, Session 2 can be allocated Time Slice 2, 6, 10, …, Session 3 can be allocated Time Slice 3, 7, 11, …, and so on. In this way, the execution time of multiple sessions can be ensured to be distributed as evenly as possible in various times of a day, thereby achieving load balancing of the backup system.

[0021] In the following, reference will be made to Figure 3 Further details of one example implementation according to the present disclosure are described. Figure 3 A flow chart of a method 300 for managing data backup according to an example implementation of the present disclosure is schematically shown. At block 310, a plurality of tolerance time lengths respectively associated with a plurality of backup sessions are obtained. In the context of the present disclosure, each backup session can have a corresponding tolerance time length, which can represent the length of time of lost data tolerated during a failure of a source storage device associated with the backup session. In the following, reference will be made to Figure 4 Further details regarding the tolerance time length are described.

[0022] Figure 4 A block diagram 400 of a tolerance time length according to an example implementation of the present disclosure is schematically shown. In the context of the present disclosure, the tolerance time length is associated with a failure in a source storage device from which a backup session reads data. The tolerance time length can be represented, for example, using a Recovery Point Objective (RPO). The RPO describes a threshold of time during which data can be lost during a failure of the source storage device, and the amount of data lost during which exceeds a maximum threshold allowed by a storage rule. Figure 4 A time axis 410 is shown, with time point T1 representing a time point at which a failure 420 occurs in the source storage device, and time point T2 representing a threshold time point at which the source storage device is expected to recover from the failure. The length of time between time points T1 and T2 represents the tolerance time length of the source storage device.

[0023] It will be understood that if the source storage device fails, newly generated data may be lost before the source storage device is restored (i.e., during the time period T2-T1). Therefore, the tolerance time is related to the amount of data loss that can be tolerated. Different source storage devices can have different tolerance times. For example, the tolerance time for a source storage device serving a banking system may be relatively short (e.g., 5 minutes). This means that the failure can be tolerated for a maximum of 5 minutes, meaning the failure should be resolved within 5 minutes. Conversely, the tolerance time for a source storage device serving a sales system may be relatively long (e.g., 1 hour).

[0024] According to one exemplary implementation of this disclosure, the tolerance time length associated with each session can be determined separately. For example, Figure 2 For the 10 sessions shown, the tolerance time for sessions 1 to 5 is 1 hour, the tolerance time for sessions 6 to 7 is 2 hours, the tolerance time for sessions 8 to 9 is 3 hours, and the tolerance time for session 10 is 6 hours.

[0025] return Figure 3 ,exist Figure 3 In box 320, a backup cycle for performing multiple backup sessions is determined based on multiple tolerance time lengths. A backup cycle refers to the period during which at least one backup operation is performed for all multiple backup sessions. According to an exemplary implementation of this disclosure, the backup cycle can be determined based on a least common multiple of the multiple tolerance time lengths. In the example above, the least common multiple of the multiple tolerance time lengths of 1 hour, 2 hours, 3 hours, and 6 hours is 6, so the backup cycle can be determined to be 6 hours. According to an exemplary implementation of this disclosure, the backup cycle can also be determined to, for example, 12 hours or other common multiples.

[0026] In box 330, the backup cycle can be divided into multiple time slices based on a predetermined time interval. Here, the time interval is the duration of a backup session. For example, Figure 2 The time slices in the intervals, from 1 to 24, can have the same length. The time interval can be determined in various ways; for example, it can be set to a predetermined value, such as 5 minutes, 10 minutes, 15 minutes, or other values. It will be understood that the duration of a backup session should not exceed the relevant tolerance time length for that backup session; otherwise, the given backup session cannot be completed within the expected time. According to an exemplary implementation of this disclosure, the time interval can be determined based on the minimum of a plurality of tolerance time lengths. For example, the time interval can be set to 1 / n of this minimum value (where n is a positive integer).

[0027] According to one example implementation of the present disclosure, the time interval can be set based on the number of backup sessions. If there are a large number of backup sessions, the time interval can be set to a small value so as to serve the large number of backup sessions with higher granularity. If the number of backup sessions is small, the time interval can be set to a large value. According to one example implementation of the present disclosure, the time interval can be set based on the amount of backup data involved in the plurality of backup sessions. If the backup sessions involve a large amount of backup data and need a long time to execute the backup sessions, the time interval can be set to a large value; if the backup sessions involve a small amount of backup data and need a short time to execute the backup sessions, the time interval can be set to a small value. In this way, it can be ensured that the backup sessions are completed within the allocated time slices.

[0028] After the time interval has been determined, the backup period can be divided into a plurality of time slices according to the time interval. In the following, reference will be made to Figure 5 More details about dividing the time slices will be described. Figure 5 A block diagram of a process 500 of allocating time slices according to an example implementation of the present disclosure is schematically shown. As Figure 5 shown, the time interval 520 represents the predetermined length of the time slices. Assuming that the time interval is 15 minutes and the backup period 510 is 6 hours, the backup period 510 can be divided into 24 time slices.

[0029] Returning to Figure 3 More details about allocating the time slices will be described. At Figure 3 block 340, at least one time slice of the plurality of time slices is allocated to a backup session based on the tolerance time length. Based on the tolerance time length of each backup session, a corresponding number of time slices can be allocated to each backup session. Referring to Figure 5 , the tolerance time length 530 of session 1 is 1 hour, 6 / 1 = 6 time slices: time slice 1, 5, 9, 13, 17, and 21 can be allocated to the backup session 1. Since the tolerance time lengths of sessions 2 to 5 are all 1 hour, 6 time slices can be allocated to each session respectively.

[0030] According to one example implementation of the present disclosure, within a backup period, one or more time slices can be allocated to each backup session of the plurality of backup sessions based on the allocation status of the plurality of time slices. Each backup session can be processed one by one, in the following, backup session 1 will be taken as an example for description. In the initial stage, all time slices are unallocated, one time slice (e.g., time slice 1) can be randomly selected to be allocated to the backup session 1. Then, the number of time slices allocated to the backup session within one backup period can be determined based on the following formula 1:

[0031] Number of time slices = backup period / tolerance time length.

[0032] Equation 1

[0033] At this time, if the backup period is greater than the tolerance time length of the backup session, multiple time slices are allocated to the backup session, otherwise only one time slice is allocated to the backup session. According to one exemplary implementation of the present disclosure, within the backup period, a second time slice of the multiple time slices can be allocated to the backup session based on the allocation status of the multiple time slices. Here, the difference between the first time slice and the second time slice is no higher than the tolerance time length, so as to ensure that the next backup is performed within the tolerance time length. In order to make the best use of each time slice, the time slice after the first time slice and the distance between the first time slice and the second time slice can be selected as the second time slice. For example, time slice 5 after time slice 1 can be selected, and time slice 5 is allocated to backup session 1. Further, time slices 9, 13, 17, and 21 after time slice 5 can be selected. At this time, backup session 1 is allocated a total of 6 time slices: time slices 1, 5, 9, 13, 17, and 21.

[0034] Other backup sessions can be processed in a similar manner. The time slices that have not been allocated can be allocated preferentially, specifically, if it is determined that the allocation status indicates that a given time slice of the multiple time slices has not been allocated, the given time slice is selected for allocation. For example, time slices 2, 6, 10, 14, 18, and 22 can be selected and allocated for session 2, time slices 3, 7, 11, 15, 19, and 23 can be allocated for session 3, and time slices 4, 8, 12, 16, 20, and 24 can be allocated for session 4. At this time, all 24 time slices have been allocated, and the number of times each time slice is allocated is 1.

[0035] According to one exemplary implementation of the present disclosure, the status of each time slice can be stored. In the following, referring to Figure 6 More details are described, which Figure 6 A block diagram of a data structure 600 for storing the status of a time slice according to an exemplary implementation of the present disclosure is schematically shown. In Figure 6 The status 610 of the time slice can include multiple fields: field 612 for indicating the start time of the time slice (e.g., 00:00:00), field 614 for indicating the length of the time slice (e.g., 15 minutes), and field 616 for indicating the number of times the time slice is allocated (e.g., 0 times, 1 time, etc.). When selecting a time slice, the time slice with a lower number of allocations can be selected preferentially, so as to ensure the load balancing of the backup system.

[0036] Returning to Figure 5At this time, the number of allocation times of the 24 time slices is all 1, and thus the time slices to be allocated to the backup session 5 can be randomly selected. For example, the time slice 1 can be selected as the first time slice allocated to the backup session 5, and the subsequent time slices 5, 9, 13, 17, and 21 can be selected according to the tolerance time length of the backup session 5. The other backup sessions 6 to 10 can be processed in a similar manner. For example, the tolerance time length 540 of the backup session 6 is 2 hours, and thus the time slices 2, 10, 18 can be allocated to the backup session 6. Based on the tolerance time length of each session, the time slices 2, 11, 19 can be allocated to the backup session 7, the time slices 3 and 17 can be allocated to the backup session 8, the time slices 4 and 17 can be allocated to the backup session 9, and the time slice 5 can be allocated to the backup session 10.

[0037] According to one exemplary implementation of the present disclosure, the state 610 can further include a field 618 for indicating which backup session(s) the time slice is allocated to, and a field 620 for indicating the amount of backup data involved in the relevant session. The amount of backup data can represent the amount of data that needs to be transmitted within the time slice, and thus the time slice with a smaller amount of backup data can be preferentially selected. With the exemplary implementation of the present disclosure, the load balancing of the backup system can be implemented with higher accuracy based on the amount of data of the backup operation.

[0038] According to one exemplary implementation of the present disclosure, the backup session can be executed only within the allocated time slice, and the backup session can be stopped outside the allocated time slice. For example, the backup session 1 can be executed only within the time slices 1, 5, 9, 13, 17, and 21, and the backup session can not be executed in other time periods. According to one exemplary implementation of the present disclosure, each time slice in a day can be processed in the manner described above. For example, the 24 hours in a day can include 24 / 6=4 backup periods. At this time, the working time of the backup sessions 1 to 10 will be evenly distributed within a day, and thus the load balancing of the backup system is ensured.

[0039] During the operation of the backup system, new backup sessions can appear and existing backup sessions can be terminated, and thus the time slice allocation scheme needs to be adjusted accordingly. According to one exemplary implementation of the present disclosure, if a new backup session is detected in the backup system, the tolerance time length associated with the new backup session can be determined. Then, one or more time slices in the plurality of time slices can be allocated to the new backup session based on the tolerance time length.

[0040] According to an exemplary implementation of this disclosure, if the current backup period is an integer multiple of the tolerance length of a new backup session, a time slice with lower workload can be preferentially selected from multiple time slices. Assuming a new backup session 11 is detected and its associated tolerance length is 3 hours, time slices 1 and 13 can be selected and allocated to backup session 11. According to an exemplary implementation of this disclosure, if the current backup period is not an integer multiple of the tolerance length of backup session 11, the method described above can be re-executed. In other words, the backup period can be re-determined based on the least common multiple of the tolerance lengths of backup sessions 1 to 11, and subsequent operations can then be performed.

[0041] According to an exemplary implementation of this disclosure, if it is determined that the backup session is terminated, at least one time slice allocated to the backup session can be released. Specifically, modifications can be made as follows: Figure 6 The data structure shown includes information such as decrementing the allocation count 618 by one, removing terminated backup sessions from the relevant sessions 618, and removing the data volume generated by the terminated backup sessions from the data stream 620. Using the exemplary implementation of this disclosure, the state information of each time slice can be made more consistent with the actual operating state, thereby facilitating time slice allocation. According to an exemplary implementation of this disclosure, time slices can be reallocated to each backup session based on the updated state of each time slice. Using the exemplary implementation of this disclosure, the time slices of the backup system can be dynamically scheduled as the number of backup sessions in the backup system changes, thereby improving the overall performance of the backup system.

[0042] As mentioned above Figures 2 to 6 Examples of methods according to this disclosure have been described in detail, and implementations of corresponding apparatus will be described below. According to an exemplary implementation of this disclosure, an apparatus for managing data backup is provided. The apparatus includes: an acquisition module configured to acquire a plurality of tolerance time lengths associated with a plurality of backup sessions, each tolerance time length representing a duration of data loss tolerated during a failure of a source storage device associated with a backup session; a determination module configured to determine a backup cycle for performing the plurality of backup sessions based on the plurality of tolerance time lengths; a partitioning module configured to divide the backup cycle into a plurality of time slices based on a predetermined time interval; and an allocation module configured to allocate at least one of the plurality of time slices to the backup sessions based on the tolerance time lengths. According to an exemplary implementation of this disclosure, the apparatus further includes modules for performing other steps in the method 300 described above.

[0043] Figure 7A block diagram of an apparatus 700 for managing data backup in accordance with example implementations of the present disclosure is shown schematically. As shown, the apparatus 700 includes a central processing unit (CPU) 701 that can perform various appropriate actions and processes in accordance with computer program instructions stored in a read-only memory (ROM) 702 or computer program instructions loaded into a random access memory (RAM) 703 from a storage unit 708. Various programs and data required by the apparatus 700 for operation can also be stored in the RAM 703. The CPU 701, the ROM 702, and the RAM 703 are connected to each other via a bus 704. An input / output (I / O) interface 705 is also connected to the bus 704.

[0044] Various components in the apparatus 700 are connected to the I / O interface 705, including an input unit 706, such as a keyboard, a mouse, etc.; an output unit 707, such as various types of displays, speakers, etc.; a storage unit 708, such as a magnetic disk, a magneto-optical disk, etc.; and a communication unit 709, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 709 allows the apparatus 700 to exchange information / data with other apparatuses via a computer network, such as the Internet, and / or various telecommunication networks.

[0045] The various processes and procedures described above, such as the method 300, can be performed by the processing unit 701. For example, in some implementations, the method 300 can be implemented as a computer software program that is tangibly embodied in a machine-readable medium, such as the storage unit 708. In some implementations, part or all of the computer program can be loaded and / or installed on the apparatus 700 via the ROM 702 and / or the communication unit 709. When the computer program is loaded into the RAM 703 and executed by the CPU 701, one or more steps of the method 300 described above can be performed. Alternatively, in other implementations, the CPU 701 can also be configured in any other appropriate manner to implement the processes / methods described above.

[0046] According to an example implementation of the present disclosure, an electronic device is provided, comprising: at least one processor; a volatile memory; and a memory coupled with the at least one processor, the memory having stored therein instructions that, when executed by the at least one processor, cause the device to perform a method for managing data backup. The method comprises: obtaining a plurality of tolerance time lengths respectively associated with a plurality of backup sessions, a tolerance time length of the plurality of tolerance time lengths representing a length of time of lost data tolerated during a failure of a source storage device associated with a backup session of the plurality of backup sessions; determining a backup period for performing the plurality of backup sessions based on the plurality of tolerance time lengths; dividing the backup period into a plurality of time slices based on a predetermined time interval; and assigning at least one time slice of the plurality of time slices to the backup session based on the tolerance time length.

[0047] According to an example implementation of the present disclosure, assigning the at least one time slice of the plurality of time slices to the backup session comprises: assigning, within the backup period, a first time slice of the plurality of time slices to the backup session based on an assignment state of the plurality of time slices.

[0048] According to an example implementation of the present disclosure, assigning the first time slice to the backup session comprises selecting the first time slice based on at least one of: in response to determining that the assignment state indicates that a given time slice of the plurality of time slices has not been assigned, selecting the given time slice as the first time slice; and in response to determining that all of the plurality of time slices have been assigned, selecting the first time slice from the plurality of time slices based on a number of times the plurality of time slices have been assigned.

[0049] According to an example implementation of the present disclosure, assigning the at least one time slice of the plurality of time slices to the backup session further comprises: in response to determining that the backup period is greater than the tolerance time length of the backup session, assigning, within the backup period, a second time slice of the plurality of time slices to the backup session based on the assignment state of the plurality of time slices, a difference between the first time slice and the second time slice being no greater than the tolerance time length.

[0050] According to an example implementation of the present disclosure, the time interval is determined based on at least one of: a minimum value of the plurality of tolerance time lengths; a number of the plurality of backup sessions; and an amount of backup data involved in the plurality of backup sessions.

[0051] According to an example implementation of the present disclosure, determining the backup period comprises: determining the backup period based on a common multiple of the plurality of tolerance time lengths.

[0052] According to one example implementation of the present disclosure, the method further includes: in response to determining that the backup period is a multiple of the other tolerance time length associated with the other backup session in the backup system, determining the other tolerance time length associated with the other backup session; and based on the other tolerance time length, assigning at least one other time slice of the plurality of time slices to the other backup session.

[0053] According to one example implementation of the present disclosure, the method further includes: in response to determining that the backup period is not a multiple of the other tolerance time length, updating the backup period based on the plurality of tolerance time lengths and the other tolerance time length; dividing the updated backup period into the plurality of time slices based on the time interval; and assigning at least one time slice of the plurality of time slices to the plurality of backup sessions and the other backup session respectively based on the plurality of tolerance time lengths and the other tolerance time length.

[0054] According to one example implementation of the present disclosure, the method further includes: in response to determining that the backup session is terminated, releasing the at least one time slice assigned to the backup session.

[0055] According to one example implementation of the present disclosure, the method further includes at least one of: performing the backup session within the at least one time slice; and stopping the backup session outside the at least one time slice.

[0056] According to an example implementation of the present disclosure, a computer program product is provided. The computer program product is tangibly stored on a non-transitory computer readable medium and comprises machine executable instructions for performing a method according to the present disclosure.

[0057] According to an example implementation of the present disclosure, a computer readable medium is provided. The computer readable medium has stored thereon machine executable instructions, which when executed by at least one processor, cause the at least one processor to implement a method according to the present disclosure.

[0058] The present disclosure can be a method, apparatus, system, and / or computer program product. The computer program product can include a computer readable storage medium (or media) having computer readable program instructions thereon for performing various aspects of the present disclosure.

[0059] Computer readable storage media can be tangible storage media which can retain and store instructions for use by an instruction execution device. Computer readable storage media can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of computer readable storage media include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

[0060] Computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network can comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing / processing device.

[0061] Computer readable program instructions for carrying out operations of the present disclosure can be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider). In some implementations, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate array (FPGA), or programmable logic array (PLA) can execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.

[0062] Various aspects of the present disclosure can be described in the general context of methods and / or apparatuses (systems) and computer program products, respectively. Generally, the methods and / or apparatuses (systems) are described in the general context of computer readable program instructions, such as program modules being executed by computers and other programmable devices.

[0063] These computer readable program instructions can be provided to a programmable apparatus (e.g., a processor) to produce a machine, such that the instructions, which execute via the processor of the programmable apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer readable program instructions can also be stored in a computer readable storage medium that can include non-transitory computer readable storage media that can direct a computer, a programmable apparatus, and / or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function / act specified in the flowchart and / or block diagram block or blocks.

[0064] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer, other programmable data processing apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0065] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer, other programmable data processing apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0066] The above-described implementations of the disclosure are illustrative and not exhaustive, and are not limited to the disclosed implementations. Numerous modifications and adaptations will be apparent to those skilled in the art without departing from the scope and spirit of the disclosed implementations. The choice of words in this document is intended to best explain the principles of the implementations, practical application, or improvement over the technology in the market, or to enable other ordinary skilled in the art to understand the implementations disclosed herein.

Claims

1. A method for managing data backup, the method being used for a plurality of source storage devices to perform data backup to a destination storage device, the method comprising: obtaining a plurality of tolerance time lengths respectively associated with a plurality of backup sessions, a tolerance time length of the plurality of tolerance time lengths representing a length of time of lost data tolerated during a failure of a source storage device associated with a backup session of the plurality of backup sessions; determining a backup period for performing the plurality of backup sessions based on the plurality of tolerance time lengths, the backup period referring to a period in which a backup operation is performed at least once for all of the plurality of backup sessions; dividing the backup period into a plurality of time slices based on a predetermined time interval; allocating at least one time slice of the plurality of time slices to the backup session based on the tolerance time length, wherein a number of the time slices allocated to the backup session within one of the backup periods is determined based on the backup period and the tolerance time length associated with the backup session; and performing the backup session within the allocated time slice to cause at least one of the plurality of source storage devices to perform data backup to the destination storage device, wherein the allocating of the at least one time slice of the plurality of time slices to the backup session comprises: in response to determining that the backup period is greater than the tolerance time length of the backup session, allocating a first time slice and a second time slice of the plurality of time slices to the backup session within the backup period based on an allocation status of the plurality of time slices, a difference between the first time slice and the second time slice being no higher than the tolerance time length; and otherwise, allocating the first time slice of the plurality of time slices to the backup session. 2.The method of claim 1, wherein the allocating of the first time slice to the backup session comprises selecting the first time slice based on at least one of: in response to determining that the allocation status indicates that a given time slice of the plurality of time slices has not been allocated, selecting the given time slice as the first time slice; and in response to determining that the allocation status indicates that all of the plurality of time slices have been allocated, selecting the first time slice from the plurality of time slices based on a number of times the plurality of time slices are allocated. 3.The method of claim 1, wherein the time interval is determined based on at least one of: a minimum value of the plurality of tolerance time lengths; a number of the plurality of backup sessions; and an amount of backup data involved in the plurality of backup sessions. determining the backup period based on a common multiple of the plurality of tolerance time lengths.

4. The method of claim 1, wherein determining the backup period comprises: in response to determining that the backup period is a multiple of another tolerance time length associated with another backup session in a backup system, 5. The method of claim 1, further comprising: determining the another tolerance time length associated with the another backup session; and allocating at least one other time slice of the plurality of time slices to the another backup session based on the another tolerance time length. 6.The method of claim 5, further comprising: ​ ​ in response to determining that the backup period is not a multiple of the other tolerance time length, updating the backup period based on the plurality of tolerance time lengths and the other tolerance time length; based on the time interval, dividing the updated backup period into a plurality of time slices; and based on the plurality of tolerance time lengths and the other tolerance time length, allocating at least one time slice of the plurality of time slices to the plurality of backup sessions and the other backup session respectively.

7. The method of claim 1, further comprising: in response to determining that the backup session is terminated, releasing the at least one time slice allocated to the backup session.

8. The method of claim 1, further comprising: performing the backup session within the at least one time slice; and stopping the backup session outside the at least one time slice.

9. An electronic device, comprising: at least one processor; a volatile memory; and a memory coupled with the at least one processor, the memory having stored therein instructions that, when executed by the at least one processor, cause the device to perform a method for managing data backup, the method for a plurality of source storage devices to perform data backup to a destination storage device, the method comprising: obtaining a plurality of tolerance time lengths respectively associated with a plurality of backup sessions, a tolerance time length of the plurality of tolerance time lengths representing a length of time of lost data tolerated during a failure of a source storage device associated with a backup session of the plurality of backup sessions; determining a backup period for performing the plurality of backup sessions based on the plurality of tolerance time lengths, the backup period referring to a period in which at least one backup operation is performed for all of the plurality of backup sessions; dividing the backup period into a plurality of time slices based on a predetermined time interval; and allocating at least one time slice of the plurality of time slices to the backup session based on the tolerance time length, wherein a number of the time slices allocated to the backup session within one of the backup periods is determined based on the backup period and the tolerance time length associated with the backup session; and performing the backup session within the allocated time slice to cause at least one of the plurality of source storage devices to perform data backup to the destination storage device, wherein allocating the at least one time slice of the plurality of time slices to the backup session comprises: in response to determining that the backup period is greater than the tolerance time length of the backup session, allocating, to the backup session, a first time slice and a second time slice of the plurality of time slices within the backup period based on an allocation status of the plurality of time slices, a difference between the first time slice and the second time slice being no higher than the tolerance time length; otherwise, allocating the first time slice of the plurality of time slices to the backup session.

10. The device of claim 9, wherein allocating the first time slice to the backup session comprises selecting the first time slice based on at least any of: ​ ​ in response to determining that the allocation status indicates that a given time slice of the plurality of time slices has not been allocated, selecting the given time slice as the first time slice; and in response to determining that the allocation status indicates that all of the plurality of time slices have been allocated, selecting the first time slice from the plurality of time slices based on a number of times the plurality of time slices have been allocated.

11. The device of claim 9, wherein the time interval is determined based on at least any of: a minimum of the plurality of tolerated time lengths; a number of the plurality of backup sessions; and an amount of backup data involved in the plurality of backup sessions.

12. The device of claim 9, wherein determining the backup period comprises: determining the backup period based on a least common multiple of the plurality of tolerated time lengths.

13. The apparatus of claim 9, wherein the method further comprises: in response to determining that the backup period is a multiple of another tolerated time length associated with another backup session in a backup system, determining another tolerated time length associated with the another backup session; and allocating at least one other time slice of the plurality of time slices to the another backup session based on the another tolerated time length.

14. The device of claim 13, wherein the method further comprises: in response to determining that the backup period is not a multiple of the another tolerated time length, updating the backup period based on the plurality of tolerated time lengths and the another tolerated time length; dividing the updated backup period into a plurality of time slices based on the time interval; and allocating at least one time slice of the plurality of time slices to the plurality of backup sessions and the another backup session respectively based on the plurality of tolerated time lengths and the another tolerated time length.

15. The device of claim 9, wherein the method further comprises at least any of: in response to determining that the backup session is terminated, releasing the at least one time slice allocated to the backup session; performing the backup session within the at least one time slice; and stopping the backup session outside of the at least one time slice.

16. A computer program product tangibly stored on a non-transitory computer readable medium and comprising machine executable instructions for performing a method according to any of claims 1 to 8. ​

Citation Information

Patent Citations

  • System for time hashing of periodic data report

    CN105119769A

  • Method and equipment for backing up data and computer program product

    CN112685220A