Abstract
We present a linguistic construct to define concurrency control for the objects of an object database. This construct, calledconcurrent behavior, allows to define a concurrency control specification for each object type in the database; in a sense, it can be seen as a type extension. The concurrent behavior is composed by two parts: the first one, calledcommutativity specification, is a set of conditional rules, by which the programmer specifies when two methods do not conflict each other. The second part, the constraint specification, is a set of guarded regular expressions, calledconstraints, by which the programmer defines the allowed sequences of method calls. At each time during an actual execution, a subset of constraints may be active so limiting the external behavior of the object. A constraint becomesactive when its guard is verified, where a guard is composed of the occurrence of some method callm along with the verification of a boolean expression on the object state and the actual parameters ofm. A constraint dies when a string of the language corresponding to the regular expression has been recognized. While the commutativity specification is devoted to specify the way in which the external behavior of an object is influenced by the existence of concurrent transactions in the system, the constraint specification defines the behavior of the object, independently from the transactions. Since the two parts of the concurrent behavior are syntactically distinct and, moreover, each of them consists of a set of independent rules, modularity in specifying the objects is enhanced, with respect to a unique specification. We outline an implementation of the construct, which is based on a look-ahead policy: at each method execution, we foresee the admissible successive behaviors of the object, instead of checking the admission of each request at the time it is actually made.
Similar content being viewed by others
References
A. Albano, G. Ghelli and R. Orsini, “Objects for a database programming language,” in3rd Int. Workshop Database Programming Languages, Napflion, Greece, 1991.
P. America and F. Van der Linden, “A parallel object-oriented language with inheritance and sub-typing,”Proceedings of ECOOP/OOPSLA 90, October 21–25, 1990.
F. Banchilon, “Object-oriented database systems,” in7th Symp. Principles of Database Systems, ACM, Austin, Texas, 1988, pp. 152–162.
P.A. Bernstein, V. Hadzilacos and N. Goodman,Concurrency Control and Recovery in Database Systems, Addison-Welsey: Reading, MA, 1987.
A. Bondavalli, N. De Francesco, D. Latella, and G. Vaglini, “Shared abstract data types: an algebraic methodology for their specification,” inMFDBS-89, LNCS 364, Budapest, 1989, pp. 53–67.
P.K. Chrysanthis, S. Raghuram and K. Ramamritham, “Extracting concurrency from objects: a methodology,” inProc. ACM SIGMOD, Int. Conf. Management of Data, vol. 20, 2, 1991.
N. De Francesco, L. Mancini, A. Pereira Paz and G. Vaglini, “Specification of concurrency control in persistent programming languages,” inFifth Int. Workshop Persistent Object Systems, S. Miniato (Pisa), 1992.
N. De Francesco and G. Vaglini, “An axiomatic approach to concurrency control,” submitted for publication onFormal Aspects of Computing.
H. Ehrig and B. Mahr,Fundamentals of Algebraic Specification 1, Springer-Verlag: Berlin, 1985.
H. Garcia-Molina, “Using semantic knowledge for transaction processing in a distributed database,”ACM Trans. Database Systems, vol. 8, pp. 186–213, 1983.
M.P. Herlihy and W.E. Weihl, “Hybrid concurrency control for abstract data types,”J. Comput. System Sci., vol. 43, pp. 25–61, 1991.
C.A.R. Hoare, “Communicating sequential processes”,Comm. ACM, vol. 21, no. 8, pp. 666–677, 1978.
W. Kim, “A foundation for object-oriented databases,”MCC Tech. Report, 1988.
H.F. Korth, “Locking primitives in a database system,”J. ACM, vol. 30, pp. 55–79, 1983.
H.F. Korth and G.D. Speegle, “Formal models of correctness without serializability,”SIGMOD-ACM, 1988, pp. 379–386.
E. Levy, H.F. Korth and A. Silberschatz, “An optimistic protocol for distributed transaction management,” Proc.ACM SIGMOD, Int. Conf. Management of Data, vol. 20, 2, 1991.
R. Milner,Communication and Concurrency, Prentice-Hall, 1989.
O.M. Nierstrasz, “A guide to specifying concurrent behavior with abacus,” inObject Management, D.C. Tsichiritzis (Ed.), Centre Universitaire d'Informatique, University of Geneva, 1990.
O. Nierstrasz and M. Papathomas, “Viewing object as patterns of communicating agents,” inProc. ECOOP/OOPSLA 90.
M.H. Nodine and S.B. Zdonik, “Cooperative transaction hierarchies: a transaction model to support design application,” inProc. 16th VLDB, 1990.
C.H. Papadimitriou,The Theory of Database Concurrency Control, Computer Science Press, Oakville, MD, 1986.
P.M. Schwarz and A.Z. Spector, “Synchronizing shared abstract types,”ACM ToCS, vol. 2, pp. 223–250, 1984.
A.H. Skarra, “Concurrency control for cooperating transactions in an object-oriented database,”SIGPLAN Notices, vol. 24, 1989.
A.H. Skarra and S.B. Zdonik, “Concurrency control and object-oriented databases,” inObject Oriented Concepts, Databases and Applications, W. Kim and F.H. Lochovsky (Eds.), ACM Press, 1989, pp. 395–421.
J. Van Den Bos and C. Laffra, “PROCOL: a parallel object oriented language with protocols,”Proc. OOPSLA 89, SIGPLAN Notices, vol. 24, no. 10, pp. 95–102, 1989.
W.E. Weihl, “Local atomicity properties: modular concurrency control for abstract data types,”ACM ToPLaS, vol. 11, no. 2, pp. 249–283, 1989.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
De Francesco, N., Vaglini, G. Concurrent behavior: A construct to specify the external behavior of objects in object databases. Distrib Parallel Databases 2, 33–58 (1994). https://doi.org/10.1007/BF01263338
Issue Date:
DOI: https://doi.org/10.1007/BF01263338