用于管理数据库的计算管理方法、装置、存储介质和系统与流程

专利查询9天前  2


本公开涉及数据库及近存计算领域,具体涉及一种用于管理数据库的计算管理方法、装置、存储介质和系统。


背景技术:

1、内存数据库redis作为磁盘数据库的缓存数据库,以高效著称。但redis中对各种对象类型的数据集的处理过程中,仍然存在若干耗时计算场景。为了保证性能,redis从软件设计上进行了限制或规避来避免过长的耗时计算。例如,因为rehash耗时较高,所以redis可使用渐进式rehash,即分时完成,以免cpu(central processing unit,中央处理器)会受阻时间太久。又例如,在listpack的遍历中,redis可从软件上限制listpack的长度,当长度超过阈值时,会转换为其他非紧凑的数据结构进行存储。再例如,由于对quicklist的压缩和解压缩过程可能很耗时,redis支持通过配置禁用这一功能。

2、而这些方法的思路是使用规避方案,并没有从根本上提升这些密集型访存计算的效率,并且这些方案是以额外的限制或者功能损失为代价的。


技术实现思路

1、本公开提供的数据库的计算管理方法、装置、存储介质和系统,至少解决上述技术问题和上文未提及的其它技术问题。

2、其他方面的内容部分将在下面的描述中阐述,部分将从描述中显而易见,或可通过实践所介绍的实施例了解到。

3、根据本公开的一个方面,提供一种用于管理数据库的计算管理方法。所述计算管理方法包括:基于确定待执行计算包括预设的访存密集型计算,通过计算代理向近存计算设备发送计算请求,其中,在所述访存密集型计算中在处理器和内存之间的数据传输频率大于第一预设阈值,所述计算代理被选择用于执行所述访存密集型计算;通过所述计算代理接收关于通过所述近存计算设备基于所述计算请求而生成的计算结果的通知。

4、可选地,所述访存密集型计算包括以下项中的至少一项:

5、所述访存密集型计算的内存访问频率大于第二预设阈值;

6、所述访存密集型计算的计算简易程度小于第三预设阈值;

7、所述访存密集型计算的逻辑控制简易程度小于第四预设阈值。

8、可选地,所述访存密集型计算包括以下项中的至少一项:

9、重哈希操作;

10、与紧凑列表对应的遍历操作;

11、与快速列表对应的压缩操作或解压操作。

12、可选地,所述计算代理包括以下项中的至少一项:

13、被配置为执行所述重哈希操作的第一计算代理;

14、被配置为执行所述遍历操作的第二计算代理;

15、被配置为执行所述压缩操作或解压操作的第三计算代理。

16、可选地,所述计算管理方法还包括:通过所述近存计算设备中包括的计算核心基于所述计算请求执行计算过程;其中,所述计算核心被配置为执行所述访存密集型计算,所述计算核心包括以下项中的至少一项:

17、被配置为执行所述重哈希操作的第一计算核心;

18、被配置为执行所述遍历操作的第二计算核心;

19、被配置为执行所述压缩操作或解压操作的第三计算核心。

20、可选地,所述通过计算核心基于所述计算请求执行计算过程,包括:通过所述计算核心中包括的一个过程控制单元和至少一个计算单元基于所述计算请求而执行所述计算过程;其中,所述计算核心中的一个过程控制单元和至少一个计算单元中的至少一个被配置为执行所述访存密集型计算,所述计算核心中的一个过程控制单元和至少一个计算单元中的至少一个包括以下项中的至少一项:

21、在所述第一计算核心中被配置为执行所述重哈希操作的重哈希控制单元和哈希单元;

22、在所述第二计算核心中被配置为执行所述遍历操作的遍历控制单元、第一解码单元和比较单元;

23、在所述第三计算核心中被配置为执行所述压缩操作或解压操作的压缩控制单元、解压控制单元、第二解码单元、编码单元和字典管理单元。

