Method and apparatus for identifying changes to a logical...

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C707S793000, C707S793000, C711S100000, C711S161000, C711S162000, C714S020000

Reexamination Certificate

active

06385626

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates to data storage systems. One aspect of the present invention is directed to a method and apparatus for identifying changes to a logical object by examining information relating to the physical level in a data storage system wherein the logical object is stored. Another aspect of the present invention is directed to a method and apparatus for identifying a logical unit of data that belongs to a database by determining a group of identifiers that includes an identifier of the logical unit of data that uniquely specifies a location of the logical unit of data within the database, based upon information, concerning a structure of the database, that does not directly specify the group of identifiers.
DESCRIPTION OF THE RELATED ART
Computer systems typically include one or more storage devices.
FIG. 1
is a block diagram of such a typical computer system
100
. The system
100
includes a host computer
110
, having a processor
120
and a memory
130
, and a storage system
140
. The storage system
140
can be any one of a number of different types of storage devices (e.g., a tape storage device, a floppy diskette storage device, a disk storage device, etc.), or can include a combination of different types of storage devices.
Application programs, such a word-processing applications, desktop publishing applications, database software, etc., execute on the processor
120
and operate on logical objects (e.g., files, etc.) that are formed from one or more logically related blocks of data. When an application performs an operation on a logical object, the blocks of data forming the logical object are read from the storage system
140
and temporarily stored in the memory
130
of the host computer for more efficient processing. When the application is finished performing operations on the logical object, the data forming the logical object is read from memory
130
and written to the storage system
140
.
For many applications, it is desirable to be able to determine a subset of the data stored on the storage system
140
that has changed since a particular point in time. An example of such a situation is an incremental backup. It should be appreciated that for fault tolerance reasons, the data stored on the storage system
140
for a particular application may be periodically backed up. For many applications, the amount of data stored on the storage system
140
can be quite large, such that the process of performing a full backup of all of the data stored on the storage system
140
can take a significant amount of time. It should be appreciated that when performing a system backup, the application program may be unavailable for other other uses, or alternatively, the performance of the computer system
100
, as perceived by that application, as well as other applications, may be significantly impaired or degraded, such that the computer system
100
is effectively unavailable for other uses. Therefore, it is desirable to minimize the amount of time taken to back up the data on the storage system
140
. To address this concern, the concept of an incremental backup has been developed, wherein a backup is performed on a subset of the data on the storage system
140
, the subset corresponding only to the portions of data that have changed (i.e., have been added, deleted or modified) subsequent to the last time a fall backup was performed.
Many computer systems provide the capability of performing an incremental backup on all of the data stored on the storage system
140
. However, it should be appreciated that the storage system
140
can be quite large, and can store a significant amount of data, such that the performance of an incremental backup on the entire storage system
140
can be a very time consuming process. Thus, it is desirable to provide an incremental backup capability that works on only the subset of data stored on the storage system
140
that relates to a particular application, and is therefore logically related. Many computer systems provide the capability of performing an incremental backup for a set of data that is logically related. This is done by identifying the changes that have been made to the logical objects that form the logically related data set since a particular reference point in time (e.g., a time that a last full backup for the set of logically related data was performed). One example of such an incremental backup facility is provided in an ORACLE relational database, and enables the data included in the database to be incrementally backed up relative to a particular reference point in time.
An ORACLE database is typically organized as a collection of tables, with each table including one or more rows of data. Rows are instances of a subject. For example, a table named “CITY” may include several different rows of data pertaining to different cities, such as Boston, Los Angeles, New York and Paris. Each row may include a number of columns that store attributes of the subject, such as population, median income, etc.
FIG. 2
is a structural diagram that illustrates the manner in which row data for a table is typically stored in an ORACLE database file. Each file
200
is typically an ordinary operating system file and includes a file header
210
and file data
220
. The file data
220
is organized in data blocks
230
, with each block having a block header
240
and block data
250
. The block data
250
contains the actual row data that is associated with one or more tables in the database. Block header
240
includes a row directory that identifies each row of data within the respective data block
230
, and identifies where each row of data begins and ends. The block header
240
also includes one or more change bits that identify whether information within the respective data block
230
has changed since a reference point in time (e.g., that point in time when the change bits were last reset). Any time a change is made to row data within the data block
230
after the reference point in time, one or more of the change bits is set by the database software so that the occurrence of this change can be later identified.
As noted above, an ORACLE database is capable of identifying that a change has been made to data blocks
230
of the database since a particular reference point in time. As the change bits in each data block
230
are typically reset by the database software after a backup of the database, this reference point is typically the time at which the most recent full or incremental backup of the database was performed. Because the database is capable of identifying those data blocks
230
that have been changed (i.e., added, deleted, or modified) since the last full or incremental backup, an incremental backup of the database can be performed by backing up only those changed data blocks. Since the incremental backup only backs up those data blocks whose data has changed, rather than all data blocks known to the database, the incremental backup generally takes much less time than a full database backup, especially with large databases. This time savings can be significant, as modifications to the database are typically prohibited during any form of backup. In the event of a catastrophic failure to the database, the database can be restored based on the last full backup and the most recent incremental backup(s).
Although an ORACLE database is capable of identifying changes that have been made to the database since a particular reference point in time, the amount of time that it takes to determine which data blocks have changed is directly proportional to the size of the database. That is, to determine which data blocks have changed, the database must scan each block header in every file of the database. Accordingly, for large databases, the benefits of an incremental backup may be mitigated by the amount of time it takes for the database to determine which data blocks have changed. Furthermore, it should be appreciated that the database can only determine changes to those data blocks th

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for identifying changes to a logical... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for identifying changes to a logical..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for identifying changes to a logical... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2838287

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.