Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
2000-04-11
2002-04-16
Alam, Hosain T. (Department: 2172)
Data processing: database and file management or data structures
Database design
Data structure types
C717S152000
Reexamination Certificate
active
06374238
ABSTRACT:
BACKGROUND OF THE INVENTION
The present invention relates generally to a routine executing method in a database system, and more particularly to a routine executing method suitable for parallel processing of queries in a relational database management system.
Conventionally, relational database systems, particularly SQL database systems, have been increasingly applied mainly to data processing for business.
The earlier SQL specifications have been so configured as to instruct a database server to individually execute one by one database operations such as search, update, insert, delete and so on of data.
The current SQL specifications, on the other hand, provide instructions for substitution and control such as IF, WHILE and so on, in addition to the above-mentioned instructions for database operations, and can collectively define a series of processing in the form of a procedure or a function with an appropriate name given thereto. Here, the procedure and the function are collectively referred to as a “routine.”
As a draft of standardization for currently standardized SQL3, there is ISO/IEC JTC1/SC21/WG3 DBL-MCI-004, ISO Working Draft Database Language SQL, 1996.
A server for accessing a database in a database management system receives a request issued during the execution of a user application from a client, accesses the database, and returns a result. Also, in a relational database system, data can be readily divided and positioned into a plurality of database processing servers such that the plurality of database processing servers can parallelly access the divided data to improve the performance of the overall relational database system.
A need for such parallel database systems has been becoming higher with an increase in the amount of data. An exemplary parallel database system is described in D. DeWitt, et. al., “Parallel Database Systems: The Future of High Performance Database Systems”, CACM, Vol. 35, No. 6, 1992.
A conventional parallel database system comprises a server (hereinafter referred to as the “front end server”) which has a function of analyzing and compiling a query from a user application program (hereinafter abbreviated as “UAP”) in a client, and a function of totalizing the results of executing the query for divided data positioned in a plurality of parallel processing servers to return the totalized results to the client; and a plurality of servers (each of which is hereinafter referred to as the “database operation server”), each of which has a function of accessing a disk drive, which stores data, for performing required operations on the data. In general, the front end server and the database operation servers are interconnected through a high speed interconnection network.
For configuring a parallel data processing scheme, servers may be allocated on a function basis to achieve a pipeline-type parallel structure, other than the above-mentioned one which allocates divided data to a plurality of servers. In this case, execution process instructions are created for each server function, and the parallel processing is realized by executing each execution process in a multi-thread form.
In a parallel database system, as the division of data and respective functions are parallelly executed as mentioned above, communications are performed between associated functions for transmitting and receiving data flows through pipelines and for other processing. Therefore, the parallel database system has a challenge to reduce a load caused by the communications.
Next, description is made on the execution of a procedure in a parallel database system as a prior art technique. A procedure is defined by a CREATE PROCEDURE statement. In SQL3, a user-defined type, referred to as Abstract Data Type (ADT), can be defined, and another procedure may also be defined in a definition statement for the abstract data type.
A definition statement for a procedure is analyzed by the front end server which creates internal type codes (hereinafter referred to as an “execution process instructions”) corresponding to a processing method and process. The execution process instruction may be codes interpreted by an interpreter or codes of execution type. The execution process instruction is registered as dictionary information related to the procedure.
For calling a procedure, a CALL statement is provided for calling a SQL statement from an application program written in a high class language such as C language. The CALL statement is analyzed by the front end server which retrieves execution process instructions corresponding to a procedure name and arguments written in the CALL statement from the dictionary information and executes the retrieved execution process instructions.
If processing described in a procedure includes a database operation such as search, update, insert and deletion of data (hereinafter update, insert and delete queries are collectively referred to as the “update-related queries”), execution process instructions for performing the database operation are provided for the front end server as well as for the database operation servers which have data to be operated.
Each of the database operation servers operates divided data allocated thereto in accordance with execution process instructions provided thereto. The front end server in turn executes execution process instructions for totalizing the results of database operations performed by the respective database operation servers.
As an example, if a database is searched for certain data, the respective database operation servers search for the data, transfer retrieved data to the front end server which sequentially receives and uses the data transferred thereto.
If a dedicated database operation server is provided for high load processing such as sorting or the like, execution process instructions are created likewise for this database operation server.
SUMMARY OF THE INVENTION
In the configuration of the parallel database system described above, it is the front end server that analyzes database operation statements for search, update, insert, delete and so on, and totalizes the results from the respective database operation servers. Also, for executing a procedure from a user application, a body of the procedure is executed by the front end server.
If the body of the procedure includes a database operation statement, the front end server executes the body of the procedure, continuously totalizes the results from the respective database operation servers, and performs the execution of the procedure.
More specifically, a procedure execution unit and a database operation statement execution unit are both included in execution process instructions on the same front end server side. However, database operations are actually performed by the respective database operation servers in which divided data is allocated.
Assume herein that, in the parallel database system, when a database operation statement includes execution of a function, a call to the function is performed by a database operation server which has divided data allocated thereto. Consider also that a database operation statement is also included in the body of the function.
In the parallel database system, the execution of a body of a function is common to the execution of a body of a procedure except for a part of functions, so that the same execution unit on the front end side (hereinafter simply called the “front end side”) may be used both as an execution unit for function and as an execution unit for procedure. Therefore, in the case assumed above, every time a function is called, communications such as a request for execution and so on will be made between the function calling party (in this case, the execution unit on the database operation side (hereinafter simply called the “divided data side”)) and the execution unit for the function (in this case, the front end side). Although depending upon the type of query from the UAP, the number of communications may amount to an immense value since the function is likely to be called on the divided data sid
Iwata Morihiro
Kamegi Yoshito
Nakano Yukio
Tsuchida Masashi
Alam Hosain T.
Fleurantin Jean Bolte
Hitachi , Ltd.
Mattingly Stanger & Malur, P.C.
LandOfFree
Routine executing method in database system does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Routine executing method in database system, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Routine executing method in database system will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2892883