Transactional client-server cache consistency: alternatives and performance

Client-server database systems based on a data shipping model can exploit client memory resources by caching copies of data items across transaction boundaries. Caching reduces the need to obtain data from servers or other sites on the network. In order to ensure that such caching does not result in the violation of transaction semantics, a transactional cache consistency maintenance algorithm is required. Many such algorithms have been proposed in the literature and, as all provide the same functionality, performance is a primary concern in choosing among them. In this article we present a taxonomy that describes the design space for transactional cache consistency maintenance algorithms and show how proposed algorithms relate to one another. We then investigate the performance of six of these algorithms, and use these results to examine the tradeoffs inherent in the design choices identified in the taxonomy. The results show that the interactions among dimensions of the design space impact performance in many ways, and that classifications of algorithms as simply “pessimistic” or “optimistic” do not accurately characterize the similarities and differences among the many possible cache consistency algorithms.

[1]  Mahadev Satyanarayanan,et al.  Scale and performance in a distributed file system , 1988, TOCS.

[2]  O. Deux,et al.  The O2 system , 1991 .

[3]  R. G. Cattell Object Data Management: Object-Oriented and Extended , 1994 .

[4]  Philip S. Yu,et al.  The Effect of Skewed Data Access on Buffer Hits and Data Contention an a Data Sharing Environment , 1990, VLDB.

[5]  Michael J. Carey,et al.  Client-Server Caching Revisited , 1998, IWDOM.

[6]  K. K. Ramakrishnan,et al.  Analysis of file I/O traces in commercial computing environments , 1992, SIGMETRICS '92/PERFORMANCE '92.

[7]  Anoop Gupta,et al.  Memory consistency and event ordering in scalable shared-memory multiprocessors , 1990, ISCA '90.

[8]  Won Kim,et al.  Architecture of the ORION Next-Generation Database System , 1990, IEEE Trans. Knowl. Data Eng..

[9]  Bill Nitzberg,et al.  Distributed shared memory: a survey of issues and algorithms , 1991, Computer.

[10]  Philip S. Yu,et al.  Analytical modelling of a hierarchical buffer for a data sharing environment , 1991, SIGMETRICS '91.

[11]  David J. DeWitt,et al.  Crash recovery in client-server EXODUS , 1992, SIGMOD '92.

[12]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[13]  J. Mitchell,et al.  Issues in the design and use of a distributed file system , 1980, OPSR.

[14]  Michael Stonebraker,et al.  Concurrency Control and Consistency of Multiple Copies of Data in Distributed Ingres , 1979, IEEE Transactions on Software Engineering.

[15]  Erhard Rahm,et al.  Empirical performance evaluation of concurrency and coherency control protocols for database sharing systems , 1993, TODS.

[16]  Michael N. Nelson,et al.  Caching in the Sprite network file system , 1988, TOCS.

[17]  Hector Garcia-Molina,et al.  Consistency in a partitioned network: a survey , 1985, CSUR.

[18]  Miron Livny,et al.  Data caching tradeoffs in client-server DBMS architectures , 1991, SIGMOD '91.

[19]  Mahadev Satyanarayanan,et al.  Scale and performance in a distributed file system , 1987, SOSP '87.

[20]  Marianne Winslett,et al.  Minipage locking support for object-oriented page-server DBMS , 1994, CIKM '94.

[21]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[22]  Miron Livny,et al.  Global Memory Management in Client-Server Database Architectures , 1992, VLDB.

[23]  J CareyMichael,et al.  Data caching tradeoffs in client-server DBMS architectures , 1991 .

[24]  Robert Gruber,et al.  Efficient optimistic concurrency control using loosely synchronized clocks , 1995, SIGMOD '95.

[25]  Mark Horowitz,et al.  An evaluation of directory schemes for cache coherence , 1998, ISCA '98.

[26]  Mary Baker,et al.  Measurements of a distributed file system , 1991, SOSP '91.

[27]  Abraham Silberschatz,et al.  Distributed file systems: concepts and examples , 1990, CSUR.

[28]  Michael J. Carey,et al.  Fine-grained sharing in a page server OODBMS , 1994, SIGMOD '94.

[29]  Anupam Bhide,et al.  An Analysis of Three Transaction Processing Architectures , 1988, VLDB.

