rbldidx - rebuild RMS index file


rbldidx [-vx] [-t n] file [file...]


This command is for internal RMSfile maintenance only. It is run only by other C/Base commands. Use rmsck(C-1) for general RMSfile repair.

Rbldidx rebuilds indices for a C/Base RMSfile.

The following flags are recognized by rbldidx:

-t Use a n byte table when rebuilding index. See the description of this flag in the OPERATION section below.

-v Displays progress information on standard output.

-x Rebuild index using external sort. See the description of this flag in the OPERATION section below.


When rebuilding an index, rbldidx reads each data record, and builds a table in memory to hold the key values. When the table is filled, it is sorted, and then the keys are written (in order) to the RMS index file. If all the record keys will not fit in the table in memory, then this process is repeated until all the records have been read.

Filling the table and writing its sorted contents into the index is called a batch. Rbldidx uses a custom version of RMS that efficiently adds record keys when they are in ascending order, and there are not other record keys already in the index. Rbldidx may run slower if many batches are necessary to process one index, as each batch must be merged into the batches already contained in the index.

There are two solutions available for this. By default, rbldidx allocates a table less than 32K bytes. The -t flag lets you set a much larger table size, thus reducing the number of batches necessary. Because of processor restrictions, you cannot increase the batch size on Intel 8086 and 80286 processors.

The second solution is to use the -x flag. This does not use the internal memory table, but instead creates a text file containing the record keys, uses an external sort program to sort all the keys simultaneously, and then adds all the record keys in one batch.

Neither of these command line flags is required. Rbldidx will always work properly without them. In fact, rbldidx will automatically select the -x flag if more than 10 batches are necessary to rebuild an index. Using these flags will speed up rbldidx when dealing with very large RMSfiles.

When rbldidx has completed rebuilding all the RMSfiles, it displays a total of the number of RMSfiles with errors. If there are any files with errors, the program also exits with an non-zero status.