Digital Library[ Search Result ]
A Persistent Log Buffer Technique using Non-volatile Memory for In-Memory Key-Value Databases
Doyoung Kim, Won Gi Choi, Hanseung Sung, Jihwan Lee, Sanghyun Park
http://doi.org/10.5626/JOK.2018.45.11.1193
Redis, an In-Memory Key-Value Database, is widely used in services that require real time data processing and storage. Since main memory is volatile, Redis has a problem of data loss if the system is terminated abnormally. To prevent this problem, Redis stores logs on disk, preventing data loss by restoring logs when the system is terminated. The AOF recovery mechanism, a method of appending requested commands in disk as a log format, operates with the “everysec” policy that writes logs every second, and the “always” policy that writes a log every time a command is requested. The “everysec” policy does not degrade performance of Redis, but data loss can occur if the system is terminated abnormally within one second. Conversely, the “always” policy does not cause data loss, but it requires disk operation for every command, causing performance degradation. We propose a system model that constructs AOF buffer in non-volatile memory and stores logs in the buffer, which are not synchronized to disk in the “everysec” policy. The proposed model prevents data loss and has approximately 100 times better performance than the “always” policy.
Design and Implementation of a Log-structured Buffer Based on Non-volatile Memory
http://doi.org/10.5626/JOK.2018.45.11.1117
Next-generation non-volatile memory (NVM) technologies, such as PCM and STTMRAM, provide low latency, high bandwidth, non-volatility, and high capacity. Such NVMs are widely used and studied in the field of computer systems and databases for high performance computing. For example, recent researchers have used NVM for journaling buffers and database logging of file systems and have conducted many optimization studies accordingly. As a complement to existing work, this paper focuses on the atomic page update of applications. For example, in a data management application such as a database system, the atomicity of the pages is ensured by performing a redundant write operation with a temporary buffer in order to atomically update multiple pages. However, this redundant write operation can reduce the performance. Therefore, in this paper, we introduce a log-structured buffer manager (LSMB) to improve the performance while ensuring the consistency. LSBM updates the page to NVM by logging and provides buffering. In addition, if there are duplicated pages in the buffer, the old version of the page is removed to reflect only the latest page, which minimizes the I/O and write amount. Experimental results show that LSBM improves the performance of the application and reduces the total write amount.
Garbage Collection Technique for Non-volatile Memory by Using Tree Data Structure
Most traditional garbage collectors commonly use the language level metadata, which is designed for pointer type searching. However, because it is difficult to use this metadata in non-volatile memory allocation platforms, a new garbage collection technique is essential for nonvolatile memory utilization. In this paper, we design new metadata for managing information regarding non-volatile memory allocation called "Allocation Tree". This metadata is comprised of tree data structure for fast information lookup and a node that holds an allocation address and an object ID pair in key-value form. The Garbage Collector starts collecting when there are insufficient non-volatile memory spaces, and it compares user data and the allocation tree for garbage detection. We develop this algorithm in a persistent heap based non-volatile memory allocation platform called "HEAPO" for demonstration.
Search

Journal of KIISE
- ISSN : 2383-630X(Print)
- ISSN : 2383-6296(Electronic)
- KCI Accredited Journal
Editorial Office
- Tel. +82-2-588-9240
- Fax. +82-2-521-1352
- E-mail. chwoo@kiise.or.kr