24、可选地,所述通过所述计算核心中包括的一个过程控制单元和至少一个计算单元基于所述计算请求而执行所述计算过程,包括:所述重哈希控制单元接收与所述重哈希操作对应的第一计算请求,其中,所述第一计算请求包括哈希表信息和新的存储桶大小信息;所述重哈希控制单元基于所述第一计算请求开始所述重哈希操作;所述重哈希控制单元从内存中依次读取存储桶的入口地址;基于当前存储桶的入口地址为空,结束所述重哈希;基于所述当前存储桶的入口地址不为空,所述重哈希控制单元读取所述当前存储桶中的第一个条目,并且基于所述当前存储桶为空,从内存中切换读取下一个存储桶的入口地址;所述哈希单元根据所述新的存储桶大小信息重新计算哈希键值;所述重哈希控制单元读取新的存储桶的入口地址;所述重哈希控制单元将所述条目重新挂接到所述新的存储桶中,使用下一个存储桶,基于所述下一个存储桶重新所述重哈希操作;基于结束所述重哈希,所述重哈希控制单元向所述计算代理发送关于所述计算结果的通知。

25、可选地,所述通过所述计算核心中包括的一个过程控制单元和至少一个计算单元基于所述计算请求而执行所述计算过程,包括:所述遍历控制单元接收与所述遍历操作对应的第二计算请求;所述遍历控制单元基于所述第二计算请求开始所述遍历操作;所述遍历控制单元从内存中依次读取当前元素;基于当前元素的地址为空,结束所述遍历操作;基于所述当前元素的地址不为空,所述第一解码单元对所述当前元素执行解码计算;所述比较单元比较所述当前元素与目标元素;基于确定所述当前元素是所述目标元素,结束所述遍历操作,基于确定所述当前元素不是所述目标元素,重新开始所述遍历操作;基于结束所述遍历操作,所述遍历控制单元向所述计算代理发送关于所述计算结果的通知。

26、可选地,所述通过所述计算核心中包括的一个过程控制单元和至少一个计算单元基于所述计算请求而执行所述计算过程,包括:所述近存计算设备中的所述压缩控制单元接收与所述压缩操作对应的第三计算请求,其中,所述第三计算请求包括原始数据的地址、原始数据的长度、以及压缩后数据的地址;所述压缩控制单元基于所述第三计算请求开始所述压缩操作;所述压缩控制单元从内存中基于所述原始数据的地址读取原始数据;基于完成对所述原始数据的压缩目标,结束所述压缩操作;所述压缩控制单元控制所述编码单元基于所述字典管理单元使用所述原始数据的长度作为所述压缩目标来生成压缩后数据和新的字典码中的至少一个;所述压缩控制单元将生成的所述压缩后数据和所述新的字典码中的至少一个写入所述压缩后数据的地址,并且基于所述原始数据的地址重新开始所述压缩操作;基于结束所述压缩操作,所述压缩控制单元向所述计算代理发送关于所述计算结果的通知。

27、可选地,所述通过所述计算核心中包括的一个过程控制单元和至少一个计算单元基于所述计算请求而执行所述计算过程,包括:所述解压控制单元接收与所述解压操作对应的第四计算请求,其中,所述第四计算请求包括压缩数据的地址、压缩数据的长度、以及解压后数据的地址;所述解压控制单元基于所述第四计算请求开始所述解压操作;所述解压控制单元从内存中基于所述压缩数据的地址读取压缩数据;基于完成对所述压缩数据的解压目标,结束所述解压操作;所述解压控制单元控制所述第二解码单元基于所述字典管理单元使用所述压缩数据的长度作为所述解压目标来生成解压后数据;所述解压控制单元将所述解压后数据写入所述解压后数据的地址,并且基于所述压缩数据的地址重新开始所述解压操作;基于结束所述解压操作,所述解压控制单元向所述计算代理发送关于所述计算结果的通知。

28、根据本公开的另一方面,提供一种用于管理数据库的计算管理装置。所述计算管理装置包括:请求发送单元,被配置为:基于确定待执行计算包括预设的访存密集型计算,通过计算代理向近存计算设备发送计算请求,其中,在所述访存密集型计算中在处理器和内存之间的数据传输频率大于第一预设阈值,所述计算代理被选择用于执行所述访存密集型计算;通知接收单元,被配置为:通过所述计算代理接收关于通过所述近存计算设备基于所述计算请求而生成的计算结果的通知。

29、可选地,所述访存密集型计算包括以下项中的至少一项:

