Method and apparatus for simultaneous comparison of multiple backup sets maintained in a computer system

Method and apparatus for simultaneous comparison of multiple backup sets maintained in a computer system are described. A plurality of backup sets of data maintained in a computer system including a hierarchy of objects is managed. In some examples, a graphical user interface (GUI) is displayed on a display coupled to the computer, the GUI having views configured show a first group of backup sets from the plurality of backup sets. Individual objects of a selected backup set in the first group of backup sets are pinned in a pinned view of the views in response to a first command. A second group of backup sets from the plurality of backup sets is shown in the views in response to a second command by sliding individual objects of at least one backup set in the plurality of backup sets across at least one unpinned view of the views with respect to the individual objects of the selected backup set in the pinned view.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to computer systems. More particularly, the present invention relates to method and apparatus for simultaneous comparison of multiple backup sets maintained in a computer system.

2. Description of the Related Art

Computer systems typically include many computers coupled to a network. For data protection, such computer systems can include one or more backup appliances for backing up data stored on the computers. For example, a computer network may include a server configured to manage a domain in the computer system (referred to as a “domain controller”). The domain controller is configured to store information about network resources of the domain in a database. The database can include a hierarchical structure of objects that represent these network resources. A backup appliance can be configured to backup the database of the domain controller. Typically, the backup appliance would perform such a backup task periodically according to a schedule. As such, the backup appliance can maintain several different copies of the backed up data (referred to as “backup sets”). A database of a domain controller is just one example of a type of data that can be backed-up in a computer system. For example, other types of databases can be backed-up, such as e-mail databases and the like. In another example, other types of data can be backed-up, such as file systems, disk images, and the like for various workstation computers in the computer system.

A backup appliance can restore backed-up data to a target computer in the computer system. In cases where multiple backup sets are maintained, an administrator must select an appropriate backup set to restore. In some cases, the entire backup set is restored (“complete restore”). In other cases, only some objects in a backup set need to be restored (“granular restore”). A backup set may include a large number of objects. Thus, for a granular restore, an administrator might have to search through and compare a large number of objects across many backup sets to search for particular versions of the objects to be restored. This searching and comparison can be time consuming and error prone.

SUMMARY OF THE INVENTION

An aspect of the invention relates to a method and apparatus for managing, on a computer, a plurality of backup sets of data maintained in a computer system, the data including a hierarchy of objects. In some embodiments, a graphical user interface (GUI) is displayed on a display coupled to the computer, the GUI having views configured show a first group of backup sets from the plurality of backup sets. Individual objects of a selected backup set in the first group of backup sets are pinned in a pinned view of the views in response to a first command. A second group of backup sets from the plurality of backup sets is shown in the views in response to a second command by sliding individual objects of at least one backup set in the plurality of backup sets across at least one unpinned view of the views with respect to the individual objects of the selected backup set in the pinned view.

In some embodiments, each of the views is configured to show a GUI control representing the hierarchy of objects for a respective one of the plurality of backup sets. In some embodiments, the data comprises a database of network elements in the computer system, where the hierarchy of objects including information related to at least one of: network resources, network services, or network users. In some embodiments, an additional view is displayed adjacent to the views in the GUI, where the additional view configured to show individual objects of a live copy of the data in the computer system. The individual objects of the live copy of the data in the additional view are pinned with respect to the individual objects of the at least one backup set being slid across the at least one unpinned view. In some embodiments, the individual objects of the selected backup set in the pinned view are unpinned in response to a third command subsequent to the second command. Individual objects of another selected backup set in the second group of backup sets are pinned in another pinned view of the views in response to a fourth command. In some embodiments, the individual objects of the selected backup set in the pinned view are unpinned in response to a third command subsequent to the second command. A third group of backup sets from the plurality of backup sets is shown in the views in response to a fourth command by sliding individual objects of backup sets in the plurality of backup sets across the views. Individual objects of another selected backup set in the third group of backup sets are pinned in a respective one of the views in response to a fifth command.

Another aspect of the invention relates to a method for managing, on a computer, a plurality of backup sets of data maintained in a computer system, the data including a hierarchy of objects. In some embodiments, a GUI is displayed on a display coupled to the computer, the GUI having a merged view and views configured show a first group of backup sets from the plurality of backup sets, the merged view being adjacent to the views. In response to a first command, a first object of a first backup set in the first group of backup sets as shown in a respective one of the views is selected, and a second object of a second backup set in the first group of backup sets as shown in a respective one of the views is selected. A second group of backup sets from the plurality of backup sets in the views is shown in response to a second command by sliding individual objects of backup sets in the plurality of backup sets across the views with respect to the merged view, where the first object and the second object are slid into the merged view where the first object and the second object are pinned.

