Det är viktigare än någonsin att optimera svarstiden för databasförfrågningar då internettrafiken ökar och storleken på data växer. IT-företag har också blivit mer medvetna om vikten av att snabbt leverera innehåll till slutanvändaren på grund av hur långsammare svarstider kan påverka kvalitetsuppfattningen på en produkt/ett system. Detta kan i sin tur leda till en negativ påverkan på ett företags intäkter. I det här arbetet utvecklar och implementerar vi en ny dynamisk cachelösning på applikationssidan av systemet och testar den mot väletablerade cachestrategier. Vi undersökte kända cache-strategier och relaterad forskning som tar hänsyn till den aktuella databasbelastningen så som historisk frekvens för en specifik databasförfrågan och tillämpade detta i vår algoritm. Vi utvecklade från detta en dynamisk cachepolicy som använder en logaritmisk beräkning som involverar den historiska frekvensen tillsammans med en databasförfrågans svarstid och beräknade en vikt för en viss databasförfrågan. Vikten ger sedan prioritet i förhållande till andra databasförfrågningar som är cachade. Vi kan här påvisa en prestandahöjning på 11-12% mot LRU, en prestandahöjning på 15% mot FIFO och en väsentlig prestandahöjning mot att använda databasen direkt med både MySQL-cache aktiverad och inaktiverad.
With IP traffic and data sets continuously growing together with IT companies becoming more and more dependent on large data sets, it is more important than ever to optimize the load time of queries. IT companies have also become more aware of the importance of delivering content quickly to the end user because of how slower response times can affect quality perception which in turn can have a negative impact on revenue. In this paper, we develop and implement a new dynamic cache management system with the cache on the application side of the system and test it against well-established caching policies. By looking at known caching strategies and research that takes the current database load into account with attributes such as a queries frequency and incorporating this into our algorithm, we developed a dynamic caching policy that utilizes a logarithmic calculation involving historical query frequency together with query response time to calculate a weight for a specific query. The weight gives priority in relation to other queries residing within the cache, which shows a performance increase towards existing caching policies. The results show that we have a 11-12 % performance increase towards LRU, a 15 % performance increase towards FIFO and a substantial performance increase towards using the database directly with both MySQL caching enabled and disabled.