一种数据处理方法及装置制造方法及图纸

技术编号:29703216 阅读:18 留言:0更新日期:2021-08-17 14:31
本发明专利技术提供一种数据处理方法及装置,该方法包括:将目标对象以hash表的形式存储在内存中,所述目标对象为指定的KV型数据库;当检测到针对所述目标对象的访问请求时,依据内存中存储的所述hash表,对所述访问请求进行响应。应用本发明专利技术实施例可以提高Hyperledger Fabric的处理性能。

【技术实现步骤摘要】
一种数据处理方法及装置
本专利技术涉及区块链
,尤其涉及一种数据处理方法及装置。
技术介绍
超级账本(Hyperledger)是一个旨在推动区块链跨行业应用的开源项目,目标是区块链及分布式记账系统的跨行业发展与协作,并着重发展性能和可靠性,使之可以支持主要的技术、金融和供应链公司中的全球商业交易。HyperledgerFabric是Hyperledger项目的基石,其是一种基于许可的区块链构架,提供了一个模块化的构架。一个HyperledgerFabric架构包括:记账节点("Peernodes"),执行Chaincode(链码)合约,访问账本数据,背书交易并称为应用程序的接口;排序节点("Orderernodes"),负责确保此区块链的一致性并传达被背书的交易给网络中的同伴们;以及CA节点,主要作为证书权威管理X.509证书用于验证成员身份以及角色。区块链的性能指标主要指交易吞吐量。交易吞吐量表示在固定时间能处理的交易数,延时表示对交易的响应和处理时间。目前,为了提高HyperledgerFabric的处理性能,已有的实现方案是对peer节点的框架进行拆分,将peer节点拆分为三种节点,endorser(背书)peer、fast(快速)peer、storage(存储)peer。使得peer功能分散到多个节点,以提升性能。然而实践发现,上述HyperledgerFabric性能提升方案中,在实际应用中,有很多不便:第一、破坏了原有软件框架。一旦HyperledgerFabric需要升级,则会对于后续软件的升级和维护造成了极大的不便;第二、目前很多应用场景都是以原生的HyperledgerFabric为基础,因此,上述方案难以直接移植到现有的应用,使得方案无法推广;第三、节点变多了,也消耗了更多资源,管理维护的成本也提高了。
技术实现思路
本专利技术提供一种数据处理方法及装置,以解决传统HyperledgerFabric处理性能差的问题。根据本专利技术实施例的第一方面,提供一种数据处理方法,应用于HyperledgerFabric中的记账节点,该方法包括:将目标对象以hash表的形式存储在内存中,所述目标对象为指定的KV型数据库;当检测到针对所述目标对象的访问请求时,依据内存中存储的所述hash表,对所述访问请求进行响应。根据本专利技术实施例的第二方面,提供一种数据处理装置,应用于超级账本HyperledgerFabric中的记账节点,所述装置包括:数据维护单元,用于将目标对象以hash表的形式存储在内存中,所述目标对象为指定的KV型数据库;处理单元,用于当检测到针对所述目标对象的访问请求时,依据内存中存储的所述hash表,对所述访问请求进行响应。应用本专利技术公开的技术方案,通过将指定的KV类型数据库,以hash表的形式替换,并存储在内存中,从而,对于针对该指定的KV类型数据库进行访问,可以依据内存中存储的hash表进行响应,从而,可以提高该KV类型数据库的访问效率,进而,可以在不破坏HyperledgerFabric的原有软件架构的情况下,提高HyperledgerFabric的处理性能。附图说明图1是本专利技术实施例提供的一种数据处理方法的流程示意图;图2是一种传统的HyperledgerFabric的架构示意图;图3是本专利技术实施例提供的一种HyperledgerFabric的架构示意图;图4是本专利技术实施例提供的一种Peer节点重启后数据恢复的示意图;图5是本专利技术实施例提供的一种数据处理装置的结构示意图。具体实施方式为了使本
的人员更好地理解本专利技术实施例中的技术方案,并使本专利技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术实施例中技术方案作进一步详细的说明。请参见图1,为本专利技术实施例提供的一种数据处理方法的流程示意图,其中,该数据处理方法可以应用于HyperledgerFabric中的记账节点(可以简称Peer节点),如图1所示,该数据处理方法可以包括以下步骤:需要说明的是,本专利技术实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本专利技术实施例的实施过程构成任何限定。步骤101、将目标对象以hash表的形式存储在内存中,该目标对象为指定的KV型数据库。本专利技术实施例中,为了提高HyperledgerFabric的处理性能,对于指定的KV(KeyValue,键值)型数据库(本文中称为目标对象),可以使用hash(散列)表替换该KV型数据库,并将该hash表存储在内存中。示例性的,考虑到存储在内存中的数据可能会由于节点重启而丢失,因此,为了避免节点重启导致系统无法正常运行,该指定的KV型数据库可以满足以下条件:存储的数据丢失之后恢复不影响系统的正常运行。此外,考虑到相对于底层存储介质,内存的存储空间量通常远小于底层存储介质的存储空间量,因此,该指定的KV型数据库还可以满足以下条件:存储的数据量较小。例如,存储的数据量低于预设数据量阈值。再者,为了充分利用内存空间访问效率高的优势,该指定的KV型数据库还可以满足以下条件:访问频率较高。例如,访问频率高于预设访问频率阈值。在一个示例中,上述指定的KV型数据库可以为使用指定数据库为底层的KV型数据库,其可以包括但不限于StateDB(状态数据库)、HistoryDB(历史数据库)或IndexDB(索引数据库,也可以称为idStore数据库)等数据库中的一个或多个。示例性的,该指定数据库可以为Leveldb数据库(一种KV型数据库)。本专利技术实施例中,对于指定的KV型数据库(即上述目标对象),可以以hash表的形式替换,并存储在内存中。步骤102、当检测到针对目标对象的访问请求时,依据内存中存储的hash表,对访问请求进行响应。本专利技术实施例中,当检测到针对目标对象的访问请求时,例如,检测到针对目标对象的读取请求或修改请求时,可以在内存中存储的hash表中查询到与该访问请求匹配的hash表项,并依据该hash表项中存储的数据对该访问请求进行响应,提高目标对象的访问效率,进而,提高HyperledgerFabric的处理性能。需要说明的是,在本专利技术实施例中,当针对目标对象的访问请求使目标对象的内容发生了变化时,还可以依据变化后的内容对文件系统中的相关数据进行更新,例如,当访问请求为修改请求时,可以依据该修改请求对hash表中对应表项存储的数据进行修改,并依据修改后的数据对文件系统中的相关数据进行更新,其具体实现在此不做赘述。可见,在图1所示方法流程中,通过将指定的KV类型数据库,以hash表的形式存储在内存中,以提高目标对象的访问效率,进而,可以在不破坏HyperledgerFabric的原有软本文档来自技高网
...

