johnl@ima.ISC.COM (John R. Levine) (08/24/87)
All this discussion about disk striping reminded me of an article I read 10 years ago in the IBM Systems Journal about PARS/ACP, the system that most airlines use for their reservation systems. It is a surprisingly direct descendant of SABRE, the original airline system that IBM developed for American Airlines on a 7090 in 1963. The reference is J. E. Siwiec, "A high-performance DB/DC system," IBMSJ 16:2, 1977, p. 169-195. The CACM published a discussion of TWA's PARS system a year or two ago. The entire system is tuned for the maximum possible throughput, at the time handling 180 messages/second. I gather that these days largely the same system on faster hardware handles up to 1000 messages/sec. Here's what they have to say about the data base: "In ACP [the operating system], rapid access is provided to a large data base concurrently for many system entries by arranging PARS/ACP data in a unique pattern on the devices. The data is spread across all the physical devices rather than in a more traditional sequential-by-module arrangement while maintaining the appearance of a sequential data set to the application. This scheme allows for optimum accessibility through the channels and control units to the devices because more paths are effectively maintained to the data. The file is not "opened" or "owned" by a particular application but is available to all applications at all times. "The orgainisation might be envisioned as a group of disk packs, each identical in format and type of content. The logical files are layers on the packs, each pack with an equal percentage of the total logical file. Figure 6 [which I'm not going to try to type in] represents N physical devices on which three logical files reside (A, B, and C.) The Nth record on the Nth module is the last record of logical file A. Examples of logical files might be inventory records or customer account records. A table resident in main storage contains the base (starting) address of rach of the logical files (called record types in ACP), and an ordinal number designating the relative record position is added to the base to locate the specific record in the file. The ordinal number is assigned when the record is initially allocated and subsequently presented (by the application program) as a parameter together with the record type to effect the retrieval. "The purpose of this organization is to allow a larger number of concurrent accesses to any particular logical file than would otherwise be possible, thereby reducing the chance of excessive queueing. It has an additional advantage that it frees the application design from many of the physical device performance considerations. "Data is stored and retrieved at the physical record level, and the record sizes are fixed at the familiar 381- and 1055-byte size [the same sizes as main memory blocks, for reasons explained elsewhere.]" In this case, the goal of disk striping is to increase transaction concurrency rather than minnimizing the time to blat the whole thing into main memory, but the technique seems to be the same. -- John R. Levine, Cambridge MA, +1 617 492 3869 { ihnp4 | decvax | cbosgd | harvard | yale }!ima!johnl, Levine@YALE.something The Iran-Contra affair: None of this would have happened if Ronald Reagan were still alive.