CN111782707A - 一种数据查询方法及*** - Google Patents

一种数据查询方法及*** Download PDF

Info

Publication number
CN111782707A
CN111782707A CN202010565812.6A CN202010565812A CN111782707A CN 111782707 A CN111782707 A CN 111782707A CN 202010565812 A CN202010565812 A CN 202010565812A CN 111782707 A CN111782707 A CN 111782707A
Authority
CN
China
Prior art keywords
data
stored
storage area
value
temporary storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010565812.6A
Other languages
English (en)
Other versions
CN111782707B (zh
Inventor
邵珠光
张爽
赵光伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JD Digital Technology Holdings Co Ltd
Beijing Haiyi Tongzhan Information Technology Co Ltd
Original Assignee
JD Digital Technology Holdings Co Ltd
Beijing Haiyi Tongzhan Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JD Digital Technology Holdings Co Ltd, Beijing Haiyi Tongzhan Information Technology Co Ltd filed Critical JD Digital Technology Holdings Co Ltd
Priority to CN202010565812.6A priority Critical patent/CN111782707B/zh
Publication of CN111782707A publication Critical patent/CN111782707A/zh
Application granted granted Critical
Publication of CN111782707B publication Critical patent/CN111782707B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种数据查询方法及***,属于区块链技术领域。所述方法应用于区块链中的数据服务器,所述数据服务器包括临时存储区,所述临时存储区存储有持久化存储区中的索引数据、以及至少部分所述索引数据对应的值数据,所述方法包括:接收区块链节点的数据查询请求,所述数据查询请求携带有待查询数据的目标索引数据;在所述临时存储区中查找所述目标索引数据;如果查找到所述目标索引数据、且所述临时存储区中存储有所述目标索引数据对应的值数据,则从所述临时存储区中获取与所述目标索引数据对应的值数据,向所述区块链节点发送该值数据。采用本申请实施例提供的技术方案,能够解决数据查询效率低的问题。

Description

一种数据查询方法及***
技术领域
本申请涉及区块链技术领域,尤其涉及一种数据查询方法及***。
背景技术
区块链中,区块链数据可以基于key(索引)-value(值)的数据结构存储于数据库中。当需要查询区块链数据时,区块链节点可以向部署有数据库的数据服务器发送数据查询请求,数据查询请求可以携带有待查询的区块链数据的目标索引数据。接收到数据查询请求后,数据服务器可以在数据库中查找与目标索引数据匹配的值数据。如果查找到与目标索引数据匹配的值数据,数据服务器可以向该区块链节点发送查找到的值数据。
然而,一般情况下,数据服务器基于硬盘等持久化存储区进行数据库的存储,区块链节点每次查询区块链数据时,均需要数据服务器通过访问硬盘的方式,在数据库包含的大量索引数据中查询目标索引数据,导致数据查询效率低。
发明内容
本申请实施例的目的在于提供一种数据查询方法及***,以解决数据查询效率低的问题。具体技术方案如下:
第一方面,提供了一种数据查询方法,所述方法应用于区块链中的数据服务器,所述数据服务器包括临时存储区,所述临时存储区存储有持久化存储区中的索引数据、以及至少部分所述索引数据对应的值数据,所述方法包括:
接收区块链节点的数据查询请求,所述数据查询请求携带有待查询数据的目标索引数据;
在所述临时存储区中查找所述目标索引数据;
如果查找到所述目标索引数据、且所述临时存储区中存储有所述目标索引数据对应的值数据,则从所述临时存储区中获取与所述目标索引数据对应的值数据,向所述区块链节点发送该值数据。
可选的,所述方法还包括:
接收区块链节点的数据存储请求,所述数据存储请求携带有待存储数据的索引数据和值数据;
在所述临时存储区中存储所述待存储数据,并向所述区块链节点发送成功存储消息;
在所述持久化存储区中存储所述待存储数据的索引数据和值数据。
可选的,所述在所述临时存储区中存储所述待存储数据,包括:
获取所述待存储数据的数据分类,所述数据分类包括热点数据或非热点数据;
如果所述待存储数据的数据分类为所述热点数据,则在所述临时存储区中存储所述待存储数据的索引数据和值数据;
如果所述待存储数据的数据分类为所述非热点数据,则在所述临时存储区中存储所述待存储数据的索引数据。
可选的,所述方法还包括:
如果查找到所述目标索引数据、且所述临时存储区中未存储所述目标索引数据对应的值数据,则从所述持久化存储区中获取与所述目标索引数据对应的值数据,向所述区块链节点发送该值数据。
可选的,所述方法还包括:
当需要对所述临时存储区进行数据恢复时,向所述区块链节点发送数据日志获取请求;
接收所述区块链节点发送的数据日志,所述数据日志中记录有已存储数据的索引数据和值数据;
基于所述数据日志中记录的索引数据和值数据进行数据恢复。
第二方面,提供了一种数据查询方法,所述方法应用于区块链中的区块链节点,所述方法包括:
响应于数据查询操作,获取待查询数据的目标索引数据;
查询数据服务器中是否存储有所述目标索引数据;
如果所述数据服务器中存储有所述目标索引数据,则生成数据查询请求并向所述数据服务器发送所述数据查询请求,所述数据查询请求携带有所述待查询数据的目标索引数据。
可选的,所述查询数据服务器中是否存储有所述目标索引数据,包括:
通过预设滤波器计算所述目标索引数据对应的元素值,得到目标元素值;
在预设元素集合中查找所述目标元素值,所述预设元素集合包含多个元素值,所述元素值是通过所述预设滤波器对所述临时存储区中存储的索引数据进行计算得到的;
如果在所述预设元素集合中查找到所述目标元素值,则确定所述数据服务器中存储有所述目标索引数据;
如果在所述预设元素集合中未查找到所述目标元素值,则确定所述数据服务器中未存储所述目标索引数据。
可选的,所述方法还包括:
响应于数据存储操作,获取待存储数据的索引数据和值数据;
在所述区块链中对所述待存储数据进行存储;
生成数据存储请求并向所述数据服务器发送所述数据存储请求,所述数据存储请求携带有所述待存储数据的索引数据和值数据。
可选的,所述在所述区块链中对所述待存储数据进行存储,包括:
获取所述待存储数据的数据分类,所述数据分类包括热点数据或非热点数据;
如果所述待存储数据的数据分类为所述热点数据,则在数据日志中记录所述待存储数据的索引数据和值数据;
如果所述待存储数据的数据分类为所述非热点数据,则在所述数据日志中记录所述待存储数据的索引数据。
可选的,所述方法还包括:
对所述数据日志包含的相同索引数据进行去重处理,得到更新后的数据日志。
可选的,所述对所述数据日志包含的相同索引数据进行去重处理,得到更新后的数据日志,包括:
对所述数据日志进行数据复制,得到数据日志副本;
遍历所述数据日志副本包含的索引数据,确定相同索引数据;
在新数据日志中记录相同索引数据、以及相同索引数据中最新存储的索引数据对应的值数据,得到更新后的数据日志。
第三方面,提供了一种数据查询***,所述***包括上述任一第一方面所描述的数据服务器、上述任一第二方面所描述的区块链节点。
第四方面,提供了一种数据查询装置,所述装置应用于区块链中的数据服务器,所述数据服务器包括临时存储区,所述临时存储区存储有持久化存储区中的索引数据、以及至少部分所述索引数据对应的值数据,所述装置包括:
第一接收模块,用于接收区块链节点的数据查询请求,所述数据查询请求携带有待查询数据的目标索引数据;
查找模块,用于在所述临时存储区中查找所述目标索引数据;
第一获取模块,用于当查找到所述目标索引数据、且所述临时存储区中存储有所述目标索引数据对应的值数据时,从所述临时存储区中获取与所述目标索引数据对应的值数据,向所述区块链节点发送该值数据。
可选的,所述装置还包括:
第二接收模块,用于接收区块链节点的数据存储请求,所述数据存储请求携带有待存储数据的索引数据和值数据;
第一存储模块,用于在所述临时存储区中存储所述待存储数据,并向所述区块链节点发送成功存储消息;
第二存储模块,用于在所述持久化存储区中存储所述待存储数据的索引数据和值数据。
可选的,所述第一存储模块包括:
获取子模块,用于获取所述待存储数据的数据分类,所述数据分类包括热点数据或非热点数据;
存储子模块,用于当所述待存储数据的数据分类为所述热点数据时,在所述临时存储区中存储所述待存储数据的索引数据和值数据;
所述存储子模块,还用于当所述待存储数据的数据分类为所述非热点数据时,在所述临时存储区中存储所述待存储数据的索引数据。
可选的,所述装置还包括:
第二获取模块,用于当查找到所述目标索引数据、且所述临时存储区中未存储有所述目标索引数据对应的值数据时,从所述持久化存储区中获取与所述目标索引数据对应的值数据,向所述区块链节点发送该值数据。
可选的,所述装置还包括:
发送模块,用于当需要对所述临时存储区进行数据恢复时,向所述区块链节点发送数据日志获取请求;
第三接收模块,用于接收所述区块链节点发送的数据日志,所述数据日志中记录有已存储数据的索引数据和值数据;
数据恢复模块,用于基于所述数据日志中记录的索引数据和值数据进行数据恢复。
第五方面,提供了一种数据查询装置,所述装置应用于区块链中的区块链节点,所述装置包括:
第一获取模块,用于响应于数据查询操作,获取待查询数据的目标索引数据;
查询模块,用于查询数据服务器中是否存储有所述目标索引数据;
第一发送模块,用于当所述数据服务器中存储有所述目标索引数据时,生成数据查询请求并向所述数据服务器发送所述数据查询请求,所述数据查询请求携带有所述待查询数据的目标索引数据。
可选的,所述查询模块包括:
计算子模块,用于通过预设滤波器计算所述目标索引数据对应的元素值,得到目标元素值;
查找子模块,用于在预设元素集合中查找所述目标元素值,所述预设元素集合包含多个元素值,所述元素值是通过所述预设滤波器对所述临时存储区中存储的索引数据进行计算得到的;
确定子模块,用于当在所述预设元素集合中查找到所述目标元素值时,确定所述数据服务器中存储有所述目标索引数据;
所述确定子模块,还用于当在所述预设元素集合中未查找到所述目标元素值时,确定所述数据服务器中未存储所述目标索引数据。
可选的,所述装置还包括:
第二获取模块,用于响应于数据存储操作,获取待存储数据的索引数据和值数据;
存储模块,用于在所述区块链中对所述待存储数据进行存储;
第二发送模块,用于生成数据存储请求并向所述数据服务器发送所述数据存储请求,所述数据存储请求携带有所述待存储数据的索引数据和值数据。
可选的,所述存储模块包括:
获取子模块,用于获取所述待存储数据的数据分类,所述数据分类包括热点数据或非热点数据;
记录子模块,用于当所述待存储数据的数据分类为所述热点数据时,在数据日志中记录所述待存储数据的索引数据和值数据;
所述记录子模块,还用于当所述待存储数据的数据分类为所述非热点数据时,在所述数据日志中记录所述待存储数据的索引数据。
可选的,所述装置还包括:
去重模块,用于对所述数据日志包含的相同索引数据进行去重处理,得到更新后的数据日志。
可选的,所述去重模块包括:
复制子模块,用于对所述数据日志进行数据复制,得到数据日志副本;
确定子模块,用于遍历所述数据日志副本包含的索引数据,确定相同索引数据;
记录子模块,用于在新数据日志中记录相同索引数据、以及相同索引数据中最新存储的索引数据对应的值数据,得到更新后的数据日志。
第六方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现任一第一方面,或,任一第二方面所述的方法步骤。
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现任一第一方面,或,任一第二方面所述的方法步骤。
第八方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实现任一第一方面,或,任一第二方面所述的方法步骤。
本申请实施例有益效果:
本申请实施例提供了一种数据查询方法及***,该方法可以应用于区块链中的数据服务器,数据服务器包括临时存储区,临时存储区存储有持久化存储区中的索引数据、以及至少部分索引数据对应的值数据。
数据服务器可以在接收到区块链节点的数据查询请求后,在临时存储区中查找待查询数据的目标索引数据。如果查找到目标索引数据、且临时存储区中存储有目标索引数据对应的值数据,则数据服务器可以从临时存储区中获取与目标索引数据对应的值数据,再向区块链节点发送该值数据。由于临时存储区中存储有目标索引数据对应的值数据时,数据服务器可以直接从临时存储区中获取该值数据,因此,能够避免从持久化存储区中获取该值数据所耗费的数据读取耗时,从而能够提高数据查询效率。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据查询方法的流程图;
图2为本申请实施例提供的一种数据存储方法的流程图;
图3为本申请实施例提供的另一种数据存储方法的流程图;
图4为本申请实施例提供的另一种数据查询方法的流程图;
图5为本申请实施例提供的另一种数据存储方法的流程图;
图6为本申请实施例提供的一种数据日志更新方法的流程图;
图7为本申请实施例提供的一种数据查询过程的示例图;
图8为本申请实施例提供的一种数据存储过程的示例图;
图9为本申请实施例提供的一种数据查询装置的结构示意图;
图10为本申请实施例提供的另一种数据查询装置的结构示意图;
图11为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种数据查询方法,该方法可以应用于区块链中的数据服务器。数据服务器中可以存储有区块链的区块链数据,区块链中的区块链节点可以从数据服务器处获取区块链数据。数据服务器可以基于key(索引)-value(值)的数据结构存储区块链数据,数据服务器可以作为关系型数据库、NoSQL(Non-relational Structured QueryLanguage,非关系型数据库语言)数据库、文档型数据库。
数据服务器包括临时存储区和持久化存储区,可以将数据服务器的内存作为临时存储区、将数据服务器的硬盘作为持久化存储区。持久化存储区中存储有全部区块链数据的索引数据和每个区块链数据对应的值数据,临时存储区存储有持久化存储区中的索引数据、以及至少部分索引数据对应的值数据。
可选的,临时存储区中存储的数据可以是多种多样的,在一种可行的实现方式中,临时存储区中可以存储有持久化存储区中的全部索引数据,此种情况下,临时存储区中可以存储有部分索引数据对应的值数据。在另一种可行的实现方式中,临时存储区中可以存储有持久化存储区中的部分索引数据,此种情况下,临时存储区中可以存储有每个存储于临时存储区中的索引数据对应的值数据。
基于临时存储区和持久化存储区,数据服务器可以读取、存储区块链中的区块链数据。
下面将结合具体实施方式,对本申请实施例提供的一种数据查询方法进行详细的说明,如图1所示,具体步骤如下:
步骤101、接收区块链节点的数据查询请求。
其中,数据查询请求携带有待查询数据的目标索引数据。
在实施中,当区块链节点需要查询某一数据时,该数据即为待查询数据,区块链节点可以确定待查询数据的索引数据,得到目标索引数据。然后,区块链节点可以生成携带有目标索引数据的数据查询请求,向数据服务器发送数据查询请求。由此,数据服务器可以接收到数据查询请求。
步骤102、在临时存储区中查找目标索引数据。
在实施中,数据服务器可以在临时存储区中,以存储索引数据的Hash(哈希)值的方式存储索引数据。数据服务器可以计算目标索引数据的Hash值,然后,数据服务器可以在临时存储区存储的各索引数据的Hash值中,查找目标索引数据的Hash值。
本申请实施例中,区块链节点可以计算目标索引数据的Hash值,生成携带有目标索引数据的Hash值的数据查询请求。由此,数据服务器可以获取数据查询请求携带的Hash值,在临时存储区存储的各索引数据的Hash值中,查找目标索引数据的Hash值。
可选的,数据服务器可以采用任一种散列算法计算目标索引数据的Hash值,散列算法例如:sha(secure hash algorithm,安全散列算法)256算法、sha128算法。
步骤103、如果查找到目标索引数据、且临时存储区中存储有目标索引数据对应的值数据,则从临时存储区中获取与目标索引数据对应的值数据,向区块链节点发送该值数据。
在实施中,如果数据服务器在临时存储区中查找到目标索引数据,则数据服务器可以进一步判断临时存储区中是否存储有目标索引数据对应的值数据。
如果临时存储区中存储有目标索引数据对应的值数据,则数据服务器可以从临时存储区中获取与目标索引数据对应的值数据,然后,数据服务器可以向区块链节点发送该值数据。
可选的,如果临时存储区中未存储目标索引数据对应的值数据,则表明目标索引数据对应的值数据存储于持久化存储区中,然后,数据服务器可以从持久化存储区中获取与目标索引数据对应的值数据,向区块链节点发送该值数据。由此,能够在临时存储区中未存储目标索引数据对应的值数据的情况下,获取到目标索引数据对应的值数据,从而能够确保数据查询的全面性。
例如,以临时存储区中存储有持久化存储区中的全部索引数据、热点数据的值数据为例,如果临时存储区中未存储目标索引数据对应的值数据,则表明该待查询数据为非热点数据,目标索引数据对应的值数据存储于持久化存储区中,然后,数据服务器可以从持久化存储区中获取与目标索引数据对应的值数据。
如果数据服务器未在临时存储区中查找到目标索引数据,数据服务器的处理过程后续会进行详细说明。
本申请实施例中,数据服务器可以在接收到区块链节点的数据查询请求后,在临时存储区中查找待查询数据的目标索引数据。如果查找到目标索引数据、且临时存储区中存储有目标索引数据对应的值数据,则数据服务器可以从临时存储区中获取与目标索引数据对应的值数据,再向区块链节点发送该值数据。由于临时存储区中存储有目标索引数据对应的值数据时,数据服务器可以直接从临时存储区中获取该值数据,因此,能够避免从持久化存储区中获取该值数据所耗费的数据读取耗时,从而能够提高数据查询效率。
可选的,针对临时存储区中数据存储情况的不同,当数据服务器未在临时存储区中查找到目标索引数据时,数据服务器的处理过程也有所不同。本申请实施例提供了两种临时存储区中的数据存储情况,并对相应情况下数据服务器的处理过程进行说明,具体如下:
情况一、临时存储区中存储有持久化存储区中的全部索引数据、部分索引数据对应的值数据。
此种情况中,当数据服务器未在临时存储区中查找到目标索引数据时,则表明数据服务器中并未存储该待查询数据,然后,数据服务器可以向区块链节点发送数据不存在消息。
情况二、临时存储区中存储有持久化存储区中的部分索引数据、每个存储于临时存储区中的索引数据对应的值数据。
此种情况中,当数据服务器未在临时存储区中查找到目标索引数据时,数据服务器可以在持久化存储区中查找目标索引数据。如果数据服务器在持久化存储区中查找到目标索引数据,则数据服务器可以获取目标索引数据对应的值数据,再向区块链节点发送该值数据。如果服务器未在持久化存储区中查找到目标索引数据,则表明数据服务器中并未存储该待查询数据,然后,数据服务器可以向区块链节点发送数据不存在消息。
例如,临时存储区中存储有热点数据的索引数据和值数据。当数据服务器未在临时存储区中查找到目标索引数据时,数据服务器可以在持久化存储区中查找目标索引数据。如果数据服务器在持久化存储区中查找到目标索引数据,则表明该待查询数据为非热点数据,数据服务器可以获取目标索引数据对应的值数据,再向区块链节点发送该值数据。如果服务器未在持久化存储区中查找到目标索引数据,则表明数据服务器中并未存储该待查询数据,然后,数据服务器可以向区块链节点发送数据不存在消息。
本申请实施例中,针对在临时存储区中存储热点数据的值数据的情况,采用本申请实施例提供的数据查询方法,在待查询数据为存储于数据服务器中的热点数据的情况下,可以从临时存储区中快速获取到待查询数据的值数据;并且,在待查询数据为存储于数据服务器中的非热点数据情况下,可以从持久化存储区中获取到待查询数据的值数据,由此,能够保证数据查询的全面性。
可选的,本申请实施例还提供了一种数据服务器存储区块链数据的存储过程,如图2所示,包括:
步骤201、接收区块链节点的数据存储请求。
其中,数据存储请求携带有待存储数据的索引数据和值数据。
在实施中,当区块链节点需要存储某一数据时,该数据即为待存储数据,区块链节点可以确定待存储数据的索引数据和值数据。然后,区块链节点可以生成携带有待存储数据的索引数据和值数据的数据存储请求,向数据服务器发送数据存储请求。由此,数据服务器可以接收到数据存储请求。
本申请实施例中,区块链节点也可以直接向数据服务器发送待存储数据,数据服务器可以基于待存储数据生成索引数据和值数据。
步骤202、在临时存储区中存储待存储数据,并向区块链节点发送成功存储消息。
在实施中,数据服务器可以在临时存储区中存储待存储数据,并在完成待存储数据在临时存储区中的存储后,向区块链节点发送成功存储消息。
数据服务器在临时存储区中存储待存储数据的方式可以是多种多样的,在一种可行的实现方式中,数据服务器可以在临时存储区中存储待存储数据的索引数据和值数据。在另一种可行的实现方式,数据服务器可以仅在临时存储区中待存储数据的索引数据。
步骤203、在持久化存储区中存储待存储数据的索引数据和值数据。
在实施中,数据服务器可以在满足存储条件时,在持久化存储区中存储待存储数据的索引数据和值数据。
本申请实施例中,存储条件可以是多种多样的,例如,存储条件可以是达到预设的存储周期,存储条件也可以是在数据服务器的当前运行状态满足预设空闲状态。
本申请实施例中,数据服务器可以接收区块链节点的数据存储请求,然后,在临时存储区中存储待存储数据,并向区块链节点发送成功存储消息。之后,数据服务器可以在持久化存储区中存储待存储数据的索引数据和值数据。由此,通过分别在临时存储区中和持久化存储区中存储待存储数据的索引数据和值数据,可以实现区块链数据的异步存储。
相关技术中,采用同步写入数据库的方式存储区块链数据,区块链节点需要等待数据服务器在持久化存储区中存储待存储数据后,才能断开与区块链节点之间的通信连接。由于数据服务器在持久化存储区中存储数据所耗费的时间长,因此,在数据服务器存储数据期间区块链节点的处理资源会被长时间占用。进一步的,当数据服务器出现运行异常无法正常存储数据时,区块链节点也会受到影响,造成区块链***的数据处理效率下降。
而采用本申请实施例提供的区块链数据异步存储方案,一方面,在临时存储区中存储待存储数据后,就向区块链节点发送存储成功消息,另一方面,在临时存储区中存储数据所耗费的时间非常少,因此,能够有效减轻数据服务器存储数据期间区块链节点的处理资源占用情况。进一步的,能够减少数据服务器的运行状态对区块链节点的影响,提高区块链***整体的数据处理效率。
可选的,为了便于区分数据服务器中的不同区块链数据,可以对区块链数据进行分类,得到区块链数据所属的数据分类。数据分类可以为热点数据或非热点数据。数据分类还可以为用户数据或***数据,重要数据或非重要数据等,本申请实施例对此不作具体限定。
本申请实施例还提供了一种数据服务器在临时存储区中,基于数据分类存储待存储数据的实现方式,如图3所示,包括以下步骤:
步骤301、获取待存储数据的数据分类。
在实施中,本申请实施例提供了两种数据服务器获取待存储数据的数据分类的实现方式,分别为:
方式一、数据服务器可以获取待存储数据的历史查询记录,数据服务器可以基于待存储数据的历史查询记录和预设筛选条件,确定待存储数据的数据分类。其中,预设筛选条件可以为:预设查询周期内数据的查询次数达到查询次数阈值的待存储数据属于热点数据,未达到查询次数阈值的待存储数据属于非热点数据。
例如,查询次数阈值为10、预设查询周期为1周。数据服务器可以将一周内查询次数超过10次的待存储数据,作为热点数据。
可选的,数据服务器中可以预先设置有热点数据判别算法,热点数据判别算法可以是LRU(Least Recently Used,最近最久未使用)算法、FIFO(First in First out,先进先出)算法和LFU(least frequently used,最不经常使用页置换)算法。数据服务器可以根据历史查询记录和热点数据判别算法,确定待存储数据的数据分类。
方式二、数据存储请求可以携带有待存储数据的数据分类标识,数据服务器可以获取数据存储请求携带的数据分类标识,将该数据分类标识对应的数据分类作为待存储数据的数据分类。
步骤302、判断待存储数据的数据分类是否为热点数据。
在实施中,如果待存储数据的数据分类为热点数据,则数据服务器可以执行步骤303;如果待存储数据的数据分类为非热点数据,则数据服务器可以执行步骤304。
步骤303、在临时存储区中存储待存储数据的索引数据和值数据。
步骤304、在临时存储区中存储待存储数据的索引数据。
可选的,由于区块链中需要存储的待存储数据由交易产生,因此,不存在重复的待存储数据,数据服务器可以在临时存储区中存储待存储数据的索引数据。
针对非热点数据,数据服务器可以不在临时存储区中存储非热点数据的值数据,或者,数据服务器可以在临时存储区中将非热点数据的值数据设置为预设空值。
本申请实施例中,数据服务器可以获取待存储数据的数据分类,并在待存储数据的数据分类为热点数据时,在临时存储区中存储待存储数据的索引数据和值数据,在待存储数据的数据分类为非热点数据时,在临时存储区中存储待存储数据的索引数据。由此,便于后续接收到热点数据的数据查询请求时,数据服务器可以快速从临时存储区中获取该热点数据的值数据,能够避免从持久化存储区中获取该值数据时所耗费的数据读取耗时,从而能够提高数据查询效率。
可选的,当出现临时存储区中存储的索引数据和值数据丢失的情况,数据服务器需要对临时存储进行数据恢复。在一种可行的实现方式中,数据服务器可以基于持久化存储区中存储的索引数据和值数据进行数据恢复。
在另一种可行的实现方式中,区块链节点中可以存储有数据日志,数据日志中记录有数据服务器中已存储数据的索引数据和值数据。数据服务器可以基于数据日志对临时存储区进行数据恢复,具体处理过程包括:
步骤1、当需要对临时存储区进行数据恢复时,向区块链节点发送数据日志获取请求。
在实施中,需要对临时存储区进行数据恢复的情况可以包括:数据服务器重新启动,或者,数据服务器运行异常。当需要对临时存储区进行数据恢复时,数据服务器可以向区块链节点发送数据日志获取请求。
步骤2、接收区块链节点发送的数据日志。
步骤3、基于数据日志中记录的索引数据和值数据进行数据恢复。
在实施中,数据服务器可以基于key-value的数据结构,存储数据日志中记录的索引数据和值数据,从而实现数据恢复。
可选的,数据服务器可以存储数据日志中记录的全部索引数据和值数据。数据服务器也可以在临时存储区中基于数据分类存储索引数据和值数据,具体存储过程可以参照步骤301~步骤304的处理过程,此处不再赘述。
本申请实施例中,数据服务器可以在需要对临时存储区进行数据恢复时,向区块链节点发送数据日志获取请求。然后,基于接收到的数据日志记录的索引数据和值数据进行数据恢复。由此,确保能够基于临时存储区实现快速、便捷的数据查询。
基于相同的技术构思,本申请实施例还提供了一种数据查询方法,该方法可以应用于区块链中的区块链节点,如图4所示,该方法可以包括:
步骤401、响应于数据查询操作,获取待查询数据的目标索引数据。
在实施中,区块链节点所处理的区块链业务可能会触发数据查询操作。区块链业务可以是在消息广播过程中对消息进行校验、在共识结束后对交易进行计算等。
区块链节点可以响应于数据查询操作,获取待查询数据。待查询数据可以是进行消息校验所需的数据,待查询数据也可以是进行交易计算所需的数据。然后,区块链节点可以确定待查询数据的索引数据,得到目标索引数据。
步骤402、查询数据服务器中是否存储有目标索引数据。
在实施中,区块链节点可以通过多种方式查询数据服务器中是否存储有目标索引数据。在一种可行的实现方式中,区块链节点中可以存储有数据日志,数据日志中可以记录有在数据服务器中存储的区块链数据。区块链节点可以通过查询数据日志,确定数据服务器中是否存储有目标索引数据。
在另一种可行的实现方式中,区块链节点中可以设置有预设过滤器,区块链节点可以通过预设过滤器,确定数据服务器中是否存储有目标索引数据,具体处理过程后续会进行详细说明。
步骤403、如果数据服务器中存储有目标索引数据,则生成数据查询请求并向数据服务器发送数据查询请求。
其中,数据查询请求携带有待查询数据的目标索引数据。
在实施中,如果数据服务器中存储有目标索引数据,则区块链节点可以生成数据查询请求,向数据服务器发送该数据查询请求。如果数据服务器中未存储目标索引数据,则区块链节点可以不作后续处理。
本申请实施例中,区块链节点可以在数据服务器中存储有目标索引数据时,发送数据查询请求,并在数据服务器中未存储目标索引数据时,不发送数据查询请求。由于提前在区块链节点侧进行待查询数据的存在性判断,因此,一方面,能够在区块链节点侧,有效过滤掉对于未存储数据的数据查询请求,减少区块链节点发送数据查询请求并等待数据服务器的查询结果所耗费的时间与处理资源。另一方面,在数据服务器侧,减少数据服务器的数据查询负担,并提高数据查询效率。
可选的,区块链节点可以在获取待查询数据的目标索引数据后,直接生成携带有目标索引数据的数据查询请求,向数据服务器发送数据查询请求。
可选的,区块链节点中可以设置有预设滤波器,预设滤波器可以是Bloom Filter(布隆滤波器)、布谷鸟滤波器。本申请实施例提供了一种区块链节点通过预设过滤器,确定数据服务器中是否存储有目标索引数据的实现方式,包括以下步骤:
步骤一、通过预设滤波器计算目标索引数据对应的元素值,得到目标元素值。
在实施中,区块链节点可以计算目标索引数据的Hash值,然后,区块链节点可以通过预设滤波器计算Hash值对应的元素值,得到目标元素值。
步骤二、在预设元素集合中查找目标元素值。
其中,预设元素集合包含多个元素值,每个元素值是通过预设滤波器对临时存储区中存储的索引数据进行计算得到的。
在实施中,区块链节点可以在预设元素集合中查找目标元素值。如果在预设元素集合中未查找到目标元素值,则区块链节点可以确定数据服务器中未存储目标索引数据。如果在预设元素集合中查找到目标元素值,则区块链节点可以确定数据服务器中存储有目标索引数据。
需要说明的是,布隆过滤器、布谷鸟过滤器等预设过滤器在预设元素集合中查找目标元素值时存在误判问题。即,如果未在预设元素集合中查找到目标元素值,则可以确定临时存储区中未存储目标索引数据;但是,如果在预设元素集合中查找到目标元素值,则无法确定临时存储区中是否存储有目标索引数据。临时存储区中是否存储目标索引数据的判断准确率与预设过滤器的误判率有关。
可选的,由于布隆过滤器具有快速判断某一元素是否属于某一元素集合、高效的数据***效率和数据查询效率,并且能够节省元素集合的存储空间等优点,因此,本申请实施例中可以选取布隆过滤器作为预设过滤器。
本申请实施例中,采用预设过滤器对临时存储区中是否存储有目标索引数据进行判断,可以快速、便捷的实现数据查询的初步过滤。
可选的,本申请实施例还提供了一种区块链节点存储区块链数据的存储过程,包括:
步骤一、响应于数据存储操作,获取待存储数据的索引数据和值数据。
在实施中,区块链节点所处理的区块链业务可能会触发数据存储操作。区块链业务可以是在消息广播过程中对消息进行校验、在共识结束后对交易进行计算等。
区块链节点可以响应于数据查询操作,获取待存储数据。待存储数据可以是通过消息校验的数据,待存储数据也可以是进行交易计算得到的数据。然后,区块链节点可以确定待存储数据的索引数据和值数据。
步骤二、在区块链中对待存储数据进行存储。
在实施中,区块链节点在区块链中对待存储数据进行存储的方式可以是多种多样的,例如,区块链节点中可以存储有数据日志,区块链节点可以在数据日志中对待存储数据进行记录,具体记录过程后续会进行详细说明。
或者,区块链节点可以通过预设过滤器、预设元素集合,对待存储数据进行存储。具体的,区块链节点可以计算待存储数据的索引数据的Hash值,然后,区块链节点可以通过预设过滤器计算该Hash值对应的元素值。之后,区块链节点可以在预设元素集合中存储该元素值。由此,后续在进行数据查询时,区块链节点能够通过预设过滤器和预设元素集合对待查询数据进行初步过滤,从而提高数据查询效率。
步骤三、生成数据存储请求并向数据服务器发送数据存储请求。
其中,数据存储请求携带有待存储数据的索引数据和值数据。
本申请实施例中,区块链节点不仅可以在将区块链数据存储至数据服务器,还可以在本地存储区块链数据。进一步的,区块链节点可以在完成待存储数据在本地的存储后,向数据服务器发送数据存储请求,由此,可以实现区块链数据的异步存储。
可选的,区块链节点可以采用多种方式在数据日志中记录待存储数据,例如,区块链节点可以直接在数据日志中记录待存储数据的索引数据和值数据。或者,区块链节点可以基于待存储数据的数据分类,在数据日志中记录待存储数据。
具体的,如图5所示,区块链节点基于待存储数据的数据分类,在数据日志中记录待存储数据的过程可以包括:
步骤501、获取待存储数据的数据分类。
其中,数据分类包括热点数据或非热点数据。
在实施中,此步骤的处理过程,可以参照上述数据服务器采用方式一获取待存储数据的数据分类的处理过程,此处不再赘述。
步骤502、判断待存储数据的数据分类是否为热点数据。
在实施中,区块链节点可以判断待存储数据的数据分类是否为热点数据,如果待存储数据的数据分类为热点数据,则区块链节点可以执行步骤三;如果待存储数据的数据分类不是热点数据,则区块链节点可以执行步骤四。
步骤503、在数据日志中记录待存储数据的索引数据和值数据。
步骤504、在数据日志中记录待存储数据的索引数据。
需要说明的是,区块链节点仅在数据日志中记录待存储数据的索引数据和值数据,并不基于数据结构对待存储数据的索引数据和值数据进行存储。因此,在记录有待存储数据的数据日志不需要耗费大量的存储空间。
本申请实施例中,区块链节点可以获取待存储数据的数据分类,并在待存储数据的数据分类为热点数据的情况下,在数据日志中记录待存储数据的索引数据和值数据;并在待存储数据的数据分类不是热点数据的情况下,在数据日志中记录待存储数据的索引数据。由此,可以实现减少数据日志所占用的存储空间。进一步的,由于区块链节点侧存储的数据日志中记录有待存储数据,因此,区块链节点可以基于数据日志为数据服务器提供数据恢复功能,有效防止区块链数据异步存储过程中出现数据丢失的情况。
可选的,随着区块链节点在运行过程中不断的存储数据,数据日志所记录的数据越来越多,数据日志所占用的存储空间越来越大,因此,区块链节点可以对数据日志进行更新,以减小数据日志所占用的存储空间。
本申请实施例提供了一种更新数据日志的过程,包括:对数据日志包含的相同索引数据进行去重处理,得到更新后的数据日志。
在实施中,区块链节点可以遍历数据日志包含的索引数据,确定相同索引数据。然后,区块链节点对相同索引数据进行去重处理,得到更新后的数据日志。
本申请实施例提供了两种区块链节点对相同索引数据进行去重处理的实现方式:
方式一、区块链节点可以针对相同索引数据,确定每个相同索引数据对应的值数据,得到至少两个值数据。然后,区块链节点可以在至少两个值数据中选择预设数目个值数据,在新数据日志中记录选择出的值数据和相同索引数据。
方式二、区块链节点可以针对相同索引数据,确定每个相同索引数据对应的值数据,得到至少两个值数据。然后,区块链节点可以在至少两个值数据中选择预设数目个值数据,在当前数据日志中删除确定出的值数据。
可选的,区块链节点可以按照预设更新周期对数据日志进行更新,区块链节点也可以在接收到数据日志更新指令后,对数据日志进行更新。
本申请实施例中,通过对数据日志包含的相同索引数据进行去重处理,得到更新后的数据日志,区块链节点可以减小数据日志所占用的存储空间,从而能够提高区块链节点的处理性能。进一步的,基于更新后的数据日志,使得数据服务器在进行数据恢复时,能够在更短的时间内重建已存储数据的索引数据,提高数据服务器对临时存储区进行数据恢复的效率。
可选的,本申请实施例提供了一种基于上述方式一所描述的去重处理操作,更新数据日志的实现方式,如图6所示,包括:
步骤601、对数据日志进行数据复制,得到数据日志副本。
在实施中,区块链节点可以新建一个数据日志,将区块链节点中原数据日志记录的数据复制到新建的数据日志中,即,将新建的数据日志作为原数据日志的数据日志副本。
例如,区块链节点中存储的原数据日志为F1,区块链节点可以新建一个数据日志F2。区块链节点可以将原数据日志F1中的数据复制到数据日志F2中,数据日志F2即为原数据日志F1的数据日志副本。
步骤602、遍历数据日志副本包含的索引数据,确定相同索引数据。
例如,区块链节点可以遍历数据日志副本包含的索引数据,确定相同索引数据,得到zhangsan、lisi。
步骤603、在新数据日志中记录相同索引数据、以及相同索引数据中最新存储的索引数据对应的值数据,得到更新后的数据日志。
在实施中,区块链节点可以创建一个新数据日志,针对相同索引数据,区块链节点可以确定相同索引数据中最新存储的索引数据、与该索引数据对应的值数据,然后,区块链节点可以在新数据日志中记录相同索引数据与该值数据,得到更新后的数据日志。
例如,区块链节点可以创建一个新数据日志F3。针对相同索引数据zhangsan,数据日志副本F2中与该索引数据对应的值数据分别为50、100,区块链可以在新数据日志F3中记录最新存储的索引数据对应的值数据100、以及相同索引数据zhangsan。
本申请实施例中,区块链节点可以对数据日志进行数据复制,得到数据日志副本,然后,区块链节点可以遍历数据日志副本包含的索引数据,确定相同索引数据。之后,区块链节点可以在新数据日志中记录相同索引数据中最新存储的索引数据对应的值数据、以及相同索引数据,得到更新后的数据日志。
本申请实施例提供的数据日志合并方案中,由于区块链节点基于复制数据日志得到的数据日志副本,进行数据日志合并,因此,能够保持原数据日志所记录数据的数据完整性,避免了区块链节点在进行数据日志合并的过程中,出现由于运行异常导致原数据日志所记录数据丢失的情况。
可选的,为了保证在数据日志合并过程中,区块链节点仍能在原数据日志中记录待存储数据,区块链节点可以记录数据日志合并的开始合并时间,并在数据日志合并过程中,保持向原数据日志写入数据的数据写入进程正常运行。在得到更新后的新数据日志后,区块链节点可以阻塞原数据日志的数据写入进程,然后,区块链节点可以确定当前时间与开始合并时间之间,写入原数据日志中的数据。之后,区块链节点可以将确定出的数据复制至新数据日志中。
或者,区块链节点可以在开始进行数据日志合并时,阻塞原数据日志的数据写入进程,并在得到更新后的新数据日志后,区块链节点可以开启向新数据日志写入数据的数据写入进程。
本申请实施例中,可以由数据服务器执行生成数据日志、对数据日志进行更新等步骤,具体处理过程可以参照上述区块链节点生成数据日志、对数据日志进行更新等处理过程,此处不再赘述。
基于相同的技术构思,本申请实施例还提供了一种数据查询***,该***包括上述执行一种数据查询方法的数据服务器、上述执行一种数据查询方法的区块链节点。
本申请实施例以临时存储区中存储有持久化存储区中的全部索引数据、热点数据的值数据为例,提供了一种数据查询过程的示例图,如图7所示,包括以下步骤:
步骤701、区块链节点响应于数据查询操作,获取待查询数据的目标索引数据。
步骤702、区块链节点查询数据服务器中是否存储有目标索引数据。
步骤703、如果数据服务器中存储有目标索引数据,则区块链节点生成数据查询请求并向数据服务器发送数据查询请求。
其中,数据查询请求携带有待查询数据的目标索引数据。
步骤704、数据服务器接收区块链节点的数据查询请求,在临时存储区中查找目标索引数据。
步骤705、如果查找到目标索引数据、且临时存储区中存储有目标索引数据对应的值数据,则数据服务器从临时存储区中获取与目标索引数据对应的值数据,向区块链节点发送该值数据。
步骤706、如果查找到目标索引数据、且临时存储区中未存储有目标索引数据对应的值数据,则数据服务器从持久化存储区中获取与目标索引数据对应的值数据,向区块链节点发送该值数据。
步骤707、如果未查找到目标索引数据,则数据服务器向区块链节点发送数据不存在消息。
本申请实施例以临时存储区中存储有持久化存储区中的全部索引数据、热点数据的值数据为例,提供了一种数据存储过程的示例图,如图8所示,包括以下步骤:
步骤801、区块链节点响应于数据存储操作,获取待存储数据的索引数据和值数据。
步骤802、区块链节点获取待存储数据的数据分类。
其中,数据分类包括热点数据或非热点数据。
步骤803、如果待存储数据的数据分类为热点数据,则在数据日志中记录待存储数据的索引数据和值数据。
步骤804、如果待存储数据的数据分类为非热点数据,则在数据日志中记录待存储数据的索引数据。
步骤805、区块链节点生成数据存储请求并向数据服务器发送数据存储请求。
其中,数据存储请求携带有待存储数据的索引数据和值数据。
步骤806、数据服务器在临时存储区中存储待存储数据,并向区块链节点发送成功存储消息。
步骤807、数据服务器在持久化存储区中存储待存储数据的索引数据和值数据。
基于相同的技术构思,本申请实施例还提供了一种数据查询装置,所述装置应用于区块链中的数据服务器,所述数据服务器包括临时存储区,所述临时存储区存储有持久化存储区中的索引数据、以及至少部分所述索引数据对应的值数据,如图9所示,所述装置包括:
第一接收模块910,用于接收区块链节点的数据查询请求,所述数据查询请求携带有待查询数据的目标索引数据;
查找模块920,用于在所述临时存储区中查找所述目标索引数据;
第一获取模块930,用于当查找到所述目标索引数据、且所述临时存储区中存储有所述目标索引数据对应的值数据时,从所述临时存储区中获取与所述目标索引数据对应的值数据,向所述区块链节点发送该值数据。
本申请实施例有益效果:可以在接收到区块链节点的数据查询请求后,在临时存储区中查找待查询数据的目标索引数据。如果查找到目标索引数据、且临时存储区中存储有目标索引数据对应的值数据,则可以从临时存储区中获取与目标索引数据对应的值数据,再向区块链节点发送该值数据。由于临时存储区中存储有目标索引数据对应的值数据时,可以直接从临时存储区中获取该值数据,因此,能够避免从持久化存储区中获取该值数据所耗费的数据读取耗时,从而能够提高数据查询效率。
基于相同的技术构思,本申请实施例还提供了一种数据查询装置,所述装置应用于区块链中的区块链节点,如图10所示,所述装置包括:
第一获取模块1010,用于响应于数据查询操作,获取待查询数据的目标索引数据;
查询模块1020,用于查询数据服务器中是否存储有所述目标索引数据;
第一发送模块1030,用于当所述数据服务器中存储有所述目标索引数据时,生成数据查询请求并向所述数据服务器发送所述数据查询请求,所述数据查询请求携带有所述待查询数据的目标索引数据。
本申请实施例有益效果:可以在数据服务器中存储有目标索引数据时,发送数据查询请求,并在数据服务器中未存储目标索引数据时,不发送数据查询请求。由于提前在区块链节点侧进行待查询数据的存在性判断,因此,一方面,能够在区块链节点侧,有效过滤掉对于未存储数据的数据查询请求,减少区块链节点发送数据查询请求并等待数据服务器的查询结果所耗费的时间与处理资源。另一方面,在数据服务器侧,减少数据服务器的数据查询负担,并提高数据查询效率。
基于相同的技术构思,本申请实施例还提供了一种电子设备,电子设备可以作为数据服务器,也可以作为区块链节点。如图11所示,电子设备可以包括处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信,
存储器1103,用于存放计算机程序;
处理器1101,用于执行存储器1103上所存放的程序时,实现上述由数据服务器执行的一种数据查询方法步骤,或者,实现上述由区块链节点执行的一种数据查询方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据查询方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据查询方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (16)

1.一种数据查询方法,其特征在于,所述方法应用于区块链中的数据服务器,所述数据服务器包括临时存储区,所述临时存储区存储有持久化存储区中的索引数据、以及至少部分所述索引数据对应的值数据,所述方法包括:
接收区块链节点的数据查询请求,所述数据查询请求携带有待查询数据的目标索引数据;
在所述临时存储区中查找所述目标索引数据;
如果查找到所述目标索引数据、且所述临时存储区中存储有所述目标索引数据对应的值数据,则从所述临时存储区中获取与所述目标索引数据对应的值数据,向所述区块链节点发送该值数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收区块链节点的数据存储请求,所述数据存储请求携带有待存储数据的索引数据和值数据;
在所述临时存储区中存储所述待存储数据,并向所述区块链节点发送成功存储消息;
在所述持久化存储区中存储所述待存储数据的索引数据和值数据。
3.根据权利要求2所述的方法,其特征在于,所述在所述临时存储区中存储所述待存储数据,包括:
获取所述待存储数据的数据分类,所述数据分类包括热点数据或非热点数据;
如果所述待存储数据的数据分类为所述热点数据,则在所述临时存储区中存储所述待存储数据的索引数据和值数据;
如果所述待存储数据的数据分类为所述非热点数据,则在所述临时存储区中存储所述待存储数据的索引数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果查找到所述目标索引数据、且所述临时存储区中未存储所述目标索引数据对应的值数据,则从所述持久化存储区中获取与所述目标索引数据对应的值数据,向所述区块链节点发送该值数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当需要对所述临时存储区进行数据恢复时,向所述区块链节点发送数据日志获取请求;
接收所述区块链节点发送的数据日志,所述数据日志中记录有已存储数据的索引数据和值数据;
基于所述数据日志中记录的索引数据和值数据进行数据恢复。
6.一种数据查询方法,其特征在于,所述方法应用于区块链中的区块链节点,所述方法包括:
响应于数据查询操作,获取待查询数据的目标索引数据;
查询数据服务器中是否存储有所述目标索引数据;
如果所述数据服务器中存储有所述目标索引数据,则生成数据查询请求并向所述数据服务器发送所述数据查询请求,所述数据查询请求携带有所述待查询数据的目标索引数据。
7.根据权利要求6所述的方法,其特征在于,所述查询数据服务器中是否存储有所述目标索引数据,包括:
通过预设滤波器计算所述目标索引数据对应的元素值,得到目标元素值;
在预设元素集合中查找所述目标元素值,所述预设元素集合包含多个元素值,所述元素值是通过所述预设滤波器对所述临时存储区中存储的索引数据进行计算得到的;
如果在所述预设元素集合中查找到所述目标元素值,则确定所述数据服务器中存储有所述目标索引数据;
如果在所述预设元素集合中未查找到所述目标元素值,则确定所述数据服务器中未存储所述目标索引数据。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应于数据存储操作,获取待存储数据的索引数据和值数据;
在所述区块链中对所述待存储数据进行存储;
生成数据存储请求并向所述数据服务器发送所述数据存储请求,所述数据存储请求携带有所述待存储数据的索引数据和值数据。
9.根据权利要求8所述的方法,其特征在于,所述在所述区块链中对所述待存储数据进行存储,包括:
获取所述待存储数据的数据分类,所述数据分类包括热点数据或非热点数据;
如果所述待存储数据的数据分类为所述热点数据,则在数据日志中记录所述待存储数据的索引数据和值数据;
如果所述待存储数据的数据分类为所述非热点数据,则在所述数据日志中记录所述待存储数据的索引数据。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
对所述数据日志包含的相同索引数据进行去重处理,得到更新后的数据日志。
11.根据权利要求10所述的方法,其特征在于,所述对所述数据日志包含的相同索引数据进行去重处理,得到更新后的数据日志,包括:
对所述数据日志进行数据复制,得到数据日志副本;
遍历所述数据日志副本包含的索引数据,确定相同索引数据;
在新数据日志中记录相同索引数据、以及相同索引数据中最新存储的索引数据对应的值数据,得到更新后的数据日志。
12.一种数据查询***,其特征在于,所述***包括上述权利要求1-5所描述的数据服务器、上述权利要求6-11所描述的区块链节点。
13.一种数据查询装置,其特征在于,所述装置应用于区块链中的数据服务器,所述数据服务器包括临时存储区,所述临时存储区存储有持久化存储区中的索引数据、以及至少部分所述索引数据对应的值数据,所述装置包括:
第一接收模块,用于接收区块链节点的数据查询请求,所述数据查询请求携带有待查询数据的目标索引数据;
查找模块,用于在所述临时存储区中查找所述目标索引数据;
第一获取模块,用于当查找到所述目标索引数据、且所述临时存储区中存储有所述目标索引数据对应的值数据时,从所述临时存储区中获取与所述目标索引数据对应的值数据,向所述区块链节点发送该值数据。
14.一种数据查询装置,其特征在于,所述装置应用于区块链中的区块链节点,所述装置包括:
第一获取模块,用于响应于数据查询操作,获取待查询数据的目标索引数据;
查询模块,用于查询数据服务器中是否存储有所述目标索引数据;
第一发送模块,用于当所述数据服务器中存储有所述目标索引数据时,生成数据查询请求并向所述数据服务器发送所述数据查询请求,所述数据查询请求携带有所述待查询数据的目标索引数据。
15.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5,或权利要求6-11任一所述的方法步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5,或权利要求6-11任一所述的方法步骤。
CN202010565812.6A 2020-06-19 2020-06-19 一种数据查询方法及*** Active CN111782707B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010565812.6A CN111782707B (zh) 2020-06-19 2020-06-19 一种数据查询方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010565812.6A CN111782707B (zh) 2020-06-19 2020-06-19 一种数据查询方法及***

Publications (2)

Publication Number Publication Date
CN111782707A true CN111782707A (zh) 2020-10-16
CN111782707B CN111782707B (zh) 2024-04-16

Family

ID=72757378

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010565812.6A Active CN111782707B (zh) 2020-06-19 2020-06-19 一种数据查询方法及***

Country Status (1)

Country Link
CN (1) CN111782707B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113177224A (zh) * 2021-03-16 2021-07-27 深圳市名竹科技有限公司 基于区块链的数据密封方法、装置、设备和存储介质
CN113177048A (zh) * 2021-04-28 2021-07-27 中国工商银行股份有限公司 数据处理方法、终端、节点、***、电子设备和存储介质
CN113239078A (zh) * 2021-05-17 2021-08-10 国网河南省电力公司信息通信公司 一种基于联盟链的数据快速查询方法
CN113328920A (zh) * 2021-08-04 2021-08-31 成都飞机工业(集团)有限责任公司 一种对设备数据的采集与存储方法
CN113656501A (zh) * 2021-08-18 2021-11-16 北京百度网讯科技有限公司 一种数据读取方法、装置、设备以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370315B1 (en) * 2010-05-28 2013-02-05 Symantec Corporation System and method for high performance deduplication indexing
US20160259727A1 (en) * 2015-03-05 2016-09-08 Guangzhou Ucweb Computer Technology Co., Ltd. Method, apparatus, and system for data caching
CN108848119A (zh) * 2018-04-03 2018-11-20 阿里巴巴集团控股有限公司 跨区块链的交互方法及装置、***、电子设备
CN109614823A (zh) * 2018-10-26 2019-04-12 阿里巴巴集团控股有限公司 一种数据的处理方法、装置及设备
CN110532228A (zh) * 2019-09-02 2019-12-03 深圳市网心科技有限公司 一种区块链数据读取的方法、***、设备及可读存储介质
CN110597852A (zh) * 2019-09-27 2019-12-20 腾讯科技(深圳)有限公司 数据处理方法、装置、终端及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370315B1 (en) * 2010-05-28 2013-02-05 Symantec Corporation System and method for high performance deduplication indexing
US20160259727A1 (en) * 2015-03-05 2016-09-08 Guangzhou Ucweb Computer Technology Co., Ltd. Method, apparatus, and system for data caching
CN108848119A (zh) * 2018-04-03 2018-11-20 阿里巴巴集团控股有限公司 跨区块链的交互方法及装置、***、电子设备
CN109614823A (zh) * 2018-10-26 2019-04-12 阿里巴巴集团控股有限公司 一种数据的处理方法、装置及设备
US20200133949A1 (en) * 2018-10-26 2020-04-30 Alibaba Group Holding Limited Data processing method, apparatus, and device
CN110532228A (zh) * 2019-09-02 2019-12-03 深圳市网心科技有限公司 一种区块链数据读取的方法、***、设备及可读存储介质
CN110597852A (zh) * 2019-09-27 2019-12-20 腾讯科技(深圳)有限公司 数据处理方法、装置、终端及存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113177224A (zh) * 2021-03-16 2021-07-27 深圳市名竹科技有限公司 基于区块链的数据密封方法、装置、设备和存储介质
CN113177048A (zh) * 2021-04-28 2021-07-27 中国工商银行股份有限公司 数据处理方法、终端、节点、***、电子设备和存储介质
CN113239078A (zh) * 2021-05-17 2021-08-10 国网河南省电力公司信息通信公司 一种基于联盟链的数据快速查询方法
CN113328920A (zh) * 2021-08-04 2021-08-31 成都飞机工业(集团)有限责任公司 一种对设备数据的采集与存储方法
CN113328920B (zh) * 2021-08-04 2021-10-29 成都飞机工业(集团)有限责任公司 一种对设备数据的采集与存储方法
CN113656501A (zh) * 2021-08-18 2021-11-16 北京百度网讯科技有限公司 一种数据读取方法、装置、设备以及存储介质
CN113656501B (zh) * 2021-08-18 2024-01-12 北京百度网讯科技有限公司 一种数据读取方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
CN111782707B (zh) 2024-04-16

Similar Documents

Publication Publication Date Title
CN111782707B (zh) 一种数据查询方法及***
KR20190067158A (ko) 블록체인 블록 데이터의 아카이빙 방법, 장치 및 조회 방법, 장치
CN102629247B (zh) 一种数据处理方法、装置和***
CN109284073B (zh) 数据存储方法、装置、***、服务器、控制节点及介质
US10776345B2 (en) Efficiently updating a secondary index associated with a log-structured merge-tree database
CN110888837B (zh) 对象存储小文件归并方法及装置
CN107301215B (zh) 一种搜索结果缓存方法及装置、搜索方法及装置
CN111858520B (zh) 一种区块链节点数据分离存储的方法和装置
CN110958300B (zh) 一种数据的上传方法、***、装置、电子设备和计算机可读介质
CN110727404A (zh) 一种基于存储端的数据重删方法、设备以及存储介质
CN114528231A (zh) 一种数据动态存储方法、装置、电子设备及存储介质
CN111563199A (zh) 一种数据处理方法及装置
CN111198885A (zh) 数据的处理方法及装置
CN111651443A (zh) 一种数据管理方法、装置、电子设备及存储介质
CN108241758B (zh) 数据查询方法及相关设备
CN115442439A (zh) 分布式缓存集群管理方法、***、终端及存储介质
CN114461762A (zh) 档案变更识别方法、装置、设备及存储介质
CN114553885A (zh) 基于dht网络的存储方法及装置、电子设备、存储介质
CN110968267B (zh) 数据管理方法、装置、服务器及***
CN114816219A (zh) 数据写入和读取方法、装置及数据读写***
CN116820323A (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
CN110678854B (zh) 数据查询的方法和装置
CN112637293B (zh) 数据修复***、方法、装置、电子设备及存储介质
CN113609123B (zh) 基于HBase的海量用户数据去重存储的方法及装置
US11797486B2 (en) File de-duplication for a distributed database

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 601, 6 / F, building 2, No. 18, Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant after: Jingdong Technology Information Technology Co.,Ltd.

Applicant after: Jingdong Technology Holding Co.,Ltd.

Address before: 601, 6 / F, building 2, No. 18, Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant before: Jingdong Shuke Haiyi Information Technology Co.,Ltd.

Applicant before: Jingdong Digital Technology Holding Co.,Ltd.

Address after: 601, 6 / F, building 2, No. 18, Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant after: Jingdong Shuke Haiyi Information Technology Co.,Ltd.

Applicant after: Jingdong Digital Technology Holding Co.,Ltd.

Address before: 601, 6 / F, building 2, No. 18, Kechuang 11th Street, Beijing Economic and Technological Development Zone, Beijing 100176

Applicant before: BEIJING HAIYI TONGZHAN INFORMATION TECHNOLOGY Co.,Ltd.

Applicant before: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant