Published Sep 3, 2019

Episode 78: Fault Tolerance with Bob Hanmer Pt. 2

Bob Hanmer delves into fault-tolerant system design, covering strategies for managing overload, error detection, and recovery. Learn how to enhance software resilience with practical insights on load shedding, resource queuing, and advanced techniques like checksumming and rollback.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Load Shedding

    Load shedding is a crucial strategy in managing system overloads by ensuring that systems operate within their processing capabilities. explains that slowing down processes can help maintain system sanity by limiting the workload to what the system can handle, thus avoiding unrecoverable overload situations 1. This approach is particularly beneficial in scenarios where human users might repeatedly submit requests due to impatience, as seen in telephone systems 1. appreciates the value of these patterns, noting how they expand the toolbox for software architects and developers 2.

    Just slow it down. Just because by doing that, you keep the system sane, you are limiting what you're doing.

    ---

    These patterns, such as fresh work before stale, are derived from extensive telecom experience and are widely applicable in various overload handling techniques.

       

    Resource Queuing

    Resource queuing serves as a mitigation strategy during overload conditions by managing incoming requests efficiently. describes how queuing requests can smooth out spikes in demand, allowing processors to handle tasks more effectively 3. This method requires equitable distribution of resources to ensure all users receive good service, as defined by system requirements 3. In cases where shedding load isn't feasible, sharing the load with other system components can be an alternative solution.

    Sometimes you can get away with queuing requests as they come in to process them a little later, because it might be a very momentary spike.

    ---

    By planning these strategies at the design stage, systems can better allocate resources during periods of overload, whether locally or across networks.

Related Episodes