System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据存储领域,尤其涉及一种哈希表中的索引数据回收和分配方法及装置。
技术介绍
1、hash算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。hash算法的意义在于提供了一种快速存取数据的方法,它用一种算法建立键值与真实值之间的对应关系,每一个真实值只能有一个键值,但是一个键值可以对应多个真实值,这样可以快速在数组等条件中里面存取数据。在doe(database offload engine,数据库卸载引擎)的哈希表中,将key(键值)经过哈希计算后,得到hashcode(真实值),将hashcode做除法再取余得到hash值,也对应该键值在哈希表中的偏移地址,hashcode是唯一不会重复的,但是hash值是一定会重复的,不同的键值肯定无法存储在相同地址,此时就叫哈希冲突。
2、现有技术解决哈希冲突时,dpu进行数据存储的效率低下,存储压力大。
技术实现思路
1、鉴于此,本申请实施例提供了一种哈希表中的索引数据回收和分配方法及装置,以消除或改善现有技术中存在的一个或更多个缺陷。
2、本申请的第一个方面提供了一种哈希表中的索引数据回收和分配方法,该方法包括:
3、在当前ram中为目标哈希表分配ram目标地址空间;在ddr中为目标哈希表分配ddr目标地址空间;
4、将所述目标
5、基于接收到的用户输入的索引回收指令,读取该用户对应的索引参数表中的第一ram地址指针;
6、基于所述索引参数表中的第一ram地址指针将预先从所述ram目标地址空间读取的目标索引数据写入所述ram目标地址空间;并将该第一ram地址指针的值加1,得到第二ram地址指针。
7、在本申请的一些实施例中,在所述并将该第一ram地址指针参数的值加1,得到第二ram地址指针之后,还包括:
8、基于所述第二ram地址指针判断所述ram目标地址空间中的剩余索引数据数是否多于预设的第一索引数据数;
9、若是,则基于所述第二ram地址指针,读取所述ram目标地址空间中第一预设数量的索引数据并写入至所述ddr目标地址空间中;将所述索引参数表中的第一ddr地址指针的值加上所述第一预设数量的值,并将更新后的所述第一ddr地址指针返回至所述索引参数表;将所述第二ram地址指针减去所述第一预设数量的值,并将更新后的所述第二ram地址指针返回至所述索引参数表;
10、若否,则返回所述第二ram地址指针至所述索引参数表。
11、在本申请的一些实施例中,还包括:
12、基于接收到的用户输入的索引申请指令,读取该用户对应的索引参数表中的第三ram地址指针;
13、基于所述第三ram地址指针读取所述ram目标地址空间中的索引数据;并将该第三ram地址指针的值减1,得到第四ram地址指针。
14、在本申请的一些实施例中,在所述并将该第三ram地址指针的值减1,得到第四ram地址指针之后,还包括:
15、基于所述第四ram地址指针判断所述ram目标地址空间中的剩余索引数据数是否少于预设的第二索引数据数;
16、若是,则基于所述索引参数表中的第二ddr地址指针,读取所述ddr目标地址空间中第二预设数量的索引数据并写入至所述ram目标地址空间中;将所述第二ddr地址指针的值减去所述第二预设数量的值,并将更新后的所述第二ddr地址指针返回至所述索引参数表;将所述第四ram地址指针加上所述第二预设数量的值,并将更新后的所述第四ram地址指针返回至所述索引参数表;
17、若否,则返回所述第四ram地址指针至所述索引参数表。
18、在本申请的一些实施例中,还包括:
19、若在向目标哈希主表中插入目标索引数据时产生哈希冲突,则将该目标索引数据写入至所述ram目标地址空间。
20、在本申请的一些实施例中,若所述ram目标地址空间中的剩余索引数据数少于预设的第三索引数据数,则基于所述第二ddr地址指针,读取所述ddr目标地址空间中第三预设数量的索引数据并写入至所述ram目标地址空间中。
21、在本申请的一些实施例中,若所述ram目标地址空间中的剩余索引数据数多于预设的第四索引数据数,则基于所述第二ram地址指针,读取所述ram目标地址空间中第四预设数量的索引数据并写入至所述ddr目标地址空间中。
22、本申请的第二个方面提供了一种哈希表中的索引数据回收和分配装置,该装置包括:
23、地址空间分配模块,用于在当前ram中为目标哈希表分配ram目标地址空间;在ddr中为目标哈希表分配ddr目标地址空间;
24、索引数据迁移模块,用于将所述目标哈希表中待回收的各个索引数据分配至所述ddr目标地址空间中;从所述ddr目标地址空间中读取预设数量的所述索引数据并写入至所述ram目标地址空间;
25、参数调取模块,用于基于接收到的用户输入的索引回收指令,读取该用户对应的索引参数表中的第一ram地址指针;
26、索引写入模块,用于基于所述索引参数表中的第一ram地址指针将预先从所述ram目标地址空间读取的目标索引数据写入所述ram目标地址空间;并将该第一ram地址指针的值加1,得到第二ram地址指针。
27、在本申请的一些实施例中,还包括:
28、索引判断模块,用于基于所述第二ram地址指针判断所述目标地址空间中的剩余索引数据数是否多于预设的第一索引数据数;
29、索引回收模块,用于若是,则基于所述索引参数表中的第一ddr地址指针,读取所述ram目标地址空间中第一预设数量的索引数据并写入至所述ddr目标地址空间中;将所述第一ddr地址指针的值加上所述第二预设数量的值,并将更新后的所述第一ddr地址指针返回至所述索引参数表;将所述第二ram地址指针减去所述第二预设数量的值,并将更新后的所述第二ram地址指针返回至所述索引参数表;
30、参数返回模块,用于若否,则返回所述第二ram地址指针至所述索引参数表。
31、本申请的第三个方面提供了一种dpu,设有数据库卸载引擎,所述数据库卸载引擎用于执行第一方面所述的哈希表中的索引数据回收和分配方法。
32、本申请提供一种哈希表中的索引数据回收和分配方法及装置,所述方法包括:在当前ram中为目标哈希表分配ram目标地址空间;在ddr中为目标哈希表分配ddr目标地址空间;将所述目标哈希表中待回收的各个索引数据分配至所述ddr目标地址空间中;从所述ddr目标地址空间中读取预设数量的所述索引数据并写入至本文档来自技高网...
【技术保护点】
1.一种哈希表中的索引数据回收和分配方法,其特征在于,包括:
2.根据权利要求1所述的哈希表中的索引数据回收和分配方法,其特征在于,在所述并将该第一RAM地址指针参数的值加1,得到第二RAM地址指针之后,还包括:
3.根据权利要求1所述的哈希表中的索引数据回收和分配方法,其特征在于,还包括:
4.根据权利要求3所述的哈希表中的索引数据回收和分配方法,其特征在于,在所述并将该第三RAM地址指针的值减1,得到第四RAM地址指针之后,还包括:
5.根据权利要求1所述的哈希表中的索引数据回收和分配方法,其特征在于,还包括:
6.根据权利要求4所述的哈希表中的索引数据回收和分配方法,其特征在于,若所述RAM目标地址空间中的剩余索引数据数少于预设的第三索引数据数,则基于所述第二DDR地址指针,读取所述DDR目标地址空间中第三预设数量的索引数据并写入至所述RAM目标地址空间中。
7.根据权利要求2所述的哈希表中的索引数据回收和分配方法,其特征在于,若所述RAM目标地址空间中的剩余索引数据数多于预设的第四索引数据数,则基于所
8.一种哈希表中的索引数据回收和分配装置,其特征在于,包括:
9.根据权利要求8所述的哈希表中的索引数据回收和分配装置,其特征在于,还包括:
10.一种DPU,设有数据库卸载引擎,其特征在于,所述数据库卸载引擎用于执行权利要求1-7任一项所述的哈希表中的索引数据回收和分配方法。
...【技术特征摘要】
1.一种哈希表中的索引数据回收和分配方法,其特征在于,包括:
2.根据权利要求1所述的哈希表中的索引数据回收和分配方法,其特征在于,在所述并将该第一ram地址指针参数的值加1,得到第二ram地址指针之后,还包括:
3.根据权利要求1所述的哈希表中的索引数据回收和分配方法,其特征在于,还包括:
4.根据权利要求3所述的哈希表中的索引数据回收和分配方法,其特征在于,在所述并将该第三ram地址指针的值减1,得到第四ram地址指针之后,还包括:
5.根据权利要求1所述的哈希表中的索引数据回收和分配方法,其特征在于,还包括:
6.根据权利要求4所述的哈希表中的索引数据回收和分配方法,其特征在于,若所述ram目标地址空间中的剩余索引数据数少于预设的第三...
【专利技术属性】
技术研发人员:孟令权,
申请(专利权)人:中科驭数北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。