Skip to main content

Looking into the Peak Memory Consumption of Epoch-Based Reclamation in Scalable in-Memory Database Systems

  • Conference paper
  • First Online:
Database and Expert Systems Applications (DEXA 2019)

Part of the book series: Lecture Notes in Computer Science ((LNISA,volume 11707))

Included in the following conference series:

Abstract

Deferred memory reclamation is an essential mechanism of scalable in-memory database management systems (DBMSs) that releases stale objects asynchronously to free operations. Modern scalable in-memory DBMSs commonly employ a deferred reclamation mechanism named epoch-based reclamation (EBR). However, no existing research has studied the EBR’s trade-off between performance improvements and memory consumption; its peak memory consumption makes capacity planning difficult and sometimes causes disruptive performance degradation. We argue that gracefully controlling the peak memory usage is a key to achieving stable throughput and latency of scalable EBR-based in-memory DBMSs. This paper conducts a quantitative analysis and evaluation of a representative EBR-based DBMS, Silo, from the viewpoint of memory management. Our evaluation reveals that the integration of conventional solutions fails to achieve stable performance with lower memory utilization, and Glasstree-based Silo achieves a 20% higher throughput, latencies characterized by an 81% lower standard deviation, and 34% lower peak memory usage than Masstree-based Silo even under read-majority workloads.

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.

    https://www.voltdb.com/.

  2. 2.

    Using QSBR in a user space program requires a specialized system call of the underlying OS, e.g. membarrier(2) in the Linux kernel.

  3. 3.

    In such a situation, the thread is considered to be in a quiescent state.

  4. 4.

    Getting the references of the tuples also avoids the cache line updates due to the lock-free lookup of Masstree used in Silo.

  5. 5.

    The time interval required for ensuring the end of all reader-side critical sections is called the grace period.

  6. 6.

    The base commit ID of git used in our evaluation is cc11ca1 [20].

  7. 7.

    The reason for choosing the size is that the size clearly reveals the differences according to the measured results of the original Silo paper.

  8. 8.

    Readers may notice that the peak memory usage depicted in this figure is much higher than in Fig. 4. The difference comes from the memory area that is used for storing the commit latencies of the transactions. All the latencies are required for calculating standard deviation, which requires a large memory area because the benchmarks produce tens of millions of transactions.

  9. 9.

    In the figures, the results are suddenly bigger when the number of threads is changed from 24 to 28. This is due to the conflict between a thread to process the epoch and a thread to perform a transaction. Thus, as shown in the results, the influence of the effect is smaller in Silo-Glass.

