Field of the Invention
The present invention relates to data backup systems. In particular, the present invention relates to performing data rollbacks.
Description of the Related Art
As companies create more and more data, data storage systems reliability become more important. As technology improves, the data storage systems improve as well. Sometimes, the data storage systems transition between a first data format to a second data format. This creates challenges when a company's important data is stored in a first format or technology and the data storage company is transitioning to a second storage format.
When transitioning from a first format to a second format, it is very important to a data storage company to not lose any client information or data. To do so would risk the stability of a product, as well as risk the company's track record and reputation. Therefore, providing a safe and reliable means to transition from one data state to another is very important.
What is needed is an improved method for transitioning from one data state to another.
The present technology allows for data state rollover using snapshots and deltas. A series of snapshots is taken of the current data state, an original data state, and data states in between. Deltas are then generated between two sequential snapshots. This results in numerous deltas which represent the difference between consecutive snapshots. Once the deltas are acquired, the deltas may be stored along with the snapshot of the present data state. As such, previous data states may be rolled back to by determining the number of deltas to apply to the current data state to achieve the desired previous data state. In cases where the rollback or rollover fails, deltas may be played against the current data state to a point where the last known trusted and working data point existed.
An embodiment for performing a data state rollback beings with capturing a multitude of snapshots of workflow data from an original data state to a present data state. A series of deltas are created which represents the difference between each successive state. The deltas are wrapped between the current state and a desired state in a transaction framework to be replayed. The deltas and then played back to completion against the current snapshot.
Data state rollover is performed using snapshots and deltas. A series of snapshots is taken of the current data state, an original data state, and data states in between. Deltas are then generated between two sequential snapshots. This results in numerous deltas which represent the difference between consecutive snapshots. Once the deltas are acquired, the deltas may be stored along with the snapshot of the present data state. As such, previous data states may be rolled back to by determining the number of deltas to apply to the current data state to achieve the desired previous data state. In cases where the rollback or rollover fails, deltas may be played against the current data state to a point where the last known trusted and working data point existed.
Server 100 includes rollback engine 110, delta 120 and snapshot 130. Rollback engine 110 may include one or more modules that are stored in memory and executed by a processor to perform rollback operations. Rollback engine 110 may also be executed to collect rollback data. The rollback data may include delta data 120 and snapshot 130. Snapshots 130 may include snapshots of the current state of data, a snapshot of the original state of data and snapshots contained periodically in between. The snapshots may be obtained at policy driven intervals to ensure that enough data is collected to rollback to any particular state desired by a user. In some embodiments, snapshots may be acquired periodically, based on specific policies or volume of changed data, or based on other reasons. Delta 120 may represent a measure of the distance between successive snapshots. For example a first delta may be taken between the current snapshot and the most recent snapshot other than the current snapshot. Only the current snapshot is stored in server 100, as the base snapshot and deltas 120 are all that is needed in order to perform a rollback operation.
Deltas may then be created representing the differences between the successive states at step 220. The deltas may be determined simply by taking the difference of two consecutive snapshots. The snapshot of the current period and the deltas are stored at step 230. The other snapshots are not needed as the other states can be determined based on the deltas and the current snapshot.
An embodiment may be used to rollback new data in a new state to old data in an old state. An original data state and format is formatted by a particular software program. The data may initially be converted to a new data state and format, and the later data states may be formatted differently by upgraded or changed software programs. The deltas may be taken in the new format and convert the new data, if a rollback is desired, into a neutral format. In some embodiments, the deltas may be generated in the neutral data format representing the difference between each successive state. The deltas can then be wrapped between the current state and the desired state in a transaction framework to be replayed. This allows for replay of the deltas against the original data state and format as well, and the original software can access the data, regardless of which state the data is originally formatted in. An application written to use the original format may still be used to access the data. The application may be able to pickup from the current data state, but in the old data format.
The components shown in
Mass storage device 530, which may be implemented with a magnetic disk drive or an optical disk drive, is a non-volatile storage device for storing data and instructions for use by processor unit 510. Mass storage device 530 can store the system software for implementing embodiments of the present invention for purposes of loading that software into main memory 520.
Portable storage device 540 operates in conjunction with a portable non-volatile storage medium, such as a floppy disk, compact disk or Digital video disc, to input and output data and code to and from the computer system 500 of
Input devices 560 provide a portion of a user interface. Input devices 560 may include an alpha-numeric keypad, such as a keyboard, for inputting alpha-numeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. Additionally, the system 500 as shown in
Display system 570 may include a liquid crystal display (LCD) or other suitable display device. Display system 570 receives textual and graphical information, and processes the information for output to the display device.
Peripherals 580 may include any type of computer support device to add additional functionality to the computer system. For example, peripheral device(s) 580 may include a modem or a router.
The components contained in the computer system 500 of
The foregoing detailed description of the technology herein has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the technology to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the technology and its practical application to thereby enable others skilled in the art to best utilize the technology in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the technology be defined by the claims appended hereto.
The present application is a continuation and claims the priority benefit of U.S. patent application Ser. No. 13/831,771 filed Mar. 15, 2013, the disclosure of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 13831771 | Mar 2013 | US |
Child | 15442458 | US |