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.
전통적인 컴퓨터 시스템에서 HDD나 SSD와 같은 이차 스토리지는 데이터를 오래 영구적이면서 지속적으로 저장하지만, 일차 스토리지, 즉, 주메모리 보다는 훨씬 느리고, 그 데이터는 중앙처리장치에 의해 오직 입출력 채널을 통해서만 접근될 수 있다. 그래서 입출력 동작은 입출력 집중적인 응용프로그램들에게 큰 성능 장애가 되어왔다.
다행히도 최근의 스핀토크전가-자기램과 형상변화-메모리와 같은 비휘발성 바이트-주소접근가능 메모리(NV-RAM)의 등장은 디램에 근접한 고성능으로 지속성 데이터를 저장할 기회를 제공한다. 그러나 지속 저장장치의 위치가 CPU에 더욱 접근하고, load/store 명령어로 지속성 데이터에 직접 접근할 수 있게 되면서, 가상 파일 시스템 단을 포함한 파일 시스템 단과 디바이스 드라이버와 같은 데이터 접근을 위한 시스템 소프트웨어 단의 오버해드들은 더이상 무시될 수 없다.
이 논문에서 우리는 유스토어(UStore)라고 불리는 경량화 유저레벨 지속 스토리지를 제안한다. 이는 물리적으로 NV-RAM에 할당되고 응용프로그램의 가상 주소 공간에 직접 사상된다. 유스토어는 응용프로그램이 시스템 소프트웨어의 오버헤드와 사용자공간과 커널공간 사이에서의 별도의 데이터 복사 없이 지속성 데이터에 빠르게 접근가능하도록 한다.
우리는 유스토어가 적은 노력으로 기존 응용프로그램에 쉽게 적용되는 방법을 보이고, 여러 벤치마크 테스트를 통해 성능 향상에 대해 평가한다.
추가로 우리는 모바일 플랫폼에서의 필수 데이터베이스들이 자주 사용되는 몇개 실제 시나리오에 대한 입출력 프로파일을 얻었고, 목적 모바일 플랫폼 대한 그 입출력 프로파일와 추가 성능 테스트로 부터 유스토어는 모바일 플랫폼에 적용하고 사용자 응답성을 향상시키기에 적합하다는 판단을 한다.