US8375005B1 - Rapid restore - Google Patents

Rapid restore Download PDF

Info

Publication number
US8375005B1
US8375005B1 US11/731,931 US73193107A US8375005B1 US 8375005 B1 US8375005 B1 US 8375005B1 US 73193107 A US73193107 A US 73193107A US 8375005 B1 US8375005 B1 US 8375005B1
Authority
US
United States
Prior art keywords
files
file
usage
timeframe
predicted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US11/731,931
Inventor
Christopher Hercules Claudatos
William Dale Andruss
Steven R. Terwilliger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Priority to US11/731,931 priority Critical patent/US8375005B1/en
Assigned to EMC CORPORATION reassignment EMC CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: TERWILLIGER, STEVEN R., ANDRUSS, WILLIAM DALE, CLAUDATOS, CHRISTOPHER HERCULES
Application granted granted Critical
Publication of US8375005B1 publication Critical patent/US8375005B1/en
Assigned to CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT reassignment CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT SECURITY AGREEMENT Assignors: ASAP SOFTWARE EXPRESS, INC., AVENTAIL LLC, CREDANT TECHNOLOGIES, INC., DELL INTERNATIONAL L.L.C., DELL MARKETING L.P., DELL PRODUCTS L.P., DELL SOFTWARE INC., DELL SYSTEMS CORPORATION, DELL USA L.P., EMC CORPORATION, EMC IP Holding Company LLC, FORCE10 NETWORKS, INC., MAGINATICS LLC, MOZY, INC., SCALEIO LLC, SPANNING CLOUD APPS LLC, WYSE TECHNOLOGY L.L.C.
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT SECURITY AGREEMENT Assignors: ASAP SOFTWARE EXPRESS, INC., AVENTAIL LLC, CREDANT TECHNOLOGIES, INC., DELL INTERNATIONAL L.L.C., DELL MARKETING L.P., DELL PRODUCTS L.P., DELL SOFTWARE INC., DELL SYSTEMS CORPORATION, DELL USA L.P., EMC CORPORATION, EMC IP Holding Company LLC, FORCE10 NETWORKS, INC., MAGINATICS LLC, MOZY, INC., SCALEIO LLC, SPANNING CLOUD APPS LLC, WYSE TECHNOLOGY L.L.C.
Assigned to EMC IP Holding Company LLC reassignment EMC IP Holding Company LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: EMC CORPORATION
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. SECURITY AGREEMENT Assignors: CREDANT TECHNOLOGIES, INC., DELL INTERNATIONAL L.L.C., DELL MARKETING L.P., DELL PRODUCTS L.P., DELL USA L.P., EMC CORPORATION, EMC IP Holding Company LLC, FORCE10 NETWORKS, INC., WYSE TECHNOLOGY L.L.C.
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. SECURITY AGREEMENT Assignors: CREDANT TECHNOLOGIES INC., DELL INTERNATIONAL L.L.C., DELL MARKETING L.P., DELL PRODUCTS L.P., DELL USA L.P., EMC CORPORATION, EMC IP Holding Company LLC, FORCE10 NETWORKS, INC., WYSE TECHNOLOGY L.L.C.
Assigned to AVENTAIL LLC, DELL SOFTWARE INC., FORCE10 NETWORKS, INC., MAGINATICS LLC, CREDANT TECHNOLOGIES, INC., EMC IP Holding Company LLC, MOZY, INC., WYSE TECHNOLOGY L.L.C., DELL PRODUCTS L.P., DELL USA L.P., DELL SYSTEMS CORPORATION, EMC CORPORATION, SCALEIO LLC, DELL MARKETING L.P., ASAP SOFTWARE EXPRESS, INC., DELL INTERNATIONAL, L.L.C. reassignment AVENTAIL LLC RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Assigned to SCALEIO LLC, DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), DELL PRODUCTS L.P., DELL USA L.P., DELL INTERNATIONAL L.L.C. reassignment SCALEIO LLC RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Assignors: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Assigned to DELL INTERNATIONAL L.L.C., DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), DELL PRODUCTS L.P., DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), SCALEIO LLC, DELL USA L.P., EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC) reassignment DELL INTERNATIONAL L.L.C. RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Assignors: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Definitions

  • This invention relates generally to backup, and more particularly to systems and methods for performing restore operations on backed up data.
  • This invention relates to systems and methods for performing restore operations on backed up data.
  • a system's or data's importance to an organization or user is often used as a determining factor in assigning the degree to which the data or systems are protected.
  • Some forms of protection are as simple as keeping backup copies of systems and data (“backups”), while others make use of redundant systems with rapid failover capabilities to ensure functional continuity.
  • backup systems that provide rapid or near instant functional recovery cost more than systems which provide slower recovery methods.
  • recovery time for some users/data may take longer than the user would like. As undesirable as this may be for the user, the enterprise may not be willing to spend additional money on a faster recovery system.
  • High bandwidth connections such as those made over a wired LAN may be as much as 100 megabits per second (Mbps), 1 gigabits per second (Gbps), or more. At these speeds recovery can be completed in hours or even minutes with the largest backup sets. The same is not true of lower bandwidth connections.
  • Many remote offices and remote workers are connected to their headquarters via low-bandwidth connections, commonly 1 Mbps and 2 Mbps connections. At this low bandwidth, recovery of commonly sized hard disk drives can take more than a day and sometimes weeks.
  • FIG. 1 is a diagram of an embodiment of a system in accordance with the invention.
  • FIG. 2 is a flowchart illustrating a process for prioritizing and restoring data in some embodiments of the invention
  • FIG. 3 is a flowchart illustrating a process for prioritizing according to file type and/or timestamps and restoring data in some embodiments of the invention
  • FIG. 4 is a flowchart illustrating a process for prioritizing according to periodicity and restoring data in some embodiments of the invention
  • FIG. 5 is a flowchart illustrating a process for executing a list-based prioritized restore in some embodiments of the invention
  • FIG. 6 is a flowchart illustrating a process for executing a prioritized restore through reordering in some embodiments of the invention.
  • FIG. 7 is a flowchart illustrating a process for executing a prioritized restore through translation in some embodiments of the invention.
  • the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or electronic communication links.
  • these implementations, or any other form that the invention may take, may be referred to as techniques.
  • the order of the steps of disclosed processes may be altered within the scope of the invention.
  • Disclosed herein are a method and system to restore backed up data, in a manner that provides functional utility to a remote system as quickly as possible. Thus, rapid recovery of system/data utility will be facilitated.
  • the principles described herein will be of particular benefit to remote offices connected to a main office through low bandwidth connections, but are beneficial to local systems connected via high bandwidth connections as well, such as in hierarchical storage management systems and local replication.
  • files and data are used herein to refer to recovery objects, but it should be understood that the disclosure is not restricted to files. Rather, it applies equally to block level recovery and to any data objects used in a recovery process.
  • FIG. 1 illustrates a configuration in which a backup and restore system 10 comprising a restore program could be used to restore backed up (backup) data.
  • Backup server 20 communicates with system 50 over a network (e.g., a local area network, wide area network, etc.).
  • System 50 may have a backup client executing on it, and may have storage systems 60 and/or 70 on which its data is stored.
  • System 50 may send its backups to storage system 40 or storage system 30 attached to backup server 20 .
  • backup data from storage system 40 or storage system 30 may be restored to storage system 60 or storage system 70 for use by the system 50 .
  • An agent executing on system 12 may be used to scan the backup to determine prioritization of the files or data stored on storage system 30 or storage system 40 .
  • the agent executing on system 14 may be used to scan the files or data on storage system 60 or 70 .
  • the agent may execute on backup server 20 or system 50 .
  • the agent may be used to capture information about usage of the files or data. It will be understood that the agent may execute on any of the systems shown or on other systems, and that more than one agent may be used. Various configurations are possible, and the principles disclosed herein are not limited to the embodiment disclosed.
  • Typical backup systems restore data in arbitrary order, such as in the order the data appeared on the original target system, or in reverse order in which the data was backed up.
  • replication systems may arbitrarily transmit data in the order that they appear on the source system.
  • the majority of the files/data contained in the backup set (or set to be replicated) are often not immediately needed or important to the user or system.
  • Data recovery is performed according to the arbitrary order of the data within the backup pool, without any sense of priority in relationship to user or application importance or urgency. This is typical of both file-based and image-based backup technologies.
  • the backup process can be accelerated through the use of data de-duplication techniques (“RDE” redundant data elimination) and compression.
  • RDE redundant data elimination
  • compression During recovery of de-duplicated data, it is necessary to reconstitute the data and pass it through the low bandwidth connection.
  • RDE techniques may be used for recovery as well, but they require the use of an RDE system on both sides of the connection, which may be impractical or out of project scope. Further, the benefit of de-duplication is diminished when data is encrypted or is of a sufficiently random data type such as music, video, and photos.
  • a user may want all of the backup files restored, but not all the files may be needed immediately for read/write operations.
  • Functional utility may be from the viewpoint of the system, in terms of files that are needed by the system (or an application using or executing on the system), or from the viewpoint of the user, in terms of the files that are needed by the user.
  • FIG. 2 illustrates an embodiment of this process.
  • the files or data are scanned, step 100 .
  • the files are prioritized according to the prioritization criteria, as will be described herein.
  • the files may be restored (or transmitted, if a replication or other operation is taking place) according to the prioritization, step 104 .
  • a variety of algorithms may be used individually or in combination to determine an appropriate recovery order.
  • a Most Recently Used (MRU) algorithm may be used. For example, files may be ordered according to their last use date and time, and in this approach, the file that was used last is recovered first. The next to last used file is recovered second and the process continues accordingly until all the files are restored.
  • a file's timestamp metadata may be used to determine the most recent use of the file.
  • file metadata such as creation timestamp, last access/read timestamp, last metadata change timestamp, last archive timestamp, may be used individually or in combination to best assess importance.
  • Timestamp metadata may be kept as an intrinsic part of the data itself, or this information may also be copied and kept as part of another data structure such as a database or XML file for use by the backup/restore application. Usage of a data structure to store timestamp information of files facilitates processing without need to open each file or backup data set to analyze timestamps.
  • the timestamp may contain several attributes, such as time and date. Prioritization may be also be done by timestamp ranges, defining a range of times and/or dates, and assigning a priority to each range. For example, several timestamp ranges may be defined, with the first range being timestamps within the last few hours, timestamps within the past day, timestamps within the past week, etc. with higher priority going to the most recent timestamp range.
  • files may be ordered according to file type, such as document files (example: Microsoft Word documents or Adobe PDF documents), presentation files (example: Microsoft PowerPoint files), spreadsheet files (example: Microsoft Excel files), database files (example: Microsoft Access files), and so on.
  • PowerPoint files may take precedence over text files (.TXT).
  • File types may be grouped with the same priority and given higher or lower priority than other groups or individual file types. For example, all Microsoft Office file types can have the same higher priority than text files (.DOC, .XLS, .PPT>.TXT).
  • the prioritization and grouping may be determined by the application vendor, the system administrator, the user, etc.
  • Groups of file types may be defined according to their association to an application, application suite, task, and so on. Priority may be assigned to a group such that each file type in the group would have the same priority. File type data may be kept as an intrinsic part of the data itself This information may also be copied and kept as part of another data structure such as a database or XML file for use by the backup/restore application.
  • the frequency of a file's use or its periodicity may be used to determine the restoration priority of the file. Therefore, higher restoration priority may be given to files having higher frequency of use or whose periodicity coincides with the current or desired timeframe. Frequency of use may be tracked by recording each access to a file, storing this information in metadata associated with the file or in a central data structure.
  • Periodicity may be determined by tracking file or data usage, such as by logging.
  • the log may be native to the system or application, or an independent logging system may be used to provide a record of file and data usage.
  • periodicity may be determined through analysis of backup data sets and archives.
  • Timestamp data can be collected from backup data sets and archives and used to create a usage record of the file and data in question.
  • a usage interval may be derived, and utilized in predicting or estimating the next time of usage.
  • the mean interval may be calculated, or various statistical methods can be used for data smoothing and analysis to predict the next time of usage. Such methods may include time-series modeling, regression analysis, autoregressive models, moving averages, and so on.
  • a recovery window may be defined to include a time period prior to the current date, and the window need not be symmetric about the current date.
  • ranges may be defined, with a different priority assigned to each. In one embodiment, the range including the current date could receive the highest priority, with other ranges representing future dates receiving lower priorities with increasing distance from the current date.
  • a priority or score may be associated with the file and used to establish the file's restore priority.
  • This prioritization from predicted usage may be used to determine final prioritization, or combined with other factors such as file type. Weighting the results may offer additional dimensions that could improve the functional utility recovery rate, as timestamp or predicted usage alone may not be sufficient to effectively predict which files will be needed the soonest. For example, some files may be used on an annual basis and their last date of use may be outside a specified recovery time period that has high priority associated with it. In this case, the timestamp alone would suggest that the file not be recovered with high priority. However, by determining the interval of use, it is possible to assign a high priority to the recovery of the file if the due date or anniversary of use is close to the current date.
  • a file may have been used recently, which might cause its timestamp score to favor priority recovery.
  • This file might also have a predicted usage date that is a year away, which might cause its predicted usage score to favor lower priority. Scoring may be used to reflect priority determinations that have been made. For example, a file falling within the specified time period could have a certain number of points added to its priority score, and if the file's predicted next use is close to the current date or time, more points could be added to its priority score.
  • Other variations may include detecting the frequency of file usage during a period near the recovery date. For example, if two files have the same timestamp attribute they are likely to be given the same restoration priority. Because both files cannot come at the same time, one file must come before the other. The frequency of use can be used to further refine the restore priority. In this example, both files have the same timestamp attribute but one file was used every day for the last two weeks whereas the other file changed once since its creation. The file with the frequent and recent file changes can receive a higher weighting than the other file. This permits priority based on multiple relevant factors.
  • an application may be executed according to a scheduled interval to log changes in non-real time.
  • the timestamp attributes of the files may be read and stored within a database or other data structure.
  • the results of the timestamp collection are accumulated and retained within the database resulting in a view of the frequency and intervals of change for each file.
  • the selection of the scheduled interval determines the temporal granularity of the resulting log. For example, if an interval of one month is scheduled the resulting log will be able to show which files changed from month to month.
  • the resulting log will not be able to discern files which change at greater frequency such as daily, hourly, etc. Greater temporal granularity may be achieved through higher frequency scans up to the point of real-time change logging in which every read and write is logged as it occurs.
  • the MRU algorithm may be applied, and the most recently used files may be further ordered by their file type priority and restored in the resulting order.
  • Time/date ranges may be used to prioritize the files, which may result in larger groups of files having the same priority, and the resulting list of files may be subsorted by file type, producing a list that is ordered by time/date range and subordered by file type.
  • the files may conversely be ordered by file type and subordered by time/date range.
  • Prioritization by periodicity may be implemented by using time/date ranges of predicted next use, and the results subsorted by file type or timestamp.
  • Other combinations of the disclosed methods may be used, in various orders, and weighting may be used to determine the importance of each characteristic to the restoration priority.
  • data may be restored in directed and intentional manner, determined according to the immediacy of value to the user and/or system.
  • the determination of restoration priority may be performed by a restore application, by a backup application, by an application that makes use of the data, or by an application that prioritizes the data and passes it (directly or indirectly) to another application, such as the restore application, to perform the restore.
  • the restoration/transmission of files or data in order of priority may be made in sequential fashion, or some parallelism may be used (i.e., more than one file may be sent at a time).
  • FIG. 3 illustrates a process flow in an embodiment.
  • priorities are determined for file types.
  • File types may be grouped together, such that all file types in the same group have the same priority. Groups may be defined according to their association with an application, application suite, task, etc.
  • timestamp ranges may be defined and priorities assigned to each timestamp range.
  • files may be prioritized according to file type. Files may be prioritized according to timestamps, step 116 , and this may be done by sub-sorting the prioritized files from step 114 .
  • the prioritization of files may be indicated to the restore application (or replication or other transmission application), step 118 . This may, for example, be done by providing a list of files with priorities indicated, providing an ordered list, or altering a native backup set, as described herein. Files may be restored (or replicated or transmitted) according to the prioritization, step 119 .
  • FIG. 4 illustrates a process flow in an embodiment.
  • file or data usage information may be obtained from a log, backup data set, or other source of file usage information.
  • the data usage information is analyzed to determine the usage interval, step 122 , and various methods may be used such as computing the mean, performing a regression analysis, etc.
  • the predicted usage date is derived, step 124 , and using defined time windows with different priorities assigned to each, step 126 , the files are prioritized according to predicted usage in step 128 .
  • the prioritization of files is indicated to the transmission (or restore or replication) application, step 130 , and the transmission is performed in step 132 .
  • a list of backup files may be created that prioritizes the files for restore.
  • This list may contain the file names, paths, and other data elements associated with the file, its location, and its restore-priority so that a restore program may use the information to select and restore the files according to the files' priority settings.
  • the list may be kept in priority order.
  • priority ordering of the list is not required, and the ordering of file restores may be performed dynamically based on the priority information contained within the list.
  • the list can be in any commonly known type or format or in a proprietary format known only to a proprietary application.
  • the list may be a text file, an XML file, or a database file.
  • the list may be passed to the restore application in a programmatic fashion such as through XML.
  • the list could be created in a form that is identical to and compatible with the native data format of the application.
  • a restore application is not “priority restore capable” but simply restores files in an arbitrary or non-prioritized manner, it will not be able to accept direction to perform prioritized restores.
  • the information within the priority list may be constituted in a form that is compatible with the application's native function. If the restore application uses a comma delimited file to contain its list of pending files to be restored, then the prioritized list of files may be presented in a comma delimited format usable by the restore application. In this manner, the restore application may perform priority restores without internal modification to the application. This process is illustrated in FIG. 5 .
  • native backup sets may be reordered to restore files in order of priority.
  • Existing backup and restore applications keep their backup data within a data structure (e.g., a file system or a database).
  • the restore operation may sequence the data according to the order in which the data are ordered within the data structure itself.
  • the application may make use of some form of indexing or list structure to sequence the restore operation of the backup data.
  • the restore sequence may be imposed on the restore operation to cause the restore operation to proceed according to a priority order.
  • the native order may be re-rendered so that the order matches that of the priority order.
  • the data structure may be reordered at the time the restore operation is initiated, at the time of backup, or prior to the initiation of the restore operation but after the backup operation.
  • the order of that data structure may be changed to conform to the desired priority order.
  • the order of the backup data itself is not required to change in any way. Reordering may be accomplished with a variety of well-known methods.
  • the sorting algorithm may be selected based on the desired outcome. In some cases it is desirable to have an initial sort performed on the data set and then a subsort on subsets of the data. In the case where multiple criteria are used in combination to establish the priority, multiple methods of sorting, filtering, and grouping may be used. In these cases, after an initial sort, the data may be additionally sorted and ordered to comply with the prioritization criteria.
  • a stable sort algorithm such as bubble sort
  • unstable sort algorithms such as quick sort
  • timestamp alone were the only sort criteria then an unstable sort algorithm would be acceptable.
  • stable sort algorithms may beneficial.
  • the data structure may be reordered at the time the restore operation is initiated, at the time of backup, or prior to the initiation of the restore operation but after the backup operation. FIG. 6 illustrates this process.
  • Some systems restore backup data that resides within a filesystem structure may be reordered to match the desired priority order.
  • a pseudo-filesystem structure may be created that is in priority order.
  • the restore application may mount this pseudo-filesystem structure as it would normally mount the backup data filesystem structure.
  • the pseudo-filesystem is ordered according to the priority sequence and the backup data remains in its original, native order, thus effectively providing a translation.
  • the pseudo-filesystem may contain stubs that are associated to the underlying files/data. The restore system may thus restore the files in priority sequence.
  • FIG. 7 illustrates this approach.
  • More than one computer may be used, such as by using multiple computers in a parallel or load-sharing arrangement or distributing tasks across multiple computers such that, as a whole, they perform the functions of the components identified herein; i.e. they take the place of a single computer.
  • Various functions described above may be performed by a single process or groups of processes, on a single computer or distributed over several computers. Processes may invoke other processes to handle certain tasks.
  • a single storage device may be used, or several may be used to take the place of a single storage device.
  • the disclosed embodiments are illustrative and not restrictive, and the invention is not to be limited to the details given herein. There are many alternative ways of implementing the invention. It is therefore intended that the disclosure and following claims be interpreted as covering all such alterations and modifications as fall within the true spirit and scope of the invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A method, article of manufacture, and apparatus for restoring or transmitting files from a first location to a second location, comprising prioritizing the files, and restoring or transmitting the files in prioritized order. In one embodiment, the files may be prioritized according to file type, and may be subsorted by timestamp. In one embodiment, the files may be prioritized according to timestamp or timestamp range, and subsorted by file type. File types may be grouped such that all file types in a group have the same priority, and the group may be associated with an application or application suite. In one embodiment, the files may be prioritized according to predicted file usage.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
