Method, electronic device and computer program product for managing data backup
By dynamically adjusting the cache available capacity of the backup client and optimizing data backup based on historical performance parameters, it solves the performance problems caused by fixed cache capacity in traditional solutions, and improves data backup efficiency and resource utilization.
Patent Information
- Application Number
- CN201911158177.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-11-22
- Publication Date
- 2024-12-20
- Estimated Expiration
- 2039-11-22
AI Technical Summary
In traditional data backup systems, the available capacity of the cache is set to a fixed ratio relative to the total memory size, which cannot adapt to environmental changes, affects data backup performance, and cannot make full use of system resources.
By obtaining the performance parameters of the backup client, collecting multiple sets of historical performance parameters, determining historical parameters with high similarity to the current parameters, and adjusting the available capacity of the cache to dynamically adapt to system resource changes.
It improves the performance of the data backup system, makes full use of system resources, saves network traffic, and improves the deduplication ability and system resource utilization of the backup client.
Smart Images

Figure CN112835740B_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure generally relate to the field of data storage, and more particularly to methods, electronic devices, and computer program products for managing data backup. Background Art
[0002] A data backup system generally includes a backup client and a backup server, wherein the backup client is used to send the data to be backed up to the backup server for backup. In a data backup system that supports a de-duplication function, a cache may be provided in the memory of the backup client for recording information related to the data that has been sent to the backup server, thereby avoiding duplicate data from being sent to the backup server. In this way, the backup client only sends new data to be backed up to the backup server for backup, thereby saving network traffic. The cache is generally managed by the backup client, and its available capacity (i.e., the maximum memory size that the cache can occupy) is generally set to a fixed ratio relative to the total memory size of the backup client. However, such a mechanism often cannot adapt to environmental changes, and may even seriously affect the performance of the data backup system in some cases. Summary of the invention
[0003] Embodiments of the present disclosure provide a method, an electronic device, and a computer program product for managing data backup.
[0004] In a first aspect of the present disclosure, a method for providing information is provided. The method includes: obtaining a first set of performance parameters of a backup client before performing data backup, the backup client is used to send data to a backup server for backup, and record information about the backed-up data in a cache to avoid duplicate data being sent to the backup server; determining at least one set of historical performance parameters with a high degree of similarity to the first set of performance parameters from multiple sets of historical performance parameters collected when the backup client performs multiple historical data backups; determining a set of historical performance parameters indicating the best performance from the at least one set of historical performance parameters; and adjusting the available capacity of the cache during the data backup period based on the set of historical performance parameters.
[0005] In a second aspect of the present disclosure, an electronic device is provided. The device includes at least one processing unit and at least one memory. The at least one memory is coupled to the at least one processing unit and stores instructions for execution by the at least one processing unit. When the instructions are executed by the at least one processing unit, the device performs an action, the action including: obtaining a first set of performance parameters of a backup client before performing data backup, the backup client is used to send data to a backup server for backup, and recording information about the backed up data in a cache to avoid duplicate data being sent to the backup server; from multiple sets of historical performance parameters collected when the backup client performs multiple historical data backups, determining at least one set of historical performance parameters with a high degree of similarity to the first set of performance parameters; determining a set of historical performance parameters indicating the best performance from at least one set of historical performance parameters; and adjusting the available capacity of the cache during data backup based on the set of historical performance parameters.
[0006] In a third aspect of the present disclosure, a computer program product is provided. The computer program product is tangibly stored in a non-transient computer storage medium and includes machine executable instructions. The machine executable instructions, when executed by a device, cause the device to perform any step of the method described in the first aspect of the present disclosure.
[0007] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the present disclosure, nor is it intended to limit the scope of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The above and other objects, features and advantages of the present disclosure will become more apparent through a more detailed description of exemplary embodiments of the present disclosure in conjunction with the accompanying drawings, wherein like reference numerals generally represent like components throughout the exemplary embodiments of the present disclosure.
[0009] Figure 1 A block diagram illustrating an example backup system in which embodiments of the present disclosure can be implemented;
[0010] Figure 2 A flowchart illustrating an example method for managing data backup according to an embodiment of the present disclosure is shown;
[0011] Figure 3 A flowchart illustrating an example method for determining multiple sets of historical performance parameters according to an embodiment of the present disclosure is shown;
[0012] Figure 4 A flowchart showing an example method for determining at least one set of historical performance parameters having a high degree of similarity to current performance parameters from multiple sets of historical performance parameters according to an embodiment of the present disclosure; and
[0013] Figure 5 A schematic block diagram of an example device that may be used to implement embodiments of the present disclosure is shown.
[0014] In the various drawings, the same or corresponding reference numerals represent the same or corresponding parts. DETAILED DESCRIPTION
[0015] The preferred embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although the preferred embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. On the contrary, these embodiments are provided to make the present disclosure more thorough and complete, and to fully convey the scope of the present disclosure to those skilled in the art.
[0016] As used herein, the term "including" and its variations mean open inclusion, i.e., "including but not limited to". Unless otherwise stated, the term "or" means "and / or". The term "based on" means "based at least in part on". The terms "an example embodiment" and "an embodiment" mean "at least one example embodiment". The term "another embodiment" means "at least one additional embodiment". The terms "first", "second", etc. may refer to different or the same objects. Other explicit and implicit definitions may also be included below.
[0017] As described above, a data backup system generally includes a backup client and a backup server, wherein the backup client is used to send the data to be backed up to the backup server for backup. In a data backup system supporting a de-duplication function, a cache may be provided in the memory of the backup client for recording information related to the data that has been sent to the backup server, thereby preventing duplicate data from being sent to the backup server. In this way, the backup client only sends new data to be backed up to the backup server for backup, thereby saving network traffic.
[0018] The cache is usually managed by the backup client. In some traditional solutions, the actual memory size occupied by the cache (also called the "actual capacity" of the cache) can be automatically increased as needed, but the maximum memory size that the cache can occupy (also called the "available capacity" of the cache, i.e., the maximum value of the actual capacity of the cache) is usually set to a fixed ratio relative to the total memory size of the backup client. Such a mechanism often cannot adapt to the requirements of different environments. For example, when a large amount of memory is used at the backup client and the CPU occupancy rate is high, the available capacity of the cache cannot be automatically reduced to improve the performance of the system. For another example, if there are a large number of idle memory resources at the backup client, and the actual capacity of the cache has reached its upper limit, these idle memory resources cannot be used by the cache to further improve the performance of the system. Different types of backup clients often have different system resources, such as CPU, memory, operating system, etc. These are important factors that affect the memory occupancy of the backup client, and these factors are not taken into account when setting the available capacity of the cache in the traditional solution. In addition, different types of data often have different repetition rates, and the corresponding cache capacities should be different. If the available capacity of the cache is set to a fixed ratio relative to the total memory size, it is impossible to fully utilize the memory and / or cache.
[0019] The embodiments of the present disclosure propose a solution for managing data backup to solve the above problems and / or other potential problems. The solution obtains a first set of performance parameters of a backup client before performing data backup, and then determines at least one set of historical performance parameters with a high degree of similarity to the first set of performance parameters from multiple sets of historical performance parameters collected when the backup client performs multiple historical data backups. The solution further determines a set of historical performance parameters indicating the best performance from at least one set of historical performance parameters, and adjusts the available capacity of the cache during the data backup based on the set of historical performance parameters. In this way, the embodiments of the present disclosure can significantly improve the performance of the data backup system.
[0020] The embodiments of the present disclosure will be described in detail below in conjunction with the accompanying drawings. Figure 1 A block diagram of an example backup system 100 in which embodiments of the present disclosure can be implemented is shown. It should be understood that the structure of the example backup system 100 is described for exemplary purposes only and does not imply any limitation on the scope of the present disclosure.
[0021] like Figure 1As shown, the backup system 100 may include a backup server 110 and a backup client 120. For example, the backup server 110 and the backup client 120 may be implemented using any physical host, virtual machine, or other device, respectively. The backup server 110 may communicate with the backup client 120 via a network (e.g., the Internet). The backup client 120 may be configured to send the data to be backed up to the backup server 110 for backup.
[0022] The backup system 100 may, for example, support a deduplication function. Figure 1 As shown, the backup client 120 may be provided with a cache 121 (for example, in its memory) for recording information (for example, a hash value) related to the data that has been sent to the backup server 110. Before each data backup, the backup client 120 may determine whether the data to be backed up has been sent to the backup server 110 by querying the cache 121. If the backup client 120 determines that the data to be backed up has been sent to the backup server 110, the backup client 120 may no longer send the data to the backup server 110. If the backup client 120 determines that the data to be backed up has not been sent to the backup server 110, the backup client 120 may send the data to the backup server 110 for backup. In this way, the backup client 120 can avoid sending duplicate data to the backup server 110, thereby saving network bandwidth.
[0023] In some embodiments, the actual capacity of the cache 121 can be adjusted dynamically. For example, as the amount of data being backed up increases, the actual capacity of the cache 121 can increase accordingly until it reaches its upper limit (i.e., "available capacity"). At this time, if new data is backed up to the backup server 110, the information about the new data (e.g., hash value) can replace the oldest information about the backed-up data recorded in the cache 121.
[0024] In some embodiments, the available capacity of the cache 121 (that is, the maximum value of the actual capacity of the cache 121) can be dynamically adjusted to improve the performance of the backup system. In some embodiments, when the resource usage (for example, the memory idle rate or the CPU idle rate, etc.) at the backup client 120 changes and the change exceeds a predetermined threshold, the backup client 120 can dynamically adjust the available capacity of the cache 121.
[0025] In some embodiments, in order to dynamically adjust the available capacity of the cache 121, the backup client 120 may record the corresponding performance parameters when performing each data backup in a list. In some embodiments, when the resource usage (e.g., memory idle rate or CPU idle rate, etc.) at the backup client 120 changes and the change exceeds a predetermined threshold, the backup client 120 may adjust the available capacity of the cache 121 based on the historical performance parameters recorded in the list.
[0026] In some embodiments, the backup client 120 may be configured to perform a backup for one or more data types (such as database data, virtual machine data, and / or file system data, etc.). For each data type, the backup client 120 may record the corresponding performance parameters when performing each data backup for the data type in a list associated with the data type. In some embodiments, in response to a change in resource usage (e.g., memory idle rate or CPU idle rate, etc.) at the backup client 120 and the magnitude of the change exceeds a predetermined threshold, before the backup client 120 performs a data backup for the data type, the backup client 120 may adjust the available capacity of the cache 121 during the data backup for the data type based on the historical performance parameters recorded in the list associated with the data type.
[0027] Figure 2 1 is a flowchart of an exemplary method 200 for managing data backup according to an embodiment of the present disclosure. The method 200 may be implemented in a Figure 1 The method 200 is executed at the backup client 120 shown. In some embodiments, the backup client 120 may execute the method 200 before performing each data backup. Alternatively or additionally, in some embodiments, when the resource usage (e.g., memory idle rate or CPU idle rate) at the backup client 120 changes and the change exceeds a predetermined threshold, the method 200 may be executed. It should be understood that the method 200 may also include additional blocks not shown and / or may omit the blocks shown, and the scope of the present disclosure is not limited in this respect. Figure 1 The method 200 will be described in detail.
[0028] like Figure 2As shown, at block 210, the backup client 120 obtains a first set of performance parameters of the backup client 120 before performing data backup. In some embodiments, the first set of performance parameters may include at least memory usage (e.g., memory occupancy and / or memory idle rate, etc.) at the backup client 120, CPU usage (e.g., CPU occupancy and / or CPU idle rate, etc.), available capacity of the currently set cache 121, and data access performance (e.g., data access speed, etc.) at the backup client 120. The backup client 120 may obtain the performance parameters of the backup client 120 by any known or future developed means (e.g., via a corresponding application programming interface provided by the system or other means).
[0029] At block 220 , the backup client 120 determines at least one set of historical performance parameters having a high degree of similarity to the first set of performance parameters from among the multiple sets of historical performance parameters collected when performing multiple historical data backups.
[0030] In some embodiments, before determining at least one set of historical performance parameters having a high degree of similarity to the first set of performance parameters, the backup client 120 may obtain multiple sets of historical performance parameters based on the type of data for which the data backup is to be performed.
[0031] Figure 3 FIG. 3 is a flowchart of an exemplary method 300 for obtaining multiple sets of historical performance parameters according to an embodiment of the present disclosure. The method 300 may be implemented in the following manner: Figure 1 The backup client 120 is shown as being executed.
[0032] like Figure 3 As shown, at block 310, the backup client 120 determines the data type for which the data backup is to be performed. Examples of data types include, but are not limited to, database data, virtual machine data, file system data, etc. In some embodiments, each data backup may be for only one data type among database data, virtual machine data, file system data, etc.
[0033] At block 320, the backup client 120 obtains multiple sets of historical performance parameters collected when the backup client 120 performs multiple historical data backups for the data type. In some embodiments, as described above, the backup client 120 may record the corresponding performance parameters when performing data backup for each data type in a list associated with the data type. The backup client 120 may obtain multiple sets of historical performance parameters from the corresponding list.
[0034] In some embodiments, each of the multiple groups of historical performance parameters may include at least: the average memory usage of the backup client 120 when performing the corresponding historical data backup (for example, the average memory occupancy rate and / or the average memory idle rate, etc.); the average CPU usage of the backup client 120 when performing the corresponding historical data backup (for example, the average CPU occupancy rate and / or the average CPU idle rate, etc.); the available capacity of the cache 121 during the corresponding historical data backup; and the average data access performance of the backup client 120 when performing the corresponding historical data backup (for example, the average data access speed, etc.).
[0035] Figure 4 FIG. 4 is a flowchart of an exemplary method 400 for obtaining multiple sets of historical performance parameters according to an embodiment of the present disclosure. The method 400 may be implemented in the following manner: Figure 1 The backup client 120 is shown as being executed.
[0036] like Figure 4 As shown, at block 410, backup client 120 determines the corresponding similarities between the first set of performance parameters and the multiple sets of historical performance parameters. In some embodiments, for a given set of historical performance parameters in the multiple sets of historical performance parameters, backup client 120 may determine the similarity between the first set of performance parameters and the given set of historical performance parameters based at least on the average memory usage and the average CPU usage in the given set of historical performance parameters, and the memory usage and the CPU usage in the first set of performance parameters.
[0037] In some embodiments, backup client 120 may determine a Euclidean distance between the first set of performance parameters and the given set of historical performance parameters based at least on average memory usage and average CPU usage in the given set of historical performance parameters and memory usage and CPU usage in the first set of performance parameters:
[0038]
[0039] Where x represents the first set of performance parameters, y represents a given set of historical performance parameters, S 1x represents the memory usage in the first group of performance parameters (e.g., memory idle rate), S 2x Indicates the CPU usage in the first set of performance parameters (for example, CPU idle rate), S 1y represents the average memory usage (e.g., average memory idle rate) in a given set of historical performance parameters, S 2yIndicates the average CPU usage (for example, average CPU idle rate) in a given set of historical performance parameters. The smaller the Euclidean distance D(x, y), the higher the similarity between the first set of performance parameters and the given set of historical performance parameters.
[0040] Alternatively, in some embodiments, backup client 120 may determine a Manhattan distance between the first set of performance parameters and the given set of historical performance parameters based at least on the average memory usage and the average CPU usage in the given set of historical performance parameters and the memory usage and the CPU usage in the first set of performance parameters:
[0041]
[0042] Where x represents the first set of performance parameters, y represents a given set of historical performance parameters, S 1x represents the memory usage in the first group of performance parameters (e.g., memory idle rate), S 2x Indicates the CPU usage in the first set of performance parameters (for example, CPU idle rate), S 1y represents the average memory usage (e.g., average memory idle rate) in a given set of historical performance parameters, S 2y Indicates the average CPU usage (e.g., average CPU idle rate) in a given set of historical performance parameters. The smaller the Manhattan distance D(x,y), the higher the similarity between the first set of performance parameters and the given set of historical performance parameters.
[0043] At block 420, backup client 120 sorts the multiple groups of historical performance parameters based on the respective similarities between the first group of performance parameters and the multiple groups of historical performance parameters. Then, at block 430, backup client 120 selects at least one group of historical performance parameters having a higher similarity to the first group of performance parameters from the multiple groups of historical performance parameters based on the sorting result. In some embodiments, backup client 120 may select a predetermined number (e.g., 10) groups of historical performance parameters from the multiple groups of historical performance parameters based on the sorting result.
[0044] return Figure 2 At block 230, backup client 120 determines a set of historical performance parameters indicating the best performance from at least one set of historical performance parameters. In some embodiments, backup client 120 may determine a set of historical performance parameters indicating the best average data access performance (e.g., the highest data access speed) from at least one set of historical performance parameters.
[0045] At block 240, backup client 120 adjusts the available capacity of cache 121 during the data backup to be performed based on the set of historical performance parameters. For example, the set of historical performance parameters may indicate the available capacity of cache 121 set during the corresponding historical data backup. In some embodiments, backup client 120 may adjust the available capacity of cache 121 during the data backup to be performed based on the available capacity of cache 121 during the corresponding historical data backup as indicated by the set of historical performance parameters.
[0046] It should be understood that since the system resource usage corresponding to this group of historical performance parameters is similar to the current system resource usage, and the available capacity of the cache 121 indicated by this group of historical performance parameters can achieve the best average data access performance, better data access performance can be achieved by adjusting the available capacity of the cache 121 during the data backup to be performed based on the available capacity of the cache 121 indicated by this group of historical performance parameters.
[0047] Additionally, the backup client 120 performs the current data backup based on the adjusted available capacity of the cache 121, and collects a second set of performance parameters of the backup client when performing the current data backup. Similarly, the second set of performance parameters may at least include: the average memory usage of the backup client 120 when performing the data backup (e.g., average memory occupancy and / or average memory idle rate, etc.); the average CPU usage of the backup client 120 when performing the data backup (e.g., average CPU occupancy and / or average CPU idle rate, etc.); the adjusted available capacity of the cache 121; and the average data access performance of the backup client 120 when performing the data backup (e.g., average data access speed, etc.). The second set of performance parameters may be recorded in a corresponding list for use in subsequent adjustment of the capacity of the cache 121.
[0048] It can be seen from the above description that an embodiment of the present disclosure proposes a solution for managing a cache at a backup client. The solution obtains a first set of performance parameters of the backup client before performing data backup, and then determines at least one set of historical performance parameters with a high degree of similarity to the first set of performance parameters from multiple sets of historical performance parameters collected when the backup client performs multiple historical data backups. The solution further determines a set of historical performance parameters indicating the best performance from at least one set of historical performance parameters, and adjusts the available capacity of the cache during the data backup based on the set of historical performance parameters. In this way, the backup client can intelligently adjust the maximum memory size that can be occupied by the cache to dynamically adapt to changes in system resources. In addition, the backup client will make better use of available system resources, thereby improving the performance of data backup.
[0049] Compared with the traditional scheme, the scheme has the following advantages: (1) The scheme takes into account the impact of different system resources on memory occupancy and the data duplication rate of different data types, thereby improving the performance of data backup; (2) As time goes by and the historical records increase, the scheme will become more and more intelligent through continuous learning of the historical records; (3) Since the maximum memory size that can be occupied by the cache will be set to the most appropriate value, the system resources will be fully utilized, thereby improving the deduplication capability of the backup client; (4) Since the maximum memory size that can be occupied by the cache will be set to the most appropriate value and the deduplication capability of the backup client is improved, the network traffic used for data backup can be further saved; (5) Benefiting from the above advantages, the customer satisfaction of the backup system will be improved.
[0050] Figure 5 Schematic block diagram of an example device 500 that can be used to implement embodiments of the present disclosure is shown. Figure 1 The backup server 110 and / or the backup client 120 shown may be implemented by the device 500. Figure 5 As shown, the device 500 includes a central processing unit (CPU) 501, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 502 or loaded from a storage page 508 into a random access memory (RAM) 503. In the RAM 503, various programs and data required for the operation of the device 500 can also be stored. The CPU 501, the ROM 502, and the RAM 503 are connected to each other via a bus 504. An input / output (I / O) interface 505 is also connected to the bus 504.
[0051] A number of components in the device 500 are connected to the I / O interface 505, including: an input unit 506, such as a keyboard, a mouse, etc.; an output unit 507, such as various types of displays, speakers, etc.; a storage page 508, such as a disk, an optical disk, etc.; and a communication unit 509, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 509 allows the device 500 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.
[0052] The various processes and processing described above, such as methods 200, 300, and / or 400, may be performed by the processing unit 501. For example, in some embodiments, the methods 200, 300, and / or 400 may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as a storage page 508. In some embodiments, part or all of the computer program may be loaded and / or installed on the device 500 via the ROM 502 and / or the communication unit 509. When the computer program is loaded into the RAM 503 and executed by the CPU 501, one or more actions of the methods 200, 300, and / or 400 described above may be performed.
[0053] The present disclosure may be a method, an apparatus, a system and / or a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for executing various aspects of the present disclosure.
[0054] Computer readable storage medium can be a tangible device that can hold and store instructions used by an instruction execution device. Computer readable storage medium can be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above. More specific examples (non-exhaustive list) of computer readable storage medium include: portable computer disk, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanical encoding device, such as a punch card or a convex structure in a groove on which instructions are stored, and any suitable combination of the above. The computer readable storage medium used here is not interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (e.g., a light pulse by an optical fiber cable), or an electrical signal transmitted by a wire.
[0055] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in the computer-readable storage medium in each computing / processing device.
[0056] The computer program instructions for performing the operation of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages, such as Smalltalk, C++, etc., and conventional procedural programming languages, such as "C" language or similar programming languages. Computer-readable program instructions may be executed completely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or completely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., using an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be customized by utilizing the state information of the computer-readable program instructions, and the electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present disclosure.
[0057] Various aspects of the present disclosure are described herein with reference to the flowcharts and / or block diagrams of the methods, devices (systems) and computer program products according to the embodiments of the present disclosure. It should be understood that each box in the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer-readable program instructions.
[0058] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0059] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operating steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0060] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple embodiments of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of the module, program segment or instruction includes one or more executable instructions for realizing the specified logical function. In some alternative implementations, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs the specified function or action, or can be implemented with a combination of special hardware and computer instructions.
[0061] The embodiments of the present disclosure have been described above, and the above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The selection of terms used herein is intended to best explain the principles of the embodiments, practical applications, or technical improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.
Claims
1. A method for managing data backup, comprising: Acquiring, via an application programming interface, a first set of performance parameters of a backup client before performing data backup, the backup client being used to send data to a backup server for backup, and to record information about the backed-up data in a cache to prevent duplicate data from being sent to the backup server, wherein the first set of performance parameters at least includes a first available capacity of the cache; Determining at least one group of historical performance parameters having a high degree of similarity to the first group of performance parameters from multiple groups of historical performance parameters collected when the backup client performs multiple historical data backups; Determining a set of historical performance parameters indicating optimal performance from the at least one set of historical performance parameters, wherein the set of historical performance parameters indicating the optimal performance includes at least a second available capacity of the cache; as well as Based on the set of historical performance parameters indicative of the best performance, the first available capacity of the cache is adjusted to the second available capacity, wherein the cache is to be used during the data backup.
2. The method according to claim 1, further comprising: Before determining the at least one set of historical performance parameters, Determining the type of data targeted by the data backup; as well as The multiple groups of historical performance parameters collected when the backup client performs the multiple historical data backups for the data type are obtained.
3. The method according to claim 1, wherein one of the plurality of sets of historical performance parameters comprises at least: The average memory usage of the backup client when performing the corresponding historical data backup; The average CPU usage of the backup client when performing the corresponding historical data backup; The available capacity of the cache during the backup of the corresponding historical data; as well as The average data access performance of the backup client when performing the corresponding historical data backup.
4. The method according to claim 3, wherein the first set of performance parameters comprises at least: Memory usage at the backup client; CPU usage at the backup client; the available capacity of the cache; as well as Data access performance at the backup client.
5. The method of claim 4, wherein determining the at least one set of historical performance parameters comprises: determining respective similarities between the first set of performance parameters and the plurality of sets of historical performance parameters; sorting the multiple groups of historical performance parameters based on respective similarities between the first group of performance parameters and the multiple groups of historical performance parameters; as well as Based on the result of the sorting, at least one group of historical performance parameters having a higher similarity to the first group of performance parameters is selected from the multiple groups of historical performance parameters.
6. The method of claim 5, wherein determining the respective similarities between the first set of performance parameters and the plurality of sets of historical performance parameters comprises: For a given set of historical performance parameters from among the multiple sets of historical performance parameters, Determine the similarity between the first set of performance parameters and the given set of historical performance parameters based at least on the average memory usage and the average CPU usage in the given set of historical performance parameters, and the memory usage and the CPU usage in the first set of performance parameters.
7. The method of claim 3, wherein determining the set of historical performance parameters indicative of optimal performance comprises: The set of historical performance parameters associated with best average data access performance is determined from the at least one set of historical performance parameters.
8. The method of claim 1 , wherein the set of historical performance parameters indicating the best performance indicates available capacity of the cache during a corresponding historical data backup, and adjusting the available capacity of the cache during the data backup comprises: Based on the available capacity of the cache during the corresponding historical data backup period, the available capacity of the cache during the data backup period is adjusted.
9. The method according to claim 1, further comprising: Based on the adjusted available capacity of the cache, performing the data backup; as well as A second set of performance parameters of the backup client when performing the data backup is collected.
10. The method according to claim 9, wherein the second set of performance parameters comprises at least: The average memory usage of the backup client when performing the data backup; The average CPU usage of the backup client when performing the data backup; the adjusted available capacity of the cache; as well as The average data access performance of the backup client when performing the data backup.
11. An electronic device, comprising: at least one processing unit; at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the electronic device to perform actions, the actions comprising: Acquiring, via an application programming interface, a first set of performance parameters of a backup client before performing data backup, the backup client being used to send data to a backup server for backup, and to record information about the backed-up data in a cache to prevent duplicate data from being sent to the backup server, wherein the first set of performance parameters at least includes a first available capacity of the cache; Determining at least one group of historical performance parameters having a high degree of similarity to the first group of performance parameters from multiple groups of historical performance parameters collected when the backup client performs multiple historical data backups; Determining a set of historical performance parameters indicating the best performance from the at least one set of historical performance parameters, wherein the set of historical performance parameters indicating the best performance includes at least a second available capacity of the cache; and Based on the set of historical performance parameters indicative of the best performance, the first available capacity of the cache is adjusted to the second available capacity, wherein the cache is to be used during the data backup.
12. The electronic device according to claim 11, wherein the actions further comprise: Before determining the at least one set of historical performance parameters, Determining the type of data targeted by the data backup; as well as The multiple groups of historical performance parameters collected when the backup client performs the multiple historical data backups for the data type are obtained.
13. The electronic device according to claim 11, wherein one of the plurality of sets of historical performance parameters comprises at least: The average memory usage of the backup client when performing the corresponding historical data backup; The average CPU usage of the backup client when performing the corresponding historical data backup; The available capacity of the cache during the backup of the corresponding historical data; as well as The average data access performance of the backup client when performing the corresponding historical data backup.
14. The electronic device according to claim 13, wherein the first set of performance parameters comprises at least: Memory usage at the backup client; CPU usage at the backup client; the available capacity of the cache; as well as Data access performance at the backup client.
15. The electronic device of claim 14, wherein determining the at least one set of historical performance parameters comprises: determining respective similarities between the first set of performance parameters and the plurality of sets of historical performance parameters; sorting the multiple groups of historical performance parameters based on respective similarities between the first group of performance parameters and the multiple groups of historical performance parameters; as well as Based on the result of the sorting, at least one group of historical performance parameters having a higher similarity to the first group of performance parameters is selected from the multiple groups of historical performance parameters.
16. The electronic device of claim 15, wherein determining respective similarities between the first set of performance parameters and the plurality of sets of historical performance parameters comprises: For a given set of historical performance parameters from among the multiple sets of historical performance parameters, Determine the similarity between the first set of performance parameters and the given set of historical performance parameters based at least on the average memory usage and the average CPU usage in the given set of historical performance parameters, and the memory usage and the CPU usage in the first set of performance parameters.
17. The electronic device of claim 13, wherein determining the set of historical performance parameters indicative of optimal performance comprises: The set of historical performance parameters associated with best average data access performance is determined from the at least one set of historical performance parameters.
18. The electronic device of claim 11, wherein the set of historical performance parameters indicating the best performance indicates available capacity of the cache during a corresponding historical data backup, and adjusting the available capacity of the cache during the data backup comprises: Based on the available capacity of the cache during the corresponding historical data backup period, the available capacity of the cache during the data backup period is adjusted.
19. The electronic device according to claim 11, wherein the actions further comprise: Based on the adjusted available capacity of the cache, performing the data backup; as well as A second set of performance parameters of the backup client when performing the data backup is collected.
20. The electronic device according to claim 19, wherein the second set of performance parameters comprises at least: The average memory usage of the backup client when performing the data backup; The average CPU usage of the backup client when performing the data backup; the adjusted available capacity of the cache; as well as The average data access performance of the backup client when performing the data backup.
21. A computer program product tangibly stored in a computer storage medium and comprising machine executable instructions which, when executed by a device, cause the device to perform the method according to any one of claims 1-10.