[30]  Lawrence A. Rowe,et al.  Cache consistency and concurrency control in a client/server DBMS architecture , 1991, SIGMOD '91.

[31]  Michael J. Franklin,et al.  Client Data Caching: A Foundation for High Performance Object Database Systems , 1996 .

[32]  M. Franklin,et al.  Global Memory Management in Client-Server DBMS Architectures , 1992 .

[33]  Alfons Kemper,et al.  Dual-Buffering Strategies in Object Bases , 1994, VLDB.

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

[35]  James K. Archibald,et al.  Cache coherence protocols: evaluation using a multiprocessor simulation model , 1986, TOCS.

[36]  David J. DeWitt,et al.  Shoring up persistent applications , 1994, SIGMOD '94.

[37]  Philip S. Yu,et al.  Performance analysis of coherency control policies through lock retention , 1992, SIGMOD '92.

[38]  P. Stenstrom A survey of cache coherence schemes for multiprocessors , 1990, Computer.

[39]  Philip S. Yu,et al.  Design and Analysis of Integrated Concurrency-Coherency Controls , 1998 .

[40]  C. Mohan,et al.  Recovery and Coherency-Control Protocols for Fast Intersystem Page Transfer and Fine-Granularity Locking in a Shared Disks Transaction Environment , 1991, VLDB.

[41]  Laurent Amsaleg,et al.  Efficient Incremental Garbage Collection for Client-Server Object Database Systems , 1995, VLDB.

[42]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1989, TOCS.

[43]  Sarita V. Adve,et al.  Shared Memory Consistency Models: A Tutorial , 1996, Computer.

[44]  R. G. G. Cattell,et al.  Object operations benchmark , 1992, TODS.

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

[46]  David B. Lomet Private locking and distributed cache management , 1994, Proceedings of 3rd International Conference on Parallel and Distributed Information Systems.

[47]  Philip S. Yu,et al.  Performance comparisons of buffer coherency policies , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[48]  Liuba Shrira,et al.  Distributed Object Management in Thor , 1992, IWDOM.

[49]  David J. Lilja,et al.  Cache coherence in large-scale shared-memory multiprocessors: issues and comparisons , 1993, CSUR.

[50]  Michael J. Franklin Caching and Memory Management in Client-Server Database Systems , 1993 .

[51]  Alan L. Cox,et al.  Lazy release consistency for software distributed shared memory , 1992, ISCA '92.

[52]  Miron Livny,et al.  Local Disk Caching for Client-Server Database Systems , 1993, VLDB.

[53]  O. Deux,et al.  The O2 system , 1991 .

[54]  Ashok M. Joshi,et al.  Adaptive Locking Strategies in a Multi-node Data Sharing Environment , 1991, VLDB.

[55]  Jacob Stein,et al.  The GemStone object database management system , 1991, CACM.

[56]  Miron Livny,et al.  Conflict detection tradeoffs for replicated data , 1991, TODS.

[57]  K OusterhoutJohn,et al.  Caching in the Sprite network file system , 1988 .

[58]  Hamid Pirahesh,et al.  ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging , 1998 .

[59]  Michael J. Franklin Global Memory Management , 1996 .

[60]  R. G. G. Cattell,et al.  Object Data Management: Object-Oriented and Extended Relational Database Systems (Revised Edition) , 1991 .

[61]  J. D. Day,et al.  A principle for resilient sharing of distributed resources , 1976, ICSE '76.

[62]  Harjinder S. Sandhu,et al.  Cluster-based file replication in large-scale distributed systems , 1992, SIGMETRICS '92/PERFORMANCE '92.

[63]  Philip S. Yu,et al.  Design and Analysis of Integrated Concurrency-Coherence Controls , 1987, VLDB.

[64]  Mahadev Satyanarayanan,et al.  Disconnected Operation in the Coda File System , 1999, Mobidata.

[65]  Per Stenström,et al.  A Survey of Cache Coherence Schemes for Multiprocessors , 1990, Computer.

[66]  Kevin Wilkinson,et al.  Maintaining Consistency of Client-Cached Data , 1990, VLDB.

[67]  BaerJean-Loup,et al.  Cache coherence protocols: evaluation using a multiprocessor simulation model , 1986 .

[68]  David J. DeWitt,et al.  The 007 Benchmark , 1993, SIGMOD '93.

[69]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .