Adaptability and Caching in Component-Based System Environment
[pic 1]
AdaptCache: Adaptive Data Partitioning for
Distributed Object Caches
Omar Asad
School of Computer Science
McGill University
Montreal, Canada
oasad@cs.mcgill.ca
Supervised By: Bettina Kemme
Abstract—This paper presents AdaptCache, an adaptive data
management system for key-value cache stores. AdaptCache is a lightweight library that is capable of receiving live workload information from different caches and, based on predefined caching solutions, generate policies to rearrange client requests as well as their respective objects among caches in a way that minimizes remote cache calls and maintain a balanced load. The paper also motivates the need of dynamic caching by conducting real-world workload pattern extraction experiments. These experiments
show that individual requests tend to change their associated data sets over time which requires our caching solution to be adaptive.
Fig. 1: AdaptCache architecture
AdaptCache deals with this dynamic workload nature by running the hosted caching solution in a predefined time interval and, as a result, produces new policies to rearrange data among caches.
in the cluster. The ObjectPolicy tells the individual caches To circumvent the negative impact of data migration triggered by which objects they should cache locally. Both policies are
new policies, AdaptCache framework is optimized to reduce the generated dynamically by observing the most recent requests, number of migrated objects. AdaptCache is further optimized and looking at which objects they access. In general, the goal by reducing partitioning time through eliminating requests and objects that have little impact on performance when considering of the generated policies is to assign a request to the server them. In addition, the paper explores various caching solutions that has most of the objects that are accessed by the request and compares them with each other to have clear understanding in its local cache.
of their usefulnesses as well as drawbacks.
In order to generate policies, AdaptCache needs to observe
I. ADAPTCACHE ARCHITECTURE
workload behaviour. Therefore, at each application server,
In this work, we utilize Integrated Cooperative Cache, ICC.
AdaptCache runs a log generator. The log generator observes ICC is an extension to the legacy multi-tier architecture where the requests that are received by the application server and gen-each of the application server instances has its own local cache erates a request log for each of them. Additionally, it observes and, at the same time, all of these local caches communicate which objects are accessed and generates an object log for
with each other to form a kind of global cache. Each local
each object accessed. The log generator monitors these actions caches has a copy of a replicated directory that maintains
using an interceptor approach that does not require changes to information about different objects in the caches and their or knowledge of the application or application server code. As respective locations. To enable ICC to have control over
soon as a request is intercepted or an object is fetched at a its different components and give it the ability to configure certain server, the log generator at that server sends these log them in a way that fulfils the ongoing workload needs, we
records to the log processor, a central component that stores extend its architecture by adding the necessary component
the log records in an appropriate format. In particular, the log to suit our AdaptCache solution. Figure 1 shows the general processor stores summary information for requests, such as
architecture containing both the components of AdaptCache
request URL and access frequency. It also stores information as well as the general caching infrastructure. Requests are regarding objects such as object identifier and object access received by a load-balancer which sends them to one of the