Fast and secure Global-Heap for memory-centric computing | The Journal of Supercomputing Skip to main content
Log in

Fast and secure Global-Heap for memory-centric computing

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

In-memory computing has been widely used to process data quickly in memory, but it is no longer able to cope with the current data explosion. This has occurred because modern computers have structural constraints in terms of both memory capacity and bandwidth, fundamentally limiting the amount of data that can be processed in memory. In order to overcome these limitations, the memory-centric computing concept was proposed, and as an attempt to make this concept feasible, nonvolatile memory, next-generation interconnects, and memory-centric operating system technologies are being actively studied. Although, however, there have been many studies of these concepts, the essential problem of both efficiently and safely using the extremely large memory space has not been completely solved. This paper proposes what is termed Global-Heap which solves the above essential problem, thus supporting the core technology of memory-centric computing. In this technology, a heap-level abstraction which can be switched very lightly between processes is provided in an application-friendly manner as a global resource. Global-Heap also provides an effective means by which safely to use this vast address space based on Intel memory protection keys. We implemented Global-Heap on Linux and developed three useful use cases applicable to data-centric applications. Our primary evaluation shows that Global-Heap enables reorganization-free hashing. In addition, Global-Heap can improve the performance of an in-memory key-value store, Redis, by at least 7.56 times, and it can reduce the running time of graph applications executed in a pipeline approach by at least 48%.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
¥17,985 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price includes VAT (Japan)

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13

Similar content being viewed by others

Notes

  1. Redis-benchmark is a standalone process for measuring performance, which is included in the open-source Redis. Set/get commands are executed 100,000 times and the performance of those commands is measured in units of OPS.

