that the Input/Output channel, control unit, and disk were kept busier. An ISAM file consists of a collection of data records and two or three levels of index. The track index contains the highest key for each disk track on the cylinder it indexes. The cylinder index stores the highest key on a cylinder, and the disk address of the corresponding track index. An optional master index, usually used only for large files, contains the highest key on a cylinder index track and the disk address of that cylinder index. Once a file is loaded data records are not moved; inserted records are placed into a separate overflow area. To locate a record by key the indexes on disk are searched by a complex self-modifying channel program. This increased the busy time of the channel, control unit, and disk. With increased physical and virtual memory sizes in later systems this was seen as inefficient, and VSAM was developed to alter the tradeoff between memory usage and disk activity. ISAM's use of self-modifying channel programs later caused difficulties for CP-67 support of OS/360, since CP-67 copied an entire channel program into fixed memory when the I/O operation was started and translated virtual addresses to real addresses. ISAM-style implementations Advantage Database Server database manager Berkeley DB Btrieve FairCom DB C-ISAM DataFlex proprietary database dBase and related products Clipper and Foxpro Digital Equipment Corporation Record Management Services Enscribe is the HP Tandem structured file access method Extensible Storage Engine Access Database Engine (ACE and formerly JET) used by Microsoft Access MySQL implements and extends ISAM as MyISAM Paradox pblIsam GPL implementation written in C Raima database manager Superbase database family dbm DBM and Flat File databases working in tandem See also Sequential access memory (SAM) Virtual storage access method (VSAM) Flat file NoSQL dbm References Computer file systems Computer file formats IBM software