@phdthesis{Jurk2005, author = {Jurk, Steffen}, title = {A Simultaneous Execution Scheme for Database Caching}, url = {http://nbn-resolving.de/urn:nbn:de:kobv:co1-opus-228}, school = {BTU Cottbus - Senftenberg}, year = {2005}, abstract = {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 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.}, subject = {Datenbankentwurf; Zugriff; Simultaneous Engineering; Datenbank-Cache-Technik; Datenbankoptimierung; Zwillingstransaktion; Database caching; Database optimization; Twin transactions; Simultaneous execution; Stored procedures}, language = {en} }