top of page

Brief about DB2 Architecture.

In this blog, you will see and learn 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.

The architecture of the DB2 consists of different components and mainly divided into the DB2 client and DB2 server. When using DB2, you 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. The DB2 server consists of different agents and subagents. 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. 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.

Now lets see the general overview of the Db2 architecture and processes.


Architecture of DB2

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. Look at the above diagram, you can observe different components of the DB2 server and the DB2 client-server communications.


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.


4) Subagents

A different set of subagents is used for serving the requests from client application processes. There is a facility and possibility that you can assign multiple subagents provided if the machine which you are using for the DB2 server has multiple processors or the DB2 server internally uses a partitioned database environment. One of the examples, where you 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.


7) 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 you have large volumes of data that you need to scan. Then in that case, if there were no prefetchers then you 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. You can also strip the data across the disks provided if you 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.


That's all in this post. If you liked this blog and interested in knowing more about IBM Db2. Please Like, Follow, Share & Subscribe to www.ImJhaChandan.com.

תגובות


jc_logo.png

Hi, thanks for stopping by!

Welcome! to my “Muse & Learn” blog.

This website will help you to learn useful queries/SQL, Tips to troubleshoot problem and their remediation, perform DB related activities etc... and don't forget to muse with us :)....

It cover few useful information on below topics :

 

MySQL, SQL Server, DB2, Linux/UNIX/AIX, HTML ....

Let the posts
come to you.

Thanks for submitting!

  • Instagram
  • Facebook
  • Twitter
© 2023 By ImJhaChandan
bottom of page