Tuesday, March 01, 2005

Index File Updates/Adds and SMP

Index File Updates/Adds and SMP
Symmetric multiprocessing (SMP) is a one-time-charge feature that improves multiple concurrent processing during database reads/updates/adds/deletes from one or more user jobs. When a database physical file record is updated, added, or deleted, the physical file’s associated logical files must be maintained. In fact, when a program calls the database to update/add/delete a physical file record, the database functions perform the logical file processing before changing the physical file. This database processing sequence (first, the logical file processing; then, the physical file) holds regardless of whether SMP is used
If SMP isn’t enabled, the logical file maintenance occurs synchronously within the job. The logical file records that aren’t in main storage are page faulted into main storage, processed, and written to disk. After this processing is finished for all the logical files involved, the physical file is updated.
Logical file page-fault sizes vary depending on the attributes of each of the physical file’s index files. The logical page size for indexes that aren’t yet *MAX1TB is 4 K. The logical page size for indexes that are native access paths with the *MAX1TB attribute is 4 K. The logical page size for SQL indexes and SQL referential constraint indexes (which look and act just as access paths do) is a whopping 64 K.
With SMP turned on, logical file processing is "farmed out" to SLIC tasks named DBL3…. The processing for each logical file is assigned to a separate DBL3 task, and the user job waits until each of the DBL3 tasks finishes processing the block of records it was given. Then, the job resumes processing and the database functions write the physical file record.
If a physical file has many logical files and there are a lot of record changes, SMP can save a significant amount of time. However, note that the same amount of processing occurs, so there’s no savings in CPU time. Instead, the same amount of CPU is used (per record) in less elapsed time so that CPU utilization increases as the total processing time is reduced.

No comments:

Post a Comment