Consider a logical structure ${\cal S}$, constructed over a given network  G  , which is intended to efficiently support various services on  G  . This logical structure is supposed to possess certain desirable properties, measured with respect to  G  and represented by some requirement predicate ${\cal P}({\cal S},G)$. Now consider a failure event  F  affecting some of the network's vertices and edges. Making ${\cal S}$ fault-tolerant means reinforcing it so that subsequent to the failure event, its surviving part ${\cal S}'$ continues to satisfy ${\cal P}$. One may insist on imposing the requirements with respect to the  original network   G  , i.e., demanding that the surviving structure ${\cal S}'$ satisfies the predicate ${\cal P}({\cal S}',G)$. The idea behind  competitive fault tolerance  is that it may sometimes be more realistic and more productive to evaluate the performance of the surviving ${\cal S}'$ after the failure event not with respect to  G  (which at the moment is no longer in existence anyway), but rather with respect to the  surviving network   G  *** =  G  ***  F  , which in a sense is the best one can hope for. Hence, we say that the structure ${\cal S}$ enjoys  competitive fault-tolerance  if subsequent to a failure event  F  , its surviving part ${\cal S}'$ satisfies the requirement predicate ${\cal P}({\cal S}',G')$. The paper motivates the notion of competitive fault tolerance, compares it with the more demanding alternative approach, and illustrates it on a number of representative examples.
['David Peleg']
As Good as It Gets: Competitive Fault Tolerance in Network Structures