| T.R | Title | User | Personal Name
 | Date | Lines | 
|---|
| 482.1 | RMS compresses keys and data | FROST::HARRIMAN | entente, enunciation | Tue May 26 1987 16:48 | 19 | 
|  | 
        why the CLUSTER_SIZE 5? Normal RMS disks have cluster size of
    3 which defines the amount of blocks which are i'ed or o'ed in a
    single i/o operation. If you have a file defined with a cluster
    size of 5 on a cluster size 3 disk you are wasting blocks (as well
    as being illegal though I've never tried it).
    
    Did you get the FDL from ANALYZE/RMS/FDL? 
    
    Otherwise:
    
       I don't see an ANALYZE/RMS/FDL of the indexed file. RMS does
    some nifty compression on both indices and data records if you have
    it specified (which is the default). This makes for a tad more compute
    time but saves lots of spaces especially if your record consists
    of lots of spaces (or zeroes). This is probably the real reason
    here... send an analyze(d)/RMS/FDL of it.
    
    /pjh
 | 
| 482.2 | Compression | BISTRO::HEIN | If We don't Have it,You don't Need it! | Wed May 27 1987 05:39 | 24 | 
|  | .1>        why the CLUSTER_SIZE 5? Normal RMS disks have cluster size of
.1>    3 which defines the amount of blocks which are i'ed or o'ed in a
.1>    single i/o operation. If you have a file defined with a cluster
.1>    size of 5 on a cluster size 3 disk you are wasting blocks (as well
.1>    as being illegal though I've never tried it).
    Nonsense! Clustersize only determines the allocation granularity.
    The only 'waist' can happen at the end of file. For example with
    a clustersize of 3 you can only allocate 20001 blocks, not 20000.
    
Re .0
         
    	The compression must have been very effective. This is not
    	a big supprise as fixed length records are involved.
    
    	To find out what really happened run ANA/RMS/STAT/FDL/OUT
    	on the indexed file. Look at the numbers for compression,
 	total_file_efficiency, count of datablocks, fill_factor.
    
    	The /FAST and /NOSORT switch have no meaning for the command
    	you show but I suppose they won't hurt either.
    
    	What will have hurt you is the lack of a significant (5000+)
    	extension quantity in the FDL for sequential file.
 | 
| 482.3 | oops, I guess. | FROST::HARRIMAN | entente, enunciation | Wed May 27 1987 09:04 | 11 | 
|  |     
    I sit corrected, Hein. I was under the mistaken impression that
    the cluster size of a disk was equivalent to the cluster_size statement
    on the FDL editor. It certainly sticks the disk's cluster size there.
    I was told at RMS school that the cluster size on a disk is
    (paraphrased, now) the amount of disk blocks transferred in a single
    I/O operation. This is organizational only and the blocks end up
    contiguous. Back to the manuals for me.
    
    /pjh
    
 | 
| 482.4 |  | CLOUD::SHIRRON | Stephen F. Shirron, 223-3198 | Wed May 27 1987 10:21 | 13 | 
|  |     > I was told at RMS school that the cluster size on a disk is
    > (paraphrased, now) the amount of disk blocks transferred in a single
    > I/O operation.
    
    Nonsense.  The cluster size is merely the smallest number of blocks
    which can be allocated -- a cluster size of 3 means that each bit
    in the storage bitmap corresponds to 3 blocks, and requests for
    1, 2, or 3 blocks will all be satisfied with an allocated chunk
    of 3 blocks.  This has nothing to do with I/O sizes; the number
    of blocks requested in an I/O can be smaller or larger than the
    cluster size.
    
    stephen
 | 
| 482.5 |  | ALBANY::KOZAKIEWICZ | You can call me Al... | Wed May 27 1987 13:05 | 5 | 
|  | Data compression is the culprit - I once spent the better part of a day
(I wuz raised on RMS-11, so I didn't know better...) tracking down a
non-problem.  My fixed length sequential file of about 20,000 blocks
shrunk to about 4500 or so. The recods contained a key and about 50 bytes
of zeros....
 | 
| 482.6 | learn something over every day | FROST::HARRIMAN | entente, enunciation | Wed May 27 1987 16:21 | 5 | 
|  |     re: .-2
    
    Ugh. Back to the books. 
    
    
 | 
| 482.7 | Here's the FDL from ANALYZE | NUHAVN::MCMAHON | AARRGGHH! Thank you. | Wed May 27 1987 16:47 | 63 | 
|  | IDENT	"27-MAY-1987 12:37:40	VAX/VMS ANALYZE/RMS_FILE Utility"
SYSTEM
	SOURCE                  VAX/VMS
FILE
	ALLOCATION              52890
	BEST_TRY_CONTIGUOUS     no
	BUCKET_SIZE             2
	CLUSTER_SIZE            5
	CONTIGUOUS              no
	EXTENSION               0
	GLOBAL_BUFFER_COUNT     0
	NAME                    "PURORD.IDX;20"
	ORGANIZATION            indexed
	OWNER                   [102,60]
	PROTECTION              (system:RWED, owner:RWED, group:RWED, world:)
RECORD
	BLOCK_SPAN              yes
	CARRIAGE_CONTROL        carriage_return
	FORMAT                  fixed
	SIZE                    192
AREA 0
	ALLOCATION              52890
	BUCKET_SIZE             2
	EXTENSION               0
KEY 0
	CHANGES                 no
	DATA_KEY_COMPRESSION    yes
	DATA_RECORD_COMPRESSION yes
	DATA_AREA               0
	DATA_FILL               100
	DUPLICATES              no
	INDEX_AREA              0
	INDEX_COMPRESSION       yes
	INDEX_FILL              100
	LEVEL1_INDEX_AREA       0
	NAME                    "PO-MASTER-KEY"
	NULL_KEY                no
	PROLOG                  3
	SEG0_LENGTH             17
	SEG0_POSITION           0
	TYPE                    string
ANALYSIS_OF_AREA 0
	RECLAIMED_SPACE         0
ANALYSIS_OF_KEY 0
	DATA_FILL               83
	DATA_KEY_COMPRESSION    61
	DATA_RECORD_COMPRESSION 57
	DATA_RECORD_COUNT       189090
	DATA_SPACE_OCCUPIED     41616
	DEPTH                   3
	INDEX_COMPRESSION       38
	INDEX_FILL              71
	INDEX_SPACE_OCCUPIED    692
	LEVEL1_RECORD_COUNT     20808
	MEAN_DATA_LENGTH        192
	MEAN_INDEX_LENGTH       19
 | 
| 482.8 | Huh! | FROST::HARRIMAN | exclamations...exaggerations | Wed May 27 1987 17:19 | 19 | 
|  |     
    
 >   ANALYSIS_OF_KEY 0
 >	DATA_FILL               83
 >	DATA_KEY_COMPRESSION    61
 >	DATA_RECORD_COMPRESSION 57
 >	DATA_RECORD_COUNT       189090
 >	DATA_SPACE_OCCUPIED     41616
 >	DEPTH                   3
 >	INDEX_COMPRESSION       38
 >	INDEX_FILL              71
 >	INDEX_SPACE_OCCUPIED    692
 >	LEVEL1_RECORD_COUNT     20808
 >	MEAN_DATA_LENGTH        192
 >   	MEAN_INDEX_LENGTH       19
    
    I believe this is called a moot point. 
    
 | 
| 482.9 | Black magic? | BISTRO::HEIN | If We don't Have it,You don't Need it! | Thu May 28 1987 05:19 | 46 | 
|  | DatFil	DATA_FILL               83             KeySiz = 17
KeyCmp	DATA_KEY_COMPRESSION    61             Bucket = 2
RecCmp	DATA_RECORD_COMPRESSION 57
RecCnt	DATA_RECORD_COUNT       189090
DatBlk	DATA_SPACE_OCCUPIED     41616
	DEPTH                   3
	INDEX_COMPRESSION       38
	INDEX_FILL              71
	INDEX_SPACE_OCCUPIED    692
	LEVEL1_RECORD_COUNT     20808
RecSiz	MEAN_DATA_LENGTH        192
	MEAN_INDEX_LENGTH       19
    Well, that proves it, doesn't it! Oh and congrats for having shown
    me what must be the worst designed file of this year. Not suprising
    RMS get's to blame for poor performance with file designs like this.
    
    The room you would need for a sequential file is:
    
(DATA_RECORD_COUNT*(MEAN_DATA_LENGTH (+ 2 if variable + 1 if ODD))/512
    
    = 189090*192/512 = 70908 Blocks.
    
    This is confirmed be the compression statistics. According to those,
    working bottom up, the room needed is:
                                                      
    Real_Compression =	KeyCmp*KeySiz/RecSiz + (RecSiz-KeySiz)*RecCmp/RecSiz
    			61*17/192 + (192-17)*57/192 = 57.4
    Compressed_blocks=	((DatBlk/Bucket) * (Bucket*512-15) * (DatFil/100)
    			- (RecCnt*11) / 512 = 29972
    
    Real data blocks =	Compressed_blocks / ( 1 - Real_compression/100 )
    			29972 / ( 1 - 0.574 )   =   70359 !Close enough?
    
    
    As for the file design: Here is a small table calculated using 100%
    fill factors showing the required # buckets.
    
    Bucketsize	Data_buckets	Index	Level_1	Level_2	Level_3	Blocks
    
    2		17190			325	7	1	666
    4		8222			77	1               316
    40		802			1                       40 
    
    Hope this helps,
                    Hein van den Heuvel, Valbonne.
 |