z/OS DFSMS OAM Planning, Installation, and Storage Administration Guide for Object Support
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Calculating the number of objects stored on DASD, optical, and tape

z/OS DFSMS OAM Planning, Installation, and Storage Administration Guide for Object Support
SC23-6866-00

The planning team began by calculating the number of objects that will be stored on DASD, tape, and optical storage.

  1. The maximum number of small objects stored on DASD is determined as the number of summary objects created daily (10 000) plus the number of summary objects already resident in the database (10 000 x 30 days) plus the 10% contingency. The maximum number of small objects stored on DASD is identified in the formulas as the variable ns.

    Calculate the value of ns as:

    ns = (10 000 + (10 000 x 30)) x 1.1 = 341 000

  2. The maximum number of large objects stored on DASD is determined as the number of detail objects created daily (10 000) plus the number of detail objects already resident in the database (10 000 x 7 days) + the 10% contingency. The maximum number of large objects stored on DASD is identified in the formulas as the variable nl.

    Calculate the value of nl as:

    nl = (10 000 + (10 000 x 7)) x 1.1 = 88 000

  3. The number of objects that are stored within this Object storage group, but not within the small or large object tables, is determined as the number of summary objects retained within this Object storage group minus the number of summary objects on DASD, plus the number of detail objects retained within this Object storage group, minus the number of detail objects on DASD. Neither calculation can have a result less than zero.
    1. The number of summary objects retained within this Object storage group but not stored in the small object table is calculated as the number of summary objects stored each day, times the maximum number of days the objects are retained, minus the maximum number of summary objects stored on DASD (value of variable ns above).

      Calculate the number of small objects on optical and tape storage as:

      os = ((10 000 x 30) x 1.1) - ns = 330 000 - 341 000 = 0

    2. The number of detail objects retained within this Object storage group but not stored in the large object table is calculated as the number of detail objects stored each day, times the maximum number of days the objects are retained, minus the maximum number of detail objects stored on DASD (value of variable nl above).

      Calculate the number of large objects on tape and optical storage as:

      ol = ((10 000 x 1307) x 1.1) - nl = 14 377 000 - 88 000 = 14 289 000

    3. The total number of objects retained on tape and optical storage on any given day is the sum of the number of summary objects on tape and optical (os above) plus the number of detail objects on tape and optical (ol above).

      Calculate the total number of objects retained on tape and optical storage as:

      ot = os + ol = 0 + 14 289 000 = 14 289 000

  4. The total number of objects that need to be referenced in the GROUP00 database is the sum of the maximum number of small objects stored on DASD (ns above), plus the maximum number of large objects stored on DASD (nl above), plus the total number of objects retained on tape and optical (ot above). This value is used in the formulas as the variable nt.

    Calculate the value of nt as:

    nt = ns + nl + ot

    nt = 341 000 + 88 000 + 14 289 000 = 14 718 000

Calculate the storage needed for the object storage database data sets (see Table 1).

Table 1. Storage calculations for the object storage database data sets
Table, index, or data set Calculations
Object directory data set GROUP00.OSMDTS

tracks = nt ÷ (23 x b)
example: 14 718 000 ÷ (23 x 12) = 53 326
cylinders = 53 326 ÷ 15 = 3555
 
This results in 53 326 tracks or 3555 cylinders

Object directory index 1
GROUP00.OBJDIRX1

tracks = nt ÷ (260 x b)
example: 14 718 000 ÷ (260 x 12) = 4717
cylinders = 4717 ÷ 15 = 315
 
This results in 4717 tracks or 315 cylinders

Object directory index 2
GROUP00.OBJDIRX2

tracks = nt ÷ (166 x b)
example: 14 718 000 ÷ (166 x 12) = 7389
cylinders = 7389 ÷ 15 = 493
 
This results in 7389 tracks or 493 cylinders

Object directory index 3
GROUP00.OBJDIRX3

tracks = nt ÷ (68 x b)
example: 147 180 000 ÷ (68 x 12) = 18 037
cylinders = 18 037 ÷ 15 = 1203
 
This results in 18 037 tracks or 1203 cylinders

Small object table index
GROUP00.OBJT04X1

tracks = ns ÷ (68 x b)
example: 341 000 ÷ (68 x 12) = 418
cylinders = 418 ÷ 15 = 28
 
This results in 418 tracks or 28 cylinders

Small object table
(object size 3000 bytes)
GROUP00.OSMOTS04

tracks = (ns ÷ b) x 1.1
example: (341 000 ÷ 12) x 1.1 = 31 259
cylinders = 31 259 ÷ 15 = 2084
 
This results in 31 259 tracks or 2084 cylinders

Small object table
(object size 1500 bytes)
GROUP00.OSMOTS04

tracks = (ns ÷ b) ÷ "floor" (4074 ÷ (aos + 61)) x 1.1
"floor" = (4074 ÷ (1500 + 61)) = 2.6
(= 2 when rounded to down to the next lowest integer)
example: (34 100 ÷ 12) ÷ 2 = 14 209 x 1.1 = 15 630
cylinders = 15 630 ÷ 15 = 1042
 
This results in 15 630 tracks or 1042 cylinders

Large object table index
GROUP00.OBJT32X1