This application is related to co-pending U.S. patent application Ser. No. 11/731,921 for PRIORITIZED RESTORE and filed concurrently herewith, which is incorporated herein by reference for all purposes.
FIELD OF THE INVENTION
This invention relates generally to backup, and more particularly to systems and methods for performing restore operations on backed up data.
BACKGROUND OF THE INVENTION
This invention relates to systems and methods for performing restore operations on backed up data. A system's or data's importance to an organization or user is often used as a determining factor in assigning the degree to which the data or systems are protected. Some forms of protection are as simple as keeping backup copies of systems and data (“backups”), while others make use of redundant systems with rapid failover capabilities to ensure functional continuity. Generally speaking, backup systems that provide rapid or near instant functional recovery cost more than systems which provide slower recovery methods. As a result, recovery time for some users/data may take longer than the user would like. As undesirable as this may be for the user, the enterprise may not be willing to spend additional money on a faster recovery system.
Another factor affecting recovery times is the bandwidth of the connection between the target system and the backup repository. High bandwidth connections such as those made over a wired LAN may be as much as 100 megabits per second (Mbps), 1 gigabits per second (Gbps), or more. At these speeds recovery can be completed in hours or even minutes with the largest backup sets. The same is not true of lower bandwidth connections. Many remote offices and remote workers are connected to their headquarters via low-bandwidth connections, commonly 1 Mbps and 2 Mbps connections. At this low bandwidth, recovery of commonly sized hard disk drives can take more than a day and sometimes weeks.
There exists a need to inexpensively and rapidly perform restore operations on backed up data over any variety of connection speeds in order to restore functional utility to the system/user in as little time as possible. Due to cost considerations, this objective should be accomplished without increasing the speed or number of connections between the backup data and the system, or increasing the speed, performance, throughput, or number of processors and/or data storage devices.
There is a need, therefore, for an improved method, article of manufacture, and apparatus for performing restore operations on backed up data.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements, and in which:
FIG. 1 is a diagram of an embodiment of a system in accordance with the invention;
FIG. 2 is a flowchart illustrating a process for prioritizing and restoring data in some embodiments of the invention;
FIG. 3 is a flowchart illustrating a process for prioritizing according to file type and/or timestamps and restoring data in some embodiments of the invention;
FIG. 4 is a flowchart illustrating a process for prioritizing according to periodicity and restoring data in some embodiments of the invention;
FIG. 5 is a flowchart illustrating a process for executing a list-based prioritized restore in some embodiments of the invention;
FIG. 6 is a flowchart illustrating a process for executing a prioritized restore through reordering in some embodiments of the invention; and
FIG. 7 is a flowchart illustrating a process for executing a prioritized restore through translation in some embodiments of the invention.
DETAILED DESCRIPTION
A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. While the invention is described in conjunction with such embodiment(s), it should be understood that the invention is not limited to any one embodiment. On the contrary, the scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications, and equivalents. For the purpose of example, numerous specific details are set forth in the following description in order to provide a thorough understanding of the present invention. These details are provided for the purpose of example, and the present invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the present invention is not unnecessarily obscured.
It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or electronic communication links. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention.
An embodiment of the invention will be described with reference to a computer system on which a restore program executes, but it should be understood that the principles of the invention are not limited to this particular configuration. Rather, they may be applied to any system in which data is transmitted across a connection to a remote device, and the system may comprise one or more devices. Although the methods herein are described in terms of their application to performing restore operations on backed up data, one skilled in the art will recognize that they are equally applicable to other cases for which it is desirable to transfer data across a connection, including but not limited to backup, replication, and archiving. For example, the principles disclosed herein may be applied to replication, to rapidly create a functionally useful replication set at another location. Disclosed herein are a method and system to restore backed up data, in a manner that provides functional utility to a remote system as quickly as possible. Thus, rapid recovery of system/data utility will be facilitated. The principles described herein will be of particular benefit to remote offices connected to a main office through low bandwidth connections, but are beneficial to local systems connected via high bandwidth connections as well, such as in hierarchical storage management systems and local replication. The terms “files” and “data” are used herein to refer to recovery objects, but it should be understood that the disclosure is not restricted to files. Rather, it applies equally to block level recovery and to any data objects used in a recovery process.
FIG. 1 illustrates a configuration in which a backup and restore system 10 comprising a restore program could be used to restore backed up (backup) data. Backup server 20 communicates with system 50 over a network (e.g., a local area network, wide area network, etc.). System 50 may have a backup client executing on it, and may have storage systems 60 and/or 70 on which its data is stored. System 50 may send its backups to storage system 40 or storage system 30 attached to backup server 20. When restore operations are performed, backup data from storage system 40 or storage system 30 may be restored to storage system 60 or storage system 70 for use by the system 50. An agent executing on system 12 may be used to scan the backup to determine prioritization of the files or data stored on storage system 30 or storage system 40. In one embodiment, the agent executing on system 14 may be used to scan the files or data on storage system 60 or 70. In some embodiments, the agent may execute on backup server 20 or system 50. The agent may be used to capture information about usage of the files or data. It will be understood that the agent may execute on any of the systems shown or on other systems, and that more than one agent may be used. Various configurations are possible, and the principles disclosed herein are not limited to the embodiment disclosed.
Typical backup systems restore data in arbitrary order, such as in the order the data appeared on the original target system, or in reverse order in which the data was backed up. Similarly, replication systems may arbitrarily transmit data in the order that they appear on the source system. However, the majority of the files/data contained in the backup set (or set to be replicated) are often not immediately needed or important to the user or system. Data recovery is performed according to the arbitrary order of the data within the backup pool, without any sense of priority in relationship to user or application importance or urgency. This is typical of both file-based and image-based backup technologies.
The backup process can be accelerated through the use of data de-duplication techniques (“RDE” redundant data elimination) and compression. During recovery of de-duplicated data, it is necessary to reconstitute the data and pass it through the low bandwidth connection. RDE techniques may be used for recovery as well, but they require the use of an RDE system on both sides of the connection, which may be impractical or out of project scope. Further, the benefit of de-duplication is diminished when data is encrypted or is of a sufficiently random data type such as music, video, and photos.
A user may want all of the backup files restored, but not all the files may be needed immediately for read/write operations. On the other hand, there may be files that are of current importance and value to the user or system and should be restored and available as soon as possible. If these files or data are restored in higher priority and before the less important files, then the user or system will have functional utility restored much sooner than if the files were restored in random order or with arbitrary priority. Functional utility may be from the viewpoint of the system, in terms of files that are needed by the system (or an application using or executing on the system), or from the viewpoint of the user, in terms of the files that are needed by the user.
Because having files or data of current importance restored in higher priority results in more rapid restoration of utility, it is important to select which files/data may be of the greatest current importance. Backed-up data may be restored based on one or more algorithms that determine the order in which to restore the data. These algorithms may be used to determine which files are likely to have the most immediate relevance and utility to the user or system. The recovery order of the files may be based on this determination, resulting in recovery of files with the greatest immediate and near-term (temporal) relevance before recovery of other files with less relevance. This approach provides the user or system with very rapid access to required files or data objects even before the entire set of recovery files or objects is fully restored. FIG. 2 illustrates an embodiment of this process. The files or data are scanned, step 100. In step 102, the files are prioritized according to the prioritization criteria, as will be described herein. The files may be restored (or transmitted, if a replication or other operation is taking place) according to the prioritization, step 104.
A variety of algorithms may be used individually or in combination to determine an appropriate recovery order. In one embodiment, a Most Recently Used (MRU) algorithm may be used. For example, files may be ordered according to their last use date and time, and in this approach, the file that was used last is recovered first. The next to last used file is recovered second and the process continues accordingly until all the files are restored. A file's timestamp metadata may be used to determine the most recent use of the file. A variety of file metadata, such as creation timestamp, last access/read timestamp, last metadata change timestamp, last archive timestamp, may be used individually or in combination to best assess importance. Timestamp metadata may be kept as an intrinsic part of the data itself, or this information may also be copied and kept as part of another data structure such as a database or XML file for use by the backup/restore application. Usage of a data structure to store timestamp information of files facilitates processing without need to open each file or backup data set to analyze timestamps. The timestamp may contain several attributes, such as time and date. Prioritization may be also be done by timestamp ranges, defining a range of times and/or dates, and assigning a priority to each range. For example, several timestamp ranges may be defined, with the first range being timestamps within the last few hours, timestamps within the past day, timestamps within the past week, etc. with higher priority going to the most recent timestamp range.
In one embodiment, files may be ordered according to file type, such as document files (example: Microsoft Word documents or Adobe PDF documents), presentation files (example: Microsoft PowerPoint files), spreadsheet files (example: Microsoft Excel files), database files (example: Microsoft Access files), and so on. For example, PowerPoint files may take precedence over text files (.TXT). File types may be grouped with the same priority and given higher or lower priority than other groups or individual file types. For example, all Microsoft Office file types can have the same higher priority than text files (.DOC, .XLS, .PPT>.TXT). The prioritization and grouping may be determined by the application vendor, the system administrator, the user, etc. Groups of file types may be defined according to their association to an application, application suite, task, and so on. Priority may be assigned to a group such that each file type in the group would have the same priority. File type data may be kept as an intrinsic part of the data itself This information may also be copied and kept as part of another data structure such as a database or XML file for use by the backup/restore application.
In one embodiment, the frequency of a file's use or its periodicity (usage cycle) may be used to determine the restoration priority of the file. Therefore, higher restoration priority may be given to files having higher frequency of use or whose periodicity coincides with the current or desired timeframe. Frequency of use may be tracked by recording each access to a file, storing this information in metadata associated with the file or in a central data structure.
Periodicity may be determined by tracking file or data usage, such as by logging. The log may be native to the system or application, or an independent logging system may be used to provide a record of file and data usage. In some embodiments, periodicity may be determined through analysis of backup data sets and archives. Within the backup and archive data sets there exists a body of data which can be mined for the purpose of predicting usage intervals using any of a variety of analytic and predictive techniques. Timestamp data can be collected from backup data sets and archives and used to create a usage record of the file and data in question. Based on the history of file/data usage, a usage interval may be derived, and utilized in predicting or estimating the next time of usage. The mean interval may be calculated, or various statistical methods can be used for data smoothing and analysis to predict the next time of usage. Such methods may include time-series modeling, regression analysis, autoregressive models, moving averages, and so on.
For example, in a simple approach, suppose File X was opened on these dates: Jan. 1, 2004, Jan. 3, 2005, Jan. 2, 2006, and Jan. 1, 2007. If the current date (the recovery or transmission date) is Dec. 28, 2007 and the system is performing a recovery operation, and the total restoration interval will take 2 weeks, the system may need to predict which files will be needed while the recovery is taking place. Given this, the timeframe or window will be at least within two weeks beginning Dec. 28, 2007. Based on the above data, File X's periodicity may be calculated at 365 days, with a deviation of +/−2 days. This implies that File X's next usage point in time will fall within two weeks for Dec. 28, 2007. In one embodiment, the month/day with highest frequency of usage could be used. In this case, the file was used twice on January 1, and once on January 2 and 3, resulting in a predicted date of usage Jan. 1, 2008. A conservative date of Dec. 30, 2007 may be assigned as this would be two days prior to the predicted usage date. In some cases, the predicted usage date may be just prior to the current date, and the file may not have been used recently. This may be taken as an indication that the file will be used soon, and it may be desirable to ensure that such files with predicted dates occurring just prior to the current date are prioritized for recovery or transmission. In one embodiment, a recovery window may be defined to include a time period prior to the current date, and the window need not be symmetric about the current date. Several ranges may be defined, with a different priority assigned to each. In one embodiment, the range including the current date could receive the highest priority, with other ranges representing future dates receiving lower priorities with increasing distance from the current date.
Using this information, a priority or score may be associated with the file and used to establish the file's restore priority. This prioritization from predicted usage may be used to determine final prioritization, or combined with other factors such as file type. Weighting the results may offer additional dimensions that could improve the functional utility recovery rate, as timestamp or predicted usage alone may not be sufficient to effectively predict which files will be needed the soonest. For example, some files may be used on an annual basis and their last date of use may be outside a specified recovery time period that has high priority associated with it. In this case, the timestamp alone would suggest that the file not be recovered with high priority. However, by determining the interval of use, it is possible to assign a high priority to the recovery of the file if the due date or anniversary of use is close to the current date. On the other hand, a file may have been used recently, which might cause its timestamp score to favor priority recovery. This file might also have a predicted usage date that is a year away, which might cause its predicted usage score to favor lower priority. Scoring may be used to reflect priority determinations that have been made. For example, a file falling within the specified time period could have a certain number of points added to its priority score, and if the file's predicted next use is close to the current date or time, more points could be added to its priority score.
Other variations may include detecting the frequency of file usage during a period near the recovery date. For example, if two files have the same timestamp attribute they are likely to be given the same restoration priority. Because both files cannot come at the same time, one file must come before the other. The frequency of use can be used to further refine the restore priority. In this example, both files have the same timestamp attribute but one file was used every day for the last two weeks whereas the other file changed once since its creation. The file with the frequent and recent file changes can receive a higher weighting than the other file. This permits priority based on multiple relevant factors.
There are several ways to capture periodicity:
1) Explicit logging of file and data usage each time the file/data is read, written, or in any way touched. This may in one embodiment be handled by a real time filter driver that logs all reads and writes. In one embodiment, an application may be executed according to a scheduled interval to log changes in non-real time. In this case the timestamp attributes of the files may be read and stored within a database or other data structure. At each interval, the results of the timestamp collection are accumulated and retained within the database resulting in a view of the frequency and intervals of change for each file. The selection of the scheduled interval determines the temporal granularity of the resulting log. For example, if an interval of one month is scheduled the resulting log will be able to show which files changed from month to month. Because the scan is run on a monthly basis, the resulting log will not be able to discern files which change at greater frequency such as daily, hourly, etc. Greater temporal granularity may be achieved through higher frequency scans up to the point of real-time change logging in which every read and write is logged as it occurs.
2) Indirect logging of file and data usage. Some applications or file systems may keep track of historical file/data activity. Through examination and analysis of these records it may be possible to determine periodicity.
3) Retrospective logging of file and data usage. Through examination and analysis of backup data sets and archives, it is possible to determine file and data usage even though such logging did not occur at the time of original usage. The backup data sets and archives provide a historical snapshot of file and data states at specific points in time.
These methods may be combined in any combination or order, and used to refine orders determined by other methods. For example, the MRU algorithm may be applied, and the most recently used files may be further ordered by their file type priority and restored in the resulting order. Time/date ranges may be used to prioritize the files, which may result in larger groups of files having the same priority, and the resulting list of files may be subsorted by file type, producing a list that is ordered by time/date range and subordered by file type. The files may conversely be ordered by file type and subordered by time/date range. Prioritization by periodicity may be implemented by using time/date ranges of predicted next use, and the results subsorted by file type or timestamp. Other combinations of the disclosed methods may be used, in various orders, and weighting may be used to determine the importance of each characteristic to the restoration priority.
Thus, data may be restored in directed and intentional manner, determined according to the immediacy of value to the user and/or system. The determination of restoration priority may be performed by a restore application, by a backup application, by an application that makes use of the data, or by an application that prioritizes the data and passes it (directly or indirectly) to another application, such as the restore application, to perform the restore. The restoration/transmission of files or data in order of priority may be made in sequential fashion, or some parallelism may be used (i.e., more than one file may be sent at a time).
FIG. 3 illustrates a process flow in an embodiment. In step 110, priorities are determined for file types. File types may be grouped together, such that all file types in the same group have the same priority. Groups may be defined according to their association with an application, application suite, task, etc. In step 112, timestamp ranges may be defined and priorities assigned to each timestamp range. In step 114, files may be prioritized according to file type. Files may be prioritized according to timestamps, step 116, and this may be done by sub-sorting the prioritized files from step 114. The prioritization of files may be indicated to the restore application (or replication or other transmission application), step 118. This may, for example, be done by providing a list of files with priorities indicated, providing an ordered list, or altering a native backup set, as described herein. Files may be restored (or replicated or transmitted) according to the prioritization, step 119.
FIG. 4 illustrates a process flow in an embodiment. In step 120, file or data usage information may be obtained from a log, backup data set, or other source of file usage information. The data usage information is analyzed to determine the usage interval, step 122, and various methods may be used such as computing the mean, performing a regression analysis, etc. The predicted usage date is derived, step 124, and using defined time windows with different priorities assigned to each, step 126, the files are prioritized according to predicted usage in step 128. The prioritization of files is indicated to the transmission (or restore or replication) application, step 130, and the transmission is performed in step 132.
Disclosed herein are several methods for a restore operation to proceed according to a prioritized sequence, by which file prioritization can be indicated to the restore operation. In an embodiment, a list of backup files may be created that prioritizes the files for restore. This list may contain the file names, paths, and other data elements associated with the file, its location, and its restore-priority so that a restore program may use the information to select and restore the files according to the files' priority settings. The list may be kept in priority order. In one embodiment, priority ordering of the list is not required, and the ordering of file restores may be performed dynamically based on the priority information contained within the list. The list can be in any commonly known type or format or in a proprietary format known only to a proprietary application. For example, the list may be a text file, an XML file, or a database file.
The list may be passed to the restore application in a programmatic fashion such as through XML. Alternatively, the list could be created in a form that is identical to and compatible with the native data format of the application. For example, if a restore application is not “priority restore capable” but simply restores files in an arbitrary or non-prioritized manner, it will not be able to accept direction to perform prioritized restores. In this case, the information within the priority list may be constituted in a form that is compatible with the application's native function. If the restore application uses a comma delimited file to contain its list of pending files to be restored, then the prioritized list of files may be presented in a comma delimited format usable by the restore application. In this manner, the restore application may perform priority restores without internal modification to the application. This process is illustrated in FIG. 5.
In one embodiment, native backup sets may be reordered to restore files in order of priority. Existing backup and restore applications keep their backup data within a data structure (e.g., a file system or a database). Depending on the application, the restore operation may sequence the data according to the order in which the data are ordered within the data structure itself. Alternatively, the application may make use of some form of indexing or list structure to sequence the restore operation of the backup data. In some embodiments, the restore sequence may be imposed on the restore operation to cause the restore operation to proceed according to a priority order. Some methods for accomplishing this will be described herein.
If the application sequences the restore operation according to the native order of the data structure, then the native order may be re-rendered so that the order matches that of the priority order. The data structure may be reordered at the time the restore operation is initiated, at the time of backup, or prior to the initiation of the restore operation but after the backup operation.
If the application sequences the restore operation according to an order defined within an index, list, database, etc., then the order of that data structure may be changed to conform to the desired priority order. The order of the backup data itself is not required to change in any way. Reordering may be accomplished with a variety of well-known methods. The sorting algorithm may be selected based on the desired outcome. In some cases it is desirable to have an initial sort performed on the data set and then a subsort on subsets of the data. In the case where multiple criteria are used in combination to establish the priority, multiple methods of sorting, filtering, and grouping may be used. In these cases, after an initial sort, the data may be additionally sorted and ordered to comply with the prioritization criteria.
In one embodiment, it may be desirable to have all files within a specified time period to be retrieved in order of timestamp attribute. It may also be preferred to have Microsoft Excel user files prioritized higher than any other file types. In this case, the restoration priority would be ordered such that the most recently used Excel files come before any of the other files. Stable or unstable sorting algorithms may be used depending on the sort criteria and the desired outcome. For example, if simple temporal ordering is required, the files may be sorted by either a stable or unstable sort algorithm because the only criterion is timestamp. In the case of a stable sort algorithm (such as bubble sort), the original order of records with equal values will be kept even though the order of dissimilar records will change. Conversely, unstable sort algorithms (such as quick sort) may introduce sort orders that differ from the original order for records of equal value. If timestamp alone were the only sort criteria then an unstable sort algorithm would be acceptable. However, in the case where multiple sort elements are considered the use of stable sort algorithms may beneficial. The data structure may be reordered at the time the restore operation is initiated, at the time of backup, or prior to the initiation of the restore operation but after the backup operation. FIG. 6 illustrates this process.
Some systems restore backup data that resides within a filesystem structure. In order to prioritize this restore sequence, the filesystem may be reordered to match the desired priority order. In an embodiment, a pseudo-filesystem structure may be created that is in priority order. The restore application may mount this pseudo-filesystem structure as it would normally mount the backup data filesystem structure. In this case, the pseudo-filesystem is ordered according to the priority sequence and the backup data remains in its original, native order, thus effectively providing a translation. The pseudo-filesystem may contain stubs that are associated to the underlying files/data. The restore system may thus restore the files in priority sequence. FIG. 7 illustrates this approach.
For the sake of clarity, the processes and methods herein have been illustrated with a specific flow, but it should be understood that other sequences may be possible and that some may be performed in parallel, without departing from the spirit of the invention. Additionally, steps may be subdivided or combined. As disclosed herein, software written in accordance with the present invention may be stored in some form of computer-readable medium, such as memory or CD-ROM, or transmitted over a network, and executed by a processor.
All references cited herein are intended to be incorporated by reference. Although the present invention has been described above in terms of specific embodiments, it is anticipated that alterations and modifications to this invention will no doubt become apparent to those skilled in the art and may be practiced within the scope and equivalents of the appended claims. More than one computer may be used, such as by using multiple computers in a parallel or load-sharing arrangement or distributing tasks across multiple computers such that, as a whole, they perform the functions of the components identified herein; i.e. they take the place of a single computer. Various functions described above may be performed by a single process or groups of processes, on a single computer or distributed over several computers. Processes may invoke other processes to handle certain tasks. A single storage device may be used, or several may be used to take the place of a single storage device. The disclosed embodiments are illustrative and not restrictive, and the invention is not to be limited to the details given herein. There are many alternative ways of implementing the invention. It is therefore intended that the disclosure and following claims be interpreted as covering all such alterations and modifications as fall within the true spirit and scope of the invention.

