nvm malloc: Memory Allocation for NVRAM

نویسندگان

  • David Schwalb
  • Tim Berning
  • Martin Faust
  • Markus Dreseler
  • Hasso Plattner
چکیده

Non-volatile main memory (NVRAM) has the potential to fundamentally change the persistency of software. Applications can make their state persistent by directly placing data structures on NVRAM instead of volatile DRAM. However, the persistent nature of NVRAM requires significant changes for memory allocators that are now faced with the additional tasks of data recovery and failure-atomicity. In this paper, we present nvm malloc, a general-purpose memory allocator concept for the NVRAM era as a basic building block for persistent applications. We introduce concepts for managing named allocations for simplified recovery and using volatile and non-volatile memory in combination to provide both high performance and failure-atomic allocations.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Eager Acquisition

In most operating systems, operations such as dynamic memory allocation can be very expensive. The time it takes for memory allocations via operations like "malloc" depends on the implementation of the operations. If the telecommunication application is supposed to run on a non-real-time operating system, the time to execute malloc will vary even if the same size of memory is to be acquired. Ru...

متن کامل

Are Mallocs Free of Fragmentation?

Malloc(3) is considered to be a robust building block. However, we found that many malloc implementations su er from excessive heap fragmentation when used with Hummingbird, a long-running application which stores a large number of xed-sized and variable-sized objects in dynamic memory. This paper characterizes the dynamic memory activity pattern of Hummingbird and GNU Emacs. It compares the be...

متن کامل

malloc(3) Revisited

malloc (3) is one of the oldest parts of the C language environment and not surprisingly the world has changed a bit since it was first conceived. The fact that most UNIX kernels have changed from swap/segment to virtual memory/page based memory management has not been sufficiently reflected in the implementations of the malloc/free API. Anew implementation was designed, written, tested and ben...

متن کامل

A Scalable Concurrent malloc(3) Implementation for FreeBSD

The FreeBSD project has been engaged in ongoing work to provide scalable support for multi-processor computer systems since version 5. Sufficient progress has been made that the C library’s malloc(3) memory allocator is now a potential bottleneck for multi-threaded applications running on multiprocessor systems. In this paper, I present a new memory allocator that builds on the state of the art...

متن کامل

Malloc() Performance in a Multithreaded Linux Environment

Network servers make special demands that other types of applications may not make on memory allocators. We describe a simple malloc() microbenchmark suite that tests the ability of malloc() to divide its work efficiently among multiple threads and processors. The purpose of this suite is to determine the suitability of an operating system’s heap allocator for use with network servers running i...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015