In some embodiments, each of the views is configured to show a GUI control representing the hierarchy of objects for a respective one of the plurality of backup sets. In some embodiments, the data comprises a database of network resources in the computer system, and the hierarchy of objects includes information related to at least one of: network resources, network services, or network users. In some embodiments, an additional view is displayed adjacent to the merged view in the GUI, the additional view configured to show individual objects of a live copy of the data in the computer system.

DETAILED DESCRIPTION

FIG. 1is a block diagram depicting an exemplary embodiment of a computer system100in accordance with one or more aspects of the invention. The system100includes a computer102, a network104, and a backup appliance106. The network104comprises a communication system that connects computer systems by wire, cable, fiber optic, and/or wireless links facilitated by various types of well-known network elements, such as hubs, switches, routers, and the like. In particular, the network104may connect the client computer102and the backup appliance106. The network104may employ various well-known protocols to communicate information. For example, the network104may employ internet protocol (IP), transmission control protocol (TCP), and the like for the transmission of packets. The network104may comprise part of a wide area network (WAN), such as the Internet, and/or all or part of a local area network (LAN). Alternatively, the network104may comprise a storage area network (SAN) implemented using fibre channel (FC) or the like.

The client computer102illustratively includes a processor118, a memory120, various support circuits122, an I/O interface125. The processor118may include one or more microprocessors known in the art. The support circuits122for the processor118include conventional cache, power supplies, clock circuits, data registers, I/O interfaces, and the like. The I/O interface125may be configured for communication with the network104. The memory120may include one or more of the following random access memory, read only memory, magneto-resistive read/write memory, optical read/write memory, cache memory, magnetic read/write memory, and the like.

The client computer102is configured with a service116and a backup agent114. Each of the service116and the backup agent114may include software (e.g., program code) stored in the memory120and configured for execution by the processor118. In some embodiments, the service116can provide any type of network service to other computers150on the network. The service116is configured to maintain a database112stored in the memory120. The database112includes various objects. For example, the service116can be a domain controller, and the database112can include a hierarchy of objects representative of network elements on the network104. The network elements may include network resources, network services, and/or network users. An exemplary domain controller service is MICROSOFT ACTIVE DIRECTORY. In general, the service116can be any type of service that maintains a database of objects, such as an e-mail service having a database of e-mail related objects, a file service having a database of files (e.g., a file system, network share, etc.), and the like. In some embodiments, the service116may be an operating system (OS) or the like, and the database may be a file system having files.

The backup agent114is configured to interact with the backup appliance106over the network104to back up the database112thereto. The backup agent114may perform such a backup operation periodically in accordance with a schedule so that several different backups of the database112are made.

The backup appliance106illustratively includes a processor130, a memory132, various support circuits134, and an I/O interface136. The backup appliance106may be coupled to a display126and various input/output devices110. The processor130may include one or more microprocessors known in the art. The support circuits134for the processor130include conventional cache, power supplies, clock circuits, data registers, I/O interfaces, and the like. The I/O interface136may be configured for communication with the network104, the display126, and the input/output devices110. The memory132may include one or more of the following random access memory, read only memory, magneto-resistive read/write memory, optical read/write memory, cache memory, magnetic read/write memory, and the like.

The backup appliance106is configured with a backup service138. The backup service138may include software (e.g., program code), stored in the memory132, configured for execution by the processor130. The backup service138is configured to cooperate with backup agents to backup target data in computers. For example, the backup service138can cooperate with the backup agent114to backup the database112. The backup service138may perform such backup operations in accordance with a schedule such that multiple backup sets are maintained in the memory132for each target data. For example, the backup service138may maintain backup sets128of the database112.

In some embodiments, the backup service138includes a restore manager140. The restore manager140can include software (e.g., program code), stored in the memory132, configured for execution by the processor130. The restore manager140is configured to display a graphical user interface (GUI)108on the display126. An administrator may interact with the restore manager140through the GUI108and the input/output devices110. The restore manager140enables comparison of individual objects of all or a portion of the backup sets128for the purpose of readily identifying particular objects for granular restore. In particular, the restore manager140enables various ones of the backup sets128to be pinned or repositioned and slide across the GUI108in order to facilitate visual comparison of individual objects across different backup sets. Exemplary embodiments of the GUI108and processes performed by the restore manager140are described below.

