HPlogo Communicator e3000 MPE/iX Release 7.5 (Software Release C75.00): HP e3000 MPE/iX Computer Systems > Chapter 5 Technical Articles

TurboIMAGE Scalability II

MPE documents

Complete PDF
Table of Contents
Index

by Tien-You Chen, Commercial Systems Division

The Put/Del semaphore is an internal lock, one for each database, used to serialize DBPUT, DBDELETE and DBUPDATE (CIU) operation to ensure the physical integrity of the database. Because of the serialization, TurboIMAGE may not be able to scale up well with the system growth. The TurboIMAGE scalability I (a.k.a. DSEM) project was to replace the Put/Del semaphore by a set of dependency semaphores, one for each data set, to increase the concurrency. TurboIMAGE scalability II (a.k.a. DSEMII or EHWM) is trying to manage the internal lock at block level in order to gain better performance.

Data set User Label


Put/Del semaphore, dependency semaphores or block level semaphores are all internal runtime structures. The duration of locking the semaphore(s) is short and does not extend across intrinsics. In addition to Put/Del semaphore, another potential bottleneck is when adding or deleting a record to a detail data set, TurboIMAGE needs to update information in the data set user label, which includes the high water mark, delete chain head and number of free records in the data set. For each DBPUT, TurboIMAGE gets a record either from the high water mark or delete chain head and decrements by one the number of free records.

The operation is similar for DBDELETE. TurboIMAGE returns the record to the delete chain head and increases the number of free records by one. The information needs to be kept intact during the process of modification. Either the Put/Del semaphore or DSEM can serve the need to lock out other processes, but that is a bottleneck for DSEMII. In order to solve this problem, TurboIMAGE allocates an array in the user label, which we name extended high water mark (EHWM). The first user, who adds to a detail data set triggers TurboIMAGE to get 20 blocks beginning from the high water mark and to store those blocks in an array with one block for each element. After that, each DBPUT can lock one element of the array instead of the whole user label, hence increasing the concurrency. This EHWM sustains after database close. Only when the user disables the feature via DBUTIL, are the unused records in those blocks returned to either the delete chain or the high water mark. The EHWM will cease to exist.

DBUTIL Change


DBUTIL has a new option in ENABLE/DISABLE command to turn on/off this feature.

>>ENABLE database name/maint word FOR EHWM

After the user enables this feature and the first DBPUT to a detail data set, TurboIMAGE creates EHWM for this data set. Internally, at runtime, DSEMII also uses features like prefetch, DSEM and HWM dbput. When the user disables this feature, TurboIMAGE checks every detail data set in this database to destroy the EHWM and return unused records.


NOTE: When you do any kind of database maintenance work, such as restoring the database to an early version of TurboIMAGE, restructuring the database or repacking the database, you have to disable this feature.




Support for 2851 userlog Processes


Attach Enhancement in Image/SQL