Davies (in collaboration with L. J. Bjork) introduced a single abstract control structure, namely ``Spheres of Control'' to achieve flexible semantics for almost every aspect of transaction execution: process (read: transaction) atomicity, commitment, dependencies between transactions, concurrency control, consistency, and recovery. In simple terms, a sphere of control can be viewed as a boundary around the effects of an arbitrary set of operations that can be unilaterally revoked or committed. Spheres can be nested, sequenced, or parallelized. Reading this paper today, anyone working in the area of advanced concurrency control and transaction processing is bound to ask ``so, what else is new''? What is ``new'' is that the work reported in this paper was done in the early-mid 70's! Arguably, everything that has since been ``proposed'' -- for utilizing application and data semantics for better concurrency control and recovery -- is a reinvention of ideas introduced here, with more waiting to be reinvented. Unfortunately since many of the terms used in the paper are archaic and predate ACID, it does take a certain amount of effort to translate, and appreciate the concepts ``hidden'' in the paper, in terms of what is well understood today.
So, this is a paper I wish everyone -- especially, those who have done work on advanced transaction models -- had read before embarking on their work on transactions. As it turned out, I myself came across Spheres only towards the end of our work on the ACTA. It was gratifying to note that we had not fallen prey to the original temptation of inventing yet another transaction model, but had instead developed a formal framework using which one could analyze and synthesize advanced transaction models. Since then, I have been influenced not only by the perspective offered by the concepts underlying Spheres but also by the fact that in developing these concepts, Davies was inspired by how human organizations perform their activities and share resources.

a service of Schloss Dagstuhl - Leibniz Center for Informatics