ECN-4399 vutil -rebuild process using multiple threads

Type of Change: Enhancement

Product: ACUCOBOL-GT

Module: vision

New Version: 10.1.0

Machines Affected: All

DESCRIPTION:

A new option has been introduced to vutil -rebuild that enables you to use multiple threads when rebuilding multi-keyed, Vision 6-formatted (or later) Vision files, which can improve the performance of the rebuild. For example:

vutil -rebuild -j #threads my-vis-file

where #threads must be a number between 2 and 120, and specifies the number of threads to be used in the rebuild process. Each thread is used to rebuild a key in the file; a new thread being spawned when a previous one completes rebuilding a key, until all keys are rebuilt.

The optimum number of threads that gives the best performance will vary depending on your system, and so trial and error in specifying different numbers of threads may be required. As a general guideline, specify a similar number of threads as your system has CPUs.

An important consideration when specifying the number of threads is that each thread is allocated memory as if it were its own version of vutil; therefore, the memory you have allocated for the V_BULK_MEMORY, V_BUFFERS, MAX_FILES, etc... variables is multiplied by the number of threads.

Another consideration is that rebuilding using multiple threads also uses additional temporary disk space, to hold the intermediate results of each key rebuild. This could be up to double the amount of space that a non-threaded rebuild would use.