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

技术编号:35752572 阅读:18 留言:0更新日期:2022-11-26 18:58
本申请公开了一种数据处理方法,可以应用于金融领域或其它领域。该方法包括:获取第一数据和第一数据对应的第一关键码,确定所述第一关键码对应的第一哈希值。确定所述第一哈希值对应的第一桶bucket以及所述第一bucket中存储的第一地址。基于所述第一地址,确定用于存储所述第一数据的第二地址,具体地,为了在访问第一数据时,减少CPU读取内存的次数,可以从一定范围的地址空间所对应的可用地址中、确定与所述第一地址最接近的第二地址,将所述第二地址写入至所述第一bucket中,并将所述第一数据存储至所述第二地址对应的存储空间。本申请实施例的方案,可以提升数据访问效率。可以提升数据访问效率。可以提升数据访问效率。

【技术实现步骤摘要】
一种数据处理方法及装置


[0001]本申请涉及数据处理领域,特别是涉及一种数据处理方法及装置。

技术介绍

[0002]哈希表,是根据关键码值(key value)而直接进行访问的数据结构。也就是说,哈希表通过把关键码值映射到表中一个位置(节点)来访问记录,以加快查找的速度。例如,对于关键码key1而言,通过哈希计算得到key1

,以key1

为索引查找哈希表,则可以得到存储key1对应的数据的存储地址,相应的,可以通过该存储地址访问key1对应的数据。
[0003]对于不同的关键码,其进行哈希计算得到的数值可能是一样的,对于这种情况,则出现了哈希冲突。目前,当出现哈希冲突时,访问数据的效率较低,因此,急需一种方案,能够解决上述问题。

技术实现思路

