本申请提供一种哈希表中的索引数据回收和分配方法及装置,所述方法包括:在当前RAM中为目标哈希表分配RAM目标地址空间;在DDR中为目标哈希表分配DDR目标地址空间;将所述目标哈希表中待回收的各个索引数据分配至所述DDR目标地址空间中;从所述DDR目标地址空间中读取预设数量的所述索引数据并写入至所述RAM目标地址空间;基于接收到的用户输入的索引回收指令,读取该用户对应的索引参数表中的第一RAM地址指针;基于所述索引参数表中的第一RAM地址指针将预先从所述RAM目标地址空间读取的目标索引数据写入所述RAM目标地址空间;并将该第一RAM地址指针的值加1,得到第二RAM地址指针。本申请能够有效提高DPU进行数据存储的效率,减轻DPU的数据存储压力。
背景技术
hash算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。hash算法的意义在于提供了一种快速存取数据的方法,它用一种算法建立键值与真实值之间的对应关系,每一个真实值只能有一个键值,但是一个键值可以对应多个真实值,这样可以快速在数组等条件中里面存取数据。在DOE(Database Offload Engine,数据库卸载引擎)的哈希表中,将key(键值)经过哈希计算后,得到hashcode(真实值),将hashcode做除法再取余得到hash值,也对应该键值在哈希表中的偏移地址,hashcode是唯一不会重复的,但是hash值是一定会重复的,不同的键值肯定无法存储在相同地址,此时就叫哈希冲突。
现有技术解决哈希冲突时,DPU进行数据存储的效率低下,存储压力大。
实现思路