Indexed Files - Vision

Vision is ACUCOBOL-GT's native indexed sequential file system. It provides fast, flexible, and reliable data storage to ACUCOBOL-GT applications in all environments except VMS where ACUCOBOL-GT uses the native RMS file system. Vision handles small or large amounts of data with equal efficiency and provides rapid access to data using optimized indexes, sequential reading, or a combination of indexed START and sequential READ statements. Vision handles all ANSI standard COBOL data types. The Vision file system is described here.

Vision Version 6

Vision 6 is similar to Vision 5, except that it uses a 64-bit offset file I/O. Where available, Vision 6 is the default, but for systems that do not have 64-bit offset file I/O, Vision 6 is unavailable, and Vision 5 is the default.

With Vision 6, maintaining multiple 2GB file segments for very large files is not required, which reduces the potential for file breakage due to mishandled file segments. It also reduces the number of OS file handles required to open a very large Vision file. This is because Vision 6 files only have one data and one index segment; each of which may grow to nearly 128TB, due to the use of 48-bit file offsets.

Previous Vision versions (version 3-5) are still supported. Vision 2 support has ceased as of extend version 10.2.0, due to the architecture-dependent nature of the file format; to continue to use these files, update them to at least Vision 3.

No special action is required to start using Vision 6. To create indexed files with an earlier file format, set the V_VERSION environment variable to the appropriate value.

Vision Version 5 and 4

Vision Version 5 and 4 use a dual file format. One file, or segment, holds the data records and another segment holds the key information. When a segment approaches the file size limit (configurable up to nearly 2 GB), Vision creates a new data or index segment in which to store more information. The dual file format provides several key benefits:

  1. The maximum size of Vision 5 and 4 files is virtually unlimited. Individual data and index segments can be up to 2 GB in size.
  2. Separating data and key information provides a higher degree of reliability when files must be rebuilt.
  3. Permanent data loss due to memory-related problems is less likely to impact two files.

Vision Version 5 is a superset of Version 4. The rules that apply to Version 4 segment file naming also apply to Version 5.

ACUCOBOL-GT uses Vision Version 5 by default. Vision Version 5 is the most recent and advanced Vision version. Version 5 supports the following capabilities that Version 4 does not:

  • records up to 64 megabytes in size
  • block sizes up to 8192 bytes
  • very large pre-allocate and extension factors
  • the ability to recover deleted records (that have not yet been overwritten by subsequent writes)

Vision Version 3

Vision Version 3 files are generated in a single file that contains both the data records and the key information. A separate linked list is maintained and used to rebuild corrupted files. A linked list of deleted records is also maintained so that new records first reuse space held by deleted records before new space is consumed. The single file format supports a maximum file size of two gigabytes.

On many (but not all) systems, the run time system allows an indexed file to be opened for input when the user does not have write-access to the file.

Indexed files may be assigned only to disk files.