[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3542929.3563461acmconferencesArticle/Chapter ViewAbstractPublication PagesmodConference Proceedingsconference-collections
research-article

Writes hurt: lessons in cache design for optane NVRAM

Published: 07 November 2022 Publication History

Abstract

Intel® Optane DC Persistent Memory resides on the memory bus and approaches DRAM in access latency. One avenue for its adoption is to employ it in place of persistent storage; another is to use it as a cheaper and denser extension of DRAM. In pursuit of the latter goal, we present the design of a volatile Optane NVRAM cache as a component in a storage engine underlying MongoDB. The primary innovation in our design is a new cache admission policy. We discover that on Optane NVRAM, known for its limited write throughput, the presence of writes disproportionately affects the throughput of reads, much more so than on DRAM. Therefore, an admission policy that indiscriminately admits new data (and thus generates writes), severely limits the rate of data retrieval and results in exceedingly poor performance for the cache overall. We design an admission policy that balances the rate of admission with the rate of lookups using dynamically observed characteristics of the workload. Our implementation outperforms OpenCAS (an off-the-shelf Optane-based block cache) in all cases, and Intel Memory Mode in cases where the database size exceeds the available NVRAM. Our cache is decoupled from the rest of the storage engine and uses generic metrics to guide its admission policy; this design can be easily adopted in other systems.

References

[1]
2021. CacheLib, Facebook's open source caching engine for web-scale services. https://engineering.fb.com/2021/09/02/open-source/cachelib.
[2]
2021. Device Mapper Write Cache. www.kernel.org/doc/html/latest/admin-guide/device-mapper/cache.html.
[3]
2021. Intel Memory Mode. https://software.intel.com/content/www/us/en/develop/articles/qsg-intro-to-provisioning-pmem.html.
[4]
2021. Intel® Server Board S2600WF Product Family. Technical Product Specification. https://www.intel.com/content/dam/support/us/en/documents/server-products/server-boards/S2600WF_TPS.pdf.
[5]
2021. Open Cache Acceleration Software. https://open-cas.github.io.
[6]
2021. Open Cache Acceleration Software: Admin Guide. https://open-cas.github.io/guide_configuring.html.
[7]
2021. Persistent Memory Development Kit. https://pmem.io/pmdk.
[8]
2021. Yahoo! Cloud Serving Benchmark, Git Repo. https://github.com/brianfrankcooper/YCSB.
[9]
2022. Clock Page Replacement Algorithm. Wikipedia. https://en.wikipedia.org/wiki/Page_replacement_algorithm#Clock.
[10]
2022. MongoDB. https://www.mongodb.com.
[11]
2022. WiredTiger Storage Engine. Block cache. https://github.com/wiredtiger/wiredtiger/blob/develop/src/block_cache/block_cache.c.
[12]
Neha Agarwal and Thomas F. Wenisch. 2017. Thermostat: Application-Transparent Page Management for Two-Tiered Main Memory. SIGPLAN Not. 52, 4 (April 2017), 631--644.
[13]
Shoaib Akram, Kathryn S. McKinley, Jennifer B. Sartor, and Lieven Eeckhout. 2018. Managing Hybrid Memories by Predicting Object Write Intensity. In Conference Companion of the 2nd International Conference on Art, Science, and Engineering of Programming (Nice, France) (Programming'18 Companion). Association for Computing Machinery, New York, NY, USA, 75--80.
[14]
Joy Arulraj, Andy Pavlo, and Krishna Teja Malladi. 2019. Multi-Tier Buffer Management and Storage System Design for Non-Volatile Memory. CoRR abs/1901.10938 (2019). arXiv:1901.10938 http://arxiv.org/abs/1901.10938
[15]
Benjamin Berg, Daniel S. Berger, Sara McAllister, Isaac Grosof, Sathya Gunasekar, Jimmy Lu, Michael Uhlar, Jim Carrig, Nathan Beckmann, Mor Harchol-Balter, and Gregory R. Ganger. 2020. The CacheLib Caching Engine: Design and Experiences at Scale. In 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20). USENIX Association, 753--768.
[16]
Muhammad Bilal and Shin-Gak Kang. 2017. A Cache Management Scheme for Efficient Content Eviction and Replication in Cache Networks. IEEE Access 5 (2017), 1692--1701.
[17]
Mustafa Canim, George A. Mihaila, Bishwaranjan Bhattacharjee, Kenneth A. Ross, and Christian A. Lang. 2010. SSD Bufferpool Extensions for Database Systems. Proceedings of the VLDB Endowment 3, 2 (2010), 1435--1446.
[18]
Yuxia Cheng, Wenzhi Chen, Zonghui Wang, Xinjie Yu, and Yang Xiang. 2015. AMC: an adaptive multi-level cache algorithm in hybrid storage systems. Concurrency and Computation: Practice and Experience 27, 16 (2015), 4230--4246.
[19]
Yuxia Cheng, Yang Xiang, Wenzhi Chen, Houcine Hassan, and Abdulhameed Alelaiwi. 2018. Efficient cache resource aggregation using adaptive multi-level exclusive caching policies. Future Gener. Comput. Syst. 86 (2018), 964--974.
[20]
Asaf Cidon, Assaf Eisenman, Mohammad Alizadeh, and Sachin Katti. 2015. Dynacache: Dynamic Cloud Caching. In 7th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud 15). USENIX Association, Santa Clara, CA.
[21]
Brian F. Cooper, Adam Silberstein, Erwin Tam, Raghu Ramakrishnan, and Russell Sears. 2010. Benchmarking Cloud Serving Systems with YCSB. In Proceedings of the 1st ACM Symposium on Cloud Computing (SoCC '10). 143--154.
[22]
Subramanya R. Dulloor, Amitabha Roy, Zheguang Zhao, Narayanan Sundaram, Nadathur Satish, Rajesh Sankaran, Jeff Jackson, and Karsten Schwan. 2016. Data Tiering in Heterogeneous Memory Systems. In Proceedings of the Eleventh European Conference on Computer Systems (London, United Kingdom) (EuroSys '16). Association for Computing Machinery, New York, NY, USA, Article 15, 16 pages.
[23]
Rémi Dulong, Rafael Pires, Andreia Correia, Valerio Schiavoni, Pedro Ramalhete, Pascal Felber, and Gaël Thomas. 2021. NVCache: A Plug-and-Play NVMM-based I/O Booster for Legacy Systems. In 51th IEEE/IFIP International Conference on Dependable Systems and Networks (DSN 21).
[24]
Assaf Eisenman, Asaf Cidon, Evgenya Pergament, Or Haimovich, Ryan Stutsman, Mohammad Alizadeh, and Sachin Katti. 2019. Flashield: a Hybrid Key-value Cache that Controls Flash Write Amplification. In 16th USENIX Symposium on Networked Systems Design and Implementation (NSDI 19).
[25]
Assaf Eisenman, Darryl Gardner, Islam AbdelRahman, Jens Axboe, Siying Dong, Kim Hazelwood, Chris Petersen, Asaf Cidon, and Sachin Katti. 2018. Reducing DRAM Footprint with NVM in Facebook. In Proceedings of the Thirteenth EuroSys Conference (Porto, Portugal) (EuroSys '18). Association for Computing Machinery, New York, NY, USA, Article 42, 13 pages.
[26]
Tyler Estro, Pranav Bhandari, Avani Wildani, and Erez Zadok. 2020. Desperately Seeking ... Optimal Multi-Tier Cache Configurations. In 12th USENIX Workshop on Hot Topics in Storage and File Systems (Hot-Storage 20). USENIX Association.
[27]
Sudarsun Kannan, Ada Gavrilovska, Vishal Gupta, and Karsten Schwan. 2017. HeteroOS: OS Design for Heterogeneous Memory Management in Datacenter. In Proceedings of the 44th Annual International Symposium on Computer Architecture (Toronto, ON, Canada) (ISCA '17). Association for Computing Machinery, New York, NY, USA, 521--534.
[28]
Hiwot Tadese Kassa, Jason Akers, Mrinmoy Ghosh, Zhichao Cao, Vaibhav Gogte, and Ronald Dreslinski. 2021. Improving Performance of Flash Based Key-Value Stores Using Storage Class Memory as a Volatile Memory Extension. In 2021 USENIX Annual Technical Conference (USENIX ATC 21). 821--837.
[29]
Donghee Lee, Jongmoo Choi, Jong-Hun Kim, Sam H. Noh, Sang Lyul Min, Yookun Cho, and Chong Sang Kim. 1999. On the Existence of a Spectrum of Policies That Subsumes the Least Recently Used (LRU) and Least Frequently Used (LFU) Policies. In Proceedings of the 1999 ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Systems (Atlanta, Georgia, USA) (SIGMETRICS '99). Association for Computing Machinery, New York, NY, USA, 134--143.
[30]
Fei Meng, Li Zhou, Xiaosong Ma, Sandeep Uttamchandani, and Deng Liu. 2014. vCacheShare: Automated Server Flash Cache Space Management in a Virtualization Environment. In 2014 USENIX Annual Technical Conference (USENIX ATC 14). USENIX Association, Philadelphia, PA, 133--144.
[31]
Sundaresan Rajasekaran, Shaohua Duan, Wei Zhang, and Timothy Wood. 2016. Multi-cache: Dynamic, Efficient Partitioning for Multi-tier Caches in Consolidated VM Environments. In 2016 IEEE International Conference on Cloud Engineering (IC2E). 182--191.
[32]
Amanda Raybuck, Tim Stamler, Wei Zhang, Mattan Erez, and Simon Peter. 2021. HeMem: Scalable Tiered Memory Management for Big Data Applications and Real NVM. In 28th ACM Symposium on Operating Systems Principles (SOSP'21).
[33]
Hyunsub Song, Shean Kim, J. Hyun Kim, Ethan JH Park, and Sam H. Noh. 2021. First Responder: Persistent Memory Simultaneously as High Performance Buffer Cache and Storage. In 2021 USENIX Annual Technical Conference (USENIX ATC 21). 839--853.
[34]
panthera Chenxi Wang, Huimin Cui, Ting Cao, John Zigman, Haris Volos, Onur Mutlu, Fang Lv, Xiaobing Feng, and Guoqing Harry Xu. [n. d.]. Panthera: Holistic Memory Management for Big Data Processing over Hybrid Memories.
[35]
Wei Wei, Dejun Jiang, Sally A. McKee, Jin Xiong, and Mingyu Chen. 2015. Exploiting Program Semantics to Place Data in Hybrid Memory. In 2015 International Conference on Parallel Architectures and Compilation, PACT 2015, San Francisco, CA, USA, October 18--21, 2015. IEEE Computer Society, 163--173.
[36]
Kan Wu, Zhihan Guo, Guanzhou Hu, Kaiwei Tu, Ramnatthan Alagappan, Rathijit Sen, Kwanghyun Park, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2021. The Storage Hierarchy is Not a Hierarchy: Optimizing Caching on Modern Storage Devices with Orthus. In 19th USENIX Conference on File and Storage Technologies (FAST 21). USENIX Association, 307--323.
[37]
Kai Wu, Yingchao Huang, and Dong Li. 2017. Unimem: Runtime Data Management on Non-Volatile Memory-Based Heterogeneous Main Memory. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (Denver, Colorado) (SC '17). Association for Computing Machinery, New York, NY, USA, Article 58, 14 pages.
[38]
Zi Yan, Daniel Lustig, David Nellans, and Abhishek Bhattacharjee. 2019. Nimble Page Management for Tiered Memory Systems. In 2019 Architectural Support for Programming Languages and Operating Systems (ASPLOS '19). 331--345.
[39]
Jian Yang, Juno Kim, Morteza Hoseinzadeh, Joseph Izraelevitz, and Steve Swanson. 2020. An Empirical Guide to the Behavior and Use of Scalable Persistent Memory. In 18th USENIX Conference on File and Storage Technologies (FAST 20). USENIX Association, Santa Clara, CA, 169--182.
[40]
Jinfeng Yang, Bingzhe Li, and David J. Lilja. 2021. HeuristicDB: A Hybrid Storage Database System Using a Non-Volatile Memory Block Device. Association for Computing Machinery, New York, NY, USA.
[41]
Zhengyu Yang, Morteza Hoseinzadeh, Allen Andrews, Clay Mayers, David Thomas Evans, Rory Thomas Bolt, Janki Bhimani, Ningfang Mi, and Steven Swanson. 2017. AutoTiering: Automatic data placement manager in multi-tier all-flash datacenter. In 36th IEEE International Performance Computing and Communications Conference, IPCCC 2017, San Diego, CA, USA, December 10--12, 2017. IEEE Computer Society, 1--8.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SoCC '22: Proceedings of the 13th Symposium on Cloud Computing
November 2022
574 pages
ISBN:9781450394147
DOI:10.1145/3542929
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 07 November 2022

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

SoCC '22
Sponsor:
SoCC '22: ACM Symposium on Cloud Computing
November 7 - 11, 2022
California, San Francisco

Acceptance Rates

Overall Acceptance Rate 169 of 722 submissions, 23%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 269
    Total Downloads
  • Downloads (Last 12 months)39
  • Downloads (Last 6 weeks)4
Reflects downloads up to 28 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media