Claims (19)

1. A method for transmitting files from a first location to a second location, comprising:
analyzing usage of a set of files by a user to determine a usage interval for each file of the set of files;
based on the usage interval of each file of the set of files, determining a predicted usage timeframe for each file of the set of files, wherein the predicted usage timeframe of a file indicates a timeframe in which the file is accessed next time;
prioritizing each file of the set of files according to predicted usage based on the predicted usage timeframe of each file of the set of files, wherein prioritizing the set of files according to predicted usage includes defining a plurality of time windows having different priorities assigned to each time window of the plurality of time windows, wherein a time window indicates a predefined range between a start time and an end time, wherein prioritizing the set of files according to predicted usage includes giving a higher priority to a file of the set of files whose predicted usage timeframe coincides with a desired timeframe, wherein the desired timeframe indicates a timeframe of a backup application file recovery window;
storing the prioritization in a storage device;
indicating the prioritized files to a transmission application; and
transmitting the set of files according to the prioritization, wherein the set of files is transmitted during the backup application file recovery window.
2. The method as recited in claim 1, wherein the set of files comprise backup files.
3. The method as recited in claim 1, wherein prioritizing the set of files according to predicted usage includes defining at least a first time window having a first priority, and assigning the first priority to a file of the set of files predicted to be used during the first time window.
4. The method as recited in claim 3, wherein prioritizing the set of files according to predicted usage further includes defining a second time window having a second priority, and assigning the second priority to a file of the set of files predicted to be used during the second time window.
5. The method as recited in claim 3, wherein the second time window is later than the first time window and the second priority is lower than the first priority.
6. The method as recited in claim 3, wherein the first time window includes a time period prior to a current date.
7. The method as recited in claim 1, further comprising predicting a usage date for at least one file.
8. The method as recited in claim 7, further comprising tracking file usage in a log, and wherein predicting the usage date for at least one file includes analyzing the log.
9. The method as recited in claim 8, wherein predicting the usage date for at least one file includes deriving a usage interval for the file from information in the log.
10. The method as recited in claim 9, wherein deriving the usage interval includes computing a mean usage interval.
11. The method as recited in claim 9, wherein deriving the usage interval includes performing a regression analysis.
12. The method as recited in claim 7, wherein predicting the usage date for at least one file includes analyzing a backup data set for file usage.
13. The method as recited in claim 12, wherein predicting the usage date for at least one file includes deriving a usage interval for the file from information in the backup data set.
14. The method as recited in claim 13, wherein deriving the usage interval includes at least one of computing a mean usage interval, performing a regression analysis, or time-series modeling.
15. The method as recited in claim 1, wherein indicating the prioritized files includes providing a list associating each file with an indication of priority.
16. The method as recited in claim 1, wherein each file of the set of files has a file type associated therewith, and further comprising prioritizing the set of files according to the file type.
17. The method as recited in claim 16, wherein prioritizing the set of files according to the file type includes subsorting according to the file type.
18. A system for transmitting files from a first location to a second location, comprising
a processor configured to analyze usage of a set of files by a user to determine a usage interval for each file of the set of files,
based on the usage interval of each file of the set of files, determine a predicted usage timeframe for each file of the set of files, wherein the predicted usage timeframe of a file indicates a timeframe in which the file is accessed next time;
prioritize each file of the set of files according to predicted usage based on the predicted usage timeframe of each file of the set of files, wherein prioritizing the set of files according to predicted usage includes defining a plurality of time windows having different priorities assigned to each time window of the plurality of time windows, wherein a time window indicates a predefined range between a start time and an end time, wherein prioritizing the set of files according to predicted usage includes giving a higher priority to a file of the set of files whose predicted usage timeframe coincides with a desired timeframe, wherein the desired timeframe indicates a timeframe of a backup application file recovery window,
store the prioritization in a storage device,
transmit the files according to the prioritization of the files,
and transmit the set of files according to the prioritization, wherein the set of files is transmitted during the backup application file recovery window.
19. A computer program product for transmitting files from a first location to a second location, comprising a non-transitory computer readable storage medium having machine readable code embodied therein for:
analyzing usage of a set of files by a user to determine a usage interval for each file of the set of files;
based on the usage interval of each file of the set of files, determining a predicted usage timeframe for each file of the set of files, wherein the predicted usage timeframe of a file indicates a timeframe in which the file is accessed next time;
prioritizing each file of the set of files according to predicted usage based on the predicted usage timeframe of each file of the set of files, wherein prioritizing the set of files according to predicted usage includes defining a plurality of time windows having different priorities assigned to each time window of the plurality of time windows, wherein a time window indicates a predefined range between a start time and an end time, wherein prioritizing the set of files according to predicted usage includes giving a higher priority to a file of the set of files whose predicted usage timeframe coincides with a desired timeframe, wherein the desired timeframe indicates a timeframe of a backup application file recovery window;
storing the prioritization in a storage device;
indicating the prioritized files to a transmission application; and
transmitting the set of files according to the prioritization, wherein the set of files is transmitted during the backup application file recovery window.
US11/731,931 2007-03-31 2007-03-31 Rapid restore Active 2027-09-17 US8375005B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/731,931 US8375005B1 (en) 2007-03-31 2007-03-31 Rapid restore

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/731,931 US8375005B1 (en) 2007-03-31 2007-03-31 Rapid restore

