FairPlay: Services Migration with Lock-free Mechanisms for Load Balancing in
Cloud Architectures
Chao Wang
1
, Jinhong Zhou
1
, Xi Li
1
, Aili Wang
2
, and Xuehai Zhou
1
1
School of Computer Science, University of Science and Technology of China
2
School of Software Engineering, University of Science and Technology of China
cswang,llxx,wangal,xhzhou@ustc.edu.cn, zjh@mail.ustc.edu.cn
Abstract— During past few years, how to achieve load balance
using efficient software on cloud architecture is posing signifi-
cant challenges to the research community. Due to the access
conflictions among the shared hardware resources like distrib-
uted file systems and database transactions, creditable
measures like mutex based locks, semaphore schemes, and
global run queues have been widely applied. However, growing
with the data scale and integration of multiprocessors in the
cloud computing environment, each processor has to obtain the
global lock of the system run queue, which brings inevitable
burden for the runtime support. In this paper, we propose a
novel lock free structure, named FairPlay, which is able to
support service migration through duplex buffers between
processors. Based on the buffer based structure, a load balance
scheduling algorithm is presented to handle the service alloca-
tion asynchronously. Experimental results on the modified
Linux operating system kernel demonstrate that the lock free
mechanism could efficiently reduce the overheads on the locks
with great scalability and affordable overheads.
Keywords- Services-oriented architecture; Lock free
structure; Service migration; operating system; load balance
scheduling.
I. INTRODUCTION
During the past decades, cloud computing paradigms us-
ing services-oriented concepts have pervaded the computer
architecture and system, especially facing the emergence of
big data [1]. As we expand the use of computing devices,
capabilities beyond raw performance such as execution time
and throughput are becoming major metrics. In order to
make efficient use of the distributed systems [2], it is widely
accepted that the load balance is playing a key role to im-
prove the system throughput as well as to accelerate a specif-
ic service [3], to achieve satisfying performance with cred-
itable flexibility for diverse application fields [4].
However, in the meantime of enjoying the benefits
brought by the cloud computing architecture and services-
oriented technologies, state-of-the-art multicore research
community is still suffering from the significant overheads
brought by the locks. Although each processor has to its own
service queue, it must acquire the global lock in prior to ac-
cess the shared hardware resources, which may results in the
bottleneck of the system.
To tackle the above problem, per-cpu run queue scheme
has been widely used in operating system kernel schedulers.
Recently, in CFS scheduler employed in Linux operating
system kernels, it has to run load balance thread occasionally
at run time, which could maintain the fairness between the
running threads in local queue. In particular, the load balance
thread offloads some threads from the run queue in busy
processor to idle ones, thereby to improve the system per-
formance.
However, in order to ensure the correctness of the appli-
cation, the CFS load balance thread must obtain the locks
from other processors [5]. The situation will dramatically
drag down the parallelism of the multiple queues, which re-
sults a significant footprint. For instance, multiple processors
may require the locks from one destination processor at the
same time. Therefore the overheads will be inevitable, i.e.
only one processor is able to continue the load balance trans-
action, while the other processors has to wait until the desti-
nation is available again.
Another challenge is diversity and programming in ser-
vices-oriented architectures [6]. Due to the design complexi-
ty of the novel big data applications and architectures, it re-
quires significant programming effort to make satisfying
utilization of the accelerations in diverse application domains.
If the complex computation is solved by the programmer
manually, the quality of scheduling depends on the experi-
ences of the programmer, who has limited knowledge of the
hardware. In order to alleviate the burden of the high level
programmers, we can demonstrate the effectiveness of ser-
vices-oriented architecture (SOA) [7] in the novel big data
research paradigm. However, due to the increasing amount
of data-intensive applications, how to efficiently schedule the
services in the cloud computing systems is a tricky problem,
especially with load balance considerations.
To address the above challenges, this paper proposes
FairPlay, which is a novel load balance mechanism based on
asynchronous buffers in the web service manner. FairPlay
could migrate the threads among the processors without ac-
quiring the run queue of the processors. In particular, we
claim following contributions:
(1) Lock free duplex architecture: FairPlay realizes a
novel duplex buffer based architecture, which brings asyn-
chronous and structural communication principle between
the busy and idle processors.
2016 IEEE International Conference on Web Services
978-1-5090-2675-3/16 $31.00 © 2016 IEEE
DOI 10.1109/ICWS.2016.29
163
2016 IEEE International Conference on Web Services
978-1-5090-2675-3/16 $31.00 © 2016 IEEE
DOI 10.1109/ICWS.2016.29
163