References

  1. Alistarh, D., Leiserson, W., Matveev, A., Shavit, N.: Forkscan: conservative memory reclamation for modern operating systems. In: Proceedings of the Twelfth European Conference on Computer Systems, EuroSys 2017, pp. 483–498 (2017)

    Google Scholar 

  2. Brown, T.A.: Reclaiming memory for lock-free data structures: there has to be a better way. In: Proceedings of the 2015 ACM Symposium on Principles of Distributed Computing, PODC 2015, pp. 261–270 (2015)

    Google Scholar 

  3. Cooper, B.F., Silberstein, A., Tam, E., Ramakrishnan, R., Sears, R.: Benchmarking cloud serving systems with YCSB. In: Proceedings of the 1st ACM Symposium on Cloud Computing, SoCC 2010, pp. 143–154 (2010)

    Google Scholar 

  4. Diaconu, C., et al.: Hekaton: SQL server’s memory- optimized OLTP engine. In: Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data, SIGMOD 2013, pp. 1243–1254 (2013)

    Google Scholar 

  5. Fraser, K.: Practical lock-freedom. Ph.D. thesis, Cambridge University. Technical Report UCAM-CL-TR-579 (2004)

    Google Scholar 

  6. Gidra, L., Thomas, G., Sopena, J., Shapiro, M.: A study of the scalability of stop-the-world garbage collectors on multicores. In: Proceedings of the Eighteenth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2013, pp. 229–240 (2013)

    Google Scholar 

  7. Hart, T.E., McKenney, P.E., Brown, A.D., Walpole, J.: Performance of memory reclamation for lockless synchronization. J. Parallel Distrib. Comput. 67(12), 1270–1285 (2007)

    Article  Google Scholar 

  8. Jemalloc wiki: Use Case: Basic Allocator Statistics. https://goo.gl/GdX1FB. Accessed 2 June 2019

  9. Kemper, A., Neumann, T.: HyPer: A hybrid OLTP & OLAP main memory database system based on virtual memory snapshots. In: Proceedings of the 2011 IEEE 27th International Conference on Data Engineering, ICDE 2011, pp. 195–206 (2011)

    Google Scholar 

  10. Kim, K., Wang, T., Johnson, R., Pandis, I.: ERMIA: Fast memory- optimized database system for heterogeneous workloads. In: Proceedings of the 2016 International Conference on Management of Data, SIGMOD 2016, pp. 1675–1687 (2016)

    Google Scholar 

  11. Lim, H., Kaminsky, M., Andersen, D.G.: Cicada: dependably fast multi-core in-memory transactions. In: Proceedings of the 2017 ACM International Conference on Management of Data, SIGMOD 2017, pp. 21–35 (2017)

    Google Scholar 

  12. Mao, Y., Kohler, E., Morris, R.T.: Cache craftiness for fast multicore key-value storage. In: Proceedings of the 7th ACM European Conference on Computer Systems, EuroSys 2012, pp. 183–196 (2012)

    Google Scholar 

  13. McKenney, P.E., Sarma, D., Arcangeli, A., Kleen, A., Krieger, O., Russell, R.: Read-copy update. In: Proceedings of Ottawa Linux Symposium (2002)

    Google Scholar 

  14. Mitake, H., Yamada, H., Nakajima, T.: Analyzing the tradeoff between throughput and latency in multicore scalable in-memory database systems. In: Proceedings of the 7th ACM SIGOPS Asia-Pacific Workshop on Systems, APSys 2016, pp. 17:1–17:9 (2016)

    Google Scholar 

  15. Mitake, H., Yamada, H., Nakajima, T.: A highly scalable index structure for multicore in-memory database systems. In: Proceedings of the International Conference on the 13th International Symposium on Intelligent Distributed Computing (2019)

    Google Scholar 

  16. Ousterhout, J., et al.: The RAMCloud storage system. ACM Trans. Comput. Syst. 33(3), 7:1–7:55 (2015)

    Article  Google Scholar 

  17. McKenney, P.E.: Is parallel programming hard, and, if so, what can you do about it? https://goo.gl/THnFNb. Accessed 24 Aug 2018

  18. Prasad, A., Gopinath, K.: Prudent memory reclamation in procrastination-based synchronization. In: Proceedings of the 21st International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 99–112 (2016)

    Google Scholar 

  19. Scalable memory allocation using jemalloc. https://goo.gl/skcwvS. Accessed 24 Aug 2018

  20. Silo. https://github.com/stephentu/silo. Accessed 2 June 2019

  21. Stonebraker, M., Madden, S., Abadi, D.J., Harizopoulos, S., Hachem, N., Helland, P.: The end of an architectural era: (it’s time for a complete rewrite). In: Proceedings of the 33rd International Conference on Very Large Data Bases, pp. 1150–1160 (2007)

    Google Scholar 

  22. Tu, S., Zheng, W., Kohler, E., Liskov, B., Madden, S.: Speedy transactions in multicore in-memory databases. In: Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, SOSP 2013, pp. 18–32 (2013)

    Google Scholar 

  23. Wu, Y., Arulraj, J., Lin, J., Xian, R., Pavlo, A.: An empirical evaluation of in-memory multi-version concurrency control. Proc. VLDB Endow. 10(7), 781–792 (2017)

    Article  Google Scholar 

  24. https://www.samsung.com/semiconductor/global.semi.static/Data_Processing_with_Samsung_Advanced_DRAM_and_SSD_Solutions_Whitepaper-0.pdf. Accessed 2 2019

  25. https://aws.amazon.com/ec2/instance-types/high-memory/?nc1=h_ls. Accessed 2 June 2019

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tatsuo Nakajima .

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

Mitake, H., Yamada, H., Nakajima, T. (2019). Looking into the Peak Memory Consumption of Epoch-Based Reclamation in Scalable in-Memory Database Systems. In: Hartmann, S., Küng, J., Chakravarthy, S., Anderst-Kotsis, G., Tjoa, A., Khalil, I. (eds) Database and Expert Systems Applications. DEXA 2019. Lecture Notes in Computer Science(), vol 11707. Springer, Cham. https://doi.org/10.1007/978-3-030-27618-8_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-27618-8_1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-27617-1

  • Online ISBN: 978-3-030-27618-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics