索引建立方法、装置及存储介质制造方法及图纸

技术编号:28130765 阅读:15 留言:0更新日期:2021-04-19 11:52
本申请提供一种索引建立方法、装置及存储介质,该方法包括:获取交易数据对应的哈希值;识别哈希值中前预设数量位的第一前缀信息,预设数量少于哈希值的总位数;根据第一前缀信息在预先创建的字典树中查找字典树中是否存在第一匹配路径,字典树中包括根节点和叶子节点,第一匹配路径为从根节点出发且经过的叶子节点所组成的前缀信息与第一前缀信息相匹配的路径;若存在第一匹配路径,则识别哈希值中位于第一前缀信息之后第一预设位的第二前缀信息,得到与第二前缀信息对应的索引信息;根据索引信息,建立交易数据的索引。本申请利用全量哈希的部分数据来构建索引,减少内存消耗。耗。耗。

【技术实现步骤摘要】
索引建立方法、装置及存储介质


[0001]本申请涉及数据处理
,具体涉及一种索引建立方法、装置及存储介质。

技术介绍

[0002]当前区块链底层对于TxHash的索引的建立都是通过Key

Value数据库来建立,所用的索引都是用的全文索引,及把TxHash的全文作为索引,然后用类似B+树或者二分查找的方法在内存或者磁盘进行搜索。
[0003]然而,采用上述方式,其内存消耗大,索引效率低,因此,如何建立低内存消耗的索引,是现有数据处理领域亟需解决的问题。

技术实现思路

