Home The Company Publications Products Links Tips Jobs

RABNSIZE and ISNSIZE

More than 16.7 Million Records

By Dieter W. Storr

Last update: 2 February 2006

Question:

I want to increase the ISN from 3 bytes to 4 bytes on 1 file because I expect more than 16.7 million records. Do I also have to increase the RABNSIZE for the entire database?

Answer:

You do not have to do an ADADEF to increase the RABNSIZE when you increase your ISNSIZE from 3-byte to 4-byte. As long as there are enough RABNs to hold all your expected ISNs, the 3-byte RABNSIZE will be sufficient.

The easiest way to convert a file from ISNSIZE=3 to ISNSIZE=4 is an ADAORD REORFASSO FILE=nnn,ISNSIZE=4 because only ASSO is reordered while converting to ISNSIZE=4. DATA does not need to be reordered if all you want to do is to convert the ISNSIZE.

ADAORD REORFASSO FILE=nnn,ISNSIZE=4

If you do happen to use the ADADEF to change the RABNSIZE, you will have to do a restructure and then store.

Also, you will not have to increase the RABNSIZE for all databases because when you restore from one database to another, you can decide whether to do an fmove or an overwrite. However, restoring a 4-byte RABN database to a 3-byte RABN database may be impacted if the receiving database is physically smaller (actual # of formatted RABNs.)

You can see the number of blocks used in your ADABAS Report.

P H Y S I C A L   L A Y O U T        
                                     
  DD-  I Dev  I Nmbr of I    Nmbr of 
 Names I Type I  Cyls   I     Blocks 
       I      I         I            
-------I------I---------I------------
       I      I         I            
ASSOR1 I 9990 I   20010 I    3901937 

You can also see the number of ISN in your ADABAS Report.

File    Name            Loaded    TOP-ISN    MAX-ISN
 102   INVOICE      2004-02-10   30647607   35787207

Data Storage and RABN

Data Storage is divided into "blocks", each identified by a 3- or 4-byte relative Adabas block number or "RABN" that identifies the block's physical location relative to the beginning of the component. Data Storage blocks contain one or more physical records and a padding area to absorb the expansion of records in the block.

A logical identifier stored in the first four bytes of each physical record is the only control information stored in the data block. This internal sequence number or "ISN" uniquely identifies each record and never changes. When a record is added, it is assigned an ISN equal to the highest existing ISN plus one. When a record is deleted, its ISN is reused only if you instruct Adabas to do so. Reusing ISNs reduces system overhead during some searches and is recommended for files with records that are frequently added and deleted.

Address Converter

The address converter determines the physical location of a record. It is an index that maps the logical identifier of a record (that is, the ISN) to the relative Adabas block number (RABN) of the Data Storage block where the record is stored.

The address converter contains a list of RABNs in ISN order. Only the RABNs are actually stored in the address converter; the ISNs are identified by their relative position.

The following figure shows the relationship between an inverted list, the address converter, and Data Storage. For example, to determine the physical location of the record whose ISN is 6, Adabas uses the ISN as an index into the address converter. The sixth entry in the address converter is 2. Therefore, ISN 6 is located in physical block 2 in Data Storage for this file.

Sources:
Software AG, Customer Support #601840
SL24, Technical Paper #47616
ADABAS 7.4.2 Concepts and Facilities, Adabas Design, Database Components

Top Page


Back to ADABAS Tips, Tricks, Techniques -- Overview