https://www.solipsys.co.uk/new/GracefulDegradation.html?UI10HNb Graceful Degradation Recent changes Links to this page Table of contents FRONT PAGE / INDEX --------------------------------------------------------------------- [feed-icon3] Graceful Degradation - 2014/12/12 Subscribe! @ColinTheMathmo I first learned about graceful degradation from a ---------------- colleague. He prefaced his story by saying that My latest posts good people learn from their mistakes, but the can be found best people learn from other people's mistakes. here: This is a bit like the saying in aviation circles that a good landing is one you can walk away from, * Colins Blog an excellent landing is when they can use the 'plane again ... ---------------- Previous blog But I digress. He told me how he learned about posts: graceful degradation, and the message was clear. He was telling me about his mistake so I could * Diagramming learn from it. I wish more people were willing to Maths Topics make their mistakes public - the software industry * On The Rack would certainly benefit if it could learn from * Square Root everyone's mistakes. By Long Division And his story goes, in broad outline (I forget * Beyond The some of the details) like this. Boundary * Fill In The He made a comfortable living from programming Gaps electronic tills. At the time these were * Software programmed in assembly language, and the best Checklist output you could hope for during debugging was to * NASA Space see whether it opened the till or not. It was Crews difficult work because there were no simulators, * The Birthday no higher level languages, no debuggers, no Paradox single-steppers, no help at all, really. You wrote * The you code in assembler, transferred it to the Trapezium machine, then tested it to see if it worked. Conundrum Sometimes it did. * Revisiting The Ant My colleague was amazing at this work, which is * The Ant And why he could get contracts in it any time he The Rubber wanted, and the money was good. So he worked about Band six months of the year, then did whatever he * Irrationals wanted the rest of the time. Exist * Multiple Except at Christmas. That was when one of his Choice biggest mistakes would come back to haunt him. Probability Puzzle A large department store in a major capital city * Random used tills that ran his program. It was one of the Eratosthenes most sophisticated systems around. Each till would * Wrapping Up keep a list of items sold, and then a central Square computer would interrogate each till in turn and Dissection find out how much had been sold of each item. It * Dissecting A would then keep track of how many remained in Square Part stock, and would project when a re-ordering would 2 be necessary. Re-ordering was not automatic, but * Dissecting A staff would be alerted when stock was low on any Circle items and decisions could be made. * Dissecting A Square They loved the system. Buffer stock could be * An Oddity In reduced, reducing the store's overheads, and Tennis making the entire store more responsive to * Decision consumer demand. Tree For Tennis Except at Christmas. * Decision Trees In You see, every Christmas the system, in essence, Games would simply stop. An entire floor of tills would * A Matter Of stop responding, refusing to accept further Convention purchases for an unpredictable length of time, and * Do You then suddenly start working again. There was no Nourish Or apparent reason, no apparent rhyme, and nothing Tarnish they could do except call my colleague and get him * Binary to come in and "fix the problem." Search Reconsidered But there was really nothing he could do either, * Two Equals even when he worked out what the problem was. And Four what was the problem? * The Lost Property Capacity. Office * The Each till would keep its list of items sold, and Forgiving then when asked, would dump the list to the User central computer. Then it would go back to [S: Interface patronising:S] servicing the customer requirements * Setting Up until being asked again. The problem was that RSS during the heaviest time of the year, there was * Withdrawing simply too much to download. The queue in the till From Hacker would fill before the central computer got back to News it, and so it would have to stop, and wait to download its data, before it could restart. ---------------- Additionally, Entire floors of tills would grind to a halt, some earlier waiting to download their data and restart. The writings: floor would simply stop. Not good at the busiest shopping time of the year. Really not good. * Random Writings. +-----------------------+ * Colins Blog | It's hard for most | 2010 | people these days to | * Colins Blog | understand just how | 2009 | limited the computing | * Colins Blog | hardware was at the | 2008 | time. People have | * Colins Blog | emailed me or | 2007 | commented saying | * Colins Blog | "What he should have | Before 2007 | done is XXXX", | | without realising | | that what they were | | suggesting was | | completely beyond the | | compute power | | available. | | | | This was over 30 | | years ago. | +-----------------------+ The patch that was run at Christmas was to make each till run slightly slow. There was still the occasional "I'm full so I'm stopping" moment, but in general the system would limp along and not exhibit the catastrophic failure of entire floors stopping. The difficulty was in judging exactly how slow to make the tills run. He also made the central computer contact the tills in a clever, pseudo-random way, and that meant that if one till stopped on a floor, the others would probably still be working. So what should have been done? Well, apart from having a faster communications system that could deal with the load being placed on it, each till could notice when its queue was 80% full and start slowing down. Then the performance of the system as a whole would degrade gracefully. Sales would slow slightly, evenly across the store, and come to match the processing throughput. Of course it would have been better if the system had simply been faster, but when overloaded, degrading gracefully is usually a better option than simply stopping. Think about it next time you worry about system capacity. Is it better to halt and clear the backlog, or degrade gracefully and continue to serve your customers? -------------------------------------------------- +------------------------------------------------+ | <<<< Prev <<<< | | >>>> Next >>>> | | --------------------- | : | ------------------ | | Diagramming Maths | | Learning Times | | Topics | | Tables | +------------------------------------------------+ -------------------------------------------------- You should follow me on twitter @ColinTheMathmo -------------------------------------------------- Comments I've decided no longer to include comments directly via the Disqus (or any other) system. Instead, I'd be more than delighted to get emails from people who wish to make comments or engage in discussion. Comments will then be integrated into the page as and when they are appropriate. If the number of emails/comments gets too large to handle then I might return to a semi-automated system. That's looking increasingly unlikely. --------------------------------------------------------------------- Contents Links on this page +------------------+ |Site hosted by | * Graceful * AMatterOfConvention |Colin and Rachel | Degradation * AnOddityInTennis |Wright: | - 2014/12/ * BeyondTheBoundary | | 12 * BinarySearchReconsidered | * Maths, Design,| * Comments * ColinsBlog | Juggling, | * ColinsBlog2007 | Computing, | * ColinsBlog2008 | * Embroidery, | * ColinsBlog2009 | Proof-reading,| * ColinsBlog2010 | * and other | * ColinsBlogBefore2007 | clever stuff. | * Contact +------------------+ * DecisionTreeForTennis * DecisionTreesInGames * DiagrammingMathsTopics * DissectingACircle * DissectingASquare * DissectingASquarePart2 * DoYouNourishOrTarnish * FillInTheGaps * IrrationalsExist * LearningTimesTables * MultipleChoiceProbabilityPuzzle * NASASpaceCrews * OnTheRack * RandomEratosthenes * RandomWritings * RevisitingTheAnt * SettingUpRSS * Software * SoftwareChecklist * SquareRootByLongDivision * TheAntAndTheRubberBand * TheBirthdayParadox * TheForgivingUserInterface * TheLostPropertyOffice * TheTrapeziumConundrum * TwoEqualsFour * WithdrawingFromHackerNews * WrappingUpSquareDissection --------------------------------------------------------------------- [wiki] Suggest a change ( <-- What does this mean?) / Send me email Front Page / All pages by date / Site overview / Top of page Universally Browser Friendly Quotation from Valid HTML 3.2! Tim Berners-Lee