On multi-dimensional packing problems
Proceedings of the tenth annual ACM-SIAM symposium on Discrete algorithms
Job scheduling in the presence of multiple resource requirements
SC '99 Proceedings of the 1999 ACM/IEEE conference on Supercomputing
On Multidimensional Packing Problems
SIAM Journal on Computing
Adaptive middleware for data replication
Proceedings of the 5th ACM/IFIP/USENIX international conference on Middleware
Load balancing in dynamic structured peer-to-peer systems
Performance Evaluation - P2P computing systems
An Algorithm for Finding Nearest Neighbors
IEEE Transactions on Computers
Hot Spot Prediction Algorithm for Shared Web Caching System Using NN
ISITC '07 Proceedings of the 2007 International Symposium on Information Technology Convergence
Market-Based Load Balancing for Distributed Heterogeneous Multi-Resource Servers
ICPADS '09 Proceedings of the 2009 15th International Conference on Parallel and Distributed Systems
A load balancing framework for clustered storage systems
HiPC'08 Proceedings of the 15th international conference on High performance computing
Elastic SI-Cache: consistent and scalable caching in multi-tier architectures
The VLDB Journal — The International Journal on Very Large Data Bases
Vector bin packing with multiple-choice
SWAT'10 Proceedings of the 12th Scandinavian conference on Algorithm Theory
Scalable load balancing in cluster storage systems
Middleware'11 Proceedings of the 12th ACM/IFIP/USENIX international conference on Middleware
StreamCloud: An Elastic and Scalable Data Streaming System
IEEE Transactions on Parallel and Distributed Systems
Hi-index | 0.00 |
With the advent of cloud computing model, distributed caches have become the cornerstone for building scalable applications. Popular systems like Facebook [1] or Twitter use Memcached [5], a highly scalable distributed object cache, to speed up applications by avoiding database accesses. Distributed object caches assign objects to cache instances based on a hashing function, and objects are not moved from a cache instance to another unless more instances are added to the cache and objects are redistributed. This may lead to situations where some cache instances are overloaded when some of the objects they store are frequently accessed, while other cache instances are less frequently used. In this paper we propose a multi-resource load balancing algorithm for distributed cache systems. The algorithm aims at balancing both CPU and Memory resources among cache instances by redistributing stored data. Considering the possible conflict of balancing multiple resources at the same time, we give CPU and Memory resources weighted priorities based on the runtime load distributions. A scarcer resource is given a higher weight than a less scarce resource when load balancing. The system imbalance degree is evaluated based on monitoring information, and the utility load of a node, a unit for resource consumption. Besides, since continuous rebalance of the system may affect the QoS of applications utilizing the cache system, our data selection policy ensures that each data migration minimizes the system imbalance degree and hence, the total reconfiguration cost can be minimized. An extensive simulation is conducted to compare our policy with other policies. Our policy shows a significant improvement in time efficiency and decrease in reconfiguration cost.