Handling Overloads with Social Consistency
Abstract
Cloud computing applications have dynamic workloads, and they often observe spikes in the
incoming traffic which might result in system overloads. System overloads are generally handled by
various load balancing techniques like replication and data partitioning. These techniques are
effective when the incoming bursty traffic is dominated by reads and writes to partitionable data,
but they become futile against bursts of writes to a single hot object. Further, the systems which use
these load balancing techniques, to provide good performance, often adopt a variant of eventual
consistency and do not provide strong guarantees to applications, and programmers. In this work,
we propose a new client based consistency model, called social consistency, as a solution to this
single object overload problem. Along with handling overloads, the proposed model also provides a
stronger set of guarantees within subsets of nodes (socially related), and provides eventual
consistency across different subsets. We argue that by using this approach, we can in practice ensure
reasonably good consistency among the clients and a concomitant increase in performance.
We further describe the design of a prototype system, BLAST, which implements this model. It
dynamically adjusts resource utilisation in response to changes in the workload thus ensuring nearly
constant latency, and throughput, which scales with the offered load. In particular, the workload
spikes for a single hot object are handled by cloning the object and partitioning the clients
according to their social connectivity, binding the partitions to different clones, where each partition
has a unique view of the object. The clones and the client partitions are recombined when the spike
subsides. We compare the performance of BLAST to Cassandra database system, and our
experiments show that BLAST handles 1.6X (by performing one split) and 2.4X (by performing
three splits) more workload. We also evaluate BLAST against another load balancing system and
show that BLAST provides 37% better Quality of Experience (QoE) to the clients.