[0004]为了解决或者至少部分解决上述技术问题,本申请实施例提供了一种数据处理方法及装置。
[0005]第一方面,本申请实施例提供了一种数据处理方法,所述方法包括:
[0006]获取第一数据和第一数据对应的第一关键码;
[0007]确定所述第一关键码对应的第一哈希值;
[0008]确定所述第一哈希值对应的第一桶bucket以及所述第一bucket中存储的第一地址;
[0009]从一定范围的地址空间所对应的可用地址中、确定与所述第一地址最接近的第二地址;
[0010]将所述第二地址写入至所述第一bucket中,并将所述第一数据存储至所述第二地址对应的存储空间。r/>[0011]可选的,所述方法还包括:
[0012]将所述一定范围的地址空间划分为多个节点,一个节点对应一段用于存储数据的地址子空间;
[0013]以所述多个节点的序号为序构建平衡二叉树;
[0014]从一定范围的地址空间所对应的可用地址中、确定与所述第一地址最接近的第二地址,包括:
[0015]从所述平衡二叉树中的可用节点中、确定与所述第一地址对应的第一节点最接近的第二节点;
[0016]根据所述第二节点的序号,确定所述第二地址。
[0017]可选的,所述第一地址为所述第一节点的序号,所述根据所述第二节点的序号,确定所述第二地址,包括:
[0018]将所述第二节点的序号,确定为所述第二地址。
[0019]可选的,所述方法还包括:
[0020]将所述第二节点设置为不可用节点。
[0021]可选的,所述方法还包括:
[0022]获取第二数据和第二数据对应的第二关键码;
[0023]确定所述第二关键码对应的第二哈希值;
[0024]确定不存在所述第二哈希值对应的bucket;
[0025]创建所述第二哈希值对应的第二bucket;
[0026]从所述一定范围的地址空间所对应的可用地址中、随机选择第三地址;
[0027]将所述第三地址写入至所述第二bucket中,并将所述第二数据存储至所述第三地址对应的存储空间。
[0028]可选的,所述从所述一定范围的地址空间所对应的可用地址中、随机选择第三地址,包括:
[0029]从所述平衡二叉树中的可用节点中随机选择第三节点;
[0030]根据所述第三节点的序号,确定所述第三地址。
[0031]可选的,所述方法还包括:
[0032]将所述第三节点设置为不可用节点。
[0033]可选的,所述根据所述第三节点的序号,确定所述第三地址,包括:
[0034]将所述第三节点的序号确定为所述第三地址。
[0035]第二方面,本申请实施例提供了一种数据处理装置,所述装置包括:
[0036]第一获取单元,用于获取第一数据和第一数据对应的第一关键码;
[0037]第一确定单元,用于确定所述第一关键码对应的第一哈希值;
[0038]第二确定单元,用于确定所述第一哈希值对应的第一桶bucket以及所述第一bucket中存储的第一地址;
[0039]第三确定单元,用于从一定范围的地址空间所对应的可用地址中、确定与所述第一地址最接近的第二地址;
[0040]第一写入单元,用于将所述第二地址写入至所述第一bucket中;
[0041]第一存储单元,用于将所述第一数据存储至所述第二地址对应的存储空间。
[0042]可选的,所述装置还包括:
[0043]地址划分单元,用于将所述一定范围的地址空间划分为多个节点,一个节点对应一段用于存储数据的地址子空间;
[0044]构建单元,用于以所述多个节点的序号为序构建平衡二叉树;
[0045]所述第三确定单元,用于:
[0046]从所述平衡二叉树中的可用节点中、确定与所述第一地址对应的第一节点最接近的第二节点;
[0047]根据所述第二节点的序号,确定所述第二地址。
[0048]可选的,所述第一地址为所述第一节点的序号,所述根据所述第二节点的序号,确定所述第二地址,包括:
[0049]将所述第二节点的序号,确定为所述第二地址。
[0050]可选的,所述装置还包括:
[0051]第一设置单元,用于将所述第二节点设置为不可用节点。
[0052]可选的,所述装置还包括:
[0053]第二获取单元,用于获取第二数据和第二数据对应的第二关键码;
[0054]第四确定单元,用于确定所述第二关键码对应的第二哈希值;
[0055]第五确定单元,用于确定不存在所述第二哈希值对应的bucket;
[0056]创建单元,用于创建所述第二哈希值对应的第二bucket;
[0057]选择单元,用于从所述一定范围的地址空间所对应的可用地址中、随机选择第三地址;
[0058]第二写入单元,用于将所述第三地址写入至所述第二bucket中;
[0059]第二存储单元,用于将所述第二数据存储至所述第三地址对应的存储空间。
[0060]可选的,所述选择单元,用于:
[0061]从所述平衡二叉树中的可用节点中随机选择第三节点;
[0062]根据所述第三节点的序号,确定所述第三地址。
[0063]可选的,所述装置还包括:
[0064]第二设置单元,用于将所述第三节点设置为不可用节点。
[0065]可选的,所述根据所述第三节点的序号,确定所述第三地址,包括:
[0066]将所述第三节点的序号确定为所述第三地址。
[0067]与现有技术相比,本申请实施例具有以下优点:
[0068]本申请实施例提供了一种数据处理方法,包括:获取第一数据和第一数据对应的第一关键码,而后,确定所述第一关键码对应的第一哈希值。得到所述第一哈希值之后,可以确定所述第一哈希值对应的第一桶bucket以及所述第一bucket中存储的第一地址。确定所述第一地址之后,可以基于所述第一地址,确定用于存储所述第一数据的第二地址本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:获取第一数据和第一数据对应的第一关键码;确定所述第一关键码对应的第一哈希值;确定所述第一哈希值对应的第一桶bucket以及所述第一bucket中存储的第一地址;从一定范围的地址空间所对应的可用地址中、确定与所述第一地址最接近的第二地址;将所述第二地址写入至所述第一bucket中,并将所述第一数据存储至所述第二地址对应的存储空间。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述一定范围的地址空间划分为多个节点,一个节点对应一段用于存储数据的地址子空间;以所述多个节点的序号为序构建平衡二叉树;从一定范围的地址空间所对应的可用地址中、确定与所述第一地址最接近的第二地址,包括:从所述平衡二叉树中的可用节点中、确定与所述第一地址对应的第一节点最接近的第二节点;根据所述第二节点的序号,确定所述第二地址。3.根据权利要求2所述的方法,其特征在于,所述第一地址为所述第一节点的序号,所述根据所述第二节点的序号,确定所述第二地址,包括:将所述第二节点的序号,确定为所述第二地址。4.根据权利要求2所述的方法,其特征在于,所述方法还包括:将所述第二节点设置为不可用节点。5.根据权利要求2所述的方法,其特征在于,所述方法还包括:获取第二数据和第二数据对应的第二关键码;确定所述第二关键码对应的第二哈希值;确定不存在所述第二哈希值对应的bucket;创建所述第二哈希值对应的第二bucket;从所述一定范围的地址空间所对应的可用地址中、随机选择第三地址;将所述第三地址写入至所述第二bucket中,...

【专利技术属性】
技术研发人员:周玲曾庆谦
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:

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

1