DOC PREVIEW
MIT 6 033 - Complexity revisited: learning from failures

This preview shows page 1-2-24-25 out of 25 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Complexity revisited: learning from failures6.033 in one slideToday: Why do systems fail anyway?Too many objectivesComplexity: no hard edgeLearn from failureKeep digging principleUnited Airlines/UnivacCONFIRMIBM Workplace OS for PPCAdvanced Automation SystemLondon Ambulance ServiceRecurring problemsFighting back: control noveltyFighting back: adopt sweeping simplificationsFighting back: design for iteration, iterate the designFighting back: find bad ideas fastThe design loopFighting back: find flaws fastFighting back: conceptual integritySummaryAdmonition6.033 theme songMIT OpenCourseWarehttp://ocw.mit.edu 6.033 Computer System Engineering Spring 2009 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.Complexity revisited:learning from failuresFrans KaashoekLec 26 --- Last one!Credit: Jerry Saltzer6.033 in one slide• Client/server•RPC•File abstraction• Virtual memory•Threads• Coordination• Protocol layering• Routing protocols• Reliable packet delivery•Names• Replication protocols•Transactions•Verify/Sign• Encrypt/Decrypt• ACL and capabilities•Speaks forCase studies of successful systems: LISP, UNIX, X Windows, MapReduce, Ethernet, Internet, WWW, RAID, DNS, ….Principles: End-to-end argument, Open Design, …Today:Why do systems fail anyway?• Complexity in computer systems has no hard edge• Learning from failures: common problems• Fighting back: avoiding the problems• Admonition & 6.033 theme songToo many objectives• Ease of use• Availability• Scalability• Flexibility• Mobility•Security• Networked• Maintainability•Performance• Durable•….Lack systematic methodsMany objectives+Few Methods+High d(technology)/dt=Very high risk of failureCover image from Brooks, The Mythical Man-Monthremoved due to copyright restrictions. See the image here: http://en.wikipedia.org/wiki/File:Mythical_man-month_(book_cover).jpgComplexity: no hard edge• It just gets worse, worse, and worse …Increasing functionSubjectivecomplexityLearn from failure“The concept of failure is central to design process, and it is by thinking in terms of obviating failure that successful designs are achieved…”[Petroski]Cover image from Petroski, Design Paradigms removed due to copyright restrictions.Keep digging principle• Complex systems systems fail for complex reasons– Find the cause …– Find a second cause …– Keep looking …– Find the mind-set. [Petroski, Design Paradigms]United Airlines/Univac• Automated reservations, ticketing, flight scheduling, fuel delivery, kitchens, and general administration• Started 1966, target 1968, scrapped 1970, spend $50M• Second-system effect (First: SABRE)(Burroughs/TWA repeat)CONFIRM• Hilton, Marriott, Budget, American Airlines• Hotel reservations linked with airline and car rental• Started 1988, scrapped 1992, $125M•Second system• Dull tools (machine language)• Bad-news diode[Communications of the ACM 1994]IBM Workplace OS for PPC• Mach 3.0 + binary compatibility with AIX + DOS, MacOS, OS/400 + new clock mgmt + new RPC + new I/O + new CPU• Started in 1991, scrapped 1996 ($2B)• 400 staff on kernel, 1500 elsewhere• “Sheer complexity of class structure proved to be overwhelming”• Inflexibility of frozen class structure• Big-endian/Little-endian not solved[Fleish HotOS 1997]Advanced Automation System• US Federal Aviation Administration• Replaces 1972 Air Route Traffic Control System• Started 1982, scrapped 1994 ($6B)• All-or-nothing• Changing specifications• Grandiose expectations• Contract monitors viewed contractors as adversaries• Congressional meddlingLondon Ambulance Service• Ambulance dispatching• Started 1991, scrapped in1992 (20 lives lost in 2 days, 2.5M)• Unrealistic schedule (5 months)• Overambitious objectives• Unidentifiable project manager• Low bidder had no experience• No testing/overlap with old system• Users not consulted during design[Report of the Inquiry Into The London Ambulance Service 1993]Recurring problems• Excessive generality and ambition• Bad ideas get included• Second-system effect• Mythical Man Month• Wrong modularity • Bad-news diode• Incommensurate scalingFighting back: control novelty• Source of excessive novelty:– Second-system effect– Technology is better– Idea worked in isolation–Marketing pressure•Somenovelty is necessary; the difficult part is saying No.• Don’t be afraid to re-use existing components– Don’t reinvent the wheel– Even if it takes some massagingFighting back: adopt sweeping simplifications• Processor, Memory, Communication• Dedicated servers• N-level memories• Best-effort network• Delegate administration• Fail-fast, pair-and-compare• Don’t overwrite•Transactions•Sign and encryptFighting back:design for iteration, iterate the design• Something simple working soon– Find out what the real problems are• One new problem at a time• Use iteration-friendly design– E.g., Failure/attack models“Every successful complex system is found to have evolved from a successful simple system”Fighting back: find bad ideas fast• Question requirements– “And ferry itself across the Atlantic” [LHX light attack helicopter]• Try ideas out, but don’t hesitate to scrap• Understand the design loopRequires strong, knowledgeable managementThe design loop• Find flaws fast!InitialdesignDraft design coding testing deployedmonthsminhoursdaysweeksFighting back: find flaws fast• Plan, plan, plan (CHIPS, Intel processors)• Simulate, simulate, simulate – Boeing 777 and F-16• Design reviews, coding reviews, regression tests, daily/hourly builds, performance measurements• Design the feedback system:– Alpha and beta tests– Incentives, not penalties, for reporting errorsFighting back:conceptual integrity• One mind controls the design–Macintosh– Visicalc spreadsheet– UNIX– Linux• Good esthetics yields more successful systems– Parsimonious, Orthogonal, Elegant, Readable, …• Few top designers can be more productive than a larger group of average designers.Summary• Principles that help avoiding failure– Limit novelty– Adopt sweeping simplifications– Get something simple working soon– Iteratively add capability– Give incentives for reporting errors– Descope early– Give control to (and keep it in) a small design team• Strong outside pressures to


View Full Document

MIT 6 033 - Complexity revisited: learning from failures

Documents in this Course
TRIPLET

TRIPLET

12 pages

End Layer

End Layer

11 pages

Quiz 1

Quiz 1

4 pages

Threads

Threads

18 pages

Quiz I

Quiz I

15 pages

Atomicity

Atomicity

10 pages

QUIZ I

QUIZ I

7 pages

Load more
Download Complexity revisited: learning from failures
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Complexity revisited: learning from failures and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Complexity revisited: learning from failures 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?