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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 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.
In such a situation, the thread is considered to be in a quiescent state.
- 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.
The time interval required for ensuring the end of all reader-side critical sections is called the grace period.
- 6.
The base commit ID of git used in our evaluation is cc11ca1 [20].
- 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.
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.
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
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)
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)
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)
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)
Fraser, K.: Practical lock-freedom. Ph.D. thesis, Cambridge University. Technical Report UCAM-CL-TR-579 (2004)
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)
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)
Jemalloc wiki: Use Case: Basic Allocator Statistics. https://goo.gl/GdX1FB. Accessed 2 June 2019
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)
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)
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)
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)
McKenney, P.E., Sarma, D., Arcangeli, A., Kleen, A., Krieger, O., Russell, R.: Read-copy update. In: Proceedings of Ottawa Linux Symposium (2002)
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)
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)
Ousterhout, J., et al.: The RAMCloud storage system. ACM Trans. Comput. Syst. 33(3), 7:1–7:55 (2015)
McKenney, P.E.: Is parallel programming hard, and, if so, what can you do about it? https://goo.gl/THnFNb. Accessed 24 Aug 2018
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)
Scalable memory allocation using jemalloc. https://goo.gl/skcwvS. Accessed 24 Aug 2018
Silo. https://github.com/stephentu/silo. Accessed 2 June 2019
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)
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)
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)
https://www.samsung.com/semiconductor/global.semi.static/Data_Processing_with_Samsung_Advanced_DRAM_and_SSD_Solutions_Whitepaper-0.pdf. Accessed 2 2019
https://aws.amazon.com/ec2/instance-types/high-memory/?nc1=h_ls. Accessed 2 June 2019
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
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)