s a key factor for the prosperity of any network technologies. In the past, despite that many efforts have been put to add reliability and high availability to networking systems, its performance can still be severely impacted by hardware failures, software bugs, and configuration errors. Parallel to the efforts in devel- oping new debugging tools, another approach is to improve on the support for recovery from errors, assuming that errors are inevitable. 4.4 SDN Management Checkpointing is a common and powerful approach to recover from transient errors in servers and distributed systems. In general, a system periodically records its state during normal operation and stores it in nonvolatile storage that is, checkpointing. Upon failure, it is restored to a previous state and restarts the execution from this intermediate state, that is, rollback process, thereby reducing the lost computation. This technique is especially useful for long-running applications such as scientific computing and telecom applications, where restarting from the beginning can be costly. Besides host-level process migration and debugging, it can be used for error recovery in distributed systems, where a collection of application processes are checkpointed distributively, and a globally consistent state can be restored. Checkpoints can also be used for debugging and root cause analysis. Despite its usefulness, checkpointing and rollback are rarely used in networking infrastructure for the following reasons. First, the network interacts with the outside world constantly, that is, receiving packets and sending them out, the outside world cannot be rolled back. Sec- ond, traditional checkpoint-recovery mechanism assumes a fail-stop system, that is, upon any fault or failure, the process or system termi- nates. This assumption does not always hold true in networking. For example, a loop may exist for a nonnegligible amount of time before it is detected, even if it is hurting the performance. Third, the net- work equipments and applications are m