In traditional computer systems, the secondary storage such HDD and SSD can store data permanently and persistently but, it is much slower than the primary storage, or main memory, and data on it can be accessed only via I/O channel by CPU, so that the I/O operation has been a big performance bottleneck for I/O intensive applications.
Fortunately, the recent advent of non-volatile byte-addressable memory (NV-RAM) technologies such as STT-MRAM and PCM, provides a chance to store persistent data with high performance close to DRAM`s. However, as the location of the persistent storage device gets closer to the CPU and the persistent data can be directly accessed with load/store instruction, the system software layers overheads for accessing the data such as file system layer including virtual file system layer and device driver are no longer negligible.
In this paper, we propose a light-weight user-level persistent storage, called UStore, which is physically allocated on the NV-RAM and is mapped directly into the virtual address space of an application. UStore makes it possible for the application to fast access the persistent data without the system software overheads and extra data copy between the user space and kernel space.
We show how UStore is easily applied to existing applications with little elaboration and evaluate its performance enhancement through several benchmark tests.
Additionally, we obtain I/O profiles of several real scenarios in mobile platform, in which essential DBs are frequently used. From the I/O profile and additional performance test for target mobile platform, we conclude that UStore is suitable to be applied to mobile platform and to enhance user responsiveness.