[0004]本申请提供一种索引建立方法、装置及存储介质,以解决如何建立低内存消耗的索引,是现有数据处理领域亟需解决的问题。
[0005]一方面,本申请提供一种索引建立方法,所述方法包括:
[0006]获取交易数据对应的哈希值;
[0007]识别所述哈希值中前预设数量位的第一前缀信息,所述预设数量少于所述哈希值的总位数;
[0008]根据所述第一前缀信息在预先创建的字典树中查找所述字典树中是否存在第一匹配路径,所述字典树中包括根节点和叶子节点,所述第一匹配路径为从根节点出发且经过的叶子节点所组成的前缀信息与所述第一前缀信息相匹配的路径;
[0009]若存在所述第一匹配路径,则识别所述哈希值中位于所述第一前缀信息之后第一预设位的第二前缀信息,得到与所述第二前缀信息对应的索引信息;
[0010]根据所述索引信息,建立所述交易数据的索引。
[0011]在本申请一种可能的实现方式中,所述索引信息为二元组信息,所述索引信息包括与所述第二前缀信息中第二预设位对应的实际字符串和后续连续查找长度初始值;
[0012]根据所述索引信息,建立所述交易数据的索引,包括:
[0013]判断所述第一匹配路径中最后一个叶子节点对应的目标叶子节点中是否存在与所述二元组信息对应的预先设置的三元组结构,所述三元组结构包括所述二元组信息和用于存储所述哈希值的物理地址;
[0014]若不存在所述三元组结构,则将所述二元组信息插入所述目标叶子节点中对应的目标三元组结构,以建立所述交易数据的索引。
[0015]在本申请一种可能的实现方式中,在将所述二元组信息插入所述目标叶子节点中对应的目标三元组结构之后,所述方法还包括:
[0016]获取所述哈希值对应的哈希映射内存消耗值和进制化数组内存消耗值;
[0017]比较所述哈希映射内存消耗值与所述进制化数组内存消耗值的大小;
[0018]若所述哈希映射内存消耗值比所述进制化数组内存消耗值小,则采用哈希映射存
储结构存储所述二元组信息;
[0019]若所述进制化数组内存消耗值比所述哈希映射内存消耗值小,则采用进制化数组存储结构存储所述二元组信息。
[0020]在本申请一种可能的实现方式中,所述采用进制化数组存储结构存储所述二元组信息,包括:
[0021]将所述进制化数组初始化,得到与所述进制化数组对应的初始进制槽;
[0022]将所述二元组信息转化为十进制数据;
[0023]将所述十进制数据放入所述初始进制槽中,得到目标进制槽。
[0024]在本申请一种可能的实现方式中,所述判断所述第一匹配路径中最后一个叶子节点对应的目标叶子节点中是否存在与所述第二前缀信息对应的预先设置的三元组结构,包括:
[0025]根据所述第一前缀信息,遍历所述第一前缀信息至所述目标叶子节点;
[0026]判断所述目标叶子节点中是否存在预先设置的三元组结构。
[0027]在本申请一种可能的实现方式中,所述方法还包括:
[0028]若存在所述三元组结构,则按照预设顺序进行遍历,以获取所述物理地址,并根据所述物理地址查看存储在所述物理地址中的目标哈希值,所述预设顺序是按照与所述字符串长度值的大小从大致小的顺序;
[0029]识别所述目标哈希对应的目标前缀信息,并根据所述目标前缀信息更新所述后续连续查找长度初始值和与所述后续连续查找长度初始值对应的实际字符串,以更新二元组信息,得到目标二元组信息;
[0030]将所述目标二元组信息存入所述三元组结构中。
[0031]在本申请一种可能的实现方式中,所述方法还包括:
[0032]若不存在所述第一匹配路径,则确定所述字典树中与所述第一前缀信息中前预设数量位相同的第二匹配路径;
[0033]将所述哈希值插入所述第二匹配路径中最后一个叶子节点中。
[0034]在本申请一种可能的实现方式中,所述字典树的叶子节点包括当前叶子节点值、与所述当前叶子节点值对应的当前物理存储地址、以及所述三元组结构另一方面,本申请提供一种索引建立装置,所述装置包括:
[0035]第一获取单元,用于获取交易数据对应的哈希值;
[0036]第一识别单元,用于识别所述哈希值中前预设数量位的第一前缀信息,所述预设数量少于所述哈希值的总位数;
[0037]第一查找单元,用于根据所述第一前缀信息在预先创建的字典树中查找所述字典树中是否存在第一匹配路径,所述字典树中包括根节点和叶子节点,所述第一匹配路径为从根节点出发且经过的叶子节点所组成的前缀信息与所述第一前缀信息相匹配的路径;
[0038]第二识别单元,用于若存在所述第一匹配路径,则识别所述哈希值中位于所述第一前缀信息之后第一预设位的第二前缀信息,得到与所述第二前缀信息对应的索引信息;
[0039]第一建立单元,用于根据所述索引信息,建立所述交易数据的索引。
[0040]在本申请一种可能的实现方式中,所述索引信息为二元组信息,所述索引信息包括与所述第二前缀信息中第二预设位对应的实际字符串和后续连续查找长度初始值;
[0041]所述第一建立单元具体包括:
[0042]第一判断单元,用于判断所述第一匹配路径中最后一个叶子节点对应的目标叶子节点中是否存在与所述二元组信息对应的预先设置的三元组结构,所述三元组结构包括所述二元组信息和用于存储所述哈希值的物理地址;
[0043]第一插入单元,用于若不存在所述三元组结构,则将所述二元组信息插入所述目标叶子节点中对应的目标三元组结构,以建立所述交易数据的索引。
[0044]在本申请一种可能的实现方式中,在将所述二元组信息插入所述目标叶子节点中对应的目标三元组结构之后,所述装置还包括:
[0045]第二获取单元,用于获取所述哈希值对应的哈希映射内存消耗值和进制化数组内存消耗值;
[0046]第一比较单元,用于比较所述哈希映射内存消耗值与所述进制化数组内存消耗值的大小;
[0047]第一存储单元,用于若所述哈希映射内存消耗值比所述进制化数组内存消耗值小,则采用哈希映射存储结构存储所述二元组信息;
[0048]第二存储单元,用于若所述进制化数组内存消耗值比所述哈希映射内存消耗值小,则采用进制化数组存储结构存储所述二元组信息。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种索引建立方法,其特征在于,所述方法包括:获取交易数据对应的哈希值;识别所述哈希值中前预设数量位的第一前缀信息,所述预设数量少于所述哈希值的总位数;根据所述第一前缀信息在预先创建的字典树中查找所述字典树中是否存在第一匹配路径,所述字典树中包括根节点和叶子节点,所述第一匹配路径为从根节点出发且经过的叶子节点所组成的前缀信息与所述第一前缀信息相匹配的路径;若存在所述第一匹配路径,则识别所述哈希值中位于所述第一前缀信息之后第一预设位的第二前缀信息,得到与所述第二前缀信息对应的索引信息;根据所述索引信息,建立所述交易数据的索引。2.根据权利要求1所述的索引建立方法,其特征在于,所述索引信息为二元组信息,所述索引信息包括与所述第二前缀信息中第二预设位对应的实际字符串和后续连续查找长度初始值;根据所述索引信息,建立所述交易数据的索引,包括:判断所述第一匹配路径中最后一个叶子节点对应的目标叶子节点中是否存在与所述二元组信息对应的预先设置的三元组结构,所述三元组结构包括所述二元组信息和用于存储所述哈希值的物理地址;若不存在所述三元组结构,则将所述二元组信息插入所述目标叶子节点中对应的目标三元组结构,以建立所述交易数据的索引。3.根据权利要求2所述的索引建立方法,其特征在于,在将所述二元组信息插入所述目标叶子节点中对应的目标三元组结构之后,所述方法还包括:获取所述哈希值对应的哈希映射内存消耗值和进制化数组内存消耗值;比较所述哈希映射内存消耗值与所述进制化数组内存消耗值的大小;若所述哈希映射内存消耗值比所述进制化数组内存消耗值小,则采用哈希映射存储结构存储所述二元组信息;若所述进制化数组内存消耗值比所述哈希映射内存消耗值小,则采用进制化数组存储结构存储所述二元组信息。4.根据权利要求3所述的索引建立方法,其特征在于,所述采用进制化数组存储结构存储所述二元组信息,包括:将所述进制化数组初始化,得到与所述进制化数组对应的初始进制槽;将所述二元组信息转化为十进制数据;将所述十进制数据放入所述初始进制槽中,得到目标进制槽。5.根据权利要求2所述的索引建立方法,其特征在于,所述判断所述第一匹配路径中最后一个叶子节点对应的目标叶子节点中是否存在与所述第二前缀...

【专利技术属性】
技术研发人员:张帅匡立中李伟蔡亮曾磊
申请(专利权)人:杭州趣链科技有限公司
类型:发明
国别省市:

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

1