Publications (1)

Publication Number Publication Date
US8375005B1 true US8375005B1 (en) 2013-02-12

Family

ID=47632035

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/731,931 Active 2027-09-17 US8375005B1 (en) 2007-03-31 2007-03-31 Rapid restore

Country Status (1)

Country Link
US (1) US8375005B1 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120101996A1 (en) * 2010-10-21 2012-04-26 Lim Geun-Sik Apparatus and method for snapshot image segmentation
US20120136831A1 (en) * 2010-11-29 2012-05-31 Computer Associates Think, Inc. System and method for minimizing data recovery window
US20120137054A1 (en) * 2010-11-24 2012-05-31 Stec, Inc. Methods and systems for object level de-duplication for solid state devices
US20130132350A1 (en) * 2011-06-03 2013-05-23 Adobe Systems Incorporated Prioritized digital media archiving
US8856591B2 (en) 2011-06-14 2014-10-07 Ca, Inc. System and method for data disaster recovery
US9619338B2 (en) 2013-09-24 2017-04-11 International Business Machines Corporation File recovery on client server system
WO2019098486A1 (en) * 2017-11-20 2019-05-23 Hp Printing Korea Co., Ltd. Data backup using cloud
US10432718B2 (en) * 2016-09-21 2019-10-01 International Business Machines Corporation Predictive file synchronization
US20190310920A1 (en) * 2018-04-04 2019-10-10 International Business Machines Corporation Pre-Fetching and Staging of Restore Data on Faster Tiered Storage
US11068196B2 (en) * 2019-10-24 2021-07-20 EMC IP Holding Company LLC System and method for a restoration of on-premise backups to a cloud-based service
US11537478B2 (en) * 2018-03-16 2022-12-27 EMC IP Holding Company LLC Automation and optimization of data recovery after a ransomware attack

