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

Towards software defined persistent memory: rethinking software support for heterogenous memory architectures

Published: 04 October 2015 Publication History

Abstract

The emergence of persistent memories promises a sea-change in application and data center architectures, with efficiencies and performance not possible with today's volatile DRAM and persistent slow storage. We present Software Defined Persistent Memory, an approach that enables applications to use persistent memory in a variety of local and remote configurations. The heterogeneity is managed by a middleware that manages hardware specific needs and optimizations. We present the first ever design and implementation of such an architecture, and illustrate the key abstractions that are needed to hide hardware specific details from applications while exposing necessary characteristics for performance optimization. We evaluate the performance of our implementation on a set of microbenchmarks and database workloads using the MySQL database. Through our evaluation, we show that it is possible to apply Software Defined concepts to persistent memory, to improve performance while retaining functionality and optimizing for different hardware architectures.

References

[1]
MySQL. https://www.mysql.com, 2010.
[2]
OpenCompute. http://www.opencompute.org/, 2011.
[3]
Fusion-io Breaks One Billion IOPS Barrier. http://www.fusionio.com/press-releases/fusion-io-breaks-one-billion-iops-barrier, 2012.
[4]
ioCache. http://www.fusionio.com/products/iocache, 2012.
[5]
JEDEC DDR3 Specification. http://www.jedec.org/standards-documents/docs/jesd-79-3d, 2012.
[6]
NVDIMM. http://www.micron.com/products/drammodules/nvdimm, 2012.
[7]
NVM Programming Model (NPM). http://www.snia.org/tech_activities/standards/-curr_standards/npm, 2013.
[8]
Blade servers: An introduction and overview. http://searchdatacenter.techtarget.com, 2014.
[9]
In a Battle of Hardware, Software Innovation Comes Out On Top. http://itblog.sandisk.com/in-a-battle-of-hardware-software-innovation-comes-out-on-top/, 2014.
[10]
Intel Architecture Instruction Set Extensions Programming Reference. https://software.intel.com/sites/default/files/-managed/0d/53/319433-022.pdf, 2014.
[11]
Persistent Memory Programming. http://pmem.io, 2014.
[12]
Providing Atomic Sector Updates in Software for Persistent Memory. http://events.linuxfoundation.org/sites/events/files/-slides/vault-btt_0.pdf, 2014.
[13]
RDMA with byte-addressable PM. http://downloads.openfabrics.org/WorkGroups/-ofiwg/dsda_rqmts/RDMA_with_PM.pptx, 2014.
[14]
What is SAPHANA? http://www.saphana.com/community/about-hana, 2014.
[15]
InnoDB: The Binary Log. http://dev.mysql.com/doc/refman/5.7/en/binary-log.html, 2015.
[16]
Redo Logging in InnoDB. https://blogs.oracle.com/mysqlinnodb/entry/redo_logging_in_innodb, 2015.
[17]
The InnoDB Storage Engine. http://dev.mysql.com/doc/refman/5.7/en/innodb-storage-engine.html, 2015.
[18]
Armstrong, T. G., Ponnekanti, V., Borthakur, D., and Callaghan, M. Linkbench: A database benchmark based on the facebook social graph. In Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data (New York, NY, USA, 2013), SIGMOD '13, ACM, pp. 1185--1196.
[19]
Bailey, K., Ceze, L., Gribble, S. D., and Levy, H. M. Operating system implications of fast, cheap, non-volatile memory. In Proceedings of the 13th USENIX Conference on Hot Topics in Operating Systems (Berkeley, CA, USA, 2011), HotOS'13, USENIX Association, pp. 2--2.
[20]
Bridge, B. NVM-Direct. https://github.com/oracle/NVM-Direct, 2015.
[21]
Campello, D., Lopez, H., Koller, R., Rangaswami, R., and Useche, L. Non-blocking writes to files. In 13th USENIX Conference on File and Storage Technologies (FAST 15) (Santa Clara, CA, Feb. 2015), USENIX Association, pp. 151--165.
[22]
Chen, T. Introduction to acpi-based memory hot-plug. In LinuxCon/CloudOpen Japan (2013), LinuxCon '13.
[23]
Coburn, J., Caulfield, A. M., Akel, A., Grupp, L. M., Gupta, R. K., Jhala, R., and Swanson, S. Nv-heaps: Making persistent objects fast and safe with next-generation, non-volatile memories. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (New York, NY, USA, 2011), ASPLOS XVI, pp. 105--118.
[24]
Condit, J., Nightingale, E. B., Frost, C., Ipek, E., Lee, B., Burger, D., and Coetzee, D. Better i/o through byte-addressable, persistent memory. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles (New York, NY, USA, 2009), SOSP '09, ACM, pp. 133--146.
[25]
Das, D., Arteaga, D., Talagala, N., Mathiasen, T., and Lindström, J. Nvm compression---hybrid flash-aware application level compression. In 2nd Workshop on Interactions of NVM/Flash with Operating Systems and Workloads (INFLOW 14) (Broomfield, CO, Oct 2014).
[26]
Dulloor, S. R., Kumar, S., Keshavamurthy, A., Lantz, P., Reddy, D., Sankaran, R., and Jackson, J. System software for persistent memory. In Proceedings of the Ninth European Conference on Computer Systems (New York, NY, USA, 2014), EuroSys '14, ACM, pp. 15:1--15:15.
[27]
Guerra, J., Mármol, L., Campello, D., Crespo, C., Rangaswami, R., and Wei, J. Software persistent memory. In Proceedings of the 2012 USENIX Conference on Annual Technical Conference (Berkeley, CA, USA, 2012), USENIX ATC'12, pp. 29--29.
[28]
Josephson, W., Bongo, L., Li, K., and Flynn, D. Dfs: A file system for virtualized flash storage. In Usenix Conference on File and Storage Technologies (February 2010).
[29]
Kim, H., Seshadri, S., Dickey, C. L., and Chiu, L. Evaluating phase change memory for enterprise storage systems: A study of caching and tiering approaches. In Proceedings of the 12th USENIX Conference on File and Storage Technologies (FAST 14) (Santa Clara, CA, 2014), USENIX, pp. 33--45.
[30]
Lee, B., Ipek, E., Mutlu, O., and Burger, D. Architecting phase change memory as a scalable dram alternative. In International Symposium on Computer Architecture (ISCA) (June 2009).
[31]
Li, H., Ghodsi, A., Zaharia, M., Shenker, S., and Stoica, I. Tachyon: Reliable, memory speed storage for cluster computing frameworks. In Proceedings of the ACM Symposium on Cloud Computing (New York, NY, USA, 2014), SOCC '14, ACM, pp. 6:1--6:15.
[32]
Mühlbauer, T., Rödiger, W., Seilbeck, R., Reiser, A., Kemper, A., and Neumann, T. Instant loading for main memory databases. Proc. VLDB Endow. 6, 14 (sep 2013), 1702--1713.
[33]
Narayanan, D., and Hodson, O. Whole-system persistence with non-volatile memories. In Seventeenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2012) (March 2012), ACM.
[34]
Oikawa, S. Virtualizing storage as memory for high performance storage access. In Proceedings of the 2014 IEEE International Symposium on Parallel and Distributed Processing with Applications (Washington, DC, USA, 2014), ISPA '14, IEEE Computer Society, pp. 18--25.
[35]
Piotrowski, A., and Makowski, D. Pciexpress hot plug mechanism in linux-based atca control systems. International Journal of Microelectronics and Computer Science Vol. 1, nr 2 (2010), 201--204.
[36]
Satyanarayanan, M., Mashburn, H. H., Kumar, P., Steere, D. C., and Kistler, J. J. Lightweight recoverable virtual memory. ACM Trans. Comput. Syst. 12, 1 (feb 1994), 33--57.
[37]
Strukov, D. B., Snider, G. S., Stewart, D. R., and Williams, R. S. The missing memristor found. Nature 453, 7191 (2008), 80--83.
[38]
Suzuki, K., and Swanson, S. The non-volatile memory technology database (nvmdb). Tech. Rep. CS2015-1011, Department of Computer Science & Engineering, University of California, San Diego, May 2015. http://nvmdb.ucsd.edu.
[39]
Swanson, S., and Caulfield, A. Refactor, reduce, recycle: Restructuring the i/o stack for the future of storage. Computer 46, 8 (Aug. 2013), 52--59.
[40]
Talagala, N. One Billion IOPS: Auto Commit Memory Blurs the Line Between Enterprise Storage and Memory. http://www.fusionio.com/blog/one-billion-iops-auto-commit-memory-blurs-the-line-between-enterprise-storage-and-memory, 2012.
[41]
Thatte, S. M. Persistent memory: A storage architecture for object-oriented database systems. In Proceedings on the 1986 International Workshop on Object-oriented Database Systems (Los Alamitos, CA, USA, 1986), OODS '86, IEEE Computer Society Press, pp. 148--159.
[42]
Thereska, E., Ballani, H., O'Shea, G., Karagiannis, T., Rowstron, A., Talpey, T., Black, R., and Zhu, T. Ioflow: A software-defined storage architecture. In SOSP'13: The 24th ACM Symposium on Operating Systems Principles (November 2013), ACM.
[43]
Volos, H., Tack, A. J., and Swift, M. M. Mnemosyne: Lightweight persistent memory. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (New York, NY, USA, 2011), ASPLOS XVI, ACM, pp. 91--104.
[44]
Wilcox, M. DAX: Page cache bypass for filesystems on memory storage. http://lwn.net/Articles/618064/, 2014.
[45]
Williams, R. How we found the missing memristor. IEEE Spectr. 45, 12 (Dec. 2008), 28--35.
[46]
Yang, J., Wei, Q., Chen, C., Wang, C., Yong, K. L., and He, B. Nv-tree: Reducing consistency cost for nvm-based single level systems. In 13th USENIX Conference on File and Storage Technologies (FAST 15) (Santa Clara, CA, Feb 2015), USENIX Association, pp. 167--181.
[47]
Zhang, Y., Yang, J., Memaripour, A., and Swanson, S. Mojim: A reliable and highly-available non-volatile memory system. In Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems (New York, NY, USA, 2015), ASPLOS '15, ACM, pp. 3--18.
[48]
Zilberberg, O., Weiss, S., and Toledo, S. Phase-change memory: An architectural perspective. ACM Comput. Surv. 45, 3 (July 2013), 29:1--29:33.