Although the restore manager140is shown as being executed by the backup appliance106, it is to be understood that the restore manager140can be executed by other computers on the network104that have access to the backup sets128or data representative of the contents of the backup sets128stored by the backup appliance106. For example, the restore manager140can be executed by the computer102, which can be coupled to a display and input/output devices (not shown) in similar fashion to the backup appliance106.

FIG. 2is a flow diagram depicting a method200of managing backup sets of data maintained in a computer system according to some embodiments of the invention. The method200may be performed by the restore manager140described above inFIG. 1. Aspects of the method200may be understood with reference to the elements of the computer system100shown inFIG. 1.

The method200begins at step202, where the restore manager140displays the GUI108on the display126. The GUI108generally includes views configured to show a group of the backup sets128(e.g., two of more of the backup sets128). In some cases, there are not enough views to show all of the backup sets128(e.g., the group of backup sets is less than all of the backup sets128). The restore manager140may initially show a first group of the backup sets128in the views of the GUI108.

FIG. 3Aillustrates an initial view300of the GUI108according to some embodiments of the invention. The GUI108includes a plurality of views306(e.g., four views306-1through306-4are shown). The views306include headers302(e.g., four headers302-1through302-4are shown). The headers302include labels for the views306(e.g., “View1” through “View4”). Each of the views306is configured to show at least a portion of a respective one of the backup sets128. A backup set can be represented in a view in a number of ways. In general, each of the views306includes a GUI control308(e.g., four GUI controls308-1through308-4are shown) that represents individual objects of a given one of the backup sets128. For example, in some non-limiting embodiments, the GUI controls308comprise tree-controls that represent an expandable hierarchy of objects. Other types of GUI controls may be employed. In other embodiments, the individual objects of a backup set may be shown in rows of each of the views306. It is to be understood that the various GUI representations may be employed for showing the objects of the backup sets. For purposes of clarity by example, the GUI controls308are shown as tree-controls.

In the initial view, a first group of the backup sets128are shown in the views306, designated as backup sets128-1through128-4. Four objects of the backup set128-1are shown in the view306-1, designated objects1-4. In particular, object1is shown un-expanded, object2is shown expanded to include object3, and object3is shown expanded to include object4. Three objects of the backup set128-2are shown in the view306-2, designated objects1-3. In particular, object1is shown un-expanded, object2is shown expanded to include object3, and object3is shown unexpanded. Five objects of the backup set128-3are shown in the view306-3, designated objects1-5. In particular, object1is shown un-expanded, object2is shown expanded to include object3, and object3is shown expanded to include object4, and object5is shown unexpanded. Four objects of the backup set128-4are shown in the view306-4, designated objects1-3and5. In particular, object1is shown un-expanded, object2is shown expanded to include object3, and object5is shown unexpanded. The configuration of objects in the backup sets128-1through128-4is merely illustrative. Further, a backup set may include more or less than the numbers of objects shown.

The GUI108also includes a scroll control307. The scroll control307is shown positioned under the views306, but may be positioned anywhere within the GUI108. The scroll control307is configured to receive input and, responsive to the input, forward a scroll command to the restore manager140. The scroll command can indicate a leftward or rightward scroll. The scroll control307can be used to slide backup sets across the views306horizontally left or right. For example, the scroll control307may be used to slide the backup sets128-2,128-3, and128-4from the views306-2,306-3, and306-4to the views306-1,306-2, and306-3in response to a left scroll request. The backup set128-1in the view306-1is hidden from view, and the view306-4would show a previously hidden backup set (if any). In this manner, all of the backup sets128may be viewed within the four views306-1through306-4. Those backup sets128hidden from view may be displayed by using the scroll control307. Those of the backup sets128shown in the views306are referred to as a group of backup sets. As shown inFIG. 3A, the views306show a first group of the backup sets128, i.e., backup sets128-1through128-4.

