journal article·2019-09-11Open access

Constructing a Lightweight Key-Value Store Based on the Windows Native Features

Hyuk-Yoon Kwon

Applied Sciences· Volume 9· Issue 18

Abstract

In this paper, we propose a method to construct a lightweight key-value store based on the Windows native features. The main idea is providing a thin wrapper for the key-value store on top of a built-in storage in Windows, called Windows registry. First, we define a mapping of the components in the key-value store onto the components in the Windows registry. Then, we present a hash-based multi-level registry index so as to distribute the key-value data balanced and to efficiently access them. Third, we implement basic operations of the key-value store (i.e., Get, Put, and Delete) by manipulating the Windows registry using the Windows native APIs. We call the proposed key-value store WR-Store. Finally, we propose an efficient ETL (Extract-Transform-Load) method to migrate data stored in WR-Store into any other environments that support existing key-value stores. Because the performance of the Windows registry has not been studied much, we perform the empirical study to understand the characteristics of WR-Store, and then, tune the performance of WR-Store to find the best parameter setting. Through extensive experiments using synthetic and real data sets, we show that the performance of WR-Store is comparable to or even better than the state-of-the-art systems (i.e., RocksDB, BerkeleyDB, and LevelDB). Especially, we show the scalability of WR-Store. That is, WR-Store becomes much more efficient than the other key-value stores as the size of data set increases. In addition, we show that the performance of WR-Store is maintained even in the case of intensive registry workloads where 1000 processes accessing to the registry actively are concurrently running.
Source: crossref · Quality: baseline

Research context

OpenAlex topics: Advanced Data Storage Technologies · Cloud Computing and Resource Management · Advanced Database Systems and Queries

SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.

Affiliations

Department of Industrial and Systems Engineering and the Research Center for Electrical and Information Technology, Seoul National University of Science and Technology, 232 Gongneung-Ro, Nowon-Gu, Seoul 01811, Korea

Funding

National Research Foundation of Korea

References (28)

Show source-provided references
1. (2019, September 10). Redis. Available online: http://redis.io.
2. (2019, September 10). LevelDB. Available online: https://github.com/google/leveldb.
3. Facebook (2019, September 10). RocksDB: A Persistent Key-Value Store for Fast Storage Environments. Available online: https://rocksdb.org.
4. (2019, September 10). Oracle Berkeley DB. Available online: https://www.oracle.com/database/technologies/related/berkeleydb.html.
5. (2019, September 10). Memcached: A Distributed Memory Object Caching System. Available online: https://memcached.org.
6. ForestDB: A Fast Key-Value Storage System for Variable-Length String Keys10.1109/TC.2015.2435779 ↗
7. Wu, J., Yunfei, F., and Peng, S. (2018). Sensor Fusion for Recognition of Activities of Daily Living. Sensors, 18.10.3390/s18114029 ↗
8. Caching at the Web Scale10.14778/3137765.3137831 ↗
9. The Log-Structured Merge-Tree (LSM-tree)10.1007/s002360050048 ↗
10. (2019, September 10). Apache Hbase. Available online: http://hbase.apache.org.
11. Cassandra: A Decentralized Structured Storage System10.1145/1773912.1773922 ↗
12. WiscKey: Separating Keys from Values in SSD-Conscious Storage
13. Sears, R., and Raghu, R. (2012, January 20–24). bLSM: A General Purpose Log Structured Merge Tree. Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data, Scottsdale, AZ, USA.10.1145/2213836.2213862 ↗
14. Shetty, P., Richard, P.S., Ravikant, M., Binesh, A., Justin, S., and Erez, Z. (2013, January 12–15). Building Workload-Independent Storage with VT-trees. Proceedings of the 11th USENIX Conference on File and Storage Technologies (FAST 13), San Jose, CA, USA.
15. Wu, X., Yuehai, X., Zili, S., and Song, J. (2015, January 6–7). LSM-Trie: An LSM-Tree-Based Ultra-Large Key-Value Store for Small Data. Proceedings of the 2015 USENIX Conference on Usenix Annual Technical Conference, Santa Clara, CA, USA.
16. Flame DB: A Key-Value Store With Grouped Level Structure and Heterogeneous Bloom Filter10.1109/ACCESS.2018.2831259 ↗
17. FlashStore: High Throughput Persistent Key-Value Store10.14778/1920841.1921015 ↗
18. Debnath, B., Sengupta, S., and Li, J. (2011, January 12–16). SkimpyStash: RAM Space Skimpy Key-Value Store on Flash-Based Storage. Proceedings of the 2011 ACM SIGMOD International Conference on Management of Data, Athens, Greece.10.1145/1989323.1989327 ↗
19. Gandhi, R., Gupta, A., Povzner, A., Belluomini, W., and Kaldewey, T. (2, January 30). Mercury: Bringing Efficiency to Key-Value Stores. Proceedings of the 6th International Systems and Storage Conference, Haifa, Israel.
20. Lim, H., Bin, F., David, G.A., and Michael, K. (2011, January 23–26). SILT: A Memory-Efficient, High-Performance Key-Value Store. Proceedings of the 23rd ACM Symposium on Operating Systems Principles, Cascais, Portugal.10.1145/2043556.2043558 ↗
21. Andersen, D.G., Jason, F., Michael, K., Amar, P., Lawrence, T., and Vijay, V. (2009, January 11–14). FAWN: A Fast Array of Wimpy Nodes. Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles, Big Sky, MT, USA.
22. Mao, Y., Eddie, K., and Robert, T.M. (2012, January 10–13). Cache Craftiness for Fast Multicore Key-Value Storage. Proceedings of the 7th ACM European Conference on Computer Systems, Bern, Switzerland.10.1145/2168836.2168855 ↗
23. Marmol, L., Sundararaman, S., Talagala, N., and Rangaswami, R. (2015, January 6–7). NVMKV: A Scalable, Lightweight, FTL-aware Key-Value Store. Proceedings of the 2015 USENIX Annual Technical Conference, Santa Clara, CA, USA.
24. Papagiannis, A., Giorgos, S., Pilar, G., and Angelos, B. (2016, January 22–24). Tucana: Design and Implementation of a Fast and Efficient Scale-up Key-value Store. Proceedings of the 2016 USENIX Annual Technical Conference, Denver, CO, USA.
25. DeCandia, G., Hastorun, D., Jampani, M., Kakulapati, G., Lakshman, A., Pilchin, A., Sivasubramanian, S., Vosshall, P., and Vogles, W. (2007, January 14–17). Dynamo: Amazon’s Highly Available Key-Value Store. Proceedings of the 21st ACM SIGOPS Symposium on Operating Systems Principles, Washington, DC, USA.10.1145/1294261.1294281 ↗
26. Microsoft (2019, September 10). Registry Data Types. Available online: https://docs.microsoft.com/en-us/windows/win32/shell/hkey-type.
27. Microsoft (2019, September 10). Registry Functions. Available online: https://docs.microsoft.com/en-us/windows/win32/sysinfo/registry-functions.
28. Microsoft (2019, September 10). Registry Element Size Limit. Available online: https://docs.microsoft.com/en-us/windows/win32/sysinfo/registry-element-size-limits.