Automation of Application-level Caching in a Seamless Way - Empirical Evaluation

This page presents additional results not included in the final version of the paper entitled Automation of Application-level Caching in a Seamless Way, by Jhonny Mertz and Ingrid Nunes. In this paper we introduce an automated caching approach to automatically identify application-level cache content at runtime, by monitoring system execution and adaptively managing caching decisions. Our approach is implemented as a framework that can be seamlessly integrated into new and existing web applications. In addition to the reduction of the effort required from developers to develop a caching solution, an empirical evaluation showed that our approach significantly speedups and improves hit ratios, with improvements ranging from 2.78% to 17.18%.


Universidade Federal do Rio Grande do Sul
Avenida Bento Gonçalves, 9500 - Instituto de Informática
Porto Alegre, Brazil
Jhonny Mertz and Ingrid Nunes
jhonnymertz@gmail.com

Procedure


To evaluate our approach, simulations were performed using three different caching configurations: (i) no application-level caching (NO), (ii) application-level caching manually designed and implemented by developers (DEV); and (iii) our approach (AP). To assess performance, we used three metrics: throughput (number of requests handled per second), hit ratio and the total number of hits, because they are well-known in the context of web applications and cache performance tests. Our simulation emulated client sessions to exercise applications and evaluate decision criteria. Simulations consisted of variations of 1, 5, 10, 25 and 50 simultaneous users constantly navigating through the application, always at a limit of 500 requests per user. Each simulation was repeated ten times, and the mean of each metric was collected. For all the executions of AP, caches were bounded by a cache size and configured with a TTL, which were both specified and used by developers of our target systems (DEV). As the results may be influenced by the cache policy adopted, in addition to our standard technique based on TTL, we also evaluated our approach combined with popular replacement policies, namely least recently used (LRU) or least frequently used (LFU).

Target Systems

Our evaluation was performed with three open-source web applications, presented in table below, which summarizes the general characteristics of each target system.

Project name Domain LOC
Cloud Store e-Commerce based on TPC-W benchmark 7.6K
Pet Clinic Sample application 6.3K
Shopizer E-commerce 111.3K

RQ1. What is the performance improvement provided by our automated caching approach?


Figures below show the throughput obtained for each target application in simulations with different amount of simultaneous users and setups.


Tables below presents the complete results for every combination of our setup.

