The use of replicated software components raises a variety of challenges. To address such challenges, techniques are presented herein that support leaderless, multi-version (even multi-vendor) software redundancy in order to provide fault tolerance and in-service software upgrade (ISSU) mechanisms by enabling a "just enough" agreement. Aspects of the presented techniques support redundant active replicas – without locks, peer messaging, or a designated leader – that may actively program the same downstream resources without conflicts even though they differ significantly in their methods of computation and order of outputs. Additionally, the resulting system can tolerate both crashes and non-crash faults (such as wrong or omitted outputs) in a minority of replicas without an interruption of service. Aspects of the presented techniques are applicable to complex replicated functions such as Border Gateway Protocol (BGP) best-path computations and/or the like.

Creative Commons License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.