Atomicity is a fundamental concept in computer science. Initially it was defined as an abstraction to be used in a local context. But over time, its use has expanded or scaled as application programmers have come to rely on it. This reliance is based on atomicity’s ability to make concurrent systems understandable and applications much simpler to program. Atomicity has multiple origins, but it can be fairly said that Brian Randell’s Reliability Project at the University of Newcastle in the 1970’s played a significant early role in defining the atomicity abstraction and building an early prototype to realize it. This paper starts by sketching the Newcastle contribution and goes on to explore how atomicity has been stretched to deal with clusters of processors. The challenge today is to deal well with systems of vast scale, as exemplified by the enormous data centers of current cloud services providers. We sketch a new and promising approach to this challenge.
|Published in||Lecture Notes on Computer Science 6875|