Journal Home > Volume 20 , Issue 6

Large-scale key-value stores are widely used in many Web-based systems to store huge amount of data as (key, value) pairs. In order to reduce the latency of accessing such (key, value) pairs, an in-memory cache system is usually deployed between the front-end Web system and the back-end database system. In practice, a cache system may consist of a number of server nodes, and fault tolerance is a critical feature to maintain the latency Service-Level Agreements (SLAs). In this paper, we present the design, implementation, analysis, and evaluation of R-Memcached, a reliable in-memory key-value cache system that is built on top of the popular Memcached software. R-Memcached exploits coding techniques to achieve reliability, and can tolerate up to two node failures. Our experimental results show that R-Memcached can maintain very good latency and throughput performance even during the period of node failures.


menu
Abstract
Full text
Outline
About this article

R-Memcached: A Reliable In-Memory Cache for Big Key-Value Stores

Show Author's information Chengjian LiuKai OuyangXiaowen Chu( )Hai LiuYui-Wing Leung
Department of Computer Science, Hong Kong Baptist University, Hong Kong, China.
Institute of Research and Continuing Education, Hong Kong Baptist University, Shenzhen 518057, China.

Abstract

Large-scale key-value stores are widely used in many Web-based systems to store huge amount of data as (key, value) pairs. In order to reduce the latency of accessing such (key, value) pairs, an in-memory cache system is usually deployed between the front-end Web system and the back-end database system. In practice, a cache system may consist of a number of server nodes, and fault tolerance is a critical feature to maintain the latency Service-Level Agreements (SLAs). In this paper, we present the design, implementation, analysis, and evaluation of R-Memcached, a reliable in-memory key-value cache system that is built on top of the popular Memcached software. R-Memcached exploits coding techniques to achieve reliability, and can tolerate up to two node failures. Our experimental results show that R-Memcached can maintain very good latency and throughput performance even during the period of node failures.

Keywords: fault tolerance, in-memory cache, key-value store

References(18)

[1]
Fitzpatrick B., Distributed caching with Memcached, Linux Journal, vol. 2004, no. 124, p. 5, 2004.
[2]
Nishtala R., Fugal H., Grimm S., Kwiatkowski M., Lee H., Li H. C., McElroy R., Paleczny M., Peek D., Saab P.et al, Scaling memcache at facebook, NSDI, 2013, pp. 385–398.
[3]
Morgan T. P., Facebook opens up tools to scale Memcached, http://www.enterprisetech.com/2014/09/15/facebook-opens-tools-scale-memcached/, 2014.
[4]
Tanenbaum A., Van Steen M., Distributed Systems. Pearson Prentice Hall, 2007.
[5]
Chen P. M., Lee E. K., Gibson G. A., Katz R. H., Patterson D. A., RAID: High-performance, reliable secondary storage, ACM Computing Surveys (CSUR), vol. 26, no. 2, pp. 145–185, 1994.
[6]
Karger D., Sherman A., Berkheimer A., Bogstad B., Dhanidina R., Iwamoto K., Kim B., Matkins L., Yerushalmi Y., Web caching with consistent hashing, Computer Networks, vol. 31, no. 11, pp. 1203–1213, 1999.
[7]
Armbrust M., Fox A., Griffith R., Joseph A. D., Katz R., Konwinski A., Lee G., Patterson D., Rabkin A., Stoica I.et al, A view of cloud computing, Communications of the ACM, vol. 53, no. 4, pp. 50–58, 2010.
[8]
Na B., Zhang Y., Liu L., Liu P., TSHOVER: A novel coding scheme for tolerating triple disk failures in RAID/DRAID, Tsinghua Science and Technology, vol. 12, no. S1, pp. 39–44, 2007.
[9]
Liu F., Shen S., Li B., Li B., Jin H., Cinematic-quality VoD in a P2P storage cloud: Design, implementation and measurements, IEEE Journal on Selected Areas in Communications, vol. 31, no. 9, pp. 214–226, 2013.
[10]
Liu F., Sun Y., Li B., Li B., Zhang X., FS2You: Peer-assisted semi-persistent online hosting at a large scale, IEEE Transactions on Parallel and Distributed Systems, vol. 21, no. 10, pp. 1442–1457, 2010.
[11]
Liu C., Ouyang K., Chu X., Liu H., Leung Y.-W., R-Memcached: A reliable in-memory cache system for big key-value stores, in Proceedings of the 1st International Conference on Big Data Computing and Communications, Taiyuan, China, 2015.
DOI
[12]
Meaney P. J., Lastras-Montano L. A., Papazova V. K., Stephens E., Johnson J., Alves L. C., O'Connor J. A., Clarke W. J., IBM zEnterprise redundant array of independent memory subsystem, IBM Journal of Research and Development, vol. 56, no. 1.2, pp. 4:1–4:11, 2012.
[13]
Cidon A., Rumble S. M., Stutsman R., Katti S., Ousterhout J. K., Rosenblum M., Copysets: Reducing the frequency of data loss in cloud storage, in Usenix Annual Technical Conference, 2013, pp. 37–48.
[14]
Chu X., Liu C., Ouyang K., Yung L. S., Liu H., Leung Y.-W., PErasure: A parallel cauchy Reed-Solomon coding library for GPUs, in presented at IEEE International Conference on Communications, London, UK, 2015.
DOI
[15]
Atikoglu B., Xu Y., Frachtenberg E., Jiang S., Paleczny M., Work-load analysis of a large-scale key-value store, ACM SIGMETRICS Performance Evaluation Review, vol. 40, no. 1, 2012, pp. 53–64.
[16]
Plank J. S., Greenan K. M., Jerasure: A library in c facilitating erasure coding for storage applications—version 2.0, Technical Report UT-EECS-14-721. University of Tennessee, Tech. Rep, 2014.
[17]
Ousterhout J., Agrawal P., Erickson D., Kozyrakis C., Leverich J., Mazieres D., Mitra S., Narayanan A., Parulkar G., Rosenblum M.et al, The case for RAMClouds: Scalable high-performance storage entirely in DRAM, ACM SIGOPS Operating Systems Review, vol. 43, no. 4, pp. 92–105, 2010.
[18]
Lim H., Fan B., Andersen D. G., Kaminsky M., SILT: A memory-efficient, high-performance key-value store, in Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles, ACM, 2011, pp. 1–13.
DOI
Publication history
Copyright
Acknowledgements
Rights and permissions

Publication history

Received: 01 May 2015
Revised: 01 July 2015
Accepted: 01 October 2015
Published: 17 December 2015
Issue date: December 2015

Copyright

© The author(s) 2015

Acknowledgements

This work was supported in part by Hong Kong GRF grant HKBU 210412 and HKBU grant FRG2/14-15/059. We thank all the reviewers for their insightful comments and suggestions.

Rights and permissions

Return