Software diversity

John McHugh · 2005

For over twenty years, software diversity has been touted in some circles as an effective and cost effective way to improve system reliability. Based on well established practice in the replicated hardware arena, the notion is that, if replica failures are independent, exponential gains in reliability can be obtained for linear increments in cost. Unfortunately in the software case, the "if" is, in general, not true and the gains that can be realized are far from exponential. The kinds of hardware failures against which replication works are distributed independently randomly in the time domain. Software failures are time invariant and distributed in the data domain (with uncertain distributions) so that identical replicas will all fail on the same inputs. Thus, the holy grail of software fault tolerance has been to introduce diversity in such a way that failures are distributed independently in the data domain. These have been largely unsuccessful.

Read the paper · More papers on PaperTik