Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
1998-06-30
2003-04-01
Rones, Charles (Department: 2175)
Data processing: database and file management or data structures
Database design
Data structure types
C707S793000, C711S162000
Reexamination Certificate
active
06542909
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates to data storage systems. More particularly, the present invention is directed to a method and apparatus for manipulating logical objects in a data storage system.
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 of any of a number of types (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 executing on the processor 
120
 typically operate on data that is stored in the storage system 
140
. The data from the storage system 
140
 may be copied to the memory 
130
 for more efficient access by the host computer 
110
. When data in memory 
130
 is no longer needed by an application program, the processor 
120
 typically reads the data from memory 
130
 and writes the data to the storage system 
140
. Thus, application programs executing on the host computer 
110
 typically perform numerous reads from and writes to the storage system 
140
.
As discussed below, data stored in the storage device 
140
 is typically organized in units termed “blocks”, where each block includes a number of bytes of data (e.g., 512 bytes). Application programs executing on the host computer 
110
 typically operate on logical objects (e.g., files) that include a collection of one or more blocks of data that are logically related. The computer system 
100
 typically includes one or more mapping layers that map from the logical objects operated upon by the application programs to the particular physical locations in the storage system where the blocks that make up the logical object are stored. Often, the blocks of data that make up a particular logical object are mapped to non-contiguous physical locations in the storage system 
140
. In a typical computer system 
100
, the storage system has no understanding that a number of non-contiguous physical blocks are logically related. Thus, when the host computer 
110
 executes an operation on a logical object having a plurality of blocks of data stored in non-contiguous physical locations in the storage device 
140
, the non-contiguous blocks must be accessed in separate operations from the storage system 
140
, which can impact the performance of the computer system 
100
.
FIG. 2
 schematically represents a number of mapping layers on the computer system 
100
 of FIG. 
1
. Computer system 
100
 can be viewed as having a number of hierarchical spaces or layers including an application space 
210
 and a physical space 
230
. Between the application space 
210
 and the physical space 
230
 is a mapping layer 
220
. As mentioned above, application programs (e.g., word processing applications, desktop publishing applications, etc.) executing on the host computer 
110
 of the computer system 
100
 operate on logical objects (e.g., files) in application space 
210
. The data forming those logical objects is stored on one or more storage devices 
241
-
243
 that are included in the storage system 
140
 and define a physical space 
230
.
In the illustrative example shown in 
FIG. 2
, storage system 
140
 is a disk storage system that includes disk drives 
241
-
243
. Each disk drive can include one or more disks of a recording medium (e.g., a magnetic or optical recording medium), on which data can be stored, and from which stored data can be read. As discussed above, data stored on each of the disk drives 
241
-
243
 is typically organized in units termed “blocks”, where each block includes a number of bytes of data (e.g., 512 bytes).
In the illustrative system shown in 
FIG. 2
, the mapping layer 
220
 is implemented entirely on the host computer 
110
 of the computer system 
100
. The mapping layer maps each logical object specified in application space 
210
 to one or more unique locations (e.g., blocks) in physical space 
230
 where the data forming the logical object is stored. The mapping layer 
220
 can include a single layer of mapping, such as a file system 
222
 or a Logical Volume Manager (LVM) 
224
, or as shown in 
FIG. 2
, can include multiple mapping layers 
222
 and 
224
. When an application program accesses a logical object, such as a file, it identifies the object using a logical object identifier, such as its file name. The mapping layer 
220
 is typically organized as a data structure that assigns unique locations in physical space 
230
 to the blocks of data that form each of the logical objects identified in the application space. Thus, when a logical object is written to the storage device 
140
 by an application program operating in application space 
210
, the mapping layer defines the physical locations in the storage devices 
241
-
243
 that are written by the host computer 
110
 with the blocks of data that make up the object. Similarly, when a logical object is read by an application program operating in application space 
210
, the mapping layer 
220
 uses the logical object identifier to identify the physical locations in the storage devices 
241
-
243
 that are read by the host computer 
110
 to retrieve the blocks of data that make up the object.
For example, a word processing document file 
1
 to be accessed by a word processing application may be stored on disk 
242
 at blocks 
0
-
3
. The word processing application requests a read of the data forming file 
1
 by issuing a read command and specifying the logical object identifier of file 
1
 (e.g., read file 
1
). Where the computer system 
100
 includes only a single layer of mapping (e.g., file system 
222
), the file system 
222
 maps the logical object identifier file 
1
 to the physical location where the data is stored (i.e., disk 
242
, blocks 
0
-
3
). The location of the data for the logical object (file 
1
) that is identified by the file system 
222
 is used by the host computer to issue the read to the storage system 
140
. In this manner, the data can be read by the host computer 
110
 and written into memory 
130
, where it can be operated upon by the application program. Alternatively, where the word processing application requests a write of the data forming file 
1
, the word processing application issues a write command specifying the logical object identifier file 
1
 (e.g., write file 
1
). The file system 
222
 maps the logical object identifier file 
1
 to disk 
242
, blocks 
0
-
3
, whereupon the data in memory 
130
 corresponding to the identified logical object is written to the appropriate location (i.e.,disk 
242
, blocks 
0
-
3
) by the host computer. The application program has no knowledge about the actual physical location wherein the data forming file 
1
 is actually located, as the mapping layer 
220
 handles this mapping task in a manner that is transparent to the application program.
As stated above, the mapping layer 
220
 may include a number of mapping layers such as file system 
222
 and LVM 
224
. The LVM represents an additional layer of mapping that is used in ultimately converting a logical object identifier into the physical blocks that store the data corresponding to the logical object. LVMs are typically used in larger computer systems having a number of storage devices, and enable volumes of storage data to be managed at a logical (rather than physical) level. The presence or absence of the LVM 
224
 is transparent to the application space. Similarly, the presence or absence of the LVM 
224
 is also transparent to the file system 
222
. In this respect, the file system simply maps from the application space to what the file system perceives to be the physical space 
230
. If another layer of mapping, such as an LVM, is included in the mapping layer 
220
, it simply means that the result of the mapping done in the file system does not indicate the final mapping to the physical layer.
As in 
Hoffman Jane E.
Tamer Philip E.
EMC Corporation
Rones Charles
Wolf Greenfield & Sacks P.C.
LandOfFree
System for determining mapping of logical objects in a... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with System for determining mapping of logical objects in a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System for determining mapping of logical objects in a... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3046167