In some embodiments, the GUI108may be configured with a live view310. The live view310can include a header312, with a label therein (e.g., “live view” is shown). The live view310can show the current state of the database112that is the target of the backup sets128(e.g., a live copy of the database112). In particular, the live view310can include a GUI control314, similar to the GUI controls308. In the present example, the live view310shows three objects1,2, and5of the database112. The individual objects of the database112can be pinned in the live view312. In this manner, an administrator can pin and slide different backup sets and compare such backup sets to a live copy of the database112. Such a comparison can facilitate restore of particular objects to the database112.

In some embodiments, each of the views306can show all objects of a respective one of the backup sets128. In other embodiments, each of the views306can show less than all of the objects of a respective one of the backup sets128. For example, in some embodiments, the views306may be configured to show only those objects of the respective backup sets that are different from objects currently stored in the database112. Thus, objects in the backup sets that are the same as the objects currently in the database112may be hidden from view. The views306may be configured to only show the different objects either with the GUI108having the live view310or with the GUI108not having the live view310. Such filtering of objects can result in the views306having less objects being shown.

In some embodiments, differences between objects in different backup sets across the views306can be emphasized. For example, in a scenario described above, the views306can be configured to show only those objects in the respective backup sets that are different from the current database112. In a further refinement, objects between multiple backup sets in the views306that are the same (but also different from the live database112) can be de-emphasized (e.g., grayed out or the like), and/or objects between multiple backup sets in the views306that are different can be emphasized (e.g., highlighted, bolded, and the like). The above emphasis/de-emphasis scenario may also be employed if the views306are configured to show all of the objects, rather than just the different objects from the live database112.

Returning toFIG. 2, the method200proceeds from step202to step204. At step204, the restore manager140pins individual objects of one or more selected backup sets in a first group of backup sets in response to a pin command. By “pinned”, it is meant that the selected backup set(s) will remain displayed in respective view(s) regardless of any scroll commands. Referring to the example ofFIG. 3A, the GUI108can include pin controls304(e.g., four pin controls304-1through304-4are shown). The pin controls304are shown positioned within the headers302, but may be positioned anywhere within the GUI108. Each pin control304is configured to receive input and, responsive to the input, forward a pin command to the restore manager140. The pin command can indicate an active or inactive pin. In response to an active pin command, the restore manager140can pin the backup set shown in the respective view. In response to an inactive pin command, the restore manager140can unpin the backup set shown in the respective view. A view that is pinned is referred to as a “pinned view”. A view that is not pinned is referred to as an “unpinned view”.

Referring again toFIG. 2, the method200proceeds from step204to step206. At step206, the restore manager140shows a second group of backup sets in the views in response to a scroll command. The restore manager140can slide individual objects of one or more of the backup sets128across one or more unpinned views with respect to pinned view(s).

For example,FIG. 3Billustrates a subsequent view301of the GUI108after a scroll command according to some embodiments of the invention. Elements ofFIG. 3Bthat are the same or similar to those ofFIG. 3are designated with identical reference numerals and described in detail above. The example ofFIG. 3Bassumes that the view306-1has been pinned in step204such that the individual objects1-4of the backup set128-1remain fixed to the view306-1. The views306-2through306-4are unpinned views. Further, the example ofFIG. 3Bassumes a leftward scroll of two backup sets. Thus, the view306-2shows the backup set128-4, while the backup sets128-2and128-3are hidden from view. The views306-3and306-4now show new backup sets128-5and128-6, respectively, that were previously hidden from view. The view301of the GUI108is merely exemplary. Any number of the views306can be pinned, and any number of backup sets can be slid either leftward or rightward with respect to the pinned view(s).

By pinning one or more backup sets, and sliding one or more backup sets leftward or rightward, an administrator can efficiently compare the individual objects of different backup sets with one another. For example, an administrator may want to compare the objects in one backup set with objects of other backup sets, including those hidden from display at any one time. Since the selected backup set can be pinned, other backup sets can be slid across the unpinned views to display hidden backup sets without hiding the selected backup set.

Returning toFIG. 2, the method200can be generally extended to pinning, scrolling, unpinning, scrolling again, repining, etc. For example, the method200may proceed from step206to step208. At step208, the restore manager140can unpin the individual objects of the selected backup set(s) in the pinned view(s) in response to a pin command. At step210, the restore manager140can pin the individual objects of new selected backup set(s) in new pinned view(s) in response to a pin command. In another embodiment, at optional step209between steps208and210, the restore manager140can show a third group of backup sets in the views in response to a scroll command. Thus, backup sets can be unpinned, new backup sets can be slid into view and pinned.

