Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
2001-02-27
2004-05-04
Breene, John (Department: 2165)
Data processing: database and file management or data structures
Database design
Data structure types
C707S793000, C709S223000, C709S227000
Reexamination Certificate
active
06732117
ABSTRACT:
BACKGROUND OF THE INVENTION
A typical data storage system operates as a large storage device for one or more external host computers (or simply hosts) by responding to block-based input/output (I/O) requests that direct the data storage system to perform load and store operations. Examples of block-based communications include small computer systems interface (SCSI) commands, Enterprise System Connection (ESCON) signals, Fibre Channel communications, and the like.
In some client/server configurations, hosts operate as servers that provide services (e.g., client-oriented access to a data storage system) to one or more other computers called clients. In contrast to block-based communications which servers and data storage systems use to communicate with each other, clients and servers typically communicate with each other using client-oriented and server-oriented communications (hereinafter, generally referred to as client-oriented communications). Examples of client-oriented communications include Transmission Control Protocol/Internet Protocol (TCP/IP) communications, Gigabit Ethernet signals, Asynchronous Transfer Mode (ATM) communications, and the like.
In one configuration, a client can retrieve data from a data storage system by sending a client-oriented request (e.g., a TCP/IP signal) to a server (i.e., a host). The server then provides a block-based request (e.g., a SCSI signal) for data blocks containing the data to the data storage system. Next, the data storage system provides the requested data blocks (e.g., a SCSI signal) to the server in response to the block-based request. The server then extracts the data from the data blocks, and provides that data to the client (e.g., via a TCP/IP signal). Further details of this configuration will now be provided with reference to FIG.
1
.
FIG. 1
shows a conventional data storage network
20
having a client/server configuration which utilizes a data storage system. The data storage network
20
includes a client system
22
, a server system
24
, and a conventional data storage system
26
. The client system
22
runs an application front-end
28
, such as a graphical user interface (GUI), that enables a user to communicate with the server system
24
. The server system
24
runs an application back-end
30
and a storage manager
32
. The application back-end
30
includes a client services module
34
for handling requests from clients, and a back-end processing module
36
for performing back-end processing operations.
As further shown in
FIG. 1
, the data storage system
26
includes front-end circuitry
38
, a cache
40
, back-end circuitry
42
, and disk drives
44
-
1
, . . . ,
44
-N (collectively, disk drives
44
). The cache
40
operates as a buffer for data exchanged between the server system
24
(an external host system) and the disk drives
44
. Additionally, the front-end circuitry
38
operates as an interface between the server system
24
and the cache
40
. Similarly, the back-end circuitry
42
operates as an interface between the cache
40
and the disk drives
44
.
In some data storage systems, the front-end circuitry
38
includes multiple front-end circuits and the back-end circuitry
42
includes multiple back-end circuits for redundancy (i.e., fault tolerance) and load balancing purposes. An example of such a data storage system is the Symmetrix which is manufactured by EMC Corporation of Hopkinton, Mass.
For illustration purposes, suppose that the data storage network
20
operates as a flight reservation system. That is, suppose that a user can operate the client system
22
to (i) find empty seats on particular flights of an airline, and (ii) purchase tickets to reserve such seats. To this end, the disk drives
44
of the data storage system
26
store a database containing records of all seats for all flights of the airline. The storage manager
32
of the server system
24
operates as a database engine that manages the database, and performs database queries on the database (i.e., performs search and filter operations on the database to find particular records) on behalf of the application back-end
30
running on the server system
24
. The client services module
34
, which provides client services to the application front-end
28
running on the client system
22
(e.g., finds empty seats on particular flights), is capable of submitting such queries to the storage manager
32
(i.e., database engine). Similarly, the back-end processing module
36
, which performs back-end processing on the server system
24
(e.g., allocates and schedules airline resources and inventories, prints tickets for newly reserved seats on a nightly basis, etc.), is also capable of submitting queries to the storage manager
32
. In response to the queries from the client services module
34
and the back-end processing module
36
, the storage manager
32
communicates with the data storage system
26
using block-based communications (e.g., SCSI signals). An example of such a storage manager is Oracle Database Server which is manufactured by Oracle Corporation of Redwood Shores, Calif. An example of how a user operates the flight reservation system
20
will now be provided.
Suppose that the user wishes to reserve an empty seat on a particular flight. The user enters a request for empty seats on the particular flight using the application front-end
28
running on the client system
22
. In response, the client system
22
sends a client-oriented request
46
(e.g., a TCP/IP signal) to the server system
24
. The client-oriented request
46
requests all empty seats on the particular flight. In response to the client-oriented request
46
, the client service module
34
of the application back-end
36
directs the storage manager
32
(i.e., the database engine) to perform a database query on the database stored in the disk drives
44
. In particular, the application server module
34
specifies the particular flight, and indicates that it wants all empty seats on that particular flight. In turn, the storage manager
32
sends a block-based request
48
(e.g., SCSI commands) for the entire database (i.e., all seats for all flights of the airline) to the data storage system
26
.
When the data storage system
26
receives the block-based request
48
from the storage manager
32
of the server system
24
, the data storage system
26
provides a block-based response
50
(e.g., a SCSI signal) containing the entire database. In particular, if the database is un-cached, the back-end
42
copies the database from the disk drives
44
to the cache
40
. Then, the front-end
38
transfers the copied database from the cache
30
to the storage manager
32
. If copies of any portions of the database resided within the cache, the front-end
38
can transfer those cached copies from the cache to the storage manager
32
without having to load new copies of those portions from the disk drives
44
.
When the storage manager
32
receives the database, the storage manager
32
queries the database to obtain all empty seats on the particular flight. In particular, the storage manager
32
searches the database records which contain all seats for all flights of the airline to determine which seats are for that particular flight, and which of those seats are empty. In some configurations, the transfer of the copied database from the disk drives
44
to the server system
24
, and the database query operations, occur incrementally and concurrently to improve response time. The storage manager
32
then provides the query results to the client services module
34
which conveys this information in the form of a server-oriented response
52
(e.g., a TCP/IP signal) to the application front-end
28
running on the client system
22
. Once the user knows which seats on the particular flight are empty, the user can reserve one of the empty seats on the particular flight by further communicating with the server system
24
which accesses the database again in a similar manner to that described above.
In some configurations, the serv
Ali Mohammad
Breene John
Chapin & Huang , L.L.C.
EMC Corporation
Huang, Esq. David E.
LandOfFree
Techniques for handling client-oriented requests within 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 Techniques for handling client-oriented requests within a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Techniques for handling client-oriented requests within a... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3226468