AdaptCache: Adaptive Data Partitioning and Migration for Distributed Object Caches

Caching is an important aspect of today's web enterprise systems, enhancing performance and reducing access frequency to the backend storage server. However, when implemented as an independent component, such as when using Memcached, access to the remote cache can lead to considerable overhead and delay. Instead, in this paper we propose a cooperative and integrated cache framework where each application server has its own local cache but can also access the caches of other servers. Our solution dynamically distributes objects across caches and requests across servers such that the load is equally distributed across servers and servers find the objects they need for request execution in their local cache most of the time. The challenge is to handle the complex workloads of current e-commerce sites where requests can access more than one object and change the object set they access over time, and different request types access overlapping sets of objects. As such, we look at a whole range of distribution mechanisms and analyze their behavior in detail. We evaluated the various alternatives using the YCSB and RUBiS benchmarks, showing that our approach is applicable in different dynamic workload scenarios and is able to autonomously capture workload changes and adapt instantly.

[1]  Carlo Curino,et al.  Schism , 2010, Proc. VLDB Endow..

[2]  Dhabaleswar K. Panda,et al.  Scalable Memcached Design for InfiniBand Clusters Using Hybrid Transports , 2012, 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (ccgrid 2012).

[3]  Carlo Curino,et al.  Skew-aware automatic database partitioning in shared-nothing, parallel OLTP systems , 2012, SIGMOD Conference.

[4]  Wei Lin,et al.  Microsoft Bing Peking University , 2022 .

[5]  Erich M. Nahum,et al.  Locality-aware request distribution in cluster-based network servers , 1998, ASPLOS VIII.

[6]  Prashant J. Shenoy,et al.  ShuttleDB: Database-Aware Elasticity in the Cloud , 2014, ICAC.

[7]  Anastasia Ailamaki,et al.  ATraPos: Adaptive transaction processing on hardware Islands , 2014, 2014 IEEE 30th International Conference on Data Engineering.

[8]  Beng Chin Ooi,et al.  In-Memory Big Data Management and Processing: A Survey , 2015, IEEE Transactions on Knowledge and Data Engineering.

[9]  João Paulo,et al.  MeT: workload aware elasticity for NoSQL , 2013, EuroSys '13.

[10]  Yingwei Luo,et al.  LAMA: Optimized Locality-aware Memory Allocation for Key-value Cache , 2015, USENIX Annual Technical Conference.

[11]  Ricardo Jiménez-Peris,et al.  A multi-resource load balancing algorithm for cloud cache systems , 2013, SAC '13.

[12]  Robbert van Renesse,et al.  Characterizing Load Imbalance in Real-World Networked Caches , 2014, HotNets.

[13]  David R. Karger,et al.  Chord: A scalable peer-to-peer lookup service for internet applications , 2001, SIGCOMM '01.

[14]  Ippokratis Pandis,et al.  NUMA-aware algorithms: the case of data shuffling , 2013, CIDR.

[15]  Sameh Elnikety,et al.  Tashkent+: memory-aware load balancing and update filtering in replicated databases , 2007, EuroSys '07.

[16]  Indranil Gupta,et al.  Morphus: Supporting Online Reconfigurations in Sharded NoSQL Systems , 2015, IEEE Transactions on Emerging Topics in Computing.

[17]  George Karypis,et al.  Multilevel k-way Partitioning Scheme for Irregular Graphs , 1998, J. Parallel Distributed Comput..

[18]  Michael Stonebraker,et al.  E-Store: Fine-Grained Elastic Partitioning for Distributed Transaction Processing , 2014, Proc. VLDB Endow..

[19]  Divyakant Agrawal,et al.  Squall: Fine-Grained Live Reconfiguration for Partitioned Main Memory Databases , 2015, SIGMOD Conference.

[20]  Timothy Wood,et al.  Adaptive Performance-Aware Distributed Memory Caching , 2013, ICAC.

[21]  Divyakant Agrawal,et al.  Albatross: Lightweight Elasticity in Shared Storage Databases for the Cloud using Live Data Migration , 2011, Proc. VLDB Endow..

[22]  Indranil Gupta,et al.  Parqua: Online Reconfigurations in Virtual Ring-Based NoSQL Systems , 2015, 2015 International Conference on Cloud and Autonomic Computing.

[23]  Divyakant Agrawal,et al.  Zephyr: live migration in shared nothing databases for elastic cloud platforms , 2011, SIGMOD '11.

[24]  Song Jiang,et al.  Workload analysis of a large-scale key-value store , 2012, SIGMETRICS '12.

[25]  Samir Khuller,et al.  SWORD: workload-aware data placement and replica selection for cloud data management systems , 2014, The VLDB Journal.

[26]  Abdul Quamar,et al.  SWORD: scalable workload-aware data placement for transactional workloads , 2013, EDBT '13.

[27]  Luís E. T. Rodrigues,et al.  AutoPlacer: Scalable Self-Tuning Data Placement in Distributed Key-Value Stores , 2015, TAAS.

[28]  Christoph Lameter,et al.  NUMA (Non-Uniform Memory Access): An Overview , 2013, ACM Queue.

[29]  Emin Gün Sirer,et al.  HyperDex: a distributed, searchable key-value store , 2012, SIGCOMM '12.

[30]  Adam Silberstein,et al.  Benchmarking cloud serving systems with YCSB , 2010, SoCC '10.