Datenbank-Caching - Eine systematische Analyse möglicher Verfahren

Zusammenfassung.Caching ist ein bewährtes Mittel, um die Skalier- und Verfügbarkeit von Systemen zu steigern sowie die Latenzzeit für Benutzeranforderungen zu verkürzen. Im Gegensatz zum Web-Caching, bei dem einzelne Web-Objekte irgendwo längs ihres Aufrufpfades in der Proxy-Kette vorgehalten werden, setzt Datenbank-Caching „ausgewachsene“ Datenbanksysteme als Caches ein, um dort Satzmengen entfernter Datenbanken möglichst adaptiv verwalten und Anfragen darauf auswerten zu können. Verfahren dazu reichen von separat verwalteten materialisierten Sichten über überlappende, aber replikationsfrei gespeicherte Sichten bis hin zu Cache-Groups, in denen parametrisierte Cache-Constraints den Cache-Inhalt spezifizieren. Wir untersuchen anschaulich die verschiedenen Ansätze und ermitteln daraus eine Klassifikation, die den Lösungsraum zu enthüllen hilft. Im Mittelpunkt steht das Konzept der Prädikatsvollständigkeit: Ein Datenbank-Cache verwaltet vollständige Extensionen von Prädikaten, was ihm ermöglicht, Schlüsse über beantwortbare Anfragen zu ziehen.Abstract.Caching is a proven means of enhancing scalability and availability of software systems as well as of reducing latency of user requests. In contrast to Web caching, where single Web objects are kept ready somewhere along their invocation path in the proxy chain, database caching uses full-fledged database management systems as caches to adaptively maintain sets of records from a remote database and to evaluate queries on them. This procedure can be achieved by a spectrum of techniques ranging from separate materialized views via overlapping, but „replication-free” stored views up to cache groups where parameterized cache constraints specify the contents of the cache. We explore different approaches in an illustrative way and, from the insights gained, we derive a classification scheme which helps to discover the solution space. The key concept for advanced techniques is predicate completeness: A database cache maintains complete extensions of predicates, which enables the system to draw conclusions about locally answerable queries.

[1]  Sriram Padmanabhan,et al.  DBProxy: a dynamic data cache for web applications , 2003, Proceedings 19th International Conference on Data Engineering (Cat. No.03CH37405).

[2]  Erhard Rahm,et al.  Datenbanksysteme: Konzepte und Techniken der Implementierung, 2. Auflage , 2001 .

[3]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[4]  Erhard Rahm,et al.  Datenbanksysteme: Konzepte und Techniken der Implementierung , 1999 .

[5]  Arthur M. Keller,et al.  A predicate-based caching scheme for client-server database architectures , 1994, Proceedings of 3rd International Conference on Parallel and Distributed Information Systems.

[6]  Mohamed Ziauddin,et al.  Materialized Views in Oracle , 1998, VLDB.

[7]  Udo Nink Anbindung von Entwurfsdatenbanken an objektorientierte Programmiersprachen , 1999 .

[8]  Times-Ten Team Mid-tier caching: the TimesTen approach , 2002, SIGMOD '02.

[9]  Duane Wessels,et al.  Web Caching , 2001 .

[10]  Jonathan Goldstein,et al.  Optimizing queries using materialized views: a practical, scalable solution , 2001, SIGMOD '01.

[11]  László Böszörményi,et al.  A survey of Web cache replacement strategies , 2003, CSUR.

[12]  Norbert Ritter,et al.  Workstation/Server-Architekturen für datenbankbasierte Ingenieuranwendungen , 1995, Informatik Forschung und Entwicklung.

[13]  Jonathan Goldstein,et al.  MTCache: Mid-Tier Database Caching for SQL Server , 2004, IEEE Data Eng. Bull..

[14]  Hamid Pirahesh,et al.  Cache Tables: Paving the Way for an Adaptive Database Cache , 2003, VLDB.

[15]  Jonathan Goldstein,et al.  MTCache: transparent mid-tier database caching in SQL server , 2004, Proceedings. 20th International Conference on Data Engineering.

[16]  Divesh Srivastava,et al.  Semantic Data Caching and Replacement , 1996, VLDB.