Improving Performance of Cloud Key-Value Storage Using Flushing Optimization

Yongseok Son, Hara Kang, Hyuck Han, H. Yeom
{"title":"Improving Performance of Cloud Key-Value Storage Using Flushing Optimization","authors":"Yongseok Son, Hara Kang, Hyuck Han, H. Yeom","doi":"10.1109/FAS-W.2016.22","DOIUrl":null,"url":null,"abstract":"Key-value store is an essential component with an increasing demand in many scale-out environments, including social networks, online retail, and cloud services. Hence, modern key-value storage engines provide many features, including transaction, versioning, replication, etc. In storage engines, transaction processing provides atomicity and durability by using write-ahead logging (WAL), which flushes log data before the data page is written to persistent storage in synchronous commit. However, according to our observation, WAL is a performance bottleneck on key-value storage engine since the flushing of log data to persistent storage incurs significant overhead of lock contention and fsync() calls even with various optimizations in the existing scheme. In this paper, we propose an approach for improving performance of key-value storage by optimizing the existing flushing scheme combined with group commit and consolidate array. Our scheme aggregates multiple flushing of log data into a large request on the fly and completes the request early. This scheme is an efficient group commit that reduces the number of frequent lock acquisition and fsync() calls in the synchronous commit while supporting same transaction level that the existing scheme provides. We implemented our scheme on WiredTiger storage engine and evaluated that our scheme improves the performance by 1.3-5.5x on the key-value workload compared to the existing scheme.","PeriodicalId":382778,"journal":{"name":"2016 IEEE 1st International Workshops on Foundations and Applications of Self* Systems (FAS*W)","volume":"56 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2016 IEEE 1st International Workshops on Foundations and Applications of Self* Systems (FAS*W)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/FAS-W.2016.22","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3

Abstract

Key-value store is an essential component with an increasing demand in many scale-out environments, including social networks, online retail, and cloud services. Hence, modern key-value storage engines provide many features, including transaction, versioning, replication, etc. In storage engines, transaction processing provides atomicity and durability by using write-ahead logging (WAL), which flushes log data before the data page is written to persistent storage in synchronous commit. However, according to our observation, WAL is a performance bottleneck on key-value storage engine since the flushing of log data to persistent storage incurs significant overhead of lock contention and fsync() calls even with various optimizations in the existing scheme. In this paper, we propose an approach for improving performance of key-value storage by optimizing the existing flushing scheme combined with group commit and consolidate array. Our scheme aggregates multiple flushing of log data into a large request on the fly and completes the request early. This scheme is an efficient group commit that reduces the number of frequent lock acquisition and fsync() calls in the synchronous commit while supporting same transaction level that the existing scheme provides. We implemented our scheme on WiredTiger storage engine and evaluated that our scheme improves the performance by 1.3-5.5x on the key-value workload compared to the existing scheme.
使用刷新优化提高云键值存储的性能
键值存储是许多向外扩展环境(包括社交网络、在线零售和云服务)中需求不断增长的重要组件。因此,现代键值存储引擎提供了许多特性,包括事务、版本控制、复制等。在存储引擎中,事务处理通过使用预写日志记录(write-ahead logging, WAL)提供了原子性和持久性,它在同步提交中将数据页写入持久存储之前刷新日志数据。然而,根据我们的观察,WAL是键值存储引擎的性能瓶颈,因为将日志数据刷新到持久存储会导致锁争用和fsync()调用的大量开销,即使在现有方案中进行了各种优化。在本文中,我们提出了一种通过优化现有的刷新方案,结合组提交和合并数组来提高键值存储性能的方法。我们的方案动态地将日志数据的多次刷新聚合到一个大请求中,并提前完成请求。该方案是一种高效的组提交,它减少了同步提交中频繁的锁获取和fsync()调用的数量,同时支持与现有方案相同的事务级别。我们在WiredTiger存储引擎上实现了我们的方案,并评估了我们的方案在键值工作负载上的性能比现有方案提高了1.3-5.5倍。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信