Introduction to DB2 Architecture
DB2 Architecture helps us to understand different components of that participate in the complete DB2 system that we will use. When using DB2, we are basically at the client side which tries to read and write different data to and from the DB2 database. The component which serves us this utility to store, retrieve and modify our data is the DB2 server. Multiple DB2 clients can be served by a single DB2 server. They communicate with each other using different mediums depending on the type of DB2 client which can be either local or remote. In this article, we will study about the architecture of the DB2 database system along with the diagram showing all the components and an explanation of the working and usage of each of its components.
Architecture of DB2
The architecture of DB2 are given below:
1. DB2 Client
The DB2 clients can be either remote application or local applications each of which is linked internally with the client library of DB2. The communication between client and server is made by using different techniques. If the client is local then semaphores and shared memory are used for communication. In the case of remote clients, the communication is carried out by using different protocols like TCP/ IP or named pipes which are also denoted as NPIPE.
2. DB2 Server
The DB2 server consists of different components in which all the activities are controlled by the units called Engine Dispatchable Units that is EDUs. We can observe different components of the DB2 server and the DB2 client-server communications by having a look at the below diagram –
3. Engine Dispatchable Units (EDUs)
All the Engine Dispatchable Units are displayed in the circles in the above diagram. All the platforms execute the engine dispatchable units in the form of threads. The most common types of engine dispatchable units are the DB2 agents. The DB2 agents are responsible for performing and carrying out nearly all of the XQuery and SQL processing for the DB2 server application. The other most profound and the commonly present EDU is the page cleaners and the prefetchers.
A different set of subagents is used for serving the requests from client application processes. There is a facility and possibility that we can assign multiple subagents provided if the machine which we are using for the DB2 server has multiple processors or the DB2 server internally uses a partitioned database environment. One of the examples, where we can use multiple subagents is symmetric multiprocessing(SMP) which is an environment and the multiple SMP are capable of exploiting multiple processors at the same time.
5. Pooling Algorithm
The pooling algorithm is responsible for managing the agents and subagents that are present inside the DB2 server. This algorithm helps us to minimize the destruction and construction of the EDUs inside DB2 server.
6. Buffer Pool
Buffer pools is the place where the actual data resides. These pools are the part of the memory of our database server which stores the data related to pages of a user, catalog data, and the index data temporarily. There after this data is moved to Hard disks. But initially and while manipulating the data is brought to these pools and modified and manipulated. The buffer pools are regarded as one of the key parameters for measuring the performance of the DB2 server. This is because of the fact that accessing the data from the memory of the buffer pools is much faster and simpler than accessing it from the hard disk.
How quickly can the data inside the DB2 servers can be accessed by the DB2 client side applications depends upon the configurations of the buffer pools as well as other components like page cleaners and the prefetchers.
It is the job of the prefetchers to move the data to the buffer pool from the hard disk before the data is being needed, used or accessed by the application. One of the example that will illustrate the use and the benefit of buffer pools is that suppose we have large volumes of data that we need to scan. Then in that case, if there were no prefetchers then we would have to wait for all the required data to be moved from the disk to the buffer pools of the server which would have taken a lot of time and decreased the performance of the DB2 server to serve the requests. It is the duty of the agents of the applications to send the read-ahead requests asynchronously to the prefetchers with the help of a common prefetch queue.
8. Working of Prefetchers
The client side requests are implemented by prefetchers by using the scatter-read and big-block input operations when the prefetchers become available they bring all the pages which are requested into the buffer pool from the disk. We can also strip the data across the disks provided if we have multiple disks for storing the data. The use of stripping the data helps us and enables the use of prefetchers to retrieve the data simultaneously from multiple disks.
9. Page Cleaners
The working of page cleaners is just the opposite of prefetchers. The responsibility of prefetchers is to move the data to the hard disk from the buffer pool. They work in the background of the EDUs because they are independent of the other agents of the application. The page cleaners are responsible for having the look at which pages are changed and the updated modified pages are written back to the disk. It is the responsibility of the page cleaners to make sure that the required space is available in the buffer pools for the working of the prefetchers. If there were no independent page cleaners and the prefetchers in the DB2 server then the other agents of the application would have to all the operations related to read and write between disk storage and the buffer pool.
The architecture of the DB2 consists of different components. The architecture of the DB2 is mainly divided into the DB2 client and DB2 server. The DB2 server consists of different agents and subagents. The two important components are the prefetchers and the page cleaners which maintain the data in buffer pools for fast and effective retrieval of data.
This is a guide to DB2 Architecture. Here we also discuss the introduction and architecture of DB2 along with a detailed explanation. You may also have a look at the following articles to learn more –