Learn More
This paper introduces a general formulation of<?Pub Fmt italic>atomic snapshot memory<?Pub Fmt /italic>, a sharedmemory partitioned into words written(<?Pub Fmt italic>updated<?Pub Fmt /italic>) by individual processes, orinstantaneously read (<?Pub Fmt italic>scanned<?Pub Fmt /italic>) in itsentirety. This paper presents three wait-free implementations of(More)
In [1, 2] it was noticed that sometimes it takes BGP a substantial amount of time and messages to converge and stabilize following the failure of some node in the Inter-net. In this paper we suggest a minor modification to BGP that eliminates the problem pointed out and substantially reduces the convergence time and communication complexity of BGP. Roughly(More)
Conventional wisdom in designing concurrent data structures is to use the most powerful synchronization primitive, namely compare-and-swap (CAS), and to avoid contended hot spots. In building concurrent FIFO queues, this reasoning has led researchers to propose <i>combining-based</i> concurrent queues. This paper takes a different approach, showing how to(More)
Computational and biological systems are often distributed so that processors (cells) jointly solve a task, without any of them receiving all inputs or observing all outputs. Maximal independent set (MIS) selection is a fundamental distributed computing procedure that seeks to elect a set of local leaders in a network. A variant of this problem is solved(More)
Two implementations of an adaptive, wait-free, and long-lived renaming task in the read/write shared memory model are presented. Implementations of long-lived and adaptive objects were previously known only in the much stronger model of load-linked and store-conditional (i.e., read-modify-write) shared memory. In read/write shared-memory only one-shot(More)
Yehuda Afek* ,We describe a fast, wait-free (2k-1)-renaming algorithm which takes O(k2) time. (Where k is the contention , the number of processes actually taking steps in a given run.) The algorithm makes extensive use of tools and techniques developed by Attiya and Fouren [AF98]. Other extensions, including a fast (long-lived) atomic snapshot algorithm,(More)
We study a class of synchronization objects in shared memory concurrent systems, which we call common2. This class contains read-modify-write objects that commute (e.g. fetch-and-add), or overwrite (e.g. swap). It is known that this class is contained in the consensus number 2 class of objects Her91a], and most of the commonly used objects with consensus(More)
Producer-consumer pools, that is, collections of unordered objects or tasks, are a fundamental element of modern multiprocessor software and a target of extensive research and development. For example, there are three common ways to implement such pools in the Java JDK6.0: the SynchronousQueue, the LinkedBlockingQueue, and the ConcurrentLinkedQueue.(More)
This paper investigates the eeects of the failure of shared objects on distributed systems. First the notion of a faulty shared object is introduced. Then upper and lower bounds on the space complexity of implementing reliable shared objects are provided. Shared object failures are modeled as instantaneous and arbitrary changes to the state of the object.(More)