------------------------------------------------------------ 1997.May.08 16:35 Motivation Pressing problem successes, current messures have potential, but are not sufficient Design principles Waste time Broken tools Late, over budget, broken. broken better than useless. Techniques CUSS? Complexity undermines system stability? KICC? Keep its complexity componding? Complexity Hide power Latent problems the best scalability Civilization advances by reducing the number of things one has to worry about. It is a bootstrap process. Our task is to retard it. The price of unavoidable unreliability is complexity. (H. Coare) Use languages to preempt system design. The purpose of abstraction is to conceal desireable properties, and to create undesirable ones. The earliest design decisions are the hardest to change. Lock-in features early (in the RFP if possible). Generalize. Combine functions with diverse requirements. Service should have unpredicatable cost. Make it slow. Hide power. Redo expensive computations. Cache size should be static. Static cache sizes should be either too small or way too big. If the computation is expensive, or memory is cheap, make it too small. If inexpensive, or memory dear, or there will be lots of caches, too big. Adaptive cache resizing should be expensive and frequent. Static configuration is usually wrong, and tuning can be used to waste lots of time. Compartimentalize success. Prevent a problem solution from propagating. A problem. Solution flavors: 1 solve once, 2 solve multiple, 3 solve always. Beware bug immunization problem. Lots of people working independently, eventually one will escape suppression and do the right thing. Need balance of compartment permiability - compartmentalize success and globalized discouragement. Truely global failure can only be accomplished by global coordination. Need to be on the ball. Failure unstable in the face of massive resources, if not properly managed. User needs are a massive force for improvement. Must disapate harmlessly. Break backwards communication channel. Increase time constant. Increase size of unit of selection. Aggregate functionality. Mixes good with bad, preventing effective feedback. Higher barriers to entry. Fewer units. Prevent communication. Isolate commercial from academia. Or distract academia, and try to use it to distract commercial. Minimize intercompany communication. Avoid propogation of good ideas. Decentralize. Replicate and disperse. Widely useful tool, but fortunately few of its productive aspects apply here. So can use it to increase cost of movement. Copy sync overhead and divergence costs. Airplane success story. sources we need to dissapate user demand resources cpu cpu dissapation fundamental. "pervasive slowness is our best argument against intelligence". Continues to be. We need to dissapate all these computes before things are no longer slow and people start to think about being intelligent. fundamental slowness is best acheived by forcing involvement of the external world algorithmically paging was a great success story. you can only get so far by repeating work. linear. we need radical exponential wasteage. key is abstraction. 5 levels of x4 waste is three orders of magnitude. Still not enough. Need to prevent the majority of algorithms used from being satisficing. Make it difficult to try multiple things. Make it difficult to tell what worked. to tell what is going on. (opacity) There is much complacency that computer science will continue to be as massively disfunctional and unproductive as it has been in the past. I worry that this faith may be misplaced. While progress has been made at consolidating the computer industry into a single company, there are still far too many players. While no one is to blame for underestimating the concequences of ARPA and the internet, we now have our work cut out for us. Our model should be the aerospace industry. Its consolidation into a couple of enourmous holding companies allows blocking research by getting contracts and then sitting on them. Something to aspire to. The mechanical engineering side may have to hussle too. After several successful decades, the automated machining diversion looks to be playing out. Worse, if the bloody thing actually start _working_, some serious disaster management will be needed. The ethernet stratigm has been a black project triumph. Rather than preventing the development of networking, ethernet provided massive capability overkill. This shut down network research, buying us almost a decade of breathing space, now, when we really need it. ------------------------------------------------------------ 1997.May.10 10:23