Nothing Special   »   [go: up one dir, main page]

skip to main content
10.5555/3154690.3154757guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Log-structured non-volatile main memory

Published: 12 July 2017 Publication History

Abstract

Emerging non-volatile main memory (NVMM) unlocks the performance potential of applications by storing persistent data in the main memory. Such applications require a lightweight persistent transactional memory (PTM) system, instead of a heavyweight filesystem or database, to have fast access to data. In a PTM system, the memory usage, both capacity and bandwidth, plays a key role in dictating performance and efficiency. Existing memory management mechanisms for PTMs generate high memory fragmentation, high write traffic and a large number of persist barriers, since data is first written to a log and then to the main data store.
In this paper, we present a log-structured NVMM system that not only maintains NVMM in a compact manner but also reduces the write traffic and the number of persist barriers needed for executing transactions. All data allocations and modifications are appended to the log which becomes the location of the data. Further, we address a unique challenge of log-structured memory management by designing a tree-based address translation mechanism where access granularities are flexible and different from allocation granularities. Our results show that the new system enjoys up to 89.9% higher transaction throughput and up to 82.8% lower write traffic than a traditional PTM system.

References

[1]
Intel C++ STM compiler prototype edition. https://software.intel.com/enus/ forums/intel-c-stm-compiler-prototype-edition, 2012.
[2]
AKINAGA, H., AND SHIMA, H. Resistive random access memory (ReRAM) based on metal oxides. Proc. IEEE 98, 12 (2010).
[3]
APALKOV, D., KHVALKOVSKIY, A., WATTS, S., NIKITIN, V., TANG, X., LOTTIS, D., MOON, K., LUO, X., CHEN, E., ONG, A., DRISKILL-SMITH, A., AND KROUNBI, M. Spin-transfer torque magnetic random access memory (STT-MRAM). ACM J. Emerg. Technol. Comput. Syst. 9, 2 (May 2013), 13:1-13:35.
[4]
ARULRAJ, J., PAVLO, A., AND DULLOOR, S. R. Let's talk about storage & recovery methods for non-volatile memory database systems. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data (2015), SIGMOD '15, pp. 707-722.
[5]
ATIKOGLU, B., XU, Y., FRACHTENBERG, E., JIANG, S., AND PALECZNY, M. Workload analysis of a large-scale key-value store. In Proceedings of the 12th ACM SIGMETRICS/PERFORMANCE Joint International Conference on Measurement and Modeling of Computer Systems (2012), SIGMETRICS '12, pp. 53-64.
[6]
BERGER, E. D., MCKINLEY, K. S., BLUMOFE, R. D., AND WILSON, P. R. Hoard: A scalable memory allocator for multithreaded applications. In Proceedings of the Ninth International Conference on Architectural Support for Programming Languages and Operating Systems (2000), ASPLOS IX, pp. 117-128.
[7]
BHANDARI, K., CHAKRABARTI, D. R., AND BOEHM, H.-J. Makalu: Fast recoverable allocation of non-volatile memory. In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (2016), OOPSLA '16, pp. 677-694.
[8]
BRAGINSKY, A., AND PETRANK, E. A lock-free B+tree. In Proceedings of the Twenty-fourth Annual ACM Symposium on Parallelism in Algorithms and Architectures (2012), SPAA '12, pp. 58-67.
[9]
CHATZISTERGIOU, A., CINTRA, M., AND VIGLAS, S. D. REWIND: Recovery Write-ahead system for In-memory Non-volatile Data-structures. Proc. VLDB Endow. 8, 5 (Jan. 2015), 497-508.
[10]
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, nonvolatile memories. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (2011), ASPLOS XVI, pp. 105-118.
[11]
COOPER, B. F., SILBERSTEIN, A., TAM, E., RAMAKRISHNAN, R., AND SEARS, R. Benchmarking cloud serving systems with YCSB. In Proceedings of the 1st ACM Symposium on Cloud Computing (2010), SoCC '10, pp. 143-154.
[12]
DU, Y., ZHOU, M., CHILDERS, B. R., MOSSÉ, D., AND MELHEM, R. Bit mapping for balanced PCM cell programming. In Proceedings of the 40th Annual International Symposium on Computer Architecture (2013), ISCA '13, pp. 428-439.
[13]
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 (2014), EuroSys '14, pp. 15:1-15:15.
[14]
ELLEN, F., FATOUROU, P., HELGA, J., AND RUPPERT, E. The amortized complexity of nonblocking binary search trees. In Proceedings of the 2014 ACM Symposium on Principles of Distributed Computing (2014), PODC '14, pp. 332-340.
[15]
EVANS, J. A scalable concurrent malloc(3) implementation for FreeBSD. In Proceedings of the BSDCan Conference (2006).
[16]
FELBER, P., FETZER, C., AND RIEGEL, T. Dynamic performance tuning of word-based software transactional memory. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (2008), PPoPP '08, pp. 237-246.
[17]
FREE SOFTWARE FOUNDATION, INC. The GNU C Library, 2.24 ed., Aug. 2016. https://www. gnu.org/software/libc/manual/.
[18]
GILES, E. R., DOSHI, K., AND VARMAN, P. Soft-WrAP: A lightweight framework for transactional support of storage class memory. In Proceedings of the 31st Symposium on Mass Storage Systems and Technologies (May 2015), MSST '15, pp. 1-14.
[19]
GUO, F., AND EFSTATHOPOULOS, P. Building a high-performance deduplication system. In Proceedings of the 2011 USENIX Conference on USENIX Annual Technical Conference (2011), USENIX ATC '11, pp. 271-284.
[20]
HERTZ, M., AND BERGER, E. D. Quantifying the performance of garbage collection vs. explicit memory management. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications (2005), OOPSLA '05, pp. 313-326.
[21]
HIRABAYASHI, M. Tokyo cabinet: a modern implementation of DBM. http://1978th.net/tokyocabinet/, 2010.
[22]
INTEL. The NVM Library. http://pmem.io/, 2016.
[23]
INTEL NEWSROOM. Introducing Intel Optane technology - bringing 3D XPoint memory to storage and memory products. https://newsroom.intel.com/press-kits/ introducing-intel-optane-technology-bringing-3d-xpoint-memory-to-storage-and-memory-products/, July 2015.
[24]
KOLLI, A., PELLEY, S., SAIDI, A., CHEN, P. M., AND WENISCH, T. F. High-performance transactions for persistent memories. In Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems (2016), ASPLOS '16, pp. 399-411.
[25]
KLTRSAY, E., KANDEMIR, M., SIVASUBRAMANIAM, A., AND MUTLU, O. Evaluating STT-RAM as an energy-efficient main memory alternative. In Proceeding of the 2013 IEEE International Symposium on Performance Analysis of Systems and Software (Apr. 2013), ISPASS '13, pp. 256-267.
[26]
LEA, D. A memory allocator. http://g.oswego.edu/dl/html/malloc.html.
[27]
LEE, B., ZHOU, P., YANG, J., ZHANG, Y., ZHAO, B., IPEK, E., MUTLU, O., AND BURGER, D. Phase-change technology and the future of main memory. IEEE Micro 30 (Jan. 2010), 131-141.
[28]
LEE, B. C., IPEK, E., MUTLU, O., AND BURGER, D. Architecting phase change memory as a scalable DRAM alternative. In Proceedings of the 36th Annual International Symposium on Computer Architecture (2009), ISCA '09, pp. 2-13.
[29]
LEE, C., SIM, D., HWANG, J., AND CHO, S. F2FS: A new file system for flash storage. In 13th USENIX Conference on File and Storage Technologies (2015), FAST '15, pp. 273-286.
[30]
LILLIBRIDGE, M., ESHGHI, K., BHAGWAT, D., DEOLALIKAR, V., TREZISE, G., AND CAMBLE, P. Sparse indexing: Large scale, inline deduplication using sampling and locality. In Proccedings of the 7th Conference on File and Storage Technologies (2009), FAST '09, pp. 111-123.
[31]
LIM, H., FAN, B., ANDERSEN, D. G., AND KAMINSKY, M. SILT: A memory-efficient, high-performance key-value store. In Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles (2011), SOSP '11, pp. 1-13.
[32]
LINUX KERNEL ORGANIZATION, INC. Direct access for files. https://www.kernel.org/ doc/Documentation/filesystems/dax.txt, 2016.
[33]
LIU, M., ZHANG, M., CHEN, K., QIAN, X., WU, Y., AND REN, J. DudeTM: Building durable transactions with decoupling for persistent memory. In Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems (2017), ASPLOS '17, pp. 329-343.
[34]
LIU, R.-S., SHEN, D.-Y., YANG, C.-L., YU, S.- C., AND WANG, C.-Y. M. NVM Duet: Unified working memory and persistent store architecture. In Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (2014), ASPLOS '14, pp. 455-470.
[35]
LU, Y., SHU, J., AND SUN, L. Blurred persistence in transactional persistent memory. In Proceedings of the 31st Symposium on Mass Storage Systems and Technologies (May 2015), MSST '15, pp. 1-13.
[36]
MORARU, I., ANDERSEN, D. G., KAMINSKY, M., TOLIA, N., RANGANATHAN, P., AND BINKERT, N. Consistent, durable, and safe memory management for byte-addressable non volatile main memory. In Proceedings of the First ACM SIGOPS Conference on Timely Results in Operating Systems (2013), TRIOS '13, pp. 1:1-1:17.
[37]
NARAYANAN, D., AND HODSON, O. Whole-system persistence. In Proceedings of the Seventeenth International Conference on Architectural Support for Programming Languages and Operating Systems (2012), ASPLOS XVII, pp. 401-410.
[38]
NISHTALA, R., FUGAL, H., GRIMM, S., KWIATKOWSKI, M., LEE, H., LI, H. C., MCELROY, R., PALECZNY, M., PEEK, D., SAAB, P., STAFFORD, D., TUNG, T., AND VENKATARAMANI, V. Scaling memcache at Facebook. In Proceedings of the 10th USENIX Conference on Networked Systems Design and Implementation (2013), NSDI '13, pp. 385-398.
[39]
ORACLE. NVM Direct. https://github.com/oracle/nvm-direct, 2016.
[40]
OU, J., SHU, J., AND LU, Y. A high performance file system for non-volatile main memory. In Proceedings of the Eleventh European Conference on Computer Systems (2016), EuroSys '16, pp. 12:1-12:16.
[41]
PELLEY, S., CHEN, P. M., AND WENISCH, T. F. Memory persistency. In Proceeding of the 41st Annual International Symposium on Computer Architecuture (2014), ISCA '14, pp. 265-276.
[42]
PUGH, W. Skip lists: A probabilistic alternative to balanced trees. Commun. ACM 33, 6 (June 1990), 668-676.
[43]
RAOUX, S., BURR, G. W., BREITWISCH, M. J., RETTNER, C. T., CHEN, Y.-C., SHELBY, R. M., SALINGA, M., KREBS, D., CHEN, S.-H., LUNG, H.-L., AND LAM, C. H. Phase-change random access memory: A scalable technology. IBM J. Res. Dev. 52, 4 (July 2008), 465-479.
[44]
REN, J., ZHAO, J., KHAN, S., CHOI, J., WU, Y., AND MUTLU, O. ThyNVM: Enabling software-transparent crash consistency in persistent memory systems. In Proceedings of the 48th International Symposium on Microarchitecture (2015), MICRO-48, pp. 672-685. http://persper.com/thynvm/.
[45]
ROSENBLUM, M., AND OUSTERHOUT, J. K. The design and implementation of a log-structured file system. ACM Trans. Comput. Syst. 10, 1 (Feb. 1992), 26-52.
[46]
RUMBLE, S. M., KEJRIWAL, A., AND OUSTERHOUT, J. Log-structured memory for DRAM-based storage. In Proceedings of the 12th USENIX Conference on File and Storage Technologies (2014), FAST '14, pp. 1-16.
[47]
SCHWALB, D., BERNING, T., FAUST, M., DRESELER, M., AND PLATTNER, H. nvm_malloc: memory allocation for NVRAM. In In Sixth International Workshop on Accelerating Data Management Systems Using Modern Processor and Storage Architectures (in conjunction with VLDB) (2015).
[48]
SEARS, R., AND RAMAKRISHNAN, R. bLSM: A general purpose log structured merge tree. In Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data (2012), SIGMOD '12, pp. 217-228.
[49]
VENKATARAMAN, S., TOLIA, N., RANGANATHAN, P., AND CAMPBELL, R. H. Consistent and durable data structures for non-volatile byte-addressable memory. In Proceedings of the 9th USENIX Conference on File and Stroage Technologies (2011), FAST '11, pp. 61-75.
[50]
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 (2011), ASPLOS XVI, pp. 91-104.
[51]
WANG, C., CHEN, W.-Y., WU, Y., SAHA, B., AND ADL-TABATABAI, A.-R. Code generation and optimization for transactional memory constructs in an unmanaged language. In Proceedings of the International Symposium on Code Generation and Optimization (2007), CGO '07, pp. 34-48.
[52]
XU, J., AND SWANSON, S. NOVA: A log-structured file system for hybrid volatile/nonvolatile main memories. In Proceedings of the 14th Usenix Conference on File and Storage Technologies (2016), FAST '16, pp. 323-338.
[53]
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 Proceedings of the 13th USENIX Conference on File and Storage Technologies (2015), FAST '15, pp. 167-181.
[54]
YU, S., XIAO, N., DENG, M., XING, Y., LIU, F., CAI, Z., AND CHEN, W. Walloc: An efficient wear-aware allocator for non-volatile main memory. In 2015 IEEE 34th International Performance Computing and Communications Conference (IPCCC) (2015), IPCCC '15, pp. 1-8.
[55]
ZHANG, Y., AND SWANSON, S. A study of application performance with non-volatile main memory. In Proceedings of the 31st Symposium on Mass Storage Systems and Technologies (May 2015), MSST '15, pp. 1-10.
[56]
ZHAO, J., LI, S., YOON, D. H., XIE, Y., AND JOUPPI, N. P. Kiln: Closing the performance gap between systems with and without persistence support. In Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture (2013), MICRO-46, pp. 421-432.
[57]
ZHOU, P., ZHAO, B., YANG, J., AND ZHANG, Y. A durable and energy efficient main memory using phase change memory technology. In Proceedings of the 36th Annual International Symposium on Computer Architecture (2009), ISCA '09, pp. 14-23.

