Each coserver owns and manages a set of dbspaces and the table fragments that reside on those dbspaces. Each coserver also manages its own logging, recovery, locking, and buffer management for the table fragments that it owns.
Each coserver manages the database objects that it owns and coordinates activities with the other coservers. The database server provides the following services to coordinate parallel processing among coservers:
A request manager resides on each coserver. The request manager decides how to divide a query and how to distribute the workload to balance the tasks across coservers. The request manager works with other database server services to determine if a client request should involve multiple coservers:
The request manager on the coserver where the user connects is called the connection request manager for that user session. If a request involves execution on multiple coservers, the connection request manager passes context information to the other coservers so that they can establish local session context for the user session.
The query optimizer decides how to perform a query. The query optimizer first finds all feasible query plans. A query plan is a distinct method of executing a query that takes into account the order in which tables are read, how they are read (by index or sequentially), and how they are joined with other tables in the query. The query optimizer assigns a cost to each component operation that is required under each plan and then selects the plan with the lowest cost for execution.
The query optimizer uses pertinent information from the data-dictionary manager to determine the degree of parallelism of the request.
The data-dictionary manager contains information about data definitions, the system catalogs that contain them, and the coservers on which those system catalogs reside. The Data-Dictionary Manager provides coservers with access to system catalogs that reside on other coservers. Once a coserver has obtained a data definition, that coserver can retain a copy in local shared memory. The only coserver that can modify a data definition is the one on which the appropriate system catalog resides.
Each coserver manages and maintains the table fragments that reside on its dbspaces but is aware of the table fragments on other coservers through the Data-Dictionary Manager located on every coserver. If a coserver requires access to table fragments that it does not own, the coserver sends a request to the coserver that owns the dbspace to retrieve it.
A scheduler resides on each coserver. The scheduler distributes execution tasks to the other coservers. The scheduler activates a part of the execution plan on each coserver to allocate the pertinent resources.
Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]