The Design, Implementation, and Performance Evaluation of BERMUDA

We describe the design and implementation of BERMUDA, which is a loosely coupled system interfacing Prolog to the Britton-Lee Intelligent Database Machine (IDM-500). BERMUDA allows multiple concurrent Prolog processes, possibly running on different machines, to share a database. In addition, it preserves the semantics of Prolog programs and makes the use of the database system transparent to the user. We discuss several architectural issues faced by such systems and the approach adopted for each one in BERMUDA. We also present the performance results of a variety of experiments with the system. These include single-user benchmarks of BERMUDA against stand-alone Prolog and stand-alone IDM, detailed profiling of the costs of the modules of BERMUDA that shows the overhead imposed by the interface, and multiuser benchmarks of BERMUDA that show how the system behaves under heavier load. These experiments demonstrate the effectiveness of loosely coupled systems in general and of BERMUDA specifically. They also help in the identification of some aspects of the design and implementation of BERMUDA that could be improved. >

[1]  Michael Stonebraker,et al.  Triggers and inference in data base systems , 1985, ACM '85.

[2]  Patricia G. Selinger,et al.  Access path selection in a relational database management system , 1979, SIGMOD '79.

[3]  Sheldon J. Finkelstein Common expression analysis in database applications , 1982, SIGMOD '82.

[4]  Georg Gottlob,et al.  Efficient Database Access from Prolog , 1989, IEEE Trans. Software Eng..

[5]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[6]  Jorge B. Bocca EDUCE: A Marriage of Convenience: Prolog and a Relational DBMS , 1986, SLP.

[7]  K. Thompson,et al.  The UNIX time-sharing system , 1978 .

[8]  Shamim A. Naqvi,et al.  A Logical Language for Data and Knowledge Bases , 1989 .

[9]  Jorge B. Bocca On the evaluation strategy of EDUCE , 1986, SIGMOD '86.

[10]  Matthias Jarke,et al.  An optimizing prolog front-end to a relational query system , 1984, SIGMOD '84.

[11]  Raf Venken A Prolog Meta-Interpreter for Partial Evaluation and its Application to Source to Source Transformation and Query-Optimisation , 1984, ECAI.

[12]  Michael Ubell The Intelligent Database Machine (IDM) , 1985, Query Processing in Database Systems.

[13]  Amit P. Sheth,et al.  The architecture of BrAID: a system for bridging AI/DB systems , 1991, [1991] Proceedings. Seventh International Conference on Data Engineering.

[14]  Jack Minker,et al.  Logic and Data Bases , 1978, Springer US.

[15]  Jean-Marie Nicolas,et al.  An Outline of BDGEN: A Deductive DBMS , 1983, IFIP Congress.

[16]  M. Howard Williams,et al.  Benchmarking Prolog for Database Applications , 1988, Prolog and Databases.

[17]  Adrian Walker,et al.  PROSQL: A Prolog Programming Interface with SQL/DS , 1984, Expert Database Workshop.

[18]  Georg Gottlob,et al.  Interfacing Relational Databases and Prolog Efficiently , 1986, Expert Database Conf..

[19]  Yannis E. Ioannidis,et al.  Bermuda - An Architectural Perspective on Interfacing Prolog to a Database Machine , 1988, Expert Database Conf..

[20]  David J. DeWitt,et al.  Benchmarking Database Systems A Systematic Approach , 1983, VLDB.

[21]  Irving L. Traiger,et al.  System R: relational approach to database management , 1976, TODS.

[22]  Timos K. Sellis,et al.  Implementation of a Prolog-INGRES interface , 1988, SGMD.

[23]  Letizia Tanca,et al.  What you Always Wanted to Know About Datalog (And Never Dared to Ask) , 1989, IEEE Trans. Knowl. Data Eng..