On 2019-05-03 12:15 PM, David Spiegel wrote:
Steve said: "... but the received wisdom is that all load libraries should
have blksize=32K-8. ..."

For optimal space usage, however, the BLKSIZE should be 27998 (i.e. half-track 
blocking).

You might think that, but for load modules, you have to realize that in-between the text blocks (which could be 27998 bytes long in your scenario) there are RLD and/or CTL records which means that no single track could contain 2 full-sized text blocks.

Because of the "random" sizes of CSECTs and RLD usage (where "random" means not really knowable at load library data set creation time) it is not possible to know the best block size to use to minimize the disk space used by a set of programs without doing some sort of analysis on the load modules to be housed in that library.

I mention CSECT because once a text block has some data to the end of a section, the next section will not be started in that block unless the whole section will fit in that block. That is why you see short text blocks even though there is plenty more object text that follows on.

And even though the linkage editor may make good use of remaining track space, what happens when the blocks a shifted around by a data set copy or a compress?

So, it may be that BLKSIZE=32760 really is the best advice. At least you could reasonably hope to minimize the amount of disk space wasted on inter-block gaps. (Of course, inter-block gaps may well be emulated away these days, but they still exist for 3390 CKD accounting purposes.)

And as for PDSE program object libraries - how about this?

If the BLKSIZE value doesn't matter in terms of how programs are stored in the PDSE and fetched at run time, what about using BLKSIZE=4096 for PDSE load libraries?

Why? Because if you browse a program object in a PDSE and scroll right, you will notice that all of the blocks end at column 4096. So to read that member you have acquired 32760-byte buffers when 4096-byte buffers would have sufficed.
:)

In practice, 32760 for all program libraries is probably the best choice to remove any block size hassles even if occasionally it causes more storage to be used. After all, I keep hearing that storage is cheap.

Just my thoughts, of course...

Cheers,
Greg

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to