These three system parameters must be defined in coordination with each other. They are used as defaults for the space allocation when creating and extending files. The values apply to all private volumes. For pubsets they only apply if nothing else is defined in the pubset's MRSCAT entry. In addition, the allocation unit specified when the pubset was created with SIR is considered depending on the data format (K, NK2, NK4).
Defined values are sought in the following order:
Direct specification in the /CREATE-FILE or /MODIFY-FILE-ATTRIBUTES command
Entry in MRSCAT
If specified with /MODIFY-MASTER-CATALOG-ENTRY (ALLOCATION operand), the modification will not take effect until after the next import of the pubset.
If /MODIFY-PUBSET-SPACE-DEFAULTS (operand PRIMARY-ALLOCATION / SECONDARY-ALLOCATION / MAX-ALLOC) is used, the definition takes effect immediately.
Specification via system parameters
If the values ascertained in this way are not a multiple of the allocation unit defined when the pubset was configured using SIR, they are rounded up to the next multiple.
Primary allocation
Parameter name | Value range | STD value |
DMPRALL | 3...65535 | 3 |
Primary allocation for a file in PAM blocks if the SPACE operand was not given a value in /CREATE-FILE oder /MODIFY-FILE-ATTRIBUTES (or in the FILE macro).
Secondary allocation
Parameter name | Value range | STD value |
DMSCALL | 3...65535 | 3 |
Secondary allocation for a file in PAM blocks if this was not supplied in the SPACE operand in /CREATE-FILE oder /MODIFY-FILE-ATTRIBUTES (or in the FILE macro).
After each file enlargement, the amount of the increase is doubled as compared to the value at the previous enlargement. Secondary allocation (SA) at the (i+1)th enlargement equals twice the secondary allocation at the i-th enlargement: SA(i+1) = 2 * SA(i)
This formula continues to be used until double the value of the current secondary allocation exceeds the value DMMAXSC. Thereafter the formula SA(i+1) = SA(i) applies.
Maximum value
Parameter name | Value range | STD value |
DMMAXSC | 3...65535 | 48 |
When double the value of the current secondary allocation exceeds the value of DMMAXSC, the value for the secondary allocation is no longer modified.
Example
File enlargements with the values: DMPRALL 15, DMSCALL 3, DMMAXSC 48. In this example, DMMAXSC could contain any value from 48 to 96 without the behavior changing.
15+3=18 (1st file enlargement)
18+6=24 (2nd file enlargement)
24+12=36 (3rd file enlargement)
36+24=60 (4th file enlargement)
60+48=108 (5th file enlargement)
108+48=156 (6th file enlargement, no change to the secondary allocation because the value would then be greater than DMMAXSC))
The smallest allocation unit is 3 PAM blocks for private volumes and for pubsets 3 PAM blocks (K and NK2 format) or 4 PAM blocks (NK4 format).
Each dynamic file enlargement leads to a series of management I/O operations in the system (updating the entries in the user ID, the file catalog, the F1 label with private volumes) and thus incurs a considerable system overhead. To minimize this overhead, the DMSCALL parameter should be set to at least 4 allocation units.
To reduce the number of dynamic file enlargements (or avoid them), the operand SPACE=*RELATIVE(PRIMARY-ALLOCATION=xx,SECONDARY-ALLOCATION=yy) is available to all users in /CREATE-FILE oder /MODIFY-FILE-ATTRIBUTES.
Example
A program writes 456 blocks sequentially with the PAM macro call. The AINF macro call determines the number of I/O operations.
/CREATE-FILE ... , SPACE=REL ( ... ) | No. of physical I/Os | No. of extents acc. to | |
PRI-ALLOC= | SEC-ALLOC= | ||
3 | 3 | 480 | 20 |
6 | 6 | 476 | 18 |
30 | 30 | 467 | 9 |
192 | 192 | 459 | 3 |
456 | 30 | 456 | 1 |
The results can vary depending on the respective disk occupancy levels.