Handling Overloads with Social Consistency
MetadataShow full item record
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.