Providing Enhanced Functionality for Data Store Clients

Data stores are typically accessed using a clientserver paradigm wherein the client runs as part of an application process which is trying to access the data store. This paper presents the design and implementation of enhanced data store clients having the capability of caching data for reducing the latency for data accesses, encryption for providing confidentiality before sending data to the server, and compression for reducing the size of data sent to the server. We support multiple approaches for caching data as well as multiple different types of caches. We also present a Universal Data Store Manager (UDSM) which allows an application to access multiple different data stores and provides a common interface to each data store. The UDSM provides both synchronous and asynchronous interfaces to each data store that it supports. An asynchronous interface allows an application program to access a data store and continue execution before receiving a response from the data store. The UDSM also can monitor the performance of different data stores. A workload generator allows users to easily determine and compare the performance of different data stores. The paper examines the key design issues in developing both the enhanced data store clients and the UDSM. It also looks at important issues in implementing client-side caching. The enhanced data store clients and UDSM are used to determine the performance of different data stores and to quantify the performance gains that can be achieved via caching.

[1]  Arun Iyengar,et al.  Improving Web Server Performance by Caching Dynamic Data , 1997, USENIX Symposium on Internet Technologies and Systems.

[2]  Richard M. Karp,et al.  Efficient Randomized Pattern-Matching Algorithms , 1987, IBM J. Res. Dev..

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

[4]  William Stallings,et al.  THE ADVANCED ENCRYPTION STANDARD , 2002, Cryptologia.

[5]  Ben Y. Zhao,et al.  Efficient Batched Synchronization in Dropbox-Like Cloud Storage Services , 2013, Middleware.

[6]  Aiko Pras,et al.  Benchmarking personal cloud storage , 2013, Internet Measurement Conference.

[7]  Hjörtur Björnsson,et al.  Dynamic performance profiling of cloud caches , 2013, SoCC.

[8]  Raúl Gracia Tinedo,et al.  Actively Measuring Personal Cloud Storage , 2013, 2013 IEEE Sixth International Conference on Cloud Computing.

[9]  Brad Fitzpatrick,et al.  Distributed caching with memcached , 2004 .

[10]  Yunhao Liu,et al.  Towards Network-level Efficiency for Cloud Storage Services , 2014, Internet Measurement Conference.

[11]  Pietro Michiardi,et al.  Memory partitioning in Memcached: An experimental performance analysis , 2014, 2014 IEEE International Conference on Communications (ICC).

[12]  Arun Iyengar,et al.  Design and performance of a general-purpose software cache , 1999, 1999 IEEE International Performance, Computing and Communications Conference (Cat. No.99CH36305).

[13]  Tony Tung,et al.  Scaling Memcache at Facebook , 2013, NSDI.

[14]  Sandy Irani,et al.  Cost-Aware WWW Proxy Caching Algorithms , 1997, USENIX Symposium on Internet Technologies and Systems.

[15]  Bin Fan,et al.  MemC3: Compact and Concurrent MemCache with Dumber Caching and Smarter Hashing , 2013, NSDI.

[16]  Fred Douglis,et al.  USENIX Association Proceedings of the General Track : 2003 USENIX Annual , 2003 .

[17]  Aiko Pras,et al.  Inside dropbox: understanding personal cloud storage services , 2012, Internet Measurement Conference.

[18]  Jim Challenger,et al.  Distributed Cache Manager and API , 2010 .

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

[20]  Dhabaleswar K. Panda,et al.  SSD-Assisted Hybrid Memory to Accelerate Memcached over High Performance Networks , 2012, 2012 41st International Conference on Parallel Processing.

[21]  Sachin Katti,et al.  Cliffhanger: Scaling Performance Cliffs in Web Memory Caches , 2016, NSDI.