ABCDEFGHIJKL
1
1 user
2
ApplicationNODEVAP
3
TRTRTR Diff %Hit RatioHit absTRTR Diff %Hit RatioHit Ratio Diff %Hit absHit abs Diff %
4
Cloudstore8.379.139.0800477973.00249688233.99.159.31899641696.6680294432.41742895472.9102.180419
5
petclinic7.067.252.6912181399.442777542327.394.67422096393.18313114-6.294722006322.639.05172414
6
shopizer4.654.864.51612903273.297520661773.85.099.46236559199.9757314336.397153047415.2318.0403653
7
8
5 users
9
ApplicationNODEVAP
10
TRTRTR Diff %Hit RatioHit absTRTR Diff %Hit RatioHit Ratio Diff %Hit absHit abs Diff %
11
Cloudstore22.2822.732.01974865474.250818431179.422.92.78276481197.4239064731.209202172416.6104.900797
12
petclinic7.688.4710.2864583399.58288961122.1917.187592.70460579-6.9070940121606.243.14232243
13
shopizer15.9216.252.07286432273.445833918991.916.966.53266331799.9846871136.1339122735259292.1195743
14
15
10 users
16
ApplicationNODEVAP
17
TRTRTR Diff %Hit RatioHit absTRTR Diff %Hit RatioHit Ratio Diff %Hit absHit abs Diff %
18
Cloudstore28.8429.211.28294036174.921897192374.229.351.76837725497.5672682130.225303787223.1204.2330048
19
petclinic8.388.96.20525059799.598461472356.49.118.71121718494.31672307-5.3030321193232.837.19232728
20
shopizer22.223.646.48648648673.4735795418028.824.5610.6306306399.9841713536.0818024370114.9288.9049743
21
22
25 users
23
ApplicationNODEVAP
24
TRTRTR Diff %Hit RatioHit absTRTR Diff %Hit RatioHit Ratio Diff %Hit absHit abs Diff %
25
Cloudstore30.4230.490.230111768674.734335625900.530.570.493096646997.507236130.4718042918157.7207.7315482
26
petclinic10.4110.753.26609029899.649610875659.510.934.99519692694.21793745-5.4507723347935.640.21733369
27
shopizer26.6127.342.74332957573.4171200544962.728.025.29875986599.9890216736.19305905175781.5290.9496093
28
29
50 users
30
ApplicationNODEVAP
31
TRTRTR Diff %Hit RatioHit absTRTR Diff %Hit RatioHit Ratio Diff %Hit absHit abs Diff %
32
Cloudstore30.4530.50.164203612576.9064493913270.930.590.459770114997.5314349626.8182782336285.4173.4207929
33
petclinic12.2112.925.81490581599.660676131110213.399.66420966494.12025738-5.5592827315271.237.55359395
34
shopizer28.1529.324.15630550673.380158978969030.699.02309058699.986142436.2577348351383.1291.7751143
35
36
37
38
AP - 1 user
39
ApplicationTTL onlyLRULFU
40
TRHit RatioHit absTRHit RatioHit absTRHit RatioHit abs
41
Cloudstore9.1596.66802944472.99.1496.83597002465.29.1496.65709598471.3
42
petclinic7.3993.18313114322.67.3893.43000888315.77.3893.01981662314.5
43
shopizer5.0999.975731437415.25.199.975665817395.25.0999.975399757315.2
44
45
AP - 5 users
46
ApplicationTTL onlyLRULFU
47
TRHit RatioHit absTRHit RatioHit absTRHit RatioHit abs
48
Cloudstore22.997.423906472416.622.8997.425919172403.422.8897.440452162413.6
49
petclinic992.704605791606.29.0192.869231641646.2992.857142861643.2
50
shopizer16.9699.984687113525916.9499.984194073415916.9499.9842411234261
51
52
AP - 10 users
53
ApplicationTTL onlyLRULFU
54
TRHit RatioHit absTRHit RatioHit absTRHit RatioHit abs
55
Cloudstore29.3597.567268217223.129.3397.581124937217.129.3497.579795147221.1
56
petclinic9.1194.316723073232.89.1294.283366593212.89.1194.297757743221.4
57
shopizer24.5699.9841713570114.924.5499.9841938970214.924.5599.9842410170424.9
58
59
AP - 25 users
60
ApplicationTTL onlyLRULFU
61
TRHit RatioHit absTRHit RatioHit absTRHit RatioHit abs
62
Cloudstore30.5797.507236118157.730.5697.5313022518141.730.5497.5239715518114.2
63
petclinic10.9394.217937457935.610.9394.209687777923.610.9394.20417497915.6
64
shopizer28.0299.98902167175781.527.9999.98889533173781.527.9999.98872998171231.5
65
66
AP - 50 users
67
ApplicationTTL onlyLRULFU
68
TRHit RatioHit absTRHit RatioHit absTRHit RatioHit abs
69
Cloudstore30.5997.5314349636285.430.5897.5537111736225.430.5797.5648586636279.2
70
petclinic13.3994.1202573815271.213.3894.0837943115171.213.3894.0727670415141.2
71
shopizer30.6999.9861424351383.130.6799.98573654341383.130.6699.98646778359833.1

RQ2. What are the similarities and differences between decisions made by our automated approach and by developers?


Table below presents the number of caching opportunities that DEV and AP were able to selected.

Number of Cacheable Methods: Our Approach vs. Human-made Decisions.
Application Total DEV AP Intersection DEV Only AP Only
Cloud Store 812 4 8 4 0 4
Pet Clinic 205 1 4 1 0 3
Shopizer 5212 15 22 15 0 7