Skip to main content

A Comparison of Two Cache Augmented SQL Architectures

  • Conference paper
  • First Online:
Book cover Performance Evaluation and Benchmarking for the Era of Artificial Intelligence (TPCTC 2018)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 11135))

Included in the following conference series:

  • 770 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    A key difference is that the write is manipulating key-value pair instead of a disk/SSD block.

  2. 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. 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. 4.

    Evaluation and comparison of a hybrid with CS and SAS is deferred to future work, see Sect. 6.

  5. 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. 6.

    Redis is the other obvious alternative that we intend to include in our future studies, see Sect. 6.

  7. 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. 8.

    Release and notify are performed with 1 message.

  9. 9.

    With 8 nodes, the average application server utilization is lower than 30%.

  10. 10.

    Similar results is reported by other systems that partition data [16, 23].

References

  1. Adya, A., et al.: Slicer: auto-sharding for datacenter applications. In: OSDI, pp. 739–753 (2016)

    Google Scholar 

  2. Alabdulkarim, Y., Almaymoni, M., Cao, Z., Ghandeharizadeh, S., Nguyen, H., Song, L.: A comparison of Flashcache with IQ-Twemcached. In: IEEE CloudDM (2016)

    Google Scholar 

  3. Alabdulkarim, Y., Almaymoni, M., Ghandeharizadeh, S.: Polygraph: a plug-n-play framework to quantify anomalies. In: IEEE ICDE, April 2018

    Google Scholar 

  4. Alabdulkarim, Y., Barahmand, S., Ghandeharizadeh, S.: BG: a scalable benchmark for interactive social networking actions. Future Gener. Comput. Syst. 85, 29–38 (2018)

    Article  Google Scholar 

  5. Apache: Ignite - In-Memory Data Fabric (2016). https://ignite.apache.org/

  6. Armstrong, T., Ponnekanti, V., Borthakur, D., Callaghan, M.: LinkBench: a database benchmark based on the Facebook social graph. In: ACM SIGMOD, June 2013

    Google Scholar 

  7. Barahmand, S., Ghandeharizadeh, S.: BG: a benchmark to evaluate interactive social networking actions. In: CIDR, January 2013

    Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. Byan, S., et al.: Mercury: host-side flash caching for the data center. In: IEEE Symposium on Mass Storage Systems and Technologies (MSST) (2012)

    Google Scholar 

  11. JBoss Cache. http://www.jboss.org/jbosscache

  12. Denning, P.J.: The working set model for program behavior. Commun. ACM 11(5), 323–333 (1968)

    Article  MathSciNet  Google Scholar 

  13. 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)

    Google Scholar 

  14. 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

    Chapter  Google Scholar 

  15. Franklin, M.J.: Client Data Caching: A Foundation for High Performance. Kluwer Academic Publishers, AH Dordrecht (1996)

    Book  Google Scholar 

  16. 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)

    Google Scholar 

  17. Ghandeharizadeh, S., et al.: A demonstration of KOSAR: an elastic, scalable, highly available SQL middleware. In: ACM Middleware (2014)

    Google Scholar 

  18. 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)

    Google Scholar 

  19. 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

  20. Ghandeharizadeh, S., Yap, J.: Cache augmented database management systems. In: ACM SIGMOD DBSocial Workshop, June 2013

    Google Scholar 

  21. Ghandeharizadeh, S., Yap, J., Nguyen, H.: IQ-Twemcached. http://dblab.usc.edu/users/IQ/

  22. Ghandeharizadeh, S., Yap, J., Nguyen, H.: Strong consistency in cache augmented SQL systems. In: Middleware, December 2014

    Google Scholar 

  23. 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 Scholar 

  24. Google: Guava: Core Libraries for Java (2015). https://github.com/google/guava

  25. Gupta, P., Zeldovich, N., Madden, S.: A trigger-based middleware cache for ORMs. In: Middleware (2011)

    Google Scholar 

  26. Holland, D.A., Angelino, E., Wald, G., Seltzer, M.I.: Flash caching on the storage client. In: USENIXATC (2013)

    Google Scholar 

  27. Java Community Process: JCACHE - Java Temporary Caching API (2014). https://jcp.org/en/jsr/detail?id=107

  28. Johnson, T., Shasha, D.: 2Q: a low overhead high performance buffer management replacement algorithm. In: VLDB, pp. 439–450 (1994)

    Google Scholar 

  29. 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)

    Google Scholar 

  30. Koller, R., Marmol, L., Rangaswami, R., Sundararaman, S., Talagala, N., Zhao, M.: Write policies for host-side Flash caches. In: FAST 2013 (2013)

    Google Scholar 

  31. Krüger, J., et al.: Fast updates on read-optimized databases using multi-core CPUs. PVLDB 5(1), 61–72 (2011)

    Google Scholar 

  32. Larson, P., Goldstein, J.J., Guo, H., Zhou, J.: MTCache: transparent mid-tier database caching in SQL server. In: ICDE (2004)

    Google Scholar 

  33. Megiddo, N., Modha, D.S.: ARC: a self-tuning, low overhead replacement cache. In: FAST. USENIX (2003)

    Google Scholar 

  34. Memcached. http://www.memcached.org/

  35. Nishtala, R., et al.: Scaling Memcache at Facebook. In: NSDI, pp. 385–398. USENIX, Berkeley (2013)

    Google Scholar 

  36. O’Neil, E.J., O’Neil, P.E., Weikum, G.: The LRU-K page replacement algorithm for database disk buffering. In: ACM SIGMOD (1993)

    Google Scholar 

  37. 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

    Google Scholar 

  38. RedisLabs: Redis. https://redis.io/

  39. Stonebraker, M.: Operating system support for database management. Commun. ACM 24(7), 412–418 (1981)

    Article  Google Scholar 

  40. Stonebraker, M., Cattell, R.: 10 rules for scalable performance in simple operation datastores. Commun. ACM 54, 72–80 (2011)

    Article  Google Scholar 

  41. Terracotta: BigMemory. http://terracotta.org/products/bigmemory

  42. 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)

    Article  Google Scholar 

  43. 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

Download references

Acknowledgement

We thank the anonymous reviewers for their valuable comments.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Shahram Ghandeharizadeh .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics