On the Power of Breakable Objects
In distributed shared-memory systems, a breakable object is one that may enter a special broken state, after which all operations will fail and return a special broken symbol ⊥B. Most breakable objects appeared in literature belong to a class we call acyclic breakable objects, in which every operation moves the object closer to the broken state. We show in general that acyclic breakable objects have limited consensus power. Our main results focus on the richer but less covered cyclic breakable objects. We study the consensus numbers of cyclic breakable objects by using a general algorithmic framework, and obtain several interesting results. In particular one result on a breakable queue points out a mistake that appeared both in a previous paper and a textbook. We further study operationwise breakable objects in which some operations on the object may break but not other operations. We use various breakable queues as running examples, and demonstrate that the generic framework can be applied in this context as well, and in some cases with nontrivial implementations of the framework. We also provide matching impossibility results to obtain exact consensus numbers for all the cases we consider. Finally, since all example objects we found in the literature with a generic consensus number n are breakable objects, we provide a simple and natural non-breakable object class with generic consensus number n.