References

  1. K. Keeton, "Memory-Driven Computing," In: Keynote of the 15th USENEX Conference on File and Storage Technologies (FAST '17)

  2. Intel (2019) The Challenge of Keeping Up with Data. https://www.intel.com/content/www/us/en/products/docs/memory-storage/optane-persistent-memory/optane-dc-persistent-memory-brief.html. Accessed Oct 2020

  3. Gen-Z (2016) The Gen-Z Consortium. https://genzconsortium.org. Accessed Sept 2020

  4. Gen-Z (2020) Gen-Z Core Specification 1.1. https://genzconsortium.org/specification/gen-z-core-specification-1-1. Accessed Sept 2020

  5. CCIX (2016) CCIX. https://www.ccixconsortium.com. Accessed Oct 2020

  6. OpenCAPI (2016) OpenCAPI. https://opencapi.org. Accessed Oct 2020

  7. CXL (2019) CXL. https://www.computeexpresslink.org. Accessed Oct 2020

  8. Izzat EH, Alexander M, Gerd Z, Dejan M, Reto A, Paolo F, Wen-mei H, Timothy R, Karsten S (2016) SpaceJMP: programming with multiple virtual address spaces. In: Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'16), pp. 353–368

  9. Alexander M. Merritt (2017) Efficient Programming of Massive-memory Machines. Doctoral dissertation, Georgia Institute of Technology

  10. Till S (2017) MVAS Source Code. https://github.com/l3nkz/linux/tree/mvas. Accessed Jan 2019

  11. Joel C, Adrian MC, Ameen A, Laura MG, Rajesh KG, Ranjit J, Steven S (2011) 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 (ASPLOS'11), pp. 105–118

  12. Haris V, Andres JT, Michael MS (2011) Mnemosyne: lightweight persistent memory. In: Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating (ASPLOS'11), pp. 91–104

  13. Yizhou S, Shin-Yeh T, Yiying Z (2017) Distributed shared persistent memory. In: Proceedings of the ACM Symposium on Cloud Computing 2017 (SoCC'17), pp. 323–337

  14. Jonathan C (2015) Memory Protection Keys. https://lwn.net/Articles/643797. Accessed Mar 2020

  15. Intel (2019) Intel® 64 and IA-32 Architectures software developer’s manual. https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd. pdf. Accessed Mar 2020

  16. James L, Anjo VO, Eslam E, Deepak G, Bobby B. Peter D (2016) Light-weight contexts: an OS abstraction for safety and performance. In: Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI'16), pp.49–64

  17. Andrea B, Petr M, Mark H, Brad K (2008) Wedge: splitting applications into reduced-privilege compartments. In: Proceedings of the 5th USENIX Symposium on Networked Systems Design and Implementation (NSDI'08), pp. 309–322

  18. Robert W, Steven L, Thomas E.A, Susan L.G (1993) Efficient software-based fault isolation. In: Proceedings of the fourteenth ACM symposium on Operating systems principles (SOSP'93), pp. 203–216

  19. Intel (2013) Introduction to intel® memory protection extensions. https://software.intel.com/content/www/us/en/develop/articles/introduction-to-intel-memory-protection-extensions.html. Accessed July 2020

  20. Soyeon P, Sangho L, Wen X, Hyungon M, Taesoo K (2019) Libmpk: software abstraction for intel memory protection keys (Intel MPK). In: Proceedings of the 2019 USENIX Annual Technical Conference (ATC'19), pp. 241–254

  21. Anjo V-O, Eslam E, Nuno O.D, Michael S, Peter D, Deepak G (2019) ERIM: secure, efficient in-process isolation with protection keys (MPK). In: Proceedings of the 28th USENIX Security Symposium (SEC'19), pp. 1221–1238

  22. Koen K, Xi C, Herbert B, Cristiano G, Elias A (2017) No need to hide: protecting safe regions on commodity hardware. In: Proceedings of the Twelfth European Conference on Computer Systems (EuroSys'17), pp. 437–452

  23. Taeho H, Jaemin J, Youjip W (2014) HEAPO: heap-based persistent object store. ACM Trans Storage. https://doi.org/10.1145/2629619

    Article  Google Scholar 

  24. Intel (2014) Persistent memory programming. https://pmem.io. Accessed June 2020

  25. Michael K (2020) mmap(2) – Linux manual page. https://man7.org/linux/man-pages/man2/mmap.2.html. Accessed Sept 2020

  26. Weiwei W, Wanyuan W, Xiaolin F, Junzhou L, Athanasios V (2019) Electricity price-aware consolidation algorithms for time-sensitive VM services in cloud systems. IEEE Trans Serv Comput. https://doi.org/10.1109/TSC.2019.2894742

    Article  Google Scholar 

  27. Jianbing N, Kuan Z, Athanasios V (2020) Security and privacy for mobile edge caching: challenges and solutions. IEEE Wireless Commun. https://doi.org/10.1109/MWC.001.2000329

    Article  Google Scholar 

  28. Doug L (2000) A memory allocator. http://gee.cs.oswego.edu/dl/html/malloc.html. Accessed Mar 2020

  29. Jonathan C (2016) Memory protection keys. https://lwn.net/Articles/689395. Accessed Mar 2020

  30. Redis (2020) Redis source code. https://download.redis.io/releases/redis-5.0.9.tar.gz?_ga=2.260655629.1067659170.1603094582-547064067.1603094582. Accessed Apr 2020

  31. David A.B, E.Jason R, Kamesh M, Pushkar RP (2013) SNAP: Large-scale graph analysis. https://sourceforge.net/projects/snap-graph. Accessed July 2020

  32. David A.B, Kamesh M (2006) GTgraph: a suite of synthetic random graph generators. http://www.cse.psu.edu/~kxm85/software/GTgraph. Accessed July 2020

Download references

Acknowledgements

This work was supported by Institute of Information & communications Technology Planning & Evaluation (IITP) grant funded by the Korea government(MSIT) (No. 2018-0-00503, Researches on next generation memory-centric computing system architecture).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Myung-Hoon Cha.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Cha, MH., Lee, SM., An, BS. et al. Fast and secure Global-Heap for memory-centric computing. J Supercomput 77, 13262–13291 (2021). https://doi.org/10.1007/s11227-021-03806-4

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-021-03806-4

Keywords

Navigation