FlameDB: A Key-Value Store With Grouped Level Structure and Heterogeneous Bloom Filter
Key-value (KV) stores are widely used to provide much higher read and write throughput than traditional SQL databases. In particular, LSM-tree based KV store is popular with many applications since it could eliminate random writes and thus provides good write performance. However, the data residing...
Main Authors: | , , , , |
---|---|
Format: | Article |
Language: | English |
Published: |
IEEE
2018-01-01
|
Series: | IEEE Access |
Subjects: | |
Online Access: | https://ieeexplore.ieee.org/document/8352544/ |
id |
doaj-bdb4e2d8bfd747eb953cef062571ff05 |
---|---|
record_format |
Article |
spelling |
doaj-bdb4e2d8bfd747eb953cef062571ff052021-03-29T20:54:20ZengIEEEIEEE Access2169-35362018-01-016249622497210.1109/ACCESS.2018.28312598352544FlameDB: A Key-Value Store With Grouped Level Structure and Heterogeneous Bloom FilterWeitao Zhang0https://orcid.org/0000-0002-1872-6534Yinlong Xu1Yongkun Li2Yueming Zhang3Dinglong Li4School of Computer Science and Technology, University of Science and Technology of China, Hefei, ChinaAnhui Province Key Laboratory of High Performance Computing, University of Science and Technology of China, Hefei, ChinaSchool of Computer Science and Technology, University of Science and Technology of China, Hefei, ChinaSchool of Computer Science and Technology, University of Science and Technology of China, Hefei, ChinaSchool of Computer Science and Technology, University of Science and Technology of China, Hefei, ChinaKey-value (KV) stores are widely used to provide much higher read and write throughput than traditional SQL databases. In particular, LSM-tree based KV store is popular with many applications since it could eliminate random writes and thus provides good write performance. However, the data residing in external storage are compacted from time to time, which takes a large amount of I/O resources and degrades the system performance. In this paper, we propose FlameDB, which leverages grouped level structure (GLS) to mitigate the compaction overhead. Besides dividing the whole storage space into multiple components as in LSM-tree, GLS further divides each component into multiple groups and compacts all KV items in a component as a group of the next component. Besides, we also propose a heterogeneous bloom filter (HEBF) scheme which assigns more bits to the bloom filters in upper components. With HEBF, the false positive rate of a bloom filter in upper components become smaller, and this scheme reduces the expected number of I/Os to read a KV item from the external storage with a given memory usage. Our experiments show that FlameDB saves about 75% I/O during compaction, so it improves the write throughput by about four times. Meanwhile, the read performance is also slightly improved by deploying HEBF.https://ieeexplore.ieee.org/document/8352544/Key-valuelog-structured merge-treewrite amplificationread amplificationbloom filter |
collection |
DOAJ |
language |
English |
format |
Article |
sources |
DOAJ |
author |
Weitao Zhang Yinlong Xu Yongkun Li Yueming Zhang Dinglong Li |
spellingShingle |
Weitao Zhang Yinlong Xu Yongkun Li Yueming Zhang Dinglong Li FlameDB: A Key-Value Store With Grouped Level Structure and Heterogeneous Bloom Filter IEEE Access Key-value log-structured merge-tree write amplification read amplification bloom filter |
author_facet |
Weitao Zhang Yinlong Xu Yongkun Li Yueming Zhang Dinglong Li |
author_sort |
Weitao Zhang |
title |
FlameDB: A Key-Value Store With Grouped Level Structure and Heterogeneous Bloom Filter |
title_short |
FlameDB: A Key-Value Store With Grouped Level Structure and Heterogeneous Bloom Filter |
title_full |
FlameDB: A Key-Value Store With Grouped Level Structure and Heterogeneous Bloom Filter |
title_fullStr |
FlameDB: A Key-Value Store With Grouped Level Structure and Heterogeneous Bloom Filter |
title_full_unstemmed |
FlameDB: A Key-Value Store With Grouped Level Structure and Heterogeneous Bloom Filter |
title_sort |
flamedb: a key-value store with grouped level structure and heterogeneous bloom filter |
publisher |
IEEE |
series |
IEEE Access |
issn |
2169-3536 |
publishDate |
2018-01-01 |
description |
Key-value (KV) stores are widely used to provide much higher read and write throughput than traditional SQL databases. In particular, LSM-tree based KV store is popular with many applications since it could eliminate random writes and thus provides good write performance. However, the data residing in external storage are compacted from time to time, which takes a large amount of I/O resources and degrades the system performance. In this paper, we propose FlameDB, which leverages grouped level structure (GLS) to mitigate the compaction overhead. Besides dividing the whole storage space into multiple components as in LSM-tree, GLS further divides each component into multiple groups and compacts all KV items in a component as a group of the next component. Besides, we also propose a heterogeneous bloom filter (HEBF) scheme which assigns more bits to the bloom filters in upper components. With HEBF, the false positive rate of a bloom filter in upper components become smaller, and this scheme reduces the expected number of I/Os to read a KV item from the external storage with a given memory usage. Our experiments show that FlameDB saves about 75% I/O during compaction, so it improves the write throughput by about four times. Meanwhile, the read performance is also slightly improved by deploying HEBF. |
topic |
Key-value log-structured merge-tree write amplification read amplification bloom filter |
url |
https://ieeexplore.ieee.org/document/8352544/ |
work_keys_str_mv |
AT weitaozhang flamedbakeyvaluestorewithgroupedlevelstructureandheterogeneousbloomfilter AT yinlongxu flamedbakeyvaluestorewithgroupedlevelstructureandheterogeneousbloomfilter AT yongkunli flamedbakeyvaluestorewithgroupedlevelstructureandheterogeneousbloomfilter AT yuemingzhang flamedbakeyvaluestorewithgroupedlevelstructureandheterogeneousbloomfilter AT dinglongli flamedbakeyvaluestorewithgroupedlevelstructureandheterogeneousbloomfilter |
_version_ |
1724193978608254976 |