【技术保护点】
1.一种数据处理方法,应用于超级账本Hyperledger Fabric中的记账节点,其特征在于,所述方法包括:/n将目标对象以hash表的形式存储在内存中,所述目标对象为指定的KV型数据库;/n当检测到针对所述目标对象的访问请求时,依据内存中存储的所述hash表,对所述访问请求进行响应。/n

【技术特征摘要】
1.一种数据处理方法,应用于超级账本HyperledgerFabric中的记账节点,其特征在于,所述方法包括:
将目标对象以hash表的形式存储在内存中,所述目标对象为指定的KV型数据库;
当检测到针对所述目标对象的访问请求时,依据内存中存储的所述hash表,对所述访问请求进行响应。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述记账节点发生重启时,依据文件系统中的区块文件,对内存中存储的所述hash表进行恢复。


3.根据权利要求1所述的方法,其特征在于,所述目标对象中存储的数据包括读写集;
所述将目标对象以hash表的形式存储在内存,包括:
对于所述目标对象中的任一读写集,对该读写集的值进行编码,并依据编码后的值,将该读写集以hash表的形式存储在内存中。


4.根据权利要求3所述的方法,其特征在于,所述读写集包括多种不同类型的数据;同一对象中存储的不同类型的读写集存储于同一hash表。


5.根据权利要求3所述的方法,其特征在于,所述依据内存中存储的所述hash表,对所述访问请求进行响应,包括:
当所述访问请求为针对读写集的访问请求时,从所述hash表中查询key与所述访问请求匹配的目标表项;
对所述目标表项中的值进行解码,并依据解码后的值对所述访问请求...

【专利技术属性】
技术研发人员:许强
申请(专利权)人:新华三技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1