Static analysis of transactions for conservative multigranularity locking
This paper shows a concrete example in which a technique of static analysis, mainly used in the programming language area, can be successfully applied to a database problem. The database problem is the automatic (i.e., without a transaction programmer's intervention) realization of a new concurrency control protocol called conservative multiple granularity locking. Being conservative, the scheduler of this protocol ensures that the database resources needed from a transaction are granted before such a transaction begins its execution. Being multigranular, this protocol deals with an hierarchical organization of database resources and it allows to strike a balance between locking overhead and degree of concurrency allowed from one transaction. The analysis we present allows to automatically infer from the text of a transaction a safe approximation of the set of hierarchical database resources needed from the transaction. The analysis gives particular attention to the management of sets of resources to statically foresee if a transaction will access most of the resources in the set. The proposed technique, which can take advantage of statistical information on database resources, infers an approximation close to the actual resources that the transaction is going to use at run time.
Unable to display preview. Download preview PDF.
- [Albano 1985] Albano A., L. Cardelli, R. Orsini, “Galileo: A strongly typed interactive conceptual language”, ACM Trans. on Database Systems, Vol. 10(2), pp. 230–260.Google Scholar
- [Amato 1993] Amato G., F. Giannotti and G. Mainetto, “Data Sharing Analysis for a Database Programming Language via Abstract Interpretation”, Proc. of the 19th Int. Conf on VLDB, Dublin, Ireland, pp. 405–415.Google Scholar
- [Amato 1996] Amato G., M. Biscari, G. Mainetto and F. Rabitti, “Multigranularity Locking with the Use of Semantic Knowledge in a Layered Object Server”, Proc. of the 7th Int. Workshop POS, Cape May, USA, pp. 151–163.Google Scholar
- [Atkinson 1987] Atkinson M.P. and O.P. Buneman, “Types and Persistence in Database Programming Languages”, ACM Computing Surveys, Vol 19(2), pp. 105–190.Google Scholar
- [Atkinson 1995] Atkinson M. P. and R. Morrison, “Orthogonally Persistent Object Systems”, The VLDB Journal, Vol. 4(3); pp. 319–401.Google Scholar
- [Cousot 1977] Cousot P. and R. Cousot, “Abstract Interpretation: an unified lattice model for static analysis of programs by construction of approximation of fixpoints”, Proc. 4th Int. Conf. POPL, pp. 238–252.Google Scholar
- [Graefe 1993] Graefe G., “Query Evaluation Techniques for Large Databases”, ACM Computing Surveys, Vol. 25(2), pp. 71–170.Google Scholar
- [Gray 1975] Gray J., R. Lorie and G. Putzolu, “Granularity of locks and degrees of consistency in a shared database”, IBM Res. Rep. RJ1654, San Jose, CA.Google Scholar
- [Gray 1978] Gray J., “Notes on Database Operating System”, IBM Res. Rep. RJ2188, IBM Research Laboratory, San Jose, CA also in Operating Systems — An Advanced Course, Springer Verlag, LNCS 60, 1978.Google Scholar
- [Jones 1995] Jones N. D. and F. Nielson, “Abstract interpretation: a semantics-based tool for program analysis”, in Handbook of Logic in Computer Science. Vol. 4-Semantic Modelling, Oxford University Press, Oxford, pp. 527–636.Google Scholar
- [Mannino 1988] Mannino M. V., P. Chu and T. Sager, “Statistical profile estimation in database systems”, ACM Computing Surveys, Vol. 20(3), pp. 192–221.Google Scholar
- [McCarthy 1962] McCarthy J., P.W. Abrahams, D.J. Edwards, T.P. Hart and M.I. Levin, Lisp 1.5 programmers's manual, MIT Press.Google Scholar