Next Patent: Database controlling system
Next Patent: Database controlling system
[0001] This application claims the benefit under 35 U.S.C. § 119(e) of U.S. provisional patent application No. 60/350,434, titled, “Persistent Snapshot Management System,” filed Jan. 22, 2002, which is incorporated herein by reference.
[0002] The present invention relates generally to computer data storage systems and, more particularly, to online methods and systems for managing archived data stored in a finite data storage medium.
[0003] There are numerous types of systems for making backup copies of data generated by and stored in memory (temporary or permanent) of a computer. Such systems are useful and provide a means for recovering archived data in case the principle data is lost or corrupted—as could happen if the primary storage medium, such as a hard drive, crashes, is physically damaged, or infected by a computer virus. Typically, magnetic computer tapes or optical disks are used to store backup copies of large amounts of data, as is often associated with computer network systems. For archival purposes, such backups are generally recorded on a periodic basis, such as (i) at the end of each day; (ii) at the end of each week; (iii) at the end of each month; and (iv) at the end of each year. Each backup tape or disk can be maintained in storage indefinitely or, to minimize costs, such tapes or disks can be reused on a rolling basis (if they rewriteable) or destroyed (if they are not rewriteable and physical storage space for the backups is limited) with the oldest tape or disk being recorded over or destroyed.
[0004] At the individual computer level, many computer programs or operating systems allow backups or temporary copies of files to be saved periodically to enable the user to recover a file upon which he is working if the working copy of the file becomes corrupted or lost, as could happen, for example, during a power outage or by user error. Such files are saved to the hard drive of the computer, onto a floppy disk, burned into a CD or DVD read/write disk, or to any other comparable finite data storage medium. Typically, because of space limitations on such finite data storage medium, only the most recent backup is maintained, with the previous backup being overwritten each time the working file or data is backed-up.
[0005] Thus, there exists a need for a system by which multiple backups or historical copies of the same data, file, directory, volume, or drive may be maintained on a single data storage medium as long as sufficient space exists on the particular data storage medium for maintaining such backups or copies. One computer system, such as that described in the provisional U.S. patent application incorporated herein by reference, enables computer servers and personal computers to maintain multiple “point-in-time snapshots” of data (as opposed to backup copies of the data) on a computer storage medium. By recording only modifications made to the underlying data, this system minimizes the amount of data that must be recorded as part of the snapshot data and, likewise, reduces the likelihood that the available capacity of the data storage medium will be used.
[0006] Nevertheless, with any system that maintains multiple backup copies of data or snapshots of data in a single and finite data storage medium, at some point, the allocated portion of the finite storage medium dedicated to such backups or snapshots will ultimately be reached. For purposes of this invention and the disclosure hereinafter, the term “data set” shall be used to refer to backup copies of data, snapshots of data, and to any other grouping of data, whether for purposes of backup or for snapshot, and whether the data is actually organized as a loose grouping of associated information, as a file, as a grouping of files, as a directory, as a volume or portion of a hard drive or other primary storage medium, or as a hard drive or other primary storage medium in its entirety.
[0007] Thus, there exists a need for methods and systems for managing the recordation of data sets to a finite data storage medium such that the more desirable data sets are recorded or maintained in the finite data storage medium at the expense of less desirable data sets. Such determinations of desirability of data sets must be made when the usable capacity of the finite data storage medium is reached, for example, or when the maximum number of data sets that can be permissibly associated with a particular group of related data sets has been reached or exceeded.
[0008] The present invention meets one or more of the above-referenced needs as described herein in greater detail.
[0009] The present invention relates generally to computer data storage systems and, more particularly, to online methods and systems for managing the recordation of data sets to a finite data storage medium.
[0010] Briefly described, aspects of the present invention include the following.
[0011] In a first aspect of the present invention, a method of managing the recordation of data sets to a finite data storage medium, each respective data set having associated therewith a time of creation and a preservation weight from a range of allowable preservation weights, comprises the steps of detecting that the finite data storage medium has reached or exceeded its effective capacity; for all data sets currently stored in the finite data storage medium, successively deleting each respective data set with the lowest preservation weight and earliest time of creation until the finite data storage medium is below a threshold capacity; and once below the threshold capacity, recording a new data set to the data storage medium.
[0012] In a further feature, the “effective capacity” of the finite data storage medium is established to mean when the data storage medium is at approximately 90% of its maximum capacity.
[0013] Preferably, the threshold capacity is the same as or less than the effective capacity.
[0014] In yet another feature, the first aspect of the present invention further comprises the step of sorting all data sets currently stored in the finite data storage medium by preservation weight and then, within each grouping of respective preservation weights, by its time of creation.
[0015] In another feature, the new data set is assigned to a group of data sets and all data sets within each respective group has a predetermined preservation weight.
[0016] In a further feature, data sets with the highest allowable preservation weight are identified as permanent (i.e., non-deleteable). Additionally, the first aspect of the present invention further comprises the step of returning an error message or indication if all data sets currently stored in the finite storage medium are identified as permanent and the finite data storage medium is at or above its effective capacity. Such error message or indication is a notification to the system administrator, a determination that no new data sets may be recorded to the finite data storage medium, or causing the system to crash or go to a blue screen. Alternatively, data sets with the highest preservation weight are re-identified as “highest priority but deleteable” rather than “permanent,” which enables such data sets to be deleted as necessary without causing the system to crash or cease recording new data sets.
[0017] In another feature, the step of deleting comprises removing each respective data set from the finite data storage medium or making each respective data set capable of being overwritten.
[0018] In a second aspect of the present invention, a method of managing groups of data sets recorded to a finite data storage medium, each respective data set having a time of creation, comprising the steps of associating a new data set to a predetermined group, each predetermined group having a maximum number of allowed data sets associated therewith; recording the new data set to the finite data storage medium; counting the number of data sets stored in the finite data storage medium and associated with the predetermined group; and if the number of data sets stored in the finite data storage medium and associated with the predetermined group exceeds the maximum number, deleting the oldest data set of the predetermined group.
[0019] In a feature of this second aspect, the step of deleting comprises removing each respective data set from the finite data storage medium or making each respective data set capable of being overwritten.
[0020] In another feature the finite data storage medium is associated with a computer system and the maximum number of allowed data sets associated with the predetermined group is set by a user or administrator of the computer system. Alternatively, the maximum number of allowed data sets associated with the predetermined group is set to a default number.
[0021] In yet another feature, the step of recording the new data set occurs either before or after the step of counting or, in some situations, after the step of deleting the oldest data set of the predetermined group.
[0022] In another feature, the step of associating comprises associating the new data set to a plurality of predetermined groups.
[0023] Additionally, in another feature, the predetermined group to which the new data set is associated is determined based on its time of creation and/or the type of data it contains.
[0024] In a further feature the finite data storage medium is associated with a computer system and the predetermined group to which the new data set is associated is determined by a user or administrator of the computer system.
[0025] The present invention also may encompass computer-readable media having computer-executable instructions therein for performing methods of the present invention, and computer networks that implement the methods of the present invention.
[0026] Although the preferred operating environment of the present invention is a conventional computer or server with access to a finite data storage medium, such as a hard drive, it should be understood that the present invention can likewise be implemented in any electronic device or computer system in which data is archived, copied, or stored for backup or later retrieval purposes.
[0027] Features of the present invention are disclosed and will become apparent from the following description of preferred embodiments of the present invention.
[0028] Further features and benefits of the present invention will be apparent from a detailed description of preferred embodiments thereof taken in conjunction with the following drawings, wherein similar elements are referred to with similar reference numbers, and wherein:
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035] Turning first to
[0036] Turning briefly to
[0037] Regardless of whether data sets are being recorded to or deleted from the dedicated portion
[0038] Turning now to
[0039] The value of the preservation weight is preferably within a predetermined range of possible preservation weights. Preferably, the lower the preservation weight, the less important it is that the new data set be preserved by the system for a long time. Likewise, the higher the preservation weight, the greater the importance of preservation of the new data set. In one embodiment, the highest preservation weight indicates that the new data set should be kept in the finite data storage medium permanently (i.e., it should never be deleted, if possible). Obviously, a system that merely reverses the scale such that the lowest preservation weight indicates the greater importance of the data set and vice versa is within the scope of the present invention.
[0040] The specific value of the preservation weight may be assigned by default, by a system administrator, or by a user with access to the underlying computer system and with rights to assign the preservation weight to the particular data set. In another embodiment, the specific value of the preservation weight is assigned based on the grouping to which the new data set belongs. Groupings, as discussed in greater detail hereinafter, may be established based on the time of creation of the data set. Data sets may also be grouped by the type of data contained therein or by the type of user for the data set.
[0041] Next, the capacity of the finite data storage medium is checked (Step
[0042] If the effective capacity of the finite data storage medium has been reached or exceeded (as determined at Step
[0043] Turning now to
[0044]
[0045] In yet another alternative embodiment, not shown, if the determination in Step
[0046] In a second aspect of the present invention, it is desirable to manage data sets that have been organized into or associated with “predetermined groups.” Although the capacity of the finite data storage medium may be, but is not necessarily, the primary issue of concern, it is generally desirable to limit the number of data sets associated with a particular group and stored in a finite data storage medium to a manageable level.
[0047] As briefly described earlier, a data set “group” may be established based on the time of creation of the data set. For example, data sets that are periodic backups of files or hard drives may be grouped (or associated with a predetermined group) based on the “time” in which each periodic backup occurs, such as end of the day, end of the week, end of the month, etc. Data sets may also be grouped by the type of data contained therein or by the user(s) to which the data set is relevant. For example, data sets may belong to a company-wide group (e.g., a full network server backup), to a department level group (e.g., Administrative Department file directory backup), or to an individual level group (e.g., single file backup or snapshot). Data sets may also be grouped by combinations of any of the above (e.g., month end snapshot of Accounting Department files). Likewise, it should be understood that in some cases, a particular data set may be grouped or associated with a plurality of different groups.
[0048] For data management reasons, it may be desirable to maintain only a specific number of backups, snapshots, or other data sets associated with a particular data set group. For example, it may be desirable to maintain data sets of only the last five days of all work saved to a server, the last twelve months of month-end reports for the Accounting Department, the last ten “end of the week” account receivable reports, and so on.
[0049] Turning now to
[0050] The new data set is then associated (Step
[0051] The new data set is then recorded (Step
[0052] The system counts (Step
[0053] If the determination in Step
[0054] In view of the foregoing detailed description of preferred embodiments of the present invention, it readily will be understood by those persons skilled in the art that the present invention is susceptible of broad utility and application. While various aspects have been described in the context of HTML and web page uses, the aspects may be useful in other contexts as well. Many embodiments and adaptations of the present invention other than those herein described, as well as many variations, modifications, and equivalent arrangements, will be apparent from or reasonably suggested by the present invention and the foregoing description thereof, without departing from the substance or scope of the present invention. Furthermore, any sequence(s) and/or temporal order of steps of various processes described and claimed herein are those considered to be the best mode contemplated for carrying out the present invention. It should also be understood that, although steps of various processes may be shown and described as being in a preferred sequence or temporal order, the steps of any such processes are not limited to being carried out in any particular sequence or order, absent a specific indication of such to achieve a particular intended result. In most cases, the steps of such processes may be carried out in various different sequences and orders, while still falling within the scope of the present inventions. In addition, some steps may be carried out simultaneously. Accordingly, while the present invention has been described herein in detail in relation to preferred embodiments, it is to be understood that this disclosure is only illustrative and exemplary of the present invention and is made merely for purposes of providing a full and enabling disclosure of the invention. The foregoing disclosure is not intended nor is to be construed to limit the present invention or otherwise to exclude any such other embodiments, adaptations, variations, modifications and equivalent arrangements, the present invention being limited only by the claims appended hereto and the equivalents thereof.