Abstract
Cloud service providers augment a SQL database management system with a cache to enhance system performance for workloads that exhibit a high read to write ratio. These in-memory caches provide a simple programming interface such as get, put, and delete. Using their software architecture, different caching frameworks can be categorized into Client-Server (CS) and Shared Address Space (SAS) systems. Example CS caches are memcached and Redis. Example SAS caches are Java Cache standard and its Google Guava implementation, Terracotta BigMemory and KOSAR. How do CS and SAS architectures compare with one another and what are their tradeoffs? This study quantifies an answer using BG, a benchmark for interactive social networking actions. In general, obtained results show SAS provides a higher performance with write policies playing an important role.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
A key difference is that the write is manipulating key-value pair instead of a disk/SSD block.
- 2.
A physical server may host both the Application and memcached processes. We use such a deployment to evaluate CS architecture in Sect. 5.
- 3.
While memcached is multithreaded, launching multiple instances reduces contention for its synchronization primitive on its LRU queue. In our experiments with a 16 core processor, we have observed a 20% enhancement in throughput when launching eight instances instead of one.
- 4.
Evaluation and comparison of a hybrid with CS and SAS is deferred to future work, see Sect. 6.
- 5.
At the time of this writing, Google Guava is not distributed and could not be used for this evaluation. Apache Ignite is a candidate for future analysis, see Sect. 6.
- 6.
Redis is the other obvious alternative that we intend to include in our future studies, see Sect. 6.
- 7.
The version of BG described in [7] partitions a social graph into N logical subgraphs and assigns each to a BGClient for request generation. It fails to evaluate the SAS architecture objectively because its request generation results in no read-write and write-write conflicts between different BGClients, i.e., emulated application servers of Fig. 1.
- 8.
Release and notify are performed with 1 message.
- 9.
With 8 nodes, the average application server utilization is lower than 30%.
- 10.
References
Adya, A., et al.: Slicer: auto-sharding for datacenter applications. In: OSDI, pp. 739–753 (2016)
Alabdulkarim, Y., Almaymoni, M., Cao, Z., Ghandeharizadeh, S., Nguyen, H., Song, L.: A comparison of Flashcache with IQ-Twemcached. In: IEEE CloudDM (2016)
Alabdulkarim, Y., Almaymoni, M., Ghandeharizadeh, S.: Polygraph: a plug-n-play framework to quantify anomalies. In: IEEE ICDE, April 2018
Alabdulkarim, Y., Barahmand, S., Ghandeharizadeh, S.: BG: a scalable benchmark for interactive social networking actions. Future Gener. Comput. Syst. 85, 29–38 (2018)
Apache: Ignite - In-Memory Data Fabric (2016). https://ignite.apache.org/
Armstrong, T., Ponnekanti, V., Borthakur, D., Callaghan, M.: LinkBench: a database benchmark based on the Facebook social graph. In: ACM SIGMOD, June 2013
Barahmand, S., Ghandeharizadeh, S.: BG: a benchmark to evaluate interactive social networking actions. In: CIDR, January 2013
Bornhövd, C., Altinel, M., Krishnamurthy, S., Mohan, C., Pirahesh, H., Reinwald, B.: DBCache: middle-tier database caching for highly scalable e-Business architectures. In: Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data, San Diego, California, USA (2003)
Bronson, N., Lento, T., Wiener, J.L.: Open data challenges at Facebook. In: 31st IEEE International Conference on Data Engineering, ICDE 2015, Seoul, South Korea, 13–17 April 2015, pp. 1516–1519 (2015)
Byan, S., et al.: Mercury: host-side flash caching for the data center. In: IEEE Symposium on Mass Storage Systems and Technologies (MSST) (2012)
JBoss Cache. http://www.jboss.org/jbosscache
Denning, P.J.: The working set model for program behavior. Commun. ACM 11(5), 323–333 (1968)
DeWitt, D.J., Futtersack, P., Maier, D., Vélez, F.: A study of three alternative workstation-server architectures for object oriented database systems. In: Proceedings of the 16th International Conference on Very Large Data Bases, VLDB 1990 (1990)
Faust, M., et al.: Footprint reduction and uniqueness enforcement with hash indices in SAP HANA. In: Hartmann, S., Ma, H. (eds.) DEXA 2016. LNCS, vol. 9828, pp. 137–151. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-44406-2_11
Franklin, M.J.: Client Data Caching: A Foundation for High Performance. Kluwer Academic Publishers, AH Dordrecht (1996)
Ghandeharizadeh, S., DeWitt, D.J.: A multiuser performance analysis of alternative declustering strategies. In: Proceedings of the Sixth International Conference on Data Engineering, Los Angeles, California, USA, pp. 466–475 (1990)
Ghandeharizadeh, S., et al.: A demonstration of KOSAR: an elastic, scalable, highly available SQL middleware. In: ACM Middleware (2014)
Ghandeharizadeh, S., Ngueyn, H.: Design, implementation, and evaluation of write-back policy with cache augmented data stores. Technical report 2018-06, USC Database Laboratory (2018)
Ghandeharizadeh, S., Nguyen, H.: A comparison of two cache augmented sql architectures. Technical report 2018-04, USC Database Laboratory (2018). http://dblab.usc.edu/Users/papers/CSvsSAS.pdf
Ghandeharizadeh, S., Yap, J.: Cache augmented database management systems. In: ACM SIGMOD DBSocial Workshop, June 2013
Ghandeharizadeh, S., Yap, J., Nguyen, H.: IQ-Twemcached. http://dblab.usc.edu/users/IQ/
Ghandeharizadeh, S., Yap, J., Nguyen, H.: Strong consistency in cache augmented SQL systems. In: Middleware, December 2014
Ghemawat, S., Gobioff, H., Leung, S.: The Google file system. In: SOSP 2003: Proceedings of Nineteenth ACM SIGOPS Symposium on Operating Systems Principles. ACM Press (2003)
Google: Guava: Core Libraries for Java (2015). https://github.com/google/guava
Gupta, P., Zeldovich, N., Madden, S.: A trigger-based middleware cache for ORMs. In: Middleware (2011)
Holland, D.A., Angelino, E., Wald, G., Seltzer, M.I.: Flash caching on the storage client. In: USENIXATC (2013)
Java Community Process: JCACHE - Java Temporary Caching API (2014). https://jcp.org/en/jsr/detail?id=107
Johnson, T., Shasha, D.: 2Q: a low overhead high performance buffer management replacement algorithm. In: VLDB, pp. 439–450 (1994)
Kim, H., et al.: Flash-conscious cache population for enterprise database workloads. In: Fifth International Workshop on Accelerating Data Management Systems Using Modern Processor and Storage Architectures (2014)
Koller, R., Marmol, L., Rangaswami, R., Sundararaman, S., Talagala, N., Zhao, M.: Write policies for host-side Flash caches. In: FAST 2013 (2013)
Krüger, J., et al.: Fast updates on read-optimized databases using multi-core CPUs. PVLDB 5(1), 61–72 (2011)
Larson, P., Goldstein, J.J., Guo, H., Zhou, J.: MTCache: transparent mid-tier database caching in SQL server. In: ICDE (2004)
Megiddo, N., Modha, D.S.: ARC: a self-tuning, low overhead replacement cache. In: FAST. USENIX (2003)
Memcached. http://www.memcached.org/
Nishtala, R., et al.: Scaling Memcache at Facebook. In: NSDI, pp. 385–398. USENIX, Berkeley (2013)
O’Neil, E.J., O’Neil, P.E., Weikum, G.: The LRU-K page replacement algorithm for database disk buffering. In: ACM SIGMOD (1993)
Ports, D.R.K., Clements, A.T., Zhang, I., Madden, S., Liskov, B.: Transactional consistency and automatic management in an application data cache. In: OSDI. USENIX, October 2010
RedisLabs: Redis. https://redis.io/
Stonebraker, M.: Operating system support for database management. Commun. ACM 24(7), 412–418 (1981)
Stonebraker, M., Cattell, R.: 10 rules for scalable performance in simple operation datastores. Commun. ACM 54, 72–80 (2011)
Terracotta: BigMemory. http://terracotta.org/products/bigmemory
Voruganti, K., Özsu, M.T., Unrau, R.C.: An adaptive data-shipping architecture for client caching data management systems. Distrib. Parallel Databases 15(2), 137–177 (2004)
Whalin, G., Wang, X., Li, M.: Whalin Memcached Client Version 2.6.1. http://github.com/gwhalin/Memcached-Java-Client/releases/tag/release_2.6.1
Acknowledgement
We thank the anonymous reviewers for their valuable comments.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Ghandeharizadeh, S., Nguyen, H. (2019). A Comparison of Two Cache Augmented SQL Architectures. In: Nambiar, R., Poess, M. (eds) Performance Evaluation and Benchmarking for the Era of Artificial Intelligence. TPCTC 2018. Lecture Notes in Computer Science(), vol 11135. Springer, Cham. https://doi.org/10.1007/978-3-030-11404-6_8
Download citation
DOI: https://doi.org/10.1007/978-3-030-11404-6_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-11403-9
Online ISBN: 978-3-030-11404-6
eBook Packages: Computer ScienceComputer Science (R0)