In the embodiments described above, the GUI108has been shown as having columnar views across which the backup sets can be pinned and slid horizontally. It is to be understood that the views of the GUI108can be configured in different arrangements. For example, the views can be rows and backup sets can be pinned and slid vertically across rows. In another example, the views can be multidimensional. For example, views can be arranged in a rectangular grid of columns and rows and can be pinned and scrolled in both horizontal and vertical directions. In other embodiments, rather than having the backup set adjacent to a pinned backup set disappear from view after a scroll command, the adjacent backup set can be shown with the pinned backup set using data overlay and transparency GUI features. For example, the pinned backup set can overlay another backup set that has been slid into the respective pinned view.

FIG. 4is a flow diagram depicting a method400of managing backup sets of data maintained in a computer system according to some embodiments of the invention. The method400may be performed by the restore manager140described above inFIG. 1. Aspects of the method400may be understood with reference to the elements of the computer system100shown inFIG. 1.

The method400begins at step402, where the restore manager140displays the GUI108on the display126. The GUI108generally includes views configured to show a group of the backup sets128(e.g., two of more of the backup sets128). In some cases, there are not enough views to show all of the backup sets128(e.g., the group of backup sets is less than all of the backup sets128). The restore manager140may initially show a first group of the backup sets128in the views of the GUI108. The GUI108further includes a merged view. The merged view can be initially empty. As discussed below, after a scroll operation, the merged view can include objects from different backup sets. The GUI108may also show a live view, as described above.

FIG. 5Aillustrates an initial view500of the GUI108according to some embodiments of the invention. Elements inFIG. 5Athat are the same or similar to those ofFIG. 3Aare designated with identical reference numerals and described in detail above. For purposes of clarity, the view306-4and associated elements are omitted inFIG. 5A. The GUI108includes a merged view318. The merged view318can include a header316with a label therein (e.g., “merged view”). In the view500, the merged view318is initially empty, as described above in step402.

Returning toFIG. 4, the method400proceeds from step402to step404. At step404, the restore manager140selects, in response to a selection command, one or more objects from different backup sets. For example, the restore manager402can select a first object of a first backup set in a first group of backup sets shown in the views, and a second object of a second backup set in the first group of backup sets. As shown inFIG. 5A, a selection320selects object5of the backup set128-3in the view306-3, and a selection322selects object3in the backup set128-2in the view306-2. The selections320and322may be any type of GUI element, such as highlighted (inverse) text, bounding boxes, or the like type elements to visually distinguish selected objects from unselected objects.

The method400proceeds from step404to step406. At step406, the restore manager140shows a second group of backup sets in response to a scroll command. The restore manager140, in response to the scroll command, slides individual objects of backup sets across the views with respect to the merged view. As the backup sets are slid, any selected objects are slid into the merged view and are thereafter pinned in the merged view.

FIG. 5Billustrates a subsequent view501of the GUI108after a scroll command according to some embodiments of the invention. Elements ofFIG. 5Bthat are the same or similar to those ofFIG. 5are designated with identical reference numerals and described in detail above. The example ofFIG. 5Bassumes that the backup sets have been scrolled leftward by three backup sets. Thus, the view306-1shows a backup set128-4, the view306-2shows a backup set128-5, and the view306-3shows a backup set128-6. The objects selected by the selections320and322are shown in the merged view318by a GUI control324. The GUI control324can be the same or similar to the GUI controls308, described above. The objects in the merged view318form a merged backup set326. The objects can include indication of which backup set they belong. In the present example, a parenthetical expression is placed after the object to indicate the backup set, although other techniques can be used.

In this manner, an administrator can select different objects from different backup sets and relate them into a merged backup set by selecting and sliding, as described above. The administrator can pick and choose different objects from different backup sets, have them all stored in the merged view, and then restore from the merged view.

Aspects of the methods described above may be implemented as a program product for use with a computer system. Program(s) of the program product defines functions of embodiments and can be contained on a variety of computer readable media, which include, but are not limited to: (i) information permanently stored on non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM or DVD-ROM disks readable by a CD-ROM drive or a DVD drive); and (ii) alterable information stored on writable storage media (e.g., floppy disks within a diskette drive or hard-disk drive or read/writable CD or read/writable DVD). Such computer readable media, when carrying computer-readable instructions that direct functions of the invention, represent embodiments of the invention.