【技术实现步骤摘要】
数据处理方法、装置、设备、可读存储介质及程序产品
[0001]本申请涉及计算机
,具体而言,本申请涉及一种数据处理方法
、
装置
、
设备
、
可读存储介质及程序产品
。
技术介绍
[0002]区块链是分布式数据存储
、
点对点传输
、
共识机制
、
加密算法等计算机技术的新型应用模式
。
区块链的区块中包含多个
KV(Key
‑
Value
,键值对
)
,现有技术直接将区块中的多个
KV
写入到区块链的缓存中;例如,区块链中有
10
个区块,每个区块有1万个交易,每个交易中有
100
个
KV
,那么这
10
个区块总共有
10^7
个
KV
,每次写一个区块到缓存中,由于一个区块就要写
10^6
个
KV
,只能将
10^6
个
KV
串行写入缓存,导致每次写一个区块到缓存中,缓存的更新时间复杂度高达
O(n^3)
,持有锁的时间长,每次写一个区块到缓存的效率低
。
从区块链的缓存中读取
KV
,由于持有锁的时间长,导致从区块链的缓存中读取
KV
的效率低
。
技术实现思路
[00 ...
【技术保护点】
【技术特征摘要】
1.
一种数据处理方法,其特征在于,包括:获取目标区块或区块链的目标键;将所述目标区块中多个键值对写入到所述区块链的内存的区块缓存;或从所述区块缓存中读取与所述目标键对应的目标值;其中,所述目标键和所述目标值构成键值对;所述区块缓存为第一级散列表,所述第一级散列表包括所述区块链的至少两个区块中每个区块的区块高度和所述每个区块的区块高度对应的第二级散列表,所述区块链的至少两个区块中每个区块的区块高度和所述每个区块的区块高度对应的第二级散列表构成键值对,所述第二级散列表包括多个第三级散列表,所述每个区块的全部键值对中每个键值对存储在所述多个第三级散列表中的任一个第三级散列表内
。2.
根据权利要求1所述的方法,其特征在于,所述将所述目标区块中多个键值对写入到所述区块链的内存的区块缓存,包括:获取新的第二级散列表;将所述目标区块中多个键值对写入到所述新的第二级散列表;将所述新的第二级散列表写入到所述区块链的内存的区块缓存
。3.
根据权利要求2所述的方法,其特征在于,所述获取新的第二级散列表,包括:基于所述区块链的内存中的对象池,获取新的第二级散列表
。4.
根据权利要求2所述的方法,其特征在于,所述将所述目标区块中多个键值对写入到所述新的第二级散列表,包括:通过哈希函数,将所述目标区块中多个键值对写入到所述新的第二级散列表对应的多个第三级散列表;所述多个键值对中每个键值对存储在所述新的第二级散列表对应的多个第三级散列表中的任一个第三级散列表内
。5.
根据权利要求2所述的方法,其特征在于,所述将所述新的第二级散列表写入到所述区块链的内存的区块缓存,包括:对所述第一级散列表加锁,并将所述新的第二级散列表和所述目标区块的区块高度,写入到所述第一级散列表内;所述新的第二级散列表与所述目标区块的区块高度构成键值对;对所述第一级散列表进行锁的释放
。6.
根据权利要求5所述的方法,其特征在于,所述将所述新的第二级散列表和所述目标区块的区块高度,写入到所述第一级散列表内,包括:将所述至少两个区块的区块高度中最小的区块高度,以及所述最小的区块高度对应的第二级散列表进行删除,并将所述新的第二级散列表和所述目标区块的区块高度,写入到所述第一级散列表内
。7.
根据权利要求1所述的方法,其特征在于,所述从所述区块缓存中读取与所...
【专利技术属性】
技术研发人员:陈永清,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。