tracks = nl ÷ (65 x b)
example: 88 000 ÷ (65 x 12) = 112
cylinders = 112 ÷ 15 = 8
 
This results in 112 tracks or 8 cylinders

Large object table
GROUP00.OSMOTS32

cylinders = nl ÷ (32 746 ÷ ( aos + 63) x 22) x 1.1
first calculating:
(32 746 ÷ (64 000 + 63)) = approximately 0.511
example: 88 000 ÷ (0.511 x 22) = 7828 x 1.1 = 8611
 
This results in 8611 cylinders

Large object table
(object size 9000 bytes)
GROUP00.OSMOTS32

(32 746 ÷ (aos + 63)) results in:
round 9063 up to next 4K boundary = 12000
32 746 ÷ 12  = 2.73 (= 2 when rounded down to the next lowest integer)
example: 88 000 ÷ (2 x 22) = 2000 x 1.1 = 2200
 
This results in 2200 cylinders

LOB base table GROUP00.OSMLBTS

tracks = nlob ÷ (52 x b) x 1.1
example: 50 000  ÷ (52 x 12) x 1.1 = 88
cylinders = 88 ÷ 15 = 6

This results in 88 tracks or 6 cylinders

LOB base index GROUP00.OTLOBX1

tracks = nlob ÷ (68 x b)
example: 50 000  ÷ (68 x 12) = 108
cylinders = 62 ÷ 15 = 5

This results in 62 tracks or 5 cylinders

LOB auxiliary table GROUP00.OSMLATS

cylinders = nlob ÷ ((32 746 ÷ aos) x cb) x 1.1
example: 50 000  ÷ ((32 746 ÷ 64000) x 22 ) x 1.1 =  4886

This results in 4886 cylinders

LOB auxiliary index GROUP00.OTLOBAX1

tracks = nlob ÷ (195 x b)
example: 50 000  ÷ (195 x 12) = 22
cylinders = 22 ÷ 15 = 2

This results in 22 tracks or 2 cylinders

Table 2 summarizes the storage space calculations.

Table 2. Sample storage space calculation results

 
Database name qualifiers

Tracks needed Cylinders needed
GROUP00.OSMDTS 53 326 3 555
GROUP00.OBJDIRX1 4 717 315
GROUP00.OBJDIRX2 7 389 493
GROUP00.OBJDIRX3 18 037 1 203
GROUP00.OBJT04X1 418 28

GROUP00.OSMOTS04
(object size 3000 bytes)

31 259 2 084

GROUP00.OSMOTS04
(object size 1500 bytes)

15 630 1 042
GROUP00.OBJT32X1 112 8
GROUP00.OSMOTS32 8 611

GROUP00.OSMOTS32
(object size 9000 bytes)

2 200

GROUP00.OSMLBTS

88 6

GROUP00.OTLOBX1

62 5

GROUP00.OSMLATS

4 886

GROUP00.OTLOBAX1

22 2

It is important to remember that the object directory table has an entry for every object within that Object storage group. This directory includes objects in the 4 KB object table, in the 32 KB object table and in the LOB storage structure, plus objects in the file system sublevel and on tape and optical storage. The 4 KB object table, the 32 KB object table, and the LOB storage structure have only the objects that are stored on in the DB2 sublevel. When an object is stored directly in the file system or on tape or optical storage, an entry is created in the object directory, but the object itself is not stored in either the 4 KB or the 32 KB object tables or the LOB storage structure. For all objects stored directly on tape or optical storage, the calculations for small and large objects on tape or optical storage (see item 3) will provide the values needed for the object directory space.

LOB=x specifies whether or not OAM is to exploit DB2 LOB support for large objects that exceed 32 KB (32,640 bytes).
LOB=A
specifies that objects for all storage groups that exceed 32 KB will be stored in a LOB storage structure when stored to DB2. LOB=A indicates to OAM that the installation has created LOB storage structures and associated V_OSM_LOB_BASE_TBL views for ALL object storage groups defined in the ACDS. This will result in optimal performance when storing large (greater than 32 KB) objects to DB2 since OAM will not query DB2 to see if the LOB base table view exists. If the LOB base table view does not exist then the large object store will fail.
LOB=P
indicates to OAM that the installation has created LOB storage structures and associated V_OSM_LOB_BASE_TBL views for a PARTIAL list of object storage groups defined in the ACDS. However, for object stores to DB2 greater than 256M, The LOB=P designation is treated the same as LOB=A; an attempt to store the object to the LOB base table is made without first checking if the V_OSM_LOB_BASE_TBL view exists.

If the object being stored is less than or equal to 256M and greater than or equal to 32KB, then LOB=P requires OAM to query DB2 to see if the LOB base table view exists for a given object storage group. If the LOB base table view does exist for a given object storage group, large objects are stored in the associated LOB storage structure. If the LOB base table view does not exist, large objects are stored in the 32KB data table.

LOB=N
specifies that objects that exceed 32 KB and less than or equal to 256 MB (268,435,456 bytes) are to be stored in a 32 KB data table when stored to DB2. If specified, Store Sequence processing (STOREBEG, STOREPRT, STOREEND) to DB2 will fail. This is the default option.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014