Elasticity Controller for Cloud-Based Key-Value
Stores
Ala Arman, Ahmad Al-Shishtawy, and Vladimir Vlassov
KTH Royal Institute of Technology, Stockholm, Sweden
{aarman, ahmadas, vladv}@kth.se
Abstract—Clouds provide an illusion of an infinite amount of
resources and enable elastic services and applications that are
capable to scale up and down (grow and shrink by requesting and
releasing resources) in response to changes in its environment,
workload, and Quality of Service (QoS) requirements. Elasticity
allows to achieve required QoS at a minimal cost in a Cloud
environment with its pay-as-you-go pricing model.
In this paper, we present our experience in designing a
feedback elastically controller for a key-value store. The goal
of our research is to investigate the feasibility of the control
theoretic approach to the automation of elasticity of Cloud-based
key-value stores. We describe design steps necessary to build a
feedback controller for a real system, namely Voldemort, which
we use as a case study in this work. The design steps include
defining touchpoints (sensors and actuators), system identifica-
tion, and controller design. We have designed, developed, and
implemented a prototype of the feedback elasticity controller for
Voldemort. Our initial evaluation results show the feasibility of
using feedback control to automate elasticity of distributed key-
value stores.
Keywords-Cloud Computing; Elasticity; Feedback Control;
Key-Value Store; Voldemort.
I. I NTRODUCTION
Cloud computing is leveraged by various IT companies
and organizations. A Cloud is an infrastructure that provides
resources, information and services as a utility over the In-
ternet [1]. In recent years, Cloud storage, such as Amazon
S3, has become rather popular and widely used in many
different application domains, including Web 2.0 and mobile
applications.
There are several features defined for Cloud computing
such as scalability and elasticity that can be leveraged when
developing Cloud-based applications. There are two main ad-
vantages of Cloud computing over other large scale computing
alternatives. The first one is that the end-user does not need to
be involved in the configuration and maintenance of the Cloud.
A developer does not have to buy servers, security solutions,
etc, and set them up; rather, the developer builds applications
on Cloud resources [2] of a Cloud provider. The second advan-
tage and probably the most important one, is that the end-user
only pays for resources the developer requests and uses. That
is why the Cloud computing approach is less expensive than
its alternatives. However, this property, called “pay-as-you-go”
has an important drawback. If allocated resources exceed the
required amount, it will incur a waste of money. On the other
hand, if the obtained resources are not adequate, the system
might not meet the Service Level Objectives (SLOs), resulting
in a negative impact on its performance and, as a consequence,
negative impact on user experience with the system.
Considering these issues, the concept of elasticity comes
to the attention of many Cloud users. There is a difference
between elasticity and scalability. In the context of this work,
scalability means the expansion capacity of the system, which
is expected to be reached in the future. This approach has a
very important drawback, which is that the ultimate size of the
system should be specified in advance. There is a contradiction
between this concept and the “pay-as-you-go” property of
Cloud computing, because in this approach the end-user should
pay for the ultimate size of the system which might never be
fully utilized. Another disadvantage is, as scaling up means
adding more physical resources; it might be not easy to scale
down by removing them.
To deal with these problems, a new approach, called Elastic-
ity, has become favorite in recent years. In this approach, the
final size of the system is not predefined. But an elastic system
is capable of scaling up and down (growing and shrinking by
requesting and releasing resources) at runtime in response to
changes in its environment, workload, and Quality of Service
(QoS) requirements. In the case of increasing the load, a new
instance is added to meet SLOs; whereas, if the load decreases,
a number of instances are removed from the system in order to
reduce the cost. In order to effectively and efficiently utilize the
elasticity property of the system, the elasticity control should
be automated.
In this paper, we present our experience in designing an
elasticity controller for a key-value store. The goal of our
research is to investigate the feasibility of a control theoretic
approach to automation of elasticity of a Cloud-based storage
by performing all design steps necessary to build a feedback
controller for a real system, namely Voldemort [3], [4], used
as a case study. The design steps include defining touchpoints
(sensors and actuators), system identification, and controller
design. We have designed and developed a prototype of the
feedback elasticity controller for Voldemort.
There has been several related works in the area of the
automation of elasticity Cloud-based storage services such
as [5]–[7]. For example, in [5], the SLO is specified as a
requirement on the average response time. The system variable
monitored and used in feedback control is the CPU utilization,
because, as shown by the authors, the CPU utilization (which
2012 IEEE 18th International Conference on Parallel and Distributed Systems
1521-9097/12 $26.00 © 2012 IEEE
DOI 10.1109/ICPADS.2012.45
268
2012 IEEE 18th International Conference on Parallel and Distributed Systems
1521-9097/12 $26.00 © 2012 IEEE
DOI 10.1109/ICPADS.2012.45
268
2012 IEEE 18th International Conference on Parallel and Distributed Systems
1521-9097/12 $26.00 © 2012 IEEE
DOI 10.1109/ICPADS.2012.45
268