Cited By

View all
  • (2021)Twizzler: A Data-centric OS for Non-volatile MemoryACM Transactions on Storage10.1145/345412917:2(1-31)Online publication date: 8-Jun-2021
  • (2021)PMNetProceedings of the 48th Annual International Symposium on Computer Architecture10.1109/ISCA52012.2021.00068(804-817)Online publication date: 14-Jun-2021
  • (2021)NVOverlayProceedings of the 48th Annual International Symposium on Computer Architecture10.1109/ISCA52012.2021.00046(498-511)Online publication date: 14-Jun-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Guide Proceedings
USENIX ATC '17: Proceedings of the 2017 USENIX Conference on Usenix Annual Technical Conference
July 2017
811 pages
ISBN:9781931971386

Sponsors

  • VMware
  • NetApp
  • Microsoft: Microsoft
  • Facebook: Facebook
  • ORACLE: ORACLE

Publisher

USENIX Association

United States

Publication History

Published: 12 July 2017

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Twizzler: A Data-centric OS for Non-volatile MemoryACM Transactions on Storage10.1145/345412917:2(1-31)Online publication date: 8-Jun-2021
  • (2021)PMNetProceedings of the 48th Annual International Symposium on Computer Architecture10.1109/ISCA52012.2021.00068(804-817)Online publication date: 14-Jun-2021
  • (2021)NVOverlayProceedings of the 48th Annual International Symposium on Computer Architecture10.1109/ISCA52012.2021.00046(498-511)Online publication date: 14-Jun-2021
  • (2020)TwizzlerProceedings of the 2020 USENIX Conference on Usenix Annual Technical Conference10.5555/3489146.3489151(65-80)Online publication date: 15-Jul-2020
  • (2020)LosPemACM Journal on Emerging Technologies in Computing Systems10.1145/337993216:3(1-17)Online publication date: 22-May-2020
  • (2020)FlatStore: An Efficient Log-Structured Key-Value Storage Engine for Persistent MemoryProceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3373376.3378515(1077-1091)Online publication date: 9-Mar-2020
  • (2020)Cross-Failure Bug Detection in Persistent Memory ProgramsProceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3373376.3378452(1187-1202)Online publication date: 9-Mar-2020
  • (2019)PiscesProceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference10.5555/3358807.3358885(913-928)Online publication date: 10-Jul-2019
  • (2019)PangolinProceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference10.5555/3358807.3358884(897-911)Online publication date: 10-Jul-2019
  • (2019)SSPProceedings of the 52nd Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3352460.3358326(836-848)Online publication date: 12-Oct-2019
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media