Locking and Latching in a Memory-Resident Database System

As part of the Starburst extensible database project developed at the IBM Almaden Research Center, we designed and implemented a memory-resident storage component that co-exists with Star-burst’s diskoriented storage component. The two storage components share the same common services, such as query optimization, transaction management, etc. However, the memory-resident storage component is faster than the disk-oriented storage component and hence needs faster run-time services. This paper examines two runtime services, the lock manager and the latch mechanism, and investigates possible cost-cutting measures. We propose the use of of a single latch for protecting a table, all of its indexes, and all of its related lock information, in order to reduce storage component latch costs. VVe then show that although a table-level latch is a large granule latch, it does not significantly restrict concurrency. VVe also examine traditional lock manager design and suggest a different design that is appropriate for memory-resident storage components. The new design exploits direct addressing of lock data and dynamic, multi-granularity locks. Performance measurements of the new lock manager show that it outperforms the regular Starburst lock manager, which is of a traditional lock manager design, by as much as

[1]  Dean Daniels,et al.  R*: An Overview of the Architecture , 1986, JCDKB.

[2]  L. Schrage,et al.  Queueing systems, Vol. I: Theory , 1977, Proceedings of the IEEE.

[3]  Richard T. Snodgrass,et al.  Monitoring in a software development environment: A relational approach , 1984, SDE 1.

[4]  Michael J. Carey,et al.  An abstract model of database concurrency control algorithms , 1983, SIGMOD '83.

[5]  Brian Randell,et al.  Operating Systems, An Advanced Course , 1978 .

[6]  Jim Gray,et al.  The convoy phenomenon , 1979, OPSR.

[7]  Michael J. Carey,et al.  A Concurrency Control Algorithm for Memory-Resident Database Systems , 1989, FODO.

[8]  Michael Stonebraker,et al.  Implementation techniques for main memory database systems , 1984, SIGMOD '84.

[9]  Vijay Kumar,et al.  Performance measurement of some main memory database recovery algorithms , 1991, [1991] Proceedings. Seventh International Conference on Data Engineering.

[10]  Margaret H. Eich A classification and comparison of main memory database recovery techniques , 1987, 1987 IEEE Third International Conference on Data Engineering.

[11]  T. Teitelbaum,et al.  Relations and attributes: A symbiotic basis for editing environments , 1985, SLIPE '85.

[12]  Michael Stonebraker,et al.  The Performance of Concurrency Control Algorithms for Database Management Systems , 1984, VLDB.

[13]  Luis-Felipe Cabrera,et al.  An Evaluation of Starburst's Memory Resident Storage Component , 1992, IEEE Trans. Knowl. Data Eng..

[14]  Hamid Pirahesh,et al.  A data management extension architecture , 1987, SIGMOD '87.

[15]  Hamid Pirahesh,et al.  Extensible query processing in starburst , 1989, SIGMOD '89.

[16]  David Powell Overview of the Architecture , 1991 .

[17]  Hector Garcia-Molina,et al.  System M: A Transaction Processing Testbed for Memory Resident Data , 1990, IEEE Trans. Knowl. Data Eng..

[18]  Michael J. Carey,et al.  A Study of Index Structures for a Main Memory Database Management System , 1986, HPTS.

[19]  Miron Livny,et al.  Models for studying concurrency control performance: alternatives and implications , 1985, SIGMOD Conference.

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

[21]  Witold Litwin,et al.  Linear Hashing: A new Algorithm for Files and Tables Addressing , 1980, ICOD.

[22]  R. G. G. Cattell,et al.  Benchmarking simple database operations , 1987, SIGMOD '87.

[23]  Robert B. Hagmann A Crash Recovery Scheme for a Memory-Resident Database System , 1986, IEEE Transactions on Computers.

[24]  Hamid Pirahesh,et al.  Starburst Mid-Flight: As the Dust Clears , 1990, IEEE Trans. Knowl. Data Eng..

[25]  Jack A. Orenstein,et al.  The ObjectStore database system , 1991, CACM.

[26]  Jim Gray,et al.  Notes on Data Base Operating Systems , 1978, Advanced Course: Operating Systems.

[27]  Mark A. Linton,et al.  Implementing relational views of programs , 1984, SDE 1.

[28]  Donovan A. Schneider,et al.  The Gamma Database Machine Project , 1990, IEEE Trans. Knowl. Data Eng..

[29]  Philip A. Bernstein,et al.  Concurrency Control in Distributed Database Systems , 1986, CSUR.

[30]  Michael J. Carey,et al.  A recovery algorithm for a high-performance memory-resident database system , 1987, SIGMOD '87.

[31]  Irving L. Traiger,et al.  The notions of consistency and predicate locks in a database system , 1976, CACM.