30、所述访存密集型计算的内存访问频率大于第二预设阈值;

31、所述访存密集型计算的计算简易程度小于第三预设阈值;

32、所述访存密集型计算的逻辑控制简易程度小于第四预设阈值。

33、可选地,所述访存密集型计算包括以下项中的至少一项:

34、重哈希操作;

35、与紧凑列表对应的遍历操作;

36、与快速列表对应的压缩操作或解压操作。

37、可选地,所述计算代理包括以下项中的至少一项:

38、被配置为执行所述重哈希操作的第一计算代理;

39、被配置为执行所述遍历操作的第二计算代理;

40、被配置为执行所述压缩操作或解压操作的第三计算代理。

41、可选地,所述近存计算设备被配置为:通过所述近存计算设备中包括的计算核心基于所述计算请求执行计算过程;其中,所述计算核心被配置为执行所述访存密集型计,所述计算核心包括以下项中的至少一项:

42、被配置为执行所述重哈希操作的第一计算核心;

43、被配置为执行所述遍历操作的第二计算核心;

44、被配置为执行所述压缩操作或解压操作的第三计算核心。

45、可选地,所述近存计算设备被配置为:通过所述计算核心中包括的一个过程控制单元和至少一个计算单元基于所述计算请求而执行所述计算过程;其中,所述计算核心中的一个过程控制单元和至少一个计算单元中的至少一个被配置为执行所述访存密集型计算,所述计算核心中的一个过程控制单元和至少一个计算单元中的至少一个包括以下项中的至少一项:

46、在所述第一计算核心中被配置为执行所述重哈希操作的重哈希控制单元和哈希单元;

47、在所述第二计算核心中被配置为执行所述遍历操作的遍历控制单元、第一解码单元和比较单元;

48、在所述第三计算核心中被配置为执行所述压缩操作或解压操作的压缩控制单元、解压控制单元、第二解码单元、编码单元和字典管理单元。

49、可选地,所述近存计算设备被配置为:通过所述重哈希控制单元接收与所述重哈希操作对应的第一计算请求,其中,所述第一计算请求包括哈希表信息和新的存储桶大小信息;所述重哈希控制单元基于所述第一计算请求开始所述重哈希操作;所述重哈希控制单元从内存中依次读取存储桶的入口地址;基于当前存储桶的入口地址为空,结束所述重哈希操作;基于所述当前存储桶的入口地址不为空,所述重哈希控制单元读取所述当前存储桶中的第一个条目,基于所述当前存储桶为空,从内存中切换读取下一个存储桶的入口地址;所述哈希单元根据所述新的存储桶大小信息重新计算哈希键值;所述重哈希控制单元读取新的存储桶的入口地址;所述重哈希控制单元将所述条目重新挂接到所述新的存储桶中,使用下一个存储桶,基于所述下一个存储桶重新所述重哈希操作;基于结束所述重哈希操作,所述重哈希控制单元向所述计算代理发送关于所述计算结果的通知。

50、可选地,所述近存计算设备被配置为:通过所述遍历控制单元接收与所述遍历操作对应的第二计算请求;所述遍历控制单元基于所述第二计算请求开始所述遍历操作;所述遍历控制单元从内存中依次读取当前元素;基于当前元素的地址为空,结束所述遍历操作;基于所述当前元素的地址不为空,所述第一解码单元对所述当前元素执行解码计算;所述比较单元比较所述当前元素与目标元素;基于确定所述当前元素是所述目标元素,结束所述遍历操作,基于确定所述当前元素不是所述目标元素,重新开始所述遍历操作;基于结束所述遍历操作,所述遍历控制单元向所述计算代理发送关于所述计算结果的通知。

51、可选地,所述近存计算设备被配置为:通过所述压缩控制单元接收与所述压缩操作对应的第三计算请求,其中,所述第三计算请求包括原始数据的地址、原始数据的长度、以及压缩后数据的地址;所述压缩控制单元基于所述第三计算请求开始所述压缩操作;所述压缩控制单元从内存中基于所述原始数据的地址读取原始数据;基于完成对所述原始数据的压缩目标,结束所述压缩操作;所述压缩控制单元控制所述编码单元基于所述字典管理单元使用所述原始数据的长度作为所述压缩目标来生成压缩后数据和新的字典码中的至少一个;所述压缩控制单元将生成的所述压缩后数据和所述新的字典码中的至少一个写入所述压缩后数据的地址,并且基于所述原始数据的地址重新开始所述压缩操作;基于结束所述压缩操作,所述压缩控制单元向所述计算代理发送关于所述计算结果的通知。