Citations (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659614A (en) * 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer
US5966730A (en) 1996-10-30 1999-10-12 Dantz Development Corporation Backup system for computer network incorporating opportunistic backup by prioritizing least recently backed up computer or computer storage medium
US6148372A (en) 1998-01-21 2000-11-14 Sun Microsystems, Inc. Apparatus and method for detection and recovery from structural stalls in a multi-level non-blocking cache system
US6226759B1 (en) 1998-09-28 2001-05-01 International Business Machines Corporation Method and apparatus for immediate data backup by duplicating pointers and freezing pointer/data counterparts
US6496949B1 (en) 1999-08-06 2002-12-17 International Business Machines Corp. Emergency backup system, method and program product therefor
US20030120772A1 (en) 2001-11-21 2003-06-26 Husain Syed Mohammad Amir Data fail-over for a multi-computer system
US20030145226A1 (en) 2002-01-28 2003-07-31 International Business Machines Corporation Integrated intrusion detection services
US20030177324A1 (en) 2002-03-14 2003-09-18 International Business Machines Corporation Method, system, and program for maintaining backup copies of files in a backup storage device
US20030212716A1 (en) 2002-05-09 2003-11-13 Doug Steele System and method for analyzing data center enerprise information via backup images
US20040034672A1 (en) 2002-05-30 2004-02-19 Takeshi Inagaki Data backup technique using network
US20040051988A1 (en) 2002-09-16 2004-03-18 Jing Gary Gang Predictive disc drive failure methodology
US20040073676A1 (en) 2000-06-29 2004-04-15 Hitachi, Ltd. Computer system using a storage area network and method of handling data in the computer system
US20050177767A1 (en) 2003-12-25 2005-08-11 Hitachi, Ltd. Backup system and method for tape recording medium
US20050257085A1 (en) 2004-05-03 2005-11-17 Nils Haustein Apparatus, system, and method for resource group backup
US6999978B2 (en) * 2001-06-28 2006-02-14 Siemens Aktiengellschaft Data backup method
US20060167838A1 (en) 2005-01-21 2006-07-27 Z-Force Communications, Inc. File-based hybrid file storage scheme supporting multiple file switches
US7103740B1 (en) * 2003-12-31 2006-09-05 Veritas Operating Corporation Backup mechanism for a multi-class file system
US20070033340A1 (en) * 2005-08-08 2007-02-08 International Business Machines Corporation System and method for providing content based anticipative storage management
US20070055660A1 (en) * 2005-09-08 2007-03-08 Deere & Company, A Delaware Corporation System and method for anticipatory downloading of data
US20070130599A1 (en) 2002-07-10 2007-06-07 Monroe David A Comprehensive multi-media surveillance and response system for aircraft, operations centers, airports and other commercial transports, centers and terminals
US7231502B2 (en) * 2004-02-04 2007-06-12 Falcon Stor Software, Inc. Method and system for storing data
US20070136541A1 (en) 2005-12-08 2007-06-14 Herz William S Data backup services
US20070168715A1 (en) 2005-12-08 2007-07-19 Herz William S Emergency data preservation services
US7266718B2 (en) * 2004-02-24 2007-09-04 Hitachi, Ltd. Computer system for recovering data based on priority of the data
US20070254697A1 (en) 2004-09-06 2007-11-01 Matsushita Eleactric Industrial Co., Ltd. Mobile Terminal Device
US20070271316A1 (en) 2006-05-22 2007-11-22 I3Archives, Inc. System and method for backing up medical records
US20080028008A1 (en) 2006-07-31 2008-01-31 Storage Appliance Corporation Optical disc initiated data backup
US20080046483A1 (en) * 2006-08-16 2008-02-21 Lehr Douglas L Method and system for selecting the timing of data backups based on dynamic factors
US7346623B2 (en) * 2001-09-28 2008-03-18 Commvault Systems, Inc. System and method for generating and managing quick recovery volumes
US20080072002A1 (en) 2006-09-20 2008-03-20 Hiroshi Kuwahara Backup method
US20080154979A1 (en) * 2006-12-21 2008-06-26 International Business Machines Corporation Apparatus, system, and method for creating a backup schedule in a san environment based on a recovery plan
US7412583B2 (en) 2003-11-14 2008-08-12 International Business Machines Corporation Virtual incremental storage method
US7418464B2 (en) * 2004-01-27 2008-08-26 International Business Machines Corporation Method, system, and program for storing data for retrieval and transfer
US20080270823A1 (en) 2007-04-27 2008-10-30 International Business Machines Corporation Fast node failure detection via disk based last gasp mechanism
US20080282253A1 (en) 2007-05-10 2008-11-13 Gerrit Huizenga Method of managing resources within a set of processes
US7529830B2 (en) * 2006-05-22 2009-05-05 Hitachi, Ltd. Storage system and communication control method
US7529785B1 (en) 2006-02-28 2009-05-05 Symantec Corporation Efficient backups using dynamically shared storage pools in peer-to-peer networks
US7558982B2 (en) * 2006-09-01 2009-07-07 Siemens Communications, Inc. Presence enhanced disaster/overload recovery
US7617255B2 (en) * 2006-01-25 2009-11-10 Hitachi, Ltd. Storage system, storage control device and recovery point detection method for storage control device
US7620843B2 (en) * 2005-03-02 2009-11-17 International Business Machines Corporation Rebuilding a storage system
US7657796B1 (en) * 2005-09-30 2010-02-02 Symantec Operating Corporation System and method for distributed storage verification
US7694092B2 (en) 2006-09-06 2010-04-06 Hitachi, Ltd. Storage subsystem and back-up/recovery method
US7802083B2 (en) * 2006-12-20 2010-09-21 Intel Corporation Utilization based installation on a computing system
US7904428B2 (en) * 2003-09-23 2011-03-08 Symantec Corporation Methods and apparatus for recording write requests directed to a data store
US7937393B2 (en) * 2005-11-28 2011-05-03 Commvault Systems, Inc. Systems and methods for classifying and transferring information in a storage network

Patent Citations (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659614A (en) * 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer
US5966730A (en) 1996-10-30 1999-10-12 Dantz Development Corporation Backup system for computer network incorporating opportunistic backup by prioritizing least recently backed up computer or computer storage medium
US6148372A (en) 1998-01-21 2000-11-14 Sun Microsystems, Inc. Apparatus and method for detection and recovery from structural stalls in a multi-level non-blocking cache system
US6226759B1 (en) 1998-09-28 2001-05-01 International Business Machines Corporation Method and apparatus for immediate data backup by duplicating pointers and freezing pointer/data counterparts
US6496949B1 (en) 1999-08-06 2002-12-17 International Business Machines Corp. Emergency backup system, method and program product therefor
US20040073676A1 (en) 2000-06-29 2004-04-15 Hitachi, Ltd. Computer system using a storage area network and method of handling data in the computer system
US6999978B2 (en) * 2001-06-28 2006-02-14 Siemens Aktiengellschaft Data backup method
US7346623B2 (en) * 2001-09-28 2008-03-18 Commvault Systems, Inc. System and method for generating and managing quick recovery volumes
US7318095B2 (en) 2001-11-21 2008-01-08 Clearcube Technology, Inc. Data fail-over for a multi-computer system
US20030120772A1 (en) 2001-11-21 2003-06-26 Husain Syed Mohammad Amir Data fail-over for a multi-computer system
US20080034249A1 (en) 2001-11-21 2008-02-07 Husain Syed M A Fail-Over In A Multi-Computer System
US20030145226A1 (en) 2002-01-28 2003-07-31 International Business Machines Corporation Integrated intrusion detection services
US6880051B2 (en) * 2002-03-14 2005-04-12 International Business Machines Corporation Method, system, and program for maintaining backup copies of files in a backup storage device
US20030177324A1 (en) 2002-03-14 2003-09-18 International Business Machines Corporation Method, system, and program for maintaining backup copies of files in a backup storage device
US20030212716A1 (en) 2002-05-09 2003-11-13 Doug Steele System and method for analyzing data center enerprise information via backup images
US20040034672A1 (en) 2002-05-30 2004-02-19 Takeshi Inagaki Data backup technique using network
US20070130599A1 (en) 2002-07-10 2007-06-07 Monroe David A Comprehensive multi-media surveillance and response system for aircraft, operations centers, airports and other commercial transports, centers and terminals
US6982842B2 (en) 2002-09-16 2006-01-03 Seagate Technology Llc Predictive disc drive failure methodology
US20040051988A1 (en) 2002-09-16 2004-03-18 Jing Gary Gang Predictive disc drive failure methodology
US7904428B2 (en) * 2003-09-23 2011-03-08 Symantec Corporation Methods and apparatus for recording write requests directed to a data store
US20080222376A1 (en) 2003-11-14 2008-09-11 David Alan Burton Virtual incremental storage apparatus method and system
US7412583B2 (en) 2003-11-14 2008-08-12 International Business Machines Corporation Virtual incremental storage method
US20050177767A1 (en) 2003-12-25 2005-08-11 Hitachi, Ltd. Backup system and method for tape recording medium
US7073036B2 (en) * 2003-12-25 2006-07-04 Hitachi, Ltd. Backup system and method for tape recording medium
US7103740B1 (en) * 2003-12-31 2006-09-05 Veritas Operating Corporation Backup mechanism for a multi-class file system
US7418464B2 (en) * 2004-01-27 2008-08-26 International Business Machines Corporation Method, system, and program for storing data for retrieval and transfer
US7231502B2 (en) * 2004-02-04 2007-06-12 Falcon Stor Software, Inc. Method and system for storing data
US7266718B2 (en) * 2004-02-24 2007-09-04 Hitachi, Ltd. Computer system for recovering data based on priority of the data
US20050257085A1 (en) 2004-05-03 2005-11-17 Nils Haustein Apparatus, system, and method for resource group backup
US20070254697A1 (en) 2004-09-06 2007-11-01 Matsushita Eleactric Industrial Co., Ltd. Mobile Terminal Device
US20060167838A1 (en) 2005-01-21 2006-07-27 Z-Force Communications, Inc. File-based hybrid file storage scheme supporting multiple file switches
US7620843B2 (en) * 2005-03-02 2009-11-17 International Business Machines Corporation Rebuilding a storage system
US20070033340A1 (en) * 2005-08-08 2007-02-08 International Business Machines Corporation System and method for providing content based anticipative storage management
US20070055660A1 (en) * 2005-09-08 2007-03-08 Deere & Company, A Delaware Corporation System and method for anticipatory downloading of data
US7657796B1 (en) * 2005-09-30 2010-02-02 Symantec Operating Corporation System and method for distributed storage verification
US7937393B2 (en) * 2005-11-28 2011-05-03 Commvault Systems, Inc. Systems and methods for classifying and transferring information in a storage network
US20070168715A1 (en) 2005-12-08 2007-07-19 Herz William S Emergency data preservation services
US20070136541A1 (en) 2005-12-08 2007-06-14 Herz William S Data backup services
US7617255B2 (en) * 2006-01-25 2009-11-10 Hitachi, Ltd. Storage system, storage control device and recovery point detection method for storage control device
US7529785B1 (en) 2006-02-28 2009-05-05 Symantec Corporation Efficient backups using dynamically shared storage pools in peer-to-peer networks
US7529830B2 (en) * 2006-05-22 2009-05-05 Hitachi, Ltd. Storage system and communication control method
US20070271316A1 (en) 2006-05-22 2007-11-22 I3Archives, Inc. System and method for backing up medical records
US20080028008A1 (en) 2006-07-31 2008-01-31 Storage Appliance Corporation Optical disc initiated data backup
US20080046483A1 (en) * 2006-08-16 2008-02-21 Lehr Douglas L Method and system for selecting the timing of data backups based on dynamic factors
US7558982B2 (en) * 2006-09-01 2009-07-07 Siemens Communications, Inc. Presence enhanced disaster/overload recovery
US7694092B2 (en) 2006-09-06 2010-04-06 Hitachi, Ltd. Storage subsystem and back-up/recovery method
US20080072002A1 (en) 2006-09-20 2008-03-20 Hiroshi Kuwahara Backup method
US7802083B2 (en) * 2006-12-20 2010-09-21 Intel Corporation Utilization based installation on a computing system
US20080154979A1 (en) * 2006-12-21 2008-06-26 International Business Machines Corporation Apparatus, system, and method for creating a backup schedule in a san environment based on a recovery plan
US20080270823A1 (en) 2007-04-27 2008-10-30 International Business Machines Corporation Fast node failure detection via disk based last gasp mechanism
US20080282253A1 (en) 2007-05-10 2008-11-13 Gerrit Huizenga Method of managing resources within a set of processes

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120101996A1 (en) * 2010-10-21 2012-04-26 Lim Geun-Sik Apparatus and method for snapshot image segmentation
US11640256B2 (en) 2010-11-24 2023-05-02 Western Digital Technologies, Inc. Methods and systems for object level de-duplication for data storage system
US20120137054A1 (en) * 2010-11-24 2012-05-31 Stec, Inc. Methods and systems for object level de-duplication for solid state devices
US11036417B2 (en) * 2010-11-24 2021-06-15 Western Digital Technologies, Inc. Methods and systems for object level de-duplication for solid state devices
US10162553B2 (en) * 2010-11-24 2018-12-25 Western Digital Technologies, Inc. Methods and systems for object level de-duplication for solid state devices
US8548959B2 (en) * 2010-11-29 2013-10-01 Ca, Inc. System and method for minimizing data recovery window
US9311188B2 (en) 2010-11-29 2016-04-12 Ca, Inc. Minimizing data recovery window
US20120136831A1 (en) * 2010-11-29 2012-05-31 Computer Associates Think, Inc. System and method for minimizing data recovery window
US20130132350A1 (en) * 2011-06-03 2013-05-23 Adobe Systems Incorporated Prioritized digital media archiving
US8543550B2 (en) * 2011-06-03 2013-09-24 Adobe Systems Incorporated Prioritized digital media archiving
US9229822B2 (en) 2011-06-14 2016-01-05 Ca, Inc. Data disaster recovery
US8856591B2 (en) 2011-06-14 2014-10-07 Ca, Inc. System and method for data disaster recovery
US9619338B2 (en) 2013-09-24 2017-04-11 International Business Machines Corporation File recovery on client server system
US10432718B2 (en) * 2016-09-21 2019-10-01 International Business Machines Corporation Predictive file synchronization
US11188662B2 (en) * 2017-11-20 2021-11-30 Hewlett-Packard Development Company, L.P. Encrypted data backup and restoration for image forming apparatuses using cloud
WO2019098486A1 (en) * 2017-11-20 2019-05-23 Hp Printing Korea Co., Ltd. Data backup using cloud
US11537478B2 (en) * 2018-03-16 2022-12-27 EMC IP Holding Company LLC Automation and optimization of data recovery after a ransomware attack
US11675672B2 (en) * 2018-03-16 2023-06-13 EMC IP Holding Company LLC Automation and optimization of data recovery after a ransomware attack
US20190310920A1 (en) * 2018-04-04 2019-10-10 International Business Machines Corporation Pre-Fetching and Staging of Restore Data on Faster Tiered Storage
US11068196B2 (en) * 2019-10-24 2021-07-20 EMC IP Holding Company LLC System and method for a restoration of on-premise backups to a cloud-based service

Similar Documents

Publication Publication Date Title
US8463798B1 (en) Prioritized restore
US8924352B1 (en) Automated priority backup and archive
US8375005B1 (en) Rapid restore
US11321181B2 (en) Data protection scheduling, such as providing a flexible backup window in a data protection system
US10102079B2 (en) Triggering discovery points based on change
US10331524B2 (en) Optimizing data backup schedules
US10061658B2 (en) System and method of data intelligent storage
US7631151B2 (en) Systems and methods for classifying and transferring information in a storage network
US7822749B2 (en) Systems and methods for classifying and transferring information in a storage network
US8886610B2 (en) Backup simulation for backing up filesystems to a storage device
US8171246B2 (en) Ranking and prioritizing point in time snapshots
US8321644B2 (en) Backing up filesystems to a storage device
US20070027935A1 (en) Backing up source files in their native file formats to a target storage
EP2583183A1 (en) Data deduplication
Tang et al. Improving Online Restore Performance of Backup Storage via Historical File Access Pattern

Legal Events

Date Code Title Description
AS Assignment

Owner name: EMC CORPORATION, MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CLAUDATOS, CHRISTOPHER HERCULES;ANDRUSS, WILLIAM DALE;TERWILLIGER, STEVEN R.;SIGNING DATES FROM 20070419 TO 20070509;REEL/FRAME:019296/0426

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT, NORTH CAROLINA

Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040134/0001

Effective date: 20160907

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT, TEXAS

Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040136/0001

Effective date: 20160907

Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLAT

Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040134/0001

Effective date: 20160907

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., A

Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040136/0001

Effective date: 20160907

AS Assignment

Owner name: EMC IP HOLDING COMPANY LLC, MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EMC CORPORATION;REEL/FRAME:040203/0001

Effective date: 20160906

AS Assignment

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., T

Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES, INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:049452/0223

Effective date: 20190320

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS

Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES, INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:049452/0223

Effective date: 20190320

AS Assignment

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS

Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:053546/0001

Effective date: 20200409

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8

AS Assignment

Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: SCALEIO LLC, MASSACHUSETTS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: MOZY, INC., WASHINGTON

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: MAGINATICS LLC, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: FORCE10 NETWORKS, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: EMC IP HOLDING COMPANY LLC, TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: EMC CORPORATION, MASSACHUSETTS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: DELL SYSTEMS CORPORATION, TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: DELL SOFTWARE INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: DELL PRODUCTS L.P., TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: DELL MARKETING L.P., TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: DELL INTERNATIONAL, L.L.C., TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: DELL USA L.P., TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: CREDANT TECHNOLOGIES, INC., TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: AVENTAIL LLC, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

Owner name: ASAP SOFTWARE EXPRESS, INC., ILLINOIS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001

Effective date: 20211101

AS Assignment

Owner name: SCALEIO LLC, MASSACHUSETTS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), MASSACHUSETTS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: DELL PRODUCTS L.P., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: DELL INTERNATIONAL L.L.C., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: DELL USA L.P., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001

Effective date: 20220329

AS Assignment

Owner name: SCALEIO LLC, MASSACHUSETTS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), MASSACHUSETTS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: DELL PRODUCTS L.P., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: DELL INTERNATIONAL L.L.C., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: DELL USA L.P., TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), TEXAS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001

Effective date: 20220329

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12