< previous page page_658 next page >

Page 658
file distributions, each of quite distinct and different character, it becomes difficult or impossible to create a robust disk array solution that optimizes the performance of the system for both accessing patterns.
Since the disk arm itself is a major failure point of the system and determines to a large degree the overall mean time to failure, using multiple disks with multiple heads decreases the overall system reliability. This requires careful attention to the introduction of some degree of redundancy in the I/O system to compensate for the increased failure rate of the disk ensemble.
9.9 Some Areas for Further Research
Generally, I/O behavior remains a rather unexplored area of research. One reason is that many of the results seem to be specific to particular operating systems or particular user environments. It is difficult to generalize which results are universally applicable across a reasonable set of workloads and operating environments. Still, there may be ways to normalize the results or even to find the bounds on such issues as program request rates. Clearly, it is this understanding that is imperative in good overall systems design.
Progress on a bulk nonmechanical storage medium for I/O would have enormous consequences on I/O systems design, yet such ''solid-state" disks remain something of an El Dorado. Even if such devices were available, however, it is not clear that we could rapidly adapt our systems and file structures to effectively use such devices. Disk arrays represent an evolutionary approach to the design of the storage system. Properly understood and properly configured, they still provide the basic method of storage system use and optimization.
9.10 Data Notes
Note 1: Figure 9.22
The benchmarks in these figures [245] are taken from the Specmark89 benchmark suite.
sedd: Stream text editor. This searches using a regular expression and does a global replace on a 1000-line C program (23M instructions).
tomcatv: Vectorizable mesh generator (2B instructions).
gccl: Gnu, compiling a 775-line C program to assembly code.
grr: PC board router, routing an 11-layer PC board (140M instructions).
yacc: Unix compiler utility. Converts a context-free grammar into a set of tables for a simple automaton, which executes a left-recursive parsing algorithm. Building a table for a 480-line grammar.
spice: Circuit simulator, simulating a bipolar gray code counter.
mat300: Matrix multiply with 300-´-300 double precision matrices (2.8B instructions).
Eqntott: Equation minimizer. Takes 29 equations as input and produces a table of the minimal product terms as output (1.5B instructions).

 
< previous page page_658 next page >