Data Sharing Analysis for a Database Programming Lanaguage via Abstract Interpretation

This paper presents an experiment in nsing n fnrmnl techniqne for static prngrnm nnnlyais, hnsod an abstract intarpre t.ntion, in the context of persistent progrnmming Inngnngw. The nim of thn annlysis is to dntoct npportnnities for snfe parallelism fnr trnnsnetinn nperatinn sehadnling. Tmnsnctinn apcratinns cnn he snfely intarlanved when there is no nverlnpping among their rends& nnd writ-b. A non-atnndnrd interpreter perfnrmcl the nnnlysis. This interpreter, given the text of n trnns.actinn nnd n reprascntntinn nf the dntn stored in the dntnh.m, oufnmnfica//y derivea in n finite time n11 npprnxirnntinn of the randset and writ-t nf the nnnlysed lrnnsnclinn. lnfnrmntian ahtnined from the non-atnndnrd interpret,ntinn is provided to the schodnler hefnra haginning the cxrcntion of trnnsactinn operations. In this way, we ohtnin A schrdnler thnt renlism n cnnservntive two-phase lacking protocol fnr persistent programming Inngnaga trnnsactinncl. We npply the nnalysis to n Iangnage thnt is n signiticnnt snhset of Gnlilan. The gnnl of the nnnlyh i.s tn &.teet the nccems xnlely to shnrc\nhle nnd mnclitinhle persistent dntn.

[1]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[2]  Fosca Giannotti,et al.  Analysis of Concurrent Transactions in a Functional Database Programming Language , 1992, WSA.

[3]  Samson Abramsky,et al.  Abstract Interpretation, Logical Relations and Kan Extensions , 1990, J. Log. Comput..

[4]  Patrick Cousot,et al.  Abstract Interpretation Frameworks , 1992, J. Log. Comput..

[5]  Peter Buneman,et al.  Types and persistence in database programming languages , 1987, CSUR.

[6]  Patrick Cousot,et al.  Static determination of dynamic properties of programs , 1976 .

[7]  Chris Hankin,et al.  Abstract Interpretation of Declarative Languages , 1987 .

[8]  David J. DeWitt,et al.  A Study of Three Alternative Workstation-Server Architectures for Object Oriented Database Systems , 1990, VLDB.

[9]  Gianni Mainetto,et al.  Gestione della Persistenza e delle Transazioni nel Sistema Galileo Distribuito , 1993, SEBD.

[10]  Craig W. Thompson,et al.  Object-oriented databases: design and implementation , 1991, Proc. IEEE.

[11]  Alain Deutsch,et al.  On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications , 1989, POPL '90.

[12]  John G. Hughes,et al.  Object-oriented databases , 1991, Prentice Hall International series in computer science.

[13]  Renzo Orsini,et al.  GALILEO: a strongly-typed, interactive conceptual language , 1985, TODS.

[14]  Paul Hudak A semantic model of reference counting and its abstraction (detailed summary) , 1986, LFP '86.