A Simultaneous Execution Scheme for Database Caching

Ein Simultan-Ausführungsschema für Datenbank-Cache-Verfahren

  • Database caching techniques promise to improve the performance and scalability of client-server database applications. The task of a cache is to accept requests of clients and to compute them locally on behalf of the server. The content of a cache is filled dynamically based on the application and users' data domain of interest. If data is missing or concurrent access has to be controlled, the computation of the request is completed at the central server. As a result, applications benefit from quick responses of a cache and load is taken from the server. The dynamic nature of a cache, the need of transactional consistency, and the complex nature of a request make database caching a challenging field of research. This thesis presents a novel approach to the shared and parallel execution of stored procedure code between a cache and the server. Every commercial database product provides such stored procedures that are coded in a complete programming language. Given a request in form of such a procedure, we introduce the concept of splitDatabase caching techniques promise to improve the performance and scalability of client-server database applications. The task of a cache is to accept requests of clients and to compute them locally on behalf of the server. The content of a cache is filled dynamically based on the application and users' data domain of interest. If data is missing or concurrent access has to be controlled, the computation of the request is completed at the central server. As a result, applications benefit from quick responses of a cache and load is taken from the server. The dynamic nature of a cache, the need of transactional consistency, and the complex nature of a request make database caching a challenging field of research. This thesis presents a novel approach to the shared and parallel execution of stored procedure code between a cache and the server. Every commercial database product provides such stored procedures that are coded in a complete programming language. Given a request in form of such a procedure, we introduce the concept of split twin transactions that logically split the procedure code into two parts, say A and B, such that A is executed at the cache and B at the server in a simultaneous and parallel manner. Furthermore, we analyse the procedure code to detect suitable parts. To the best of our knowledge, this has not yet been addressed by any existing approaches. Within a detailed case study, we show that our novel scheme improves the performance of existing caching approaches. Furthermore, we demonstrate that different load conditions of the system require different sizes of the parts A and B to gain maximal performance. As a result, we extend database caching by a new dimension of optimization, namely by splitting of the procedure code into A and B. To solve this problem of dynamically balancing the code execution between cache and server, we define the maximum performance of a database cache over time and propose a stochastic model to capture the average execution time of a procedure. Based on the execution frequencies of primitive database operations, the model allows us to partially predict the response times for different sizes of A and B, hence providing a partial solution to the optimization problem.show moreshow less
  • Datenbank-Cache-Techniken versprechen eine Verbesserung von Client-Server-Anwendungen hinsichtlich Performance und Skalierbarkeit. Anfragen werden direkt an den Cache geleitet und mit Hilfe lokal gespeicherter Daten ausgeführt. Der Cache-Inhalt wird dabei dynamisch entsprechend dem Verhalten von Anwendungen und Benutzern gefüllt. Fehlen dem Cache Daten oder erfordert die Ausführung der Anfrage die Prüfung transaktionaler Konsistenz, wird die Anfrage vom Server vervollständigt. Anwendungen profitieren von schnellen Antworten des Caches und der Entlastung des Servers. Das dynamische Umfeld, die transaktionale Konsistenz und die Komplexität der Anfragen bilden zusammen einen interessanten Forschungsbereich für Effizienzsteigerung von Client-Server-Systemen. In der vorliegenden Arbeit wird eine neue Technik zur geteilten und parallelen Ausführung von Prozeduren aufgezeigt. Nahezu jedes kommerzielle Datenbanksystem bietet heutzutage derartige Prozeduren, die in einer vollständigen Programmiersprache implementiert sind und auf der Ebene desDatenbank-Cache-Techniken versprechen eine Verbesserung von Client-Server-Anwendungen hinsichtlich Performance und Skalierbarkeit. Anfragen werden direkt an den Cache geleitet und mit Hilfe lokal gespeicherter Daten ausgeführt. Der Cache-Inhalt wird dabei dynamisch entsprechend dem Verhalten von Anwendungen und Benutzern gefüllt. Fehlen dem Cache Daten oder erfordert die Ausführung der Anfrage die Prüfung transaktionaler Konsistenz, wird die Anfrage vom Server vervollständigt. Anwendungen profitieren von schnellen Antworten des Caches und der Entlastung des Servers. Das dynamische Umfeld, die transaktionale Konsistenz und die Komplexität der Anfragen bilden zusammen einen interessanten Forschungsbereich für Effizienzsteigerung von Client-Server-Systemen. In der vorliegenden Arbeit wird eine neue Technik zur geteilten und parallelen Ausführung von Prozeduren aufgezeigt. Nahezu jedes kommerzielle Datenbanksystem bietet heutzutage derartige Prozeduren, die in einer vollständigen Programmiersprache implementiert sind und auf der Ebene des Datenbanksystems ausgeführt werden. Als Erweiterung für Prozeduren werden Geteilte Zwillingstransaktionen vorgestellt, die den Code logisch in zwei Teile A und B teilen, so dass A vom Cache und B vom Server zeitgleich ausgeführt werden. Mögliche Teilungen des Codes werden vorweg durch eine Code-Analyse ermittelt. Entsprechend meinen Erkenntnissen wurde dieses Problem bisher von keiner der existierenden Techniken betrachtet. In einer detaillierten Fallstudie wird die verbesserte Performance der hier dargestellten Methoden aufgezeigt. Weiterhin wird gezeigt, dass verschiedene Lastbedingungen eine unterschiedliche Dimensionierung der Teile A und B zum Erreichen der maximalen Performance erfordern. Somit eröffnet die richtige Wahl von A und B eine neue Dimension zur Optimierung von Datenbank-Cache-Techniken. Um das Problem des dynamischen Ausbalancierens der Code-Ausführung auf einem Cache sowie dem Server zu lösen, wird die zeitabhängige maximale Cache-Performance und ein stochastisches Modell zur Erfassung der durchschnittlichen Ausführungszeit von Prozeduren definiert. Basierend auf Ausführungshäufigkeiten von elementaren Datenbankoperationen ermöglicht das Modell die partielle Vorhersage von Antwortzeiten für verschiedene Dimensionierungen von A und B. Somit wird eine partielle Lösung des Optimierungsproblems erreicht.show moreshow less

Download full text files

Export metadata

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author: Jurk, Steffen
URN:urn:nbn:de:kobv:co1-opus-228
Referee / Advisor:Prof. Dr. Thalheim, Bernhard
Document Type:Doctoral Thesis
Language:English
Year of Completion:2005
Date of final exam:2005/12/12
Release Date:2006/09/27
Tag:Datenbank-Cache-Technik; Datenbankoptimierung; Zwillingstransaktion
Database caching; Database optimization; Simultaneous execution; Stored procedures; Twin transactions
GND Keyword:Datenbankentwurf; Simultaneous Engineering; Zugriff
Institutes:Fakultät 1 MINT - Mathematik, Informatik, Physik, Elektro- und Informationstechnik / FG Datenbanken und Informationssysteme
Institution name at the time of publication:Fakultät für Mathematik, Naturwissenschaften und Informatik (eBTU) / LS Datenbank- und Informationssysteme