数据存储方法和装置、数据查询方法和装置、数据结构、电子设备及计算机可读存储介质制造方法及图纸

技术编号:30134045 阅读:29 留言:0更新日期:2021-09-23 13:59
本申请公开了一种数据存储方法和装置、数据查询方法和装置、数据结构、电子设备及计算机可读存储介质。该方法包括:获取待存储的数据对;根据关键字确定所述数据对的分桶值;在冲突链表中,查找所述分桶值所指向的分组;将关键字写入第一存储位置中的最小空白地址,将取值写入第二存储位置的最小空白地址,并将两个所述最小空白地址设置相同的标识。本申请实施例可以在表头仅存储指向对应的冲突链表的分桶值,而无需存储键值对,因此大大节省了表头占用的存储空间,并且由于在对应的冲突链表中按分组分别连续地存储键和值,而无需按对存储键值对,从而减少了为了对齐的填充空白,降低了内存的浪费,提高了有效内存使用率。提高了有效内存使用率。提高了有效内存使用率。

【技术实现步骤摘要】
数据存储方法和装置、数据查询方法和装置、数据结构、电子设备及计算机可读存储介质


[0001]本申请涉及数据处理
,尤其涉及一种数据存储方法和装置、数据查询方法和装置、数据结构、电子设备及计算机可读存储介质。

技术介绍

[0002]随着人工智能应用的发展,作为人工智能的硬件基础,GPU(图形处理单元)得到了广泛的使用,尤其是近年来多用于深度学习(CTR,Click

Through Rate)模型,该模型具有模型较大、计算密集的特点,因此训练过程中常常需要频繁地查询GPU上的嵌入数据。但是这样的嵌入数据通常采用GPU哈希表方式来组织,因此在访问时由于在内存使用量和内存对齐方面受到限制而使得严重影响了GPU在应用中的性能表现。
[0003]因此,需要一种能够提高哈希表的内存利用率的方案。

技术实现思路

[0004]本申请实施例提供一种数据存储方法和装置、数据查询方法和装置、数据结构、电子设备及计算机可读存储介质,以解决现有技术中哈希表的内存利用率较低以及内存资源浪费的缺陷。
>[0005]为达到本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据存储方法,包括:获取待存储的数据对,其中,所述数据对包括关键字和取值;根据所述关键字确定所述数据对的分桶值,其中,所述分桶值为所述关键字的哈希值对分桶数取余的值;在冲突链表中,查找所述分桶值所指向的分组,其中,所述分组包括位置相邻且分别具有固定长度的第一存储位置和第二存储位置;将所述关键字写入所述第一存储位置中的最小空白地址,将所述取值写入所述第二存储位置的最小空白地址,并将两个所述最小空白地址设置相同的标识,其中,所述最小空白地址为所述第一存储位置或所述第二存储位置中未存储数据的最小地址。2.根据权利要求1所述的数据存储方法,其中,所述方法还包括:当所述分组中的第一存储位置和/或第二存储位置没有空白地址时,新建新分组,其中,所述新分组包括位置相邻且分别具有固定长度的第一存储位置和第二存储位置;将所述分桶值指向所述新分组,并在所述第二存储位置的尾部设置指向旧的分组的指针;将所述关键字写入所述新分组的第一存储位置中的最小空白地址,将所述取值写入所述新分组的第二存储位置的最小空白地址,并将两个所述最小空白地址设置相同的标识。3.根据权利要求1或2所述的数据存储方法,其中,所述第一存储位置与所述第二存储位置的长度之和为128字节的整数倍。4.一种数据查询方法,包括:获取待查询的关键字;根据所述关键字确定分桶值,其中,所述分桶值为所述关键字的哈希值对分桶数取余的值;在冲突链表中,遍历所述分桶值所指向的分组或者所述分组所指向的其他分组,查找所述关键字所存储的第一存储位置,其中,所述分组包括位置相邻且分别具有固定长度的第一存储位置和第二存储位置;根据所述第一存储位置的标识,在同一分组的第二存储位置中具有相同标识的地址读取所述关键字对应的取值。5.根据权利要求4所述的数据查询方法,其中,所述数据查询方法进一步包括:当遍历所述冲突链表未找到所述关键字时,返回空值作为查询结果。6.一种数据存储装置,包括:获取模块,用于获取待存储的数据对,其中,所述数据对包括关键字和取值;确定模块,用于根据所述关键字确定所述数据对的分桶值,其中,所述分桶值为所述关键字的哈希值对分桶数取余的值;查找模块,用于在冲突链表中,查找所述分桶值所指向的分组,其中,所述分组包括位置相邻且分别具有固定长度的第一存储位置和第二存储位置;写入模块,用于将所述关键字写入所述第一存储位置中的最小空白地址,将所述取值写入所述第二存储位置的最小空白地址,并将两个所述最小空白地址设置相同的标识,其中,所述最小空白地址为所述第一存储位置或所述第二存储位置中未存储数据的最小地址。
7.根据权利要求6所述的数据存储装置,其中,所述装置进一步包括:新建分组模块,用于当所述分组中的第一存储位置和/或第二存储位置没有空白地址时,新建新分组,其中,所述新分组包括位置相邻且分别具有固定长度的第一存储位置和第二存储位置;指向模块,用于将所述分桶值指向所述新分组,并在所述第二存储位置的尾部设置指向旧的分组的指针,并且所述写入模块进一步用于将所述关键字写入所述新分组的第一存储位置中的最小空白地址,将所述取值写入所述新分组的第二存储位置的最小空白地址,并将两个所述最小空白地址设置相同的标识。8.根据权利要求6或7所述的数据存储装置,其中,所述第一存储位置与所述第二存储位置的长度之和为128字节的整数倍。9.一种数据查询装置,包括:获取模块,用于获取待查询的关键字;确定模块,用于根据所述关键字确定分桶值,其中,所述分桶值为所述关键字的哈希值对分桶数取余的值;查找模块,用于在冲突链表中,遍历所述分桶值所指向的分组或者所述分组所指向的分组,查找所述关键字所存储的第一存储位置;读取模块,用于根据所述第一存储位置的标识,在同一分组的第二存储位置中具有相同标识的地址读取所述关键字对应的取值作为查询结果。10.根据权利要求9所述的数据查询装置,其中,所...

【专利技术属性】
技术研发人员:李豪曹政赵巍董建波刘小丽易慧民宋钺金铃铃
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

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

1