Abstract

The non-volatile memory (NVM) device is a useful way to solve the memory wall in computers. However, the current I/O software stack in operating systems becomes a performance bottleneck for applications based on NVM devices, especially for key–value stores. We analyzed the characteristics of key–value stores and NVM devices and designed a new embedded key–value store for an NVM device simulator named PMEKV. The embedded processor in NVM devices was used to manage key–value pairs to reduce the data transfer between NVM devices and key–value applications. Meanwhile, it also cut down the data copy between the user space and the kernel space in the operating system to alleviate the I/O software stacks on the efficiency of key–value stores. The architecture, data layout, management strategy, new interface and log strategy of PMEKV are given. Finally, a prototype of PMEKV was implemented based on PMEM. We used YCSB to test and compare it with Redis, MongDB, and Memcache. Meanwhile, the Redis for PMEM named PMEM-Redis and PMEM-KV were also used to test and compared with PMEKV. The results show that PMEKV had the advantage of throughput and adaptability compared with the current key–value stores.

Highlights

  • The development of components in computer systems is unbalanced

  • The PMEM-KV and PMEM-Redis do not implement the key–value management engine in the PMEM; they use the same architecture in Figure 1 but only exploit PMEM to replace current storage devices such as HDD or solid-state device (SSD) for key–value store and Redis

  • The throughput of PMEKV-FS is higher than Redis. These results show that the separation of the key and value for key–value pairs can reduce the size of index and the device memory consumption in non-volatile memory (NVM) devices, improve the management efficiency with a large number of key–value pairs

Read more

Summary

Introduction

The development of components in computer systems is unbalanced. The I/O performances of the disk and the Flash-based solid-state device (SSD) are much lower than the speed of the CPU. Current key–value stores need to access NVM devices by the file systems and will cause the copy of index and key–value pairs between user space and kernel of OS. These data are needed to transfer and convert among several layers in the I/O software stack, such as system call, file system and block layer. The new interface of NVM devices is designed to access the embedded key–value storage engine directly for the application It can bypass the file system and block layer to improve the latency and throughput of key–value store via shortening the I/O software stack. The test results show that PMEKV has higher performance and better adaptability than current key–value stores

Related Works
The Data Layout of PMEKV
The Management of Key–Value Pair
The Interface of PMEKV
Evaluation
The Prototype
Key–Value Pairs Insertion
Threads
Changing the Number of Key–Value Pairs
Changing the Number of Access Requests
Conclusions and Future Works
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call