Cited By

View all
  • (2022)PCMCsim: An Accurate Phase-Change Memory Controller Simulator and its Performance Analysis2022 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS)10.1109/ISPASS55109.2022.00043(300-310)Online publication date: May-2022
  • (2019)Integration and Boost of a Read-Modify-Write Module in Phase Change Memory SystemIEEE Transactions on Computers10.1109/TC.2019.293382668:12(1772-1784)Online publication date: 1-Dec-2019
  • (2018)Persistence parallelism optimizationProceedings of the 51st Annual IEEE/ACM International Symposium on Microarchitecture10.1109/MICRO.2018.00047(494-506)Online publication date: 20-Oct-2018

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
INFLOW '15: Proceedings of the 3rd Workshop on Interactions of NVM/FLASH with Operating Systems and Workloads
October 2015
61 pages
ISBN:9781450339452
DOI:10.1145/2819001
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 ACM 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: 04 October 2015

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

SOSP '15
Sponsor:

Acceptance Rates

Overall Acceptance Rate 8 of 15 submissions, 53%

Upcoming Conference

SOSP '25
ACM SIGOPS 31st Symposium on Operating Systems Principles
October 13 - 16, 2025
Seoul , Republic of Korea

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)1
Reflects downloads up to 14 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2022)PCMCsim: An Accurate Phase-Change Memory Controller Simulator and its Performance Analysis2022 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS)10.1109/ISPASS55109.2022.00043(300-310)Online publication date: May-2022
  • (2019)Integration and Boost of a Read-Modify-Write Module in Phase Change Memory SystemIEEE Transactions on Computers10.1109/TC.2019.293382668:12(1772-1784)Online publication date: 1-Dec-2019
  • (2018)Persistence parallelism optimizationProceedings of the 51st Annual IEEE/ACM International Symposium on Microarchitecture10.1109/MICRO.2018.00047(494-506)Online publication date: 20-Oct-2018

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media