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

  • Recovery Techniques

    In the realm of error recovery, rollback and roll forward techniques play pivotal roles. explains that rollback involves reverting to a previous state to retry a failed operation, while roll forward discards the problematic transaction and proceeds with the next one. These strategies are essential for maintaining system integrity without unnecessary delays 1.

    Rollback is kind of the typical thing that we're going to. We encounter an error and now we're going to rollback and retry.

    ---

    Failover and checkpointing are also crucial, ensuring that systems can recover swiftly by storing state information, though they require careful consideration of trade-offs 2.

       

    Concentrated Recovery

    Concentrated recovery is a strategy that focuses all system resources on resolving an error, temporarily halting new requests to expedite recovery. highlights that this approach can be counterintuitive, as it makes the system unavailable during recovery, but it ultimately reduces overall downtime 3.

    Concentrated recovery is advocating, forget about the new request for service while you're doing the recovery.

    ---

    Monitoring patterns like watchdog and heartbeat are integral to this process, ensuring that system performance is maintained and errors are detected promptly 4.

       

    Error Management

    Error handlers centralize error management, simplifying the complexity of handling faults across a system. describes how concentrating error handling code in one place can streamline updates and reduce the risk of oversight when implementing new strategies 5.

    The point of error handler, it's concentrating some of the error handling code into one place.

    ---

    This approach contrasts with inline error handling, which can complicate system architecture. By centralizing error management, systems can more effectively implement rollback and roll forward strategies when necessary 1.

Related Episodes