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
Summary
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
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have