Compaq COBOL AAQ2G1FTK User Manual

Page 501

Advertising
background image

Optimizing Your Compaq COBOL Program

15.6 I/O Operations

Specifying APPLY PREALLOCATION preallocates noncontiguous disk blocks.
When you specify the CONTIGUOUS-BEST-TRY phrase, the I/O system makes
up to three attempts to allocate as many contiguous disk blocks as it can; it then
preallocates remaining blocks noncontiguously. The CONTIGUOUS-BEST-TRY
phrase minimizes disk space fragmentation and gives better system throughput
than CONTIGUOUS.

The APPLY CONTIGUOUS (physically adjacent) clause makes one attempt
at contiguous preallocation; if it fails, the OPEN operation fails. Use APPLY
CONTIGUOUS if you require contiguous physical space on disk.

Contiguous files can reduce or eliminate window turning. When you access a
file, the file system maps virtual block numbers to logical block numbers. This
map is a window to the file. It contains one pointer for each file extent. The file
system cannot map a large noncontiguous file: the file system may have to turn
the window to access records in another extent. However, a contiguous file is one
extent. It needs one map pointer only, and window turning does not take place
after you open the file.

The following statements create a file (after OPEN/WRITE) and preallocate 150
contiguous blocks:

ENVIRONMENT DIVISION.
FILE-CONTROL.

SELECT A-FILE ASSIGN TO "MYFILE".

.
.
.

I-0-CONTROL.

APPLY CONTIGUOUS PREALLOCATION 150 ON A-FILE.

.
.
.

15.6.1.2 Using the EXTENSION Phrase of the APPLY Clause

The format of APPLY EXTENSION is as follows:

APPLY EXTENSION extend-amt ON { file-name } ...

The APPLY EXTENSION clause is another way to reduce I/O allocation and
extension time. Adding records to a file whose current extent is full causes
the file system to extend the file by one disk cluster. (A disk cluster is a set of
contiguous blocks; its size is determined when you initialize the volume with
the DCL INITIALIZE command or when the volume is mounted with the DCL
MOUNT qualifier: /EXTENSION=n.)

You can override the default extension by specifying the number of blocks in the
APPLY EXTENSION clause. The APPLY EXTENSION integer becomes a file
attribute stored with the file.

15.6.1.3 Using the DEFERRED-WRITE Phrase of the APPLY Clause

The format of APPLY DEFERRED-WRITE is as follows:

APPLY DEFERRED-WRITE ON { file-name } ...

Optimizing Your Compaq COBOL Program 15–11

Advertising