Differential file and system restores from peers and the cloud
Abstract
Provided herein are systems and methodologies for highly efficient restoration in a network-based backup system. As described herein, differential-based analysis can be utilized such that a new complete differential is calculated based on signatures and/or other information relating to a given item to be restored prior to retrieving backup data. Based on the differential, only blocks determined to be unique between the current version of the item and the desired version are transmitted, which can then be merged with non-unique locally present blocks to obtain the fully restored version of the item. Further, a hybrid architecture can be employed, wherein signatures and/or data are stored at a global location within a network as well as one or more local peers. Accordingly, a backup client can obtain information necessary for restoration from either the global location or a nearby peer, thus further reducing latency and bandwidth consumption.

Term
No projected expiry on record.
- Priority
- Filed
- Granted
- Today
20 claims: 17 independent, 3 dependent
- 1一種用於自一備份系統復原資訊之系統,包括:一處理器,其執行儲存於一電腦可讀媒體上之機器可執行組件,該等組件包括:一差分組件,其辨識待復原資訊之一目前版本、該待復原資訊之一所需版本,及與其對應之各組組塊,並辨識在該目前版本與該所需版本之間不相同的一或多個組塊;一組塊位置組件,其判定在該目前版本與該所需版本之間發現不相同的各自組塊所應從中擷取的網路位置;及一復原組件,其自該等判定網路位置擷取在該目前版本與該所需版本之間發現不相同之該等各自組塊,並使用該等所擷取組塊復原該所需版本。
- 2如申請專利範圍第1項所述之系統,其中該差分組件至少部分地藉由比較跟與該目前版本對應之該等組塊關聯之各自簽章及與對應於該所需版本之該等組塊相關聯之簽章,而辨識在待復原資訊之該目前版本與待復原之該資訊之一所需版本之間不同之一或多個組塊。
- 3如申請專利範圍第1項所述之系統,其中該組塊位置組件包括:一索引查詢組件,其使用一儲存於一預定網路位置之索引查找將從中擷取各自組塊之網路位置。
- 4如申請專利範圍第3項所述之系統,其中該索引包括在一關聯網路中儲存之各自資訊及儲存該等各自資訊之各自位置的對應指標之一清單。
- 5如申請專利範圍第1項所述之系統,其中藉由該組塊位置組件判定之該等網路位置包括:一或多個同級裝置、超級同儕,或雲端儲存位置。
- 6如申請專利範圍第5項所述之系統,其中該組塊位置組件至少部分地藉由與應用於對應於雲端儲存位置之網路位置相比將一更高層級之偏好應用於對應於同級裝置之網路位置,而判定將從中擷取各自組塊之網路位置。
- 7如申請專利範圍第1項所述之系統,其中該組塊位置組件包括:一網路分析組件,其基於與在各自網路位置擷取資訊相關聯之網路負載、網路位置上線時間、各自網路位置距離該組塊位置組件之遠近,或頻寬耗用中之至少一者,而判定從中擷取各自組塊之網路位置。
- 8如申請專利範圍第1項所述之系統,其中藉由該組塊位置組件所判定之該等網路位置儲存一或多個檔案或對一或多個檔案之一或多個增量Delta更新。
- 9如申請專利範圍第1項所述之系統,其中該復原組件藉由合併該等擷取之組塊與一或多個對應於該待復原資訊之該目前版本之組塊,而復原該待復原資訊之該所需版本。
- 10如申請專利範圍第9項所述之系統,其中該復原組件至少部分地藉由自該待復原資訊之該目前版本中之該等對應組塊減去該等所擷取組塊中之一或多個差異,而合併該等所擷取組塊與一或多個對應於該待復原資訊之該目前版本之組塊。
- 11如申請專利範圍第1項所述之系統,其中待復原資訊包括:一檔案或一系統映像之至少一者。
- 12一種執行一或多個檔案之一差異式復原之方法,包括以下步驟:辨識儲存於至少一記憶體上之一或多個檔案之一本機可用版本及該一或多個檔案待復原至之一所需版本;至少部分地藉由在該本機可用版本與該所需版本之間進行一差分,而辨識該一或多個檔案之該所需版本中不同於該本機可用版本之各自片斷;自一或多個資料儲存器獲得該一或多個檔案之所需版本之該等所辨識片斷;及至少部分地基於該所獲得片斷,而復原該一或多個檔案之該所需版本。
- 13如申請專利範圍第12項所述之方法,其中該辨識各自片斷之步驟包括:比較與該一或多個檔案之該所需版本之各自片斷關聯之各自簽章,及與該一或多個檔案之該本機可用版本之對應片斷相關聯之簽章。
- 14如申請專利範圍第12項所述之方法,其中該獲得之步驟包括:使用儲存在一關聯網路中之片斷及該等各自片斷所駐留之對應網路資料儲存器之一清單,而選擇將從中擷取該一或多個檔案之該所需版本之各自所辨識片斷之網路資料儲存器;及自該等選定網路資料儲存器獲得該一或多個檔案之該所需版本之該等辨識片斷。
- 15如申請專利範圍第14項所述之方法,其中該等網路資料儲存器包括:同級儲存位置、超級同儕儲存位置,或雲端儲存位置之至少一者。
- 16如申請專利範圍第15項所述之方法,其中該選擇網路資料儲存器之步驟包括:將一第一偏好等級應用於同級儲存位置及超級同儕儲存位置;及將一第二偏好等級應用於雲端儲存位置,其中該第一偏好等級指示一比該第二偏好等級更高之偏好。
- 17如申請專利範圍第14項所述之方法,其中該選擇網路資料儲存器之步驟包括:基於網路負載、網路資料儲存器可用性,或與在各自網路儲存處擷取資訊相關聯之頻寬耗用中之至少一者,而選擇將從中擷取該一或多個檔案之該所需版本之各自辨識片斷之網路資料儲存器。
- 18如申請專利範圍第12項所述之方法,其中該復原之步驟包括:合併該一或多個檔案之該所需版本之該等所獲得片斷與該一或多個檔案之該本機可用版本中並非不同於該一或多個檔案之該所需版本之該等對應片斷的各自片斷。
- 19如申請專利範圍第12項所述之方法,其中該一或多個檔案對應於一系統映像。
- 20一種已於其上儲存指令之機器可讀媒體,當藉由一機器執行時,該等指令造成該機器充當一用於自一混合點對點/基於雲端的備份系統復原資訊之系統,該系統包括:用於在一或多個檔案之一目前、本機可用版本之各自組塊與該一或多個檔案待復原至之一所需版本之各自組塊之間進行一基於簽章的差分之構件;用於利用指向一或多個同級裝置及一雲端儲存位置上之各自組塊之各自位置的中繼資料,以定位與該一或多個檔案之該目前版本與該所需版本之間基於簽章的差分不匹配之至少一唯一組塊之構件;用於自該一或多個同級裝置或該雲端儲存位置中之至少一者獲得該至少一唯一組塊之構件,其中使自該一或多個同級裝置獲得該至少一唯一組塊之動作優先於自該雲端儲存位置獲得該至少一唯一組塊之動作;及用於合併該至少一唯一組塊與存在於該一或多個檔案之該目前版本中之一或多個非唯一組塊以建立該一或多個檔案之該所需版本之構件。
Independent claims20
88 paragraphs in 1 section, as filed
Differential file and system recovery from devices of the same level and the cloud
DIFFERENTIAL FILE AND SYSTEM RESTORES FROM PEERS AND THE CLOUD
The present invention relates to a method of differential file and system recovery from devices of the same level and the cloud.
As computing devices become more and more popular and begin to be widely used by the general public, the amount of data generated and utilized by these devices has rapidly increased. For example, recent advances in computing and data storage technology have enabled even devices with the most restricted form factors to store and process large amounts of information for use in various high-traffic data applications such as document editing and media processing. and many more. In addition, recent advances in communication technology have enabled computing devices to transmit data at high speeds. These advancements have not only led to the derivation of other technologies, but also the implementation of distributed computing services, which can be implemented, for example, using computing devices in multiple locations on a network. In addition, these advancements have made it possible to implement services such as network-based backups, which allow users of a computing device to maintain one or more data backups associated with the computing device at a remote location on a network. Copy.
Existing systems and/or data backup solutions enable a user to store backup information in a location and/or medium separate from its original source. Therefore, for example, data from a computing device can be backed up from a hard disk drive to external media, such as tape drives, external hard disk drives, and so on. However, in an implementation of a network-based backup and/or other solution that can be used to provide a physical remote location for storing backup data, a user machine and a remote storage location for user data The cost and complexity associated with the transfer and recovery between them may greatly limit the utility of a backup system. For example, in the case where the backup data is stored in a remote network location, the data associated with the respective versions of an initial copy of a file and/or system image can be transferred to the remote storage, where the respective versions It can be retrieved later for recovery. However, in this instance, a considerable amount of data is generally transmitted through the network, thereby consuming expensive bandwidth. In view of the above facts, we expect to implement network-based backup technology with improved efficiency.
The following shows a simplified summary of one of the claimed objects in order to provide a basic understanding of some aspects of the claimed objects. This "Summary of the Invention" is not an exhaustive overview of one of the claimed objects. It is neither intended to identify the important or key elements of the claimed subject matter, nor is it intended to describe the scope of the claimed subject matter. Its sole purpose is to present certain concepts of the claimed subject matter in a simplified form as a prelude to the more detailed description shown below.
This article provides systems and methods that promote efficient recovery techniques for network-based backup systems. A difference-based analysis can be used to calculate a new complete difference between one or more remote backup locations and a backup client for a predetermined recovery of a specific version of an item to be recovered before transferring data over the network . For example, by comparing the signature corresponding to the current version of one of the items to be restored on the backup client with the signature corresponding to a required version in the remote backup location, the The difference between the backup client and the remote backup location is calculated. Based on the calculation difference, it is possible to transmit only the only chunks between the current version of the project and the required version, thereby reducing the recovery latency and the network bandwidth used. Once the unique block obtained from a remote backup location is obtained, it can be subsequently merged with the non-unique block existing in the current version of the project already located in the backup client to obtain the fully restored version.
According to one aspect, a hybrid architecture can be used, in which the signature and/or data required for a recovery can be from a global location in a network or the Internet (for example, a "cloud"), and from One or more machines of the same level associated with the machine where the backup client is located are provided to a backup client. Therefore, a backup client can obtain some or all of the information necessary for performing a recovery from the cloud or a neighboring peer device, thereby further reducing latency and bandwidth consumption. In one example, the selection of the location for storing and/or retrieving backup information can be selected in an intelligent and automatic manner based on factors such as the availability of the network location, relative load, network topology, etc. .
The following description and drawings explain in detail some schematic aspects of the claimed subject matter. However, these aspects only indicate a few of the various ways in which the principles of the claimed subject matter can be utilized, and the claimed subject matter is intended to cover all these aspects and their equivalents. Other advantages and features of the claimed subject matter will become apparent from the following detailed description of the claimed subject matter while considering the drawings.
The claimed subject matter will now be described with reference to the drawings, in which similar component symbols are used throughout the text to indicate similar components. In the following description, many specific details are explained for illustrative purposes in order to provide a thorough understanding of the claimed subject matter. However, it is obvious that the claimed subject matter can be practiced without these specific details. In other embodiments, in order to facilitate the description of the claimed subject matter, the structures and devices familiar to us are shown in block diagram form.
As used in this application, the terms "component", "module", "system", "interface", "structural description", and "algorithm" generally intend to refer to a computer-related entity, which can be hardware, A combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to, a process running on a processor, a processor, an object, an executable file, a thread, a program, and/or a computer. By way of illustration, an application running on a controller and the controller can be a component. One or more components can reside in a process and/or thread, and a component can be localized on one computer and/or distributed between two or more computers.
In addition, the claimed subject matter can be implemented as a method, equipment, or product using standard programming and/or engineering techniques to generate software, firmware, hardware, or any combination thereof, to control a computer to implement the disclosed Subject. As used herein, the term "article" is intended to encompass a computer program that can be accessed from any computer readable device, carrier, or medium. For example, computer-readable media may include, but are not limited to, magnetic storage devices (for example, hard disks, floppy disks, magnetic stripes...), optical discs (for example, compact discs (CD), digital versatile discs (DVD)). ..), smart cards, and flash memory devices (for example, memory cards, memory sticks, flash drives...). In addition, it should be understood that a carrier wave can be used to carry computer-readable electronic data, such as a carrier wave used to transmit and receive e-mail or access a network (such as the Internet or a local area network (LAN)). Of course, those familiar with the technology will realize that many modifications can be made to this configuration within the scope or spirit of the claimed subject matter.
In addition, the term "exemplary" is used herein as an example, instance, or illustration. Any aspect or design described herein as "exemplary" may not necessarily be regarded as better or advantageous relative to other aspects or designs. On the contrary, the use of the term "exemplary" is intended to present the concept in a specific way. As used in this application, the term "or" is intended to refer to an inclusive "or" rather than a mutually exclusive "or". That is, unless otherwise specified or clear from the context, "X uses A or B" is intended to mean any natural inclusive arrangement. That is, if X uses A, X uses B, or X uses A and B, under any of the above embodiments, "X uses A or B" is satisfied. In addition, unless otherwise specified or clearly directed to a singular form from the context, the article "a" used in the scope of this application and the appended application should generally be interpreted as indicating "one or more."
Referring now to these drawings, FIG. 1 illustrates a block diagram of a system 100 for performing a differential recovery of self-backed information according to various aspects described herein. In one example, the system 100 can be used to restore files, system images, and/or other data from a current version residing on a client computer to a required version residing on a backup system. The client computer Implement and/or otherwise associate with the system 100.
According to one aspect, the system 100 can be used in conjunction with a network-based or online backup solution (for example, a cloud backup system, as described in further detail below), which stores backup information from a client computer At one or more remote storage locations on a network or Internet associated with the client computer. The conventional online backup solution operates by maintaining a set of files obtained from a backup client at various points in time at a remote storage location. Subsequently, recovery is performed by retrieving one or more files from the storage location according to the request. However, it can be understood that recovering information from an online backup system in this way may consume too much time and/or excessive bandwidth in the operations associated with retrieving complete files from the online backup storage. In addition, it can be understood that these systems generally retrieve complete files for recovery operations, even between, for example, a current version stored in the client and a desired version at the remote location. When only a small part of the data in the file has been changed, it also retrieves the complete file. For example, in some cases, these systems are configured to retrieve a complete file, even when the current version of the file on the client is different from the version to be retrieved only in name and/or metadata At time, it will also be captured in this way.
Other conventional online backup solutions can provide incremental remote storage, for example, by storing an initial version of the information, and then storing incremental updates that reflect changes to the initial version, instead of saving Multiple complete versions of this information. However, according to the conventional method, incremental updates are stored and retrieved in these systems in a cumulative manner. Therefore, for a backup client that wants to restore a file or other information across multiple previous versions, it must retrieve and retrieve the information. The incremental update corresponding to each previous version spanned by the reply. In some cases, the amount of changes between versions may be large, which may result in a large amount of information being transmitted on the network, and even if the net changes between the current version and the required version are relatively small, the result will also require a large amount of Bandwidth and/or time.
Therefore, in order to improve efficiency and reduce the time and bandwidth consumption requirements related to the recovery of backup information stored remotely, the system 100 can facilitate the differential recovery of information. More specifically, when the user desires to restore one of the previous versions of one or more files, a difference component 110 can be used to make a difference between the required version and a current version currently stored in the user's machine. According to one aspect, the differential component 110 does not restore an incremental differential update process for the entire lifetime of the file(s) and all associated backups, but can use a set of signatures and/or other indicators to Only the only fragments or chunks that exist between the required version and the current version are determined, without the need to restore any incremental process.
According to another aspect, after identifying the list of unique blocks between a current file version and a desired version, a block location component 120 can be used to identify the respective positions of the unique blocks on an associated network. Therefore, it can be understood that, compared with the conventional online backup solution, the recovery process performed by the system 100 is determined by only identifying, locating, and/or retrieving a file from the required version of a predetermined file to its current version. Blocks or fragments can reduce latency and bandwidth requirements and increase performance.
In one example, the block location component 120 can use a mapping, indexing, and/or other metadata related to the location of each block on an associated network to retrieve the difference between the current and the required file version Each block is judged to be different. In another example, the block location component 120 can position the blocks in an intelligent and/or automatic manner to find a path of least resistance for obtaining the respective blocks. Therefore, for example, the block location component 120 can use factors such as network availability and load to determine the most effective way to obtain file fragments or blocks. By means of specific examples, the block location component 120 may determine that a given block is located at a cloud storage location on the Internet and on one or more machines of the same level associated with a local network at the same time. In this instance, the block location component 120 can facilitate the retrieval of blocks from the nearest available device of the same level, so as to improve the retrieval speed and save network bandwidth, and only return to the cloud when no devices of the same level are available. . The following will provide further detailed implementation examples that can be used for point-to-point and/or cloud-based storage architecture.
According to an additional aspect, after the block location component 120 identifies the respective unique block locations corresponding to a predetermined file, a recovery component 130 can be used to extract the identified groups from the locations given by the block location component 120 Block, and restore the required version of the file based on the retrieved blocks. In one example, the block position component 120 can be used to set the recovery component 130 to retrieve the position of each identified block. Alternatively, the block location component 120 can provide a list of the locations of one or more predetermined blocks. Based on the list, the recovery component 130 can automatically select one based on availability, load, bandwidth considerations, and/or other appropriate factors. Extract the position of the (etc.) block from it. For example, the block location component 120 can provide the recovery component 130 with one or more devices of the same level where the predetermined block is located, and a corresponding location on a cloud storage system on the Internet, and the recovery component 130 can retrieve When fetching blocks, focus on using machines of the same level as much as possible to save bandwidth and reduce latency.
After the recovery component 130 has retrieved the identified blocks corresponding to one of the required versions of a file, the recovery component 130 can merge the retrieved blocks with the ones that already exist locally in the current version of the file These non-unique blocks, and re-create the required version of the file. Re-creating the required version of a file can be performed, for example, by using a reverse difference algorithm, where the changes from the current version to the required version are obtained by using the difference between the current version of the file and the required version To remove the chunks. However, it should be understood that the recovery component 130 can use any suitable algorithm to perform file recovery, which is used to merge a current file version and a unique file segment associated with a desired file version. In addition, it should be understood that the construction, identification, and/or use of blocks or file fragments can be performed by the system 100 in any appropriate manner, and unless otherwise explicitly stated, the scope of the patent application attached herein is not intended to be limited to file segmentation or restoration. Any specific instance of it.
Referring now to FIG. 2, the figure illustrates a system 200 for generating backup information according to various aspects. As shown in Figure 2, the system 200 can include a backup component 210 that can generate and facilitate storage of files, system snapshots, and/or backup copies of other information associated with the backup client computer. In an example, the backup component 210 may reside on the machine where the client information to be backed up is located, and/or operate from the machine. As a supplement or alternative, the backup component 210 can reside on a completely different computing device (for example, as a remote execution component). In one example, the backup component 210 can be used to back up a set of files and/or other information at regular intervals when one or more events (eg, modification of a file) are triggered and/or based on any other appropriate activation criteria .
According to one aspect, the backup of a file can be performed in an incremental manner by the backup component 210, so as to reduce the bandwidth and/or the amount of storage space required for implementing the system 200. For example, this can be accomplished by first using a segmentation component 212 to divide a file to be backed up into individual file fragments (eg, chunks, blocks, etc.). In one example, fragmentation or partitioning of a file can be performed by the segmentation component 212 in a manner that helps remove the duplication of the respective file fragments. For example, in a specific, non-limiting example (as shown in the system 300 in Figure 3), a segmentation component 310 can divide a first version of a file (for example, version A 302) into a Group uniform and/or non-uniform blocks (indicated as A1 to A4 in Figure 3). Subsequently, when a modification to one of the files (for example, version B 304) is detected, the segment component 310 can re-segment the file in a manner consistent with the segment version A 302, so that the file can be easily identified Any block that has a different state between version A 302 and version B 304. For example, as shown in Figure 3, the version B 304 contains a group of blocks, which is represented as B1 in the version B 304, and the block has been changed between the version A 302 and the version B 304.
When a unique block is detected in an updated version of a file, the segmentation component 310 (and similarly, the segmentation component 212 in the system 200) can facilitate incremental storage of new and/or corresponding to a file The changed blocks and other information related to the changes between the respective versions of the file. As further shown in the system 300, these updates, generally referred to herein as incremental or delta updates, can also be performed to facilitate storage and addition of new file blocks (for example, add block C1 in version C 306) , Remove the file block (for example, delete block A4 in version D 308), and/or any other appropriate file operation and/or modification related information.
Returning to the system 200 in Figure 2, when generating blocks or fragments corresponding to a file, it can provide various blocks corresponding to the respective files and/or file updates to the fragment distributing component 214. The fragment dispersing component 214 can then disperse the blocks in one or more fragment stores 220 in one or more network storage locations. For example, the fragment storage 220 may be associated with a peer machine in a local area network, a cloud storage service and/or another suitable Internet-based storage location, and/or any other storage site. The techniques used to disperse information among network storage locations will be described in further detail below.
According to one aspect, the backup component 210 can additionally use a signature generation component 216 to generate signature information, which corresponds to, for example, one or more files and/or versions thereof segmented by the segmentation component 212. For example, as shown in the diagram 300 in FIG. 3, a signature generation component 320 can be used to generate the respective signatures 322-328 corresponding to the respective versions 302-308 of a specific file. As a supplement or alternative, the signature generated by the signature generating component 216 may correspond to a single block, a block group (for example, a block in a file and/or an incremental update to one of a file), or the entire file And/or file version, and/or any other appropriate grouping. By way of a specific, non-limiting example, each chunk can be preset to a uniform size (e.g., 4 kilobytes (KB)), and each signature can be configured to represent a predetermined uniform number (e.g., 12 ) Of the block. However, it should be understood that any suitable block size and/or signature structure can be utilized.
In one example, a signature created by the signature generating component 216 can be used to identify the blocks or fragments that exist in a predetermined version of a file. In addition, the segmentation component 212 can be configured to perform segmentation consistently in the respective versions of a file, so that the signatures generated for the respective versions of a file indicate changes between the respective versions. Therefore, a unique set of blocks between a current version of a file and a desired version can be identified as shown in the system 400 in FIG. 4.
As shown in Figure 4, a differential component 420 can be associated with it and/or configured in other ways to obtain a signature 424 corresponding to a current version of a file to be recovered. When it is determined that the file needs to be restored to a predetermined previous version, a signature source 410 can provide a corresponding signature associated with the required version. Then, a comparator component 422 can compare the respective signatures based on the signatures associated with the two versions to obtain the identification identity of the unique block between the desired version and the current version. Therefore, it can be understood that, in an example, the comparator component 420 can perform a signature-based difference to determine the identification identities of the respective unique blocks required to successfully restore a predetermined file. In another example, the signature source 410 may be associated with a device with which a differential component 420 is associated and/or another appropriate device (for example, a cloud service provider, peer device, or super peer, etc.). By way of a non-limiting example, the signature source 410 can be implemented as a version list index that tracks the respective information version in an associated system and its corresponding signature. In one example, this index may be scattered across multiple network locations, such as peer devices, super peers, or cloud storage locations in the associated system. However, it should be understood that this implementation is only an example of a usable implementation, and unless explicitly stated otherwise, the scope of the patent application attached herein is not intended to be limited to this implementation.
Reference is now made to Figure 5, which illustrates a block diagram of a system 500 for implementing hybrid cloud-based and peer-to-peer backup storage according to various aspects. As shown in FIG. 5, the system 500 may include a segmentation component 510, which may generate file fragments or chunks corresponding to a file and/or its respective versions as described above. In one example, the blocks generated by the segmentation component 510 may be provided to the fragment distribution component 520, which may provide respective blocks to one or more associated storage locations.
According to one aspect, the system 500 can utilize a hybrid peer-to-peer (P2P) and cloud-based architecture, so that the fragment distributing component 520 can enable one or more data fragments and/or related signatures for performing a recovery operation Trusted peer devices (such as peer device 532 and/or super peer 534) and one or more cloud storage locations 536 are available. As further shown in system 500, peer devices 532, super peers 534, and/or cloud storage 536 can be additionally manipulated to transfer file fragments, signatures, and/or other information between them. In addition, it can be understood that the segmentation component 510, the fragment dispersion component 520, and/or any other components of the system 500 can be additionally associated with one or more peer devices 532, super peers 534, or entities associated with the cloud storage 536 . The following will provide further detailed information about the technologies that can be used with peer devices 532, super peers 534, and cloud storage 536, as well as further detailed information about the functions of such entities in a hybrid architecture.
According to another aspect, the fragment dispersing component 520 may include and/or be associated with an indexing component 522 in other ways. The indexing component may maintain an index that lists the blocks generated by the segmentation component 510 and The respective mapping relationships between the corresponding positions to which these blocks have been dispersed. In an example, this index can be distributed to one or more peer devices 532, super peers 534, or cloud storage locations 536 along with the chunks represented therein. It should be understood that the entire index can be dispersed into one or more locations, or the index itself can be segmented and dispersed in multiple locations.
According to an additional aspect, the fragment distributing component 520 may further include a network analyzer component 524 as needed, which may analyze a computing network associated with the system 500 to determine one or more components for distributing respective blocks and indexes. , Index snippets, or the like. In one example, the network analyzer component 524 may be based on network load, storage location availability (for example, based on device activity level, power on or power off state, available storage space at respective locations, etc.) or the like, to be distributed Select one or more destinations for the information. For example, the purpose of this can be to balance the availability of various materials with the best location.
As further shown in the system 500, the network analyzer component 524 may additionally use a machine learning and reasoning (MLR) component 526 to facilitate intelligent and automated selection of the storage location of the respective information. In one example, the MLR component 526 can utilize any suitable artificial intelligence (AI), machine learning, and/or other algorithms known in this technology. As used in this description, the term "wisdom" refers to the ability to reason or draw conclusions, for example, to infer the current or future state of the system based on existing information about the system. Artificial intelligence can be used to identify a specific context or operation, or to generate a probability distribution of a specific state of a system without manual intervention. Artificial intelligence relies on applying advanced digital algorithms (for example, decision trees, neural networks, regression analysis, collection analysis, genetic algorithms, and reinforcement learning) to a set of available data (information) on the system. For example, one or more methods can be used to learn from the data, and then draw inferences from the model constructed therefrom, such as: hidden Markov model (HMM) and related prototype-dependent models; more general probability graph models, such as Bayesian network (for example, using a Bayesian model score or approximation built by structure search); linear classifiers, such as support vector machines (SVM); non-linear classifiers, such as the so-called "neural network "Methods, fuzzy logic methods, and other methods based on the implementation of the various self-dynamics described in this article (which perform data fusion, etc.).
Referring to Figure 6, this figure illustrates a system 600 for performing a differential recovery in a hybrid cloud-based and peer-to-peer backup architecture according to various aspects. As shown in the system 600, a hybrid P2P/cloud backup architecture can be used, in which the backup data corresponding to one or more computing devices are distributed among one or more peer machines 610 or 640 and/or one or more super peer machines 650 , And one or more cloud storage locations 660.
In one example, the peer machines 640 may include respective chunk storage 642, which can be used to receive and maintain a set of chunks corresponding to one or more files or Delta updates of the respective files. For example, the file and/or its update may be associated with a recovery peer device 610 (e.g., as created by a segmented component 510 and distributed by a fragmented distribution component 520). In addition, although not illustrated in the system 600, a recovery peer device 610 may additionally or alternatively include a set of block storage for local storage of files and/or files corresponding to the local recovery peer device 610. The Delta updates one or more blocks.
In another example, one or more of the super peers 650 in the system 600 may further include a block storage 652 and a file block index 654, which can provide the file blocks stored in the system 600 and their respective locations A master list (for example, as created by an indexing component 522). Although the file block index 654 is described as being located at the super peer 650 in the system 600, it should be understood that some or all of the file block index 654 may be located in addition or as an alternative to one or more peer devices 610 and/or 640 locations and cloud storage 660 locations.
According to one aspect, when the identification needs to be restored from an information version residing at a recovery peer device 610 to a previous version, it can be based on the above various aspects between the version residing on the recovery peer device 610 and the required version Perform a difference based on the signature to determine the identity of one or more blocks that do not match between the versions. According to the signature comparison, a block location component 620 can use an index query component 622 to obtain metadata from the file block index 654 and/or any other appropriate source, which is directed to the recovery device 610 at the same level. The respective positions of the blocks determined to be unique between the version of the information to be restored and the required version.
Based on the positions obtained by the index query component 622, the block location component 620 and/or a recovery component 630 can be selected from any of the block storage 642 or 652, the block storage 662 and/or the system 600 Extract these unique blocks from corresponding locations in other appropriate storage locations. Once the blocks are obtained, they can then be merged with the non-unique blocks that already exist in the current version of the information to be restored to re-create the required version. Therefore, in one example, by performing a signature-based difference between a current file version and a file version to be restored, it is possible to extract only those differences between the versions independently of incremental updates. Bits or blocks are restored. In one example, it may be determined (for example, by indexing the query component 622 or otherwise) that one or more blocks already exist locally in the recovery peer device 610 (for example, because these blocks are the recovery peer device 610 Part of one or more other files). In this case, the determined local unit blocks can be used instead of extracting these blocks from one or more other locations in the system 600.
Therefore, with the specific example illustrated in the cloud storage 660, the respective versions of a file (denoted as the "initial" version and subsequent versions "Y" and "Z") can be compared with the successive versions (for example, "initial" and "Z"). Incremental updates between "Y", "Y" and "Z", etc.) are stored together. Later, if a user desires to restore the initial version of the file from version Z, a signature-based difference can be used to extract only the blocks that are unique between the initial version and version Z, without completely restoring the original version. Incremental updates between version and version Y and between version Y and version Z or download the entirety of these updates.
In another example, the hybrid P2P/cloud backup architecture of the system 600 can be used to minimize the latency and/or bandwidth required to restore one or more files at a recovery peer device 610. For example, the block location component 620 can utilize a network analysis component 624, which can analyze the system 600 and help the path of least resistance to extract respective file fragments through the system 600. Therefore, for example, in the case where a predetermined chunk resides in one of the peer device 640 or super peer 650 in chunk storage 642 or 652, and also resides in the cloud storage 660, the preference can be set first Extract the block from the nearest network node. Therefore, the peer device 640 and/or the super peer 650 may take precedence over the cloud storage 660 to minimize the latency and bandwidth consumption associated with communication with the cloud storage 660.
As a supplement or alternative, the network analysis component 624 can analyze the availability, relative network load, and/or other factors of the respective nodes in the system 600 to facilitate intelligent selection of nodes from which to obtain respective blocks. Therefore, a recovery peer device 610 can be configured to first try to obtain a set of blocks from a peer machine 640 or a super peer 650, and only when no peer device 640 and/or 650 with the required blocks is available, Then return to the cloud storage 660. In another example, an MLR component 626 can be used to facilitate the automated process of selecting a network node from which to obtain blocks.
In an alternative example, although the network analysis component 624 is described as being associated with a recovery peer device 610 in the system 600, it can be understood that a super peer 650 and/or a recovery peer device 610 accesses a file from it Another entity of the chunk index 654 can use similar network analysis to select an optimal position for the respective chunks from the plurality of positions of the chunks indicated by the file chunk index 654. Once selected, these locations can then be provided to a restoring peer device 610.
According to one aspect, when the unique blocks required to restore one or more files to a desired version are obtained, the unique block and the obtained unique block can be combined with the recovery component 630 at the recovery device 610 at the same level. A non-unique block that already exists locally in the current version of the file(s), thereby restoring the file(s) to the required version. By means of a specific, non-limiting example, the recovery component 630 can use a reverse difference algorithm, in which one or more differences between the current version and the required version are subtracted from the current version to restore all Version required. These subtractions may be based on the signature or hash corresponding to the respective file version and/or any other appropriate information related to the respective file version. However, it should be understood that this algorithm is only an example of possible recovery techniques, and any other recovery algorithm may be used in addition to or in place of this algorithm.
Next, referring to Figure 7, this figure provides a schematic diagram 700 illustrating an example network implementation that can be utilized in conjunction with the various aspects described herein. As shown in diagram 700, a network implementation can utilize a hybrid peer-to-peer and cloud-based structure, in which a cloud service provider 710 interacts with one or more super peers 720 and one or more peer devices 730-740.
According to one aspect, the cloud service provider 710 can be used from a predetermined location on a network/Internet (for example, the Internet) associated with the super peer 720 and/or peer devices 730-740, from a remote location Implement one or more computing services at the end. The cloud service provider 710 may originate from a location, or the cloud service provider 710 may be implemented as a distributed, Internet-based service provider. In an example, the cloud service provider 710 may be used to provide a backup function to one or more peer devices 720-740 associated with the cloud service provider 710. Therefore, the cloud service provider 710 can implement a backup service 712 and/or provide an associated data storage 714.
In one example, the data storage 714 can interact with a backup client 722 at one of the super peers 720 and/or a backup client 732 or 742 at the respective peer device 730 or 740 to serve as an entity 720-resident on the respective peer device 720- The data at 740 serves as a central storage location. In this way, through the data storage 714, the cloud service provider 710 can effectively act as an online "safe" for data located at the peer devices 720-740. It should be understood that any appropriate type of information can be backed up, such as files (such as documents, photos, audio, video, etc.), system information, and so on. As a supplement or alternative, distributed network storage can be implemented so that the super peer 720 and/or peer devices 730-740 are also configured to contain the respective backup data associated with one or more machines on the associated local area network Data storage 724, 734 and/or 744. In another example, techniques such as duplicate removal, incremental storage, and/or other appropriate techniques can be used to reduce the data storage 714, 724, 734, and/or 747 at one or more corresponding entities in the network. The amount of storage space required by the network is represented by diagram 700 for implementing a cloud-based backup service.
According to another aspect, the cloud service provider 710 can interact with one or more peer machines 720, 730, and/or 740. As shown in the schematic diagram 700, one or more peer devices 720 can be designated as a super peer, and can act as a super peer between the cloud service provider 710 and one or more other peer devices 730-740 in an associated local area network. Contact person. Although not shown in Figure 7, it should be understood that any suitable peer devices 730 and/or 740, as well as the designated super peer 720, may directly interact with the cloud service provider 710 as appropriate. Therefore, it can be understood that the cloud service provider 710, the super peer 720, and/or the peer device 730 or 740 can communicate with each other at any appropriate time to synchronize files or other information between the respective entities shown in the schematic diagram 700.
In one example, super peer 720 may be a central entity on a network associated with peer devices 720-740, such as a content distribution network (CDN), an enterprise server, and a household server, And/or any other suitable computing device that is determined to have the function of acting as a super peer in the manner described herein. In addition to the standard peer device functions, the super peer 720 can be responsible for collecting, distributing and/or indexing data among peer devices 720-740 in the local area network. For example, the super peer 720 can maintain a storage index 726, which can include the identification identities corresponding to the respective files and/or file fragments of the peer devices 720-740, and points to the network and/or cloud data storage In 714, an index of the respective location of the file or fragment can be found. As a supplement or alternative, the super peer 720 can, for example, upload their data to the cloud service provider 710 through a cloud upload component 728 during a specified off-peak period, and provide it on other devices 730-740 of the same level and a cloud service. 710 acts as a gateway. In another example, Super Peer 720 can act as a cache for "hot" or "cold" data, so that a copy of the most likely recovered data is located closer to the recovery or source of the same level device, and follow Over time, more copies are distributed to the "cooler" part of the distributed system (for example, the data storage 714 at the cloud service provider 710).
Turning now to Figures 8-10, the figures illustrate the methods that can be implemented based on the various features shown in this article through their respective series of actions. It should be understood that the methods claimed in this article are not limited by the sequence of actions, because some actions may occur in a different order than that shown and described herein, or in parallel with other actions. For example, those skilled in the art will understand and understand that a method can alternatively be represented as a series of interrelated states or events, such as in a state chart. In addition, not all of the actions shown may be required to implement the method as claimed herein.
Referring to Figure 8, this figure illustrates a method 800 for performing a differential file recovery. At 802, a locally available version of one or more files is identified and the one or more files will be restored to a required version. At 804, among the one or more files identified at 802, the different blocks between the locally available version and the required version are identified. The identification at 804 is accomplished at least in part by making a difference between the locally available version and the required version (for example, using a difference component 110). At 806, obtain the blocks identified at 804 from one or more data storage (e.g., peer device 532, super peer 534, and/or cloud storage 536) (e.g., by a set of block location components) 120 and/or a recovery component 130). At 808, at least in part by merging the chunks obtained at 806 with one or more of the locally available versions of the one or more files, recover one or more of the chunks identified at 802 The required version of each file.
Referring now to FIG. 9, it provides a flowchart of a method 900 for performing a signature-based difference of a file. At 902, one or more signatures (eg, signature 424) corresponding to respective chunks in a current version of a file are identified. At 904, one or more signatures (for example, from a signature source 410) are received, which correspond to respective blocks in a required version of the file identified at 902 to be restored. At 906, by comparing the signatures identified at 902 and 904 (for example, through a comparator component 422), the only one or more between the current version of the file and the required version of the file is identified Blocks. At 908, the unique chunks identified at 906 are obtained from one or more associated chunk stores.
Figure 10 illustrates a method 1000 for obtaining file fragments from a hybrid peer-to-peer/cloud-based system. At 1002, the identification will obtain a set of file fragments from a set of peer devices (for example, peer device 610 or 640 and/or super peer 650) and/or cloud storage location (for example, cloud storage 660) on a network . At 1004, as a function of network load, location availability, network latency, and/or bandwidth consumption (e.g., as determined by a network analysis component 624), select one of or Multiple locations in order to obtain respective file fragments (for example, by a set of block location components 620). At 1006, the file fragments are obtained from the locations selected at 1004.
In order to provide additional context for the various aspects described herein, Figure 11 and the following discussion are intended to provide a simple, general description of a suitable computing environment 1100 in which various aspects of the claimed subject matter can be implemented. In addition, although the above features have been described in the general context of computer-executable instructions that can run on one or more computers, those skilled in the art will recognize that these features can also be combined with other program modules and/or Implemented as a combination of hardware and software.
In general, program modules include routines, programs, components, data structures, etc. that perform specific tasks or implement specific abstract data types. In addition, those familiar with this technology will understand that the claimed subject matter can be practiced with other computer system configurations, including single-processor or multi-processor computer systems, mini-computers, host computers, as well as personal computers, handheld computing devices, and micro-based computers. Processors or programmable consumer electronic products, and the like, each of which can be operably coupled to one or more associated devices.
The patterns shown can also be practiced in a distributed computing environment, where some tasks are performed by remote processing devices connected through a communication network. In a distributed computing environment, program modules can be located in local and remote memory storage devices.
A computer usually includes various computer-readable media.
Computer-readable media can be any available media that can be accessed by the computer, and includes volatile and non-volatile media, removable and non-removable media. By way of example, and not limited to this, computer-readable media may include computer storage media and communication media. Computer storage media may include volatile and non-volatile, removable and non-removable media implemented by any method or technology to store information such as computer readable instructions, data structures, program modules, or other data . Computer storage media include but are not limited to: RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical disc storage, tape cartridges, magnetic tapes, magnetic disk storage Or other magnetic storage devices, or any other media that can be used to store the required information and that can be accessed by the computer.
Communication media usually implement computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transmission mechanism, and include any information transmission media. The term "modulated data signal" refers to a signal that sets or changes one or more of its characteristics in a way to encode information in the signal. By way of example, and not limited to this, communication media include wired media (such as a wired network or direct connection), and wireless media (such as audio, radio frequency, infrared, and other wireless media). Any combination of the above content should also be included in the category of computer-readable media.
Referring again to FIG. 11, an exemplary environment 1100 for implementing the various aspects described herein includes a computer 1102, which includes a processing unit 1104, a system memory 1106, and a system bus 1108. The system bus 1108 is coupled to system components, including but not limited to the system memory 1106 to the processing unit 1104. The processing unit 1104 can be any of various commercially available processors. Dual microprocessors and other multi-processor architectures can also be used as the processing unit 1104.
The system bus 1108 can be any number of types of bus structures, and it can also be interconnected to a memory bus (with or without a memory controller), a memory bus (with or without a memory controller) using any of various commercially available bus structures Peripheral bus, and a regional bus. The system memory 1106 includes a read-only memory (ROM) 1110 and a random access memory (RAM) 1112. A basic input/output system (BIOS) is stored in a non-volatile memory 1110 such as ROM, EPROM, and EEPROM. The BIOS contains information that facilitates the transmission of information between various components in the computer 1102 during startup. And other basic routines. The RAM 1112 may also include a high-speed RAM such as static RAM for caching data.
The computer 1102 further includes an internal hard disk drive (HDD) 1114 (for example, EIDE, SATA, the internal hard disk drive 1114 can also be configured for external use in a suitable base (not shown)), a magnetic A floppy disk drive (FDD) 1116 (for example, read from a removable disk 1118 or write to a removable disk 1118) and an optical disk drive 1120 (for example, read a CD-ROM disc 1122 or Read from or write to other high-capacity optical media such as DVD). The hard disk drive 1114, disk drive 1116, and optical disk drive 1120 can be connected to the system bus through a hard disk drive interface 1124, a disk drive interface 1126, and an optical drive interface 1128, respectively Row 1108. The interface 1124 for external driver implementation includes at least one or both of Universal Serial Bus (USB) and IEEE-1394 interface technology. Other external driver connection technologies are also covered in this topic disclosure case.
These drivers and their associated computer-readable media provide non-volatile storage of data, data structures, computer-executable instructions, and the like. For the computer 1102, the drives and media can hold any data stored in an appropriate digital format. Although the above description of computer-readable media refers to a HDD, a removable disk, and a removable optical media such as a CD or DVD, those familiar with the technology should understand that a computer-readable other type The media, such as zip disks, tape cartridges, flash memory cards, cassette tapes, and the like, can also be used in this exemplary operating environment, and in addition, any of these media can contain tools for performing the methods described herein Computer executable instructions.
Several program modules can be stored in the drivers and RAM 1112, including an operating system 1130, one or more application programs 1132, other program modules 1134, and program data 1136. All or part of the operating system, applications, modules and/or data can also be cached in the RAM 1112. It should be understood that the claimed subject matter can be realized using various commercially available operating systems or combinations of operating systems.
A user can input commands and information into the computer 1102 through one or more wired/wireless input devices, for example, a keyboard 1138 and a pointing device (such as a mouse 1140). Other input devices (not shown) may include a microphone, an IR remote control, a joystick, a game controller, a stylus, a touch screen, or the like. These and other input devices are usually connected to the processing unit 1104 through an input device interface 1142 coupled to the system bus 1108, but can also be connected through other interfaces, such as a parallel port, a serial port, and a IEEE-1394 port, a game port, a USB port, an IR interface, etc.
A monitor 1144 or other type of display device is also connected to the system bus 1108 through an interface (such as a video adapter 1146). In addition to the monitor 1144, a computer usually includes other peripheral output devices (not shown), such as speakers, printers, and so on.
The computer 1102 can operate in a network environment using logical connections, and it is connected to one or more remote computers, such as a remote computer 1148, through wired and/or wireless communication. The remote computer 1148 can be a workstation, a server computer, a router, a personal computer, a portable computer, a microprocessor-based entertainment device, a peer device, or other common network nodes, and usually includes many or all of them The aforementioned components of the computer 1102, although for the sake of brevity, only a memory/storage device 1150 is shown. The logical connections depicted include wired/wireless connections to a local area network (LAN) 1152 and/or larger networks (eg, a wide area network (WAN) 1154). These LAN and WAN network connection environments are common in offices and companies, and promote enterprise-level computer networks (such as intranets), all of which can be connected to a global communication network (such as the Internet).
When used in a LAN network connection environment, the computer 1102 is connected to the local network 1152 through a wired and/or wireless communication network interface or adapter 1156. The adapter 1156 can facilitate wired or wireless communication with the LAN 1152, and the LAN 1152 can also include a wireless access point arranged thereon for communicating with the wireless interface card 1156.
When used in a WAN network connection environment, the computer 1102 may include a modem 1158, or be connected to a communication server on the WAN 1154, or have other devices for establishing communication through the WAN 1154, such as Via the Internet. The modem 1158 can be an internal or external, wired or wireless device, which is connected to the system bus 1108 via the serial port interface 1142. In a network environment, the program module depicted by the computer 1102, or part thereof, can be stored in the remote memory/storage device 1150. It should be understood that the network connections shown are exemplary, and other devices that establish a communication link between the computers may be used.
The computer 1102 can be manipulated to communicate with any wireless device or entity operably set in wireless communication, such as a printer, scanner, desktop and/or portable computer, Portable data assistants, communication satellites, any device or location associated with a wirelessly detectable tag (for example, a kiosk, newsstand, restroom), and telephone. This includes at least Wi-Fi and Bluetooth<sup>TM</sup>wireless technology. Therefore, the communication can be a predefined structure as used in a conventional network, or just an ad hoc communication between at least two devices.
Wi-Fi (i.e. wireless fidelity) is a wireless technology similar to that used in a mobile phone, which allows a device to transmit and receive data anywhere within the range of a base station. Wi-Fi networks use IEEE-802.11 (a, b, g, etc.) radio technology to provide safe, reliable, and fast wireless connections. A Wi-Fi network can be used to connect computers to each other, to the Internet, and to wired networks (which use IEEE-802.3 or Ethernet). Wi-Fi networks operate in the 2.4 and 5 GHz radio frequency bands that do not require application, with a data rate of 13 Mbps (802.11a) or 54 Mbps (802.11b), for example, or use two frequency bands (dual Frequency band) products. Therefore, a network using Wi-Fi wireless technology can provide real-world performance similar to a 10BaseT wired Ethernet network.
Referring now to FIG. 12, the figure illustrates a schematic block diagram of an exemplary computer compilation system that can be manipulated to execute the disclosed architecture. The system 1200 includes one or more clients 1202. The client(s) 1202 may be hardware and/or software (for example, threads, processing threads, computing devices). In one example, the client(s) 1202 can utilize one or more of the functions described herein to accommodate web cookies and/or associated contextual information.
The system 1200 also includes one or more servers 1204. The server(s) 1204 may also be hardware and/or software (for example, threads, processing threads, computing devices). In one example, the servers 1204 can utilize one or more of the functions described herein to accommodate threads to perform the conversion. A possible communication between a client 1202 and a server 1204 can be in the form of a data packet adapted to perform inter-sequence transmission between two or more computers. For example, the data packet may include a web cookie and/or associated context information. The system 1200 includes a communication framework 1206 (for example, a global communication network such as the Internet), which can be used to facilitate communication between the client(s) 1202 and the server(s) 1204.
Communication can be facilitated through a wired (including optical fiber) and/or wireless technology. The client(s) 1202 is operatively connected to one or more client data storage 1208, which can be used to store the local information of the client(s) 1202 (for example, network cookies and/or associated context information) ). Similarly, the server(s) 1204 is operatively connected to one or more server data storage 1210, which can be used to store the local information of the server 1204.
The above content contains examples of the claimed subject matter. Of course, for the purpose of explaining the claimed subject matter, it is impossible to explain every imaginable combination of components or methods, but a person of ordinary skill in this technology can realize that there are many other combinations and permutations possible. Therefore, this "implementation mode" intends to cover all these changes, modifications and changes that fall within the spirit and scope of the attached patent application.
In particular and regarding the various functions performed by the above-mentioned components, devices, circuits, systems and the like, unless otherwise indicated, the terms used to describe these components (including the reference to the word "device") are intended to correspond to the execution Even if any component of the specified function (for example, a functional equivalent) of the described component is not structurally equivalent to the disclosed structure, it performs the function in the exemplary aspect illustrated herein. In view of this, it will also be recognized that the described aspects include a system and a computer-readable medium having computer-executable instructions for performing the actions and/or events of various methods.
In addition, although a specific feature may have been disclosed only for one of several implementations, these features can be combined with one or more other features of these other implementations depending on the needs of any given or specific application and whether it is beneficial to it. In addition, as far as the term "including" and its variants are used in this "implementation" or "applicable scope", these terms are intended to be inclusive, and their usage is similar to the term "including".
<p>100. . . system</p><p>110. . . Differential component</p><p>120. . . Block location component</p><p>130. . . Recovery component</p><p>200. . . system</p><p>210. . . Backup components</p><p>212. . . Segmented components</p><p>214. . . Fragment Dispersion Components</p><p>216. . . Signature generation component</p><p>220. . . Fragment Storage</p><p>300. . . system</p><p>302. . . Version A</p><p>304. . . Version B</p><p>306. . . Version C</p><p>308. . . Version D</p><p>310. . . Segmented components</p><p>320. . . Signature generation component</p><p>322. . . Signature (version A)</p><p>324. . . Signature (version B)</p><p>326. . . Signature (version C)</p><p>328. . . Signature (version D)</p><p>400. . . system</p><p>410. . . Signature source</p><p>420. . . Differential component</p><p>422. . . Comparator component</p><p>424. . . Signature (current version)</p><p>500. . . system</p><p>510. . . Segmented components</p><p>520. . . Fragment Dispersion Components</p><p>522. . . Indexing component</p><p>524. . . Network analyzer component</p><p>526. . . MLR components</p><p>532. . . Same level device</p><p>534. . . Super peers</p><p>536. . . Cloud storage</p><p>600. . . system</p><p>610. . . Restore peer device</p><p>620. . . Block location component</p><p>622. . . Index query component</p><p>624. . . Network analysis component</p><p>626. . . MLR components</p><p>630. . . Recovery component</p><p>640<sub>1</sub>. . . Same level device 1</p><p>640<sub>N</sub>. . . Same level device N</p><p>642<sub>1</sub>. . . Chunk storage</p><p>642<sub>N</sub>. . . Chunk storage</p><p>650. . . Super peers</p><p>652. . . Chunk storage</p><p>654. . . File group index</p><p>660. . . Cloud storage</p><p>710. . . Cloud service provider</p><p>712. . . Backup service</p><p>714. . . Data storage</p><p>720. . . Super peers</p><p>722. . . Backup client</p><p>724. . . Data storage</p><p>726. . . Save index</p><p>728. . . Cloud upload components</p><p>730. . . Same level device 1</p><p>732. . . Backup client</p><p>734. . . Data storage</p><p>740. . . Same level device 2</p><p>742. . . Backup client</p><p>744. . . Data storage</p><p>1100. . . Computing environment</p><p>1102. . . computer</p><p>1104. . . Processing unit</p><p>1106. . . System memory</p><p>1108. . . Busbar</p><p>1110. . . ROM</p><p>1112. . . RAM</p><p>1114. . . Internal HDD</p><p>1114. . . External HDD</p><p>1116. . . FDD</p><p>1118. . . Disk</p><p>1120. . . Optical drive</p><p>1122. . . CD</p><p>1124. . . interface</p><p>1126. . . interface</p><p>1128. . . interface</p><p>1130. . . System</p><p>1132. . . application</p><p>1134. . . Module</p><p>1136. . . material</p><p>1138. . . keyboard</p><p>1140. . . mouse</p><p>1142. . . Input device interface</p><p>1144. . . Monitor</p><p>1146. . . Video adapter</p><p>1148. . . Remote computer</p><p>1150. . . Memory/Storage</p><p>1152. . . LAN</p><p>1154. . . WAN</p><p>1156. . . Network adapter</p><p>1158. . . Modem</p><p>1200. . . system</p><p>1202. . . user terminal</p><p>1204. . . server</p><p>1206. . . Communication architecture</p><p>1208. . . Client data storage</p><p>1210. . . Server data storage</p>
Figure 1 is a high-level block diagram of a system for differential recovery of self-backed information according to various aspects.
Figure 2 is a block diagram of a system for generating backup information according to various aspects.
Figure 3 is a block diagram of a system for generating signatures corresponding to backup information according to various aspects.
Figure 4 is a block diagram of a system used to implement a signature-based differential system according to various aspects.
Figure 5 is a block diagram of a system for implementing a hybrid cloud-based and peer-to-peer backup storage system according to various aspects.
Figure 6 is a block diagram of a system for differential recovery in a hybrid cloud-based and peer-to-peer backup architecture according to various aspects.
Figure 7 illustrates an example network implementation that can be used in conjunction with the various aspects described in this article.
Figure 8 is a flowchart of a method for performing a differential file recovery.
Figure 9 is a flowchart of a method for performing a signature-based difference of a file.
Figure 10 is a flowchart of a method for obtaining file fragments from a hybrid peer-to-peer/cloud-based system.
Figure 11 is a block diagram of a computing system in which various aspects described herein can function.
Figure 12 illustrates a schematic block diagram of an example network computing environment.
12 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| TWI711288B | Cited by | Taiwan Province of China | Examiner |
| TW200617774A | Cites | Taiwan Province of China | Examiner |
| US2007100913A1 | Cites | United States of America | Examiner |
| TW200915109A | Cites | Taiwan Province of China | Examiner |
| US7330997B1 | Cites | United States of America | Examiner |
| US7330997B1 | Cites | United States of America | – |
| US20070100913A1 | Cites | United States of America | – |
28 members in 12 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 12417992 | United States of America | – | |
| 41799209 | United States of America | A |
Members28
| Document | Office | Kind | |
|---|---|---|---|
| CA2756085A1 | Canada | A1 | |
| US2010257142A1 | United States of America | A1 | |
| WO2010114777A2 | World Intellectual Property Organization (WIPO) | A2 | |
| TW201040713A | Taiwan Province of China | A | |
| WO2010114777A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO2010114777A3 | World Intellectual Property Organization (WIPO) | A3 | |
| MX2011010287A | Mexico | A | |
| AU2010232795A1 | Australia | A1 | |
| EP2414933A2 | European Patent Office (EPO) | A2 | |
| CN102388361A | China | A | |
| CN102388361A | China | A | |
| KR20120027132A | Republic of Korea | A | |
| KR20120027132A | Republic of Korea | A | |
| JP2012523044A | Japan | A | |
| EP2414933A4 | European Patent Office (EPO) | A4 | |
| RU2011139997A | Russian Federation | A | |
| RU2011139997A | Russian Federation | A | |
| AU2010232795B2 | Australia | B2 | |
| JP5559867B2 | Japan | B2 | |
| US8805953B2 | United States of America | B2 | |
| RU2531869C2 | Russian Federation | C2 | |
| TWI474164BThis record | Taiwan Province of China | B | |
| CN102388361B | China | B | |
| CN102388361B | China | B | |
| KR101626186B1 | Republic of Korea | B1 | |
| KR101626186B1 | Republic of Korea | B1 | |
| CA2756085C | Canada | C | |
| BRPI1014698A2 | Brazil | A2 |
1 legal event, as the office reported them to INPADOC
Events
| Event | Code | |
|---|---|---|
| Annulment or lapse of patent due to non-payment of feesLapsedMM4A | MM4A |
Numbers
- Publication
- I474164
- Application
- 99106208
Titles2
- English
- DIFFERENTIAL FILE AND SYSTEM RESTORES FROM PEERS AND THE CLOUD
- Chinese
- 自同級裝置及雲端之差異式檔案及系統復原
Classification
- CPC, 9
- G06F11/1453
- G06F11/1446
- G06F11/1464
- G06F11/1469
- G06F2201/83
- G06F11/1448
- G06F11/1451
- G06F11/1458
- G06F15/161
- IPC, 1
- G06F11 14