52、可选地,所述近存计算设备被配置为:通过所述解压控制单元接收与所述解压操作对应的第四计算请求,其中,所述第四计算请求包括压缩数据的地址、压缩数据的长度、以及解压后数据的地址;所述解压控制单元基于所述第四计算请求开始所述解压操作;所述解压控制单元从内存中基于所述压缩数据的地址读取压缩数据;基于完成对所述压缩数据的解压目标,结束所述解压操作;所述解压控制单元控制所述第二解码单元基于所述字典管理单元使用所述压缩数据的长度作为所述解压目标来生成解压后数据;所述解压控制单元将所述解压后数据写入所述解压后数据的地址,并且基于所述压缩数据的地址重新开始所述解压操作;基于结束所述解压操作,所述解压控制单元向所述计算代理发送关于所述计算结果的通知。

53、根据本公开实施例的另一方面,还提供一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如上所述的用于管理数据库的计算管理方法。

54、根据本公开实施例的另一方面,还提供一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行如上所述的用于管理数据库的计算管理方法。

55、本公开实施例提供的技术方案至少带来以下有益效果:

56、根据本公开的数据库的计算管理方法、装置、存储介质和系统,可以将访存密集型计算从数据库转移到近存计算(processing near memory,pnm)设备等计算型内存中,可以显著减少数据库中cpu和内存之间的数据移动,释放数据库的cpu计算资源,从而从根本上提升数据库的效率。


技术特征:

1.一种用于管理数据库的计算管理方法,其特征在于,所述计算管理方法包括:

2.如权利要求1所述的计算管理方法,其特征在于,所述访存密集型计算包括以下项中的至少一项:

3.如权利要求1所述的计算管理方法,其特征在于,所述访存密集型计算包括以下项中的至少一项:

4.如权利要求3所述的计算管理方法,其特征在于,所述计算代理,包括以下项中的至少一项:

5.如权利要求3所述的计算管理方法,其特征在于,所述计算管理方法还包括:

6.如权利要求5所述的计算管理方法,其特征在于,所述通过计算核心基于所述计算请求执行计算过程,包括:

7.如权利要求6所述的计算管理方法,其特征在于,所述通过所述计算核心中包括的一个过程控制单元和至少一个计算单元基于所述计算请求而执行所述计算过程,包括:

8.如权利要求6所述的计算管理方法,其特征在于,所述通过所述计算核心中包括的一个过程控制单元和至少一个计算单元基于所述计算请求而执行所述计算过程,包括:

9.如权利要求6所述的计算管理方法,其特征在于,所述通过所述计算核心中包括的一个过程控制单元和至少一个计算单元基于所述计算请求而执行所述计算过程,包括:

10.如权利要求6所述的计算管理方法,其特征在于,所述通过所述计算核心中包括的一个过程控制单元和至少一个计算单元基于所述计算请求而执行所述计算过程,包括:

11.一种用于管理数据库的计算管理装置,其特征在于,所述计算管理装置包括:

12.一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如权利要求1至10中的任一权利要求所述的用于管理数据库的计算管理方法。

13.一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行如权利要求1至10中的任一权利要求所述的用于管理数据库的计算管理方法。


技术总结
本公开提供一种用于管理数据库的计算管理方法、装置、存储介质和系统,上述方法包括:基于确定待执行计算包括预设的访存密集型计算,通过计算代理向近存计算设备发送计算请求,其中,在所述访存密集型计算中在处理器和内存之间的数据传输频率大于第一预设阈值,所述计算代理被选择用于执行所述访存密集型计算;并且通过所述计算代理接收关于通过所述近存计算设备基于所述计算请求而生成的计算结果的通知。

技术研发人员:谭然,何兴,金廷洙,金范俊,张男男,李宁
受保护的技术使用者:三星(中国)半导体有限公司
技术研发日:
技术公布日:2024/12/5

最新回复(0)