Hyperledger Fabric Performance Characterization and Optimization Using GoLevelDB Benchmark

T. Nakaike, Qi Zhang, Yohei Ueda, T. Inagaki, Moriyoshi Ohara
{"title":"Hyperledger Fabric Performance Characterization and Optimization Using GoLevelDB Benchmark","authors":"T. Nakaike, Qi Zhang, Yohei Ueda, T. Inagaki, Moriyoshi Ohara","doi":"10.1109/ICBC48266.2020.9169454","DOIUrl":null,"url":null,"abstract":"Hyperledger Fabric is an implementation that enables permissioned blockchains, which provide a general blockchain framework with identifiable participants for a variety of business applications. Although many performance issues of Hyperledger Fabric have been alleviated to some extent, its performance is still limited - e.g. 2.2k transactions per second in our experiment that executes two reads and two writes in a transaction. A major performance bottleneck is incurred by accesses to the databases that store the latest key-value pairs in the ledger data, indexes to transactions, and the update history. In this paper, we characterize the performance of database systems used in Hyperledger Fabric to identify optimization opportunities by running a Hyperledger Fabric GoLevelDB (HLF-GLDB) benchmark. We developed HLF-GLDB as a standalone benchmark to simulate database accesses in Hyperledger Fabric. Results of the performance characterization revealed that: (1) the data compression of GoLevelDB is a major performance bottleneck in Hyperledger Fabric, and disabling the compression improved the performance by 54%; (2) the size of a database affects the performance significantly. For example, when the size increased by four times, the performance degraded by 25%; (3) To reduce the database access overhead in chaincode, it is better to combine small values so that they can be represented by a single key.","PeriodicalId":420845,"journal":{"name":"2020 IEEE International Conference on Blockchain and Cryptocurrency (ICBC)","volume":"52 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"28","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 IEEE International Conference on Blockchain and Cryptocurrency (ICBC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICBC48266.2020.9169454","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 28

Abstract

Hyperledger Fabric is an implementation that enables permissioned blockchains, which provide a general blockchain framework with identifiable participants for a variety of business applications. Although many performance issues of Hyperledger Fabric have been alleviated to some extent, its performance is still limited - e.g. 2.2k transactions per second in our experiment that executes two reads and two writes in a transaction. A major performance bottleneck is incurred by accesses to the databases that store the latest key-value pairs in the ledger data, indexes to transactions, and the update history. In this paper, we characterize the performance of database systems used in Hyperledger Fabric to identify optimization opportunities by running a Hyperledger Fabric GoLevelDB (HLF-GLDB) benchmark. We developed HLF-GLDB as a standalone benchmark to simulate database accesses in Hyperledger Fabric. Results of the performance characterization revealed that: (1) the data compression of GoLevelDB is a major performance bottleneck in Hyperledger Fabric, and disabling the compression improved the performance by 54%; (2) the size of a database affects the performance significantly. For example, when the size increased by four times, the performance degraded by 25%; (3) To reduce the database access overhead in chaincode, it is better to combine small values so that they can be represented by a single key.
使用GoLevelDB基准的超级账本结构性能表征和优化
Hyperledger Fabric是一种支持许可区块链的实现,它为各种业务应用程序提供了一个具有可识别参与者的通用区块链框架。虽然Hyperledger Fabric的许多性能问题已经在一定程度上得到了缓解,但它的性能仍然是有限的——例如,在我们的实验中,每秒执行2.2万个事务,在一个事务中执行两次读和两次写。主要的性能瓶颈是由于访问存储分类账数据中最新键值对的数据库、事务索引和更新历史记录。在本文中,我们描述了Hyperledger Fabric中使用的数据库系统的性能,通过运行Hyperledger Fabric GoLevelDB (HLF-GLDB)基准来识别优化机会。我们开发了HLF-GLDB作为独立基准来模拟Hyperledger Fabric中的数据库访问。性能表征结果表明:(1)GoLevelDB的数据压缩是Hyperledger Fabric的主要性能瓶颈,禁用压缩使性能提高54%;(2)数据库的大小对性能影响很大。例如,当大小增加4倍时,性能下降25%;(3)为了减少链码中的数据库访问开销,最好将小值组合在一起,这样它们就可以用一个键来表示。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信