一种提高Hash查性能的方法、装置、设备及介质与流程


一种提高hash查性能的方法、装置、设备及介质
技术领域
1.本发明涉及计算机领域,尤其涉及一种提高hash查性能的方法、装置、设备及介质。


背景技术:



2.hash称为散列或哈希,是将任意长度的二进制值输入(即关键字k)通过映射函数(即hash函数,f(k))映射为较短的固定长度的二进制值进行输出,其中,输出的此值称为hash值或hash地址,记为p。hash表也称为散列表,是根据关键字的值(k-value)直接进行访问的数据结构,常用value表示,值value存放在p指定的存储位置。hash冲突又称为hash碰撞,是指不同的k经过hash函数计算后得到同一个p的情况,即k1≠k2,而f(k1)=f(k2)的情况。cache是在计算机系统中用于存放少量且需要被快速访问的临时数据的一种存储器;cam(content-addressable memory,内容可寻址存储器)是一种特殊的存储器,cam的主要工作机制是将一个输入数据项与存储在cam中所有数据项自动同时进行比较,判断该输入数据项与cam中存储的数据项是否匹配,如果匹配则输出匹配的存储数据项的位置信息
3.hash表是一种特殊的数据结构,可以实现快速插入、查询和删除操作,因此常用来处理大数据,广泛应用在数据库索引、cache管理、信息安全等领域。当进行hash时,首先根据k和hash算法获取p,再读取p对应的hash表,最后根据读取的hash表信息实现插入、查询和删除操作。随着k、value信息量的增长,hash表通常保存在片外存储器。相比较片上存储器,片外存储器的访问延迟大大增加,一方面,无论hash表是否为空,都需要从片外存储器读取hash表,即当hash表为空时也需要读取hash表,从而增加对片外存储器访问的次数;另一方面,片外存储器一般为系统公共资源,访问带宽和仲裁策略受限,使得hash表访问延迟进一步增大,导致hash查性能严重降低。
4.现有技术中,申请号202111640700.3提出了基于循环队列的hash查方法及系统,使用已使用队列和可用队列两个队列实现循环队列,优化了hash处理流程,但该方法未考虑访问hash表以及队列深度带来的延迟代价;cn102364463a提出采用cam表实现hash快速查,该方法cam表设计复杂,容量有限,应用场景受限;cn109800228a提出了构建三个hash表和三个hash函数来解决hash冲突,提高查效率。但该方法未考虑访问三个hash表延迟代价和硬件实现上的代价。


技术实现要素:



5.有鉴于此,本发明提出了一种提高hash查性能的方法、装置、设备及介质,其中,本发明提出的一种提高hash查性能的方法通过在本地建立一个本地hash表保存外部hash表状态的信息和hash冲突的信息,通过对本地hash表的访问减少对外部hash表的访问次数,进而可以实现hash的快速查,提高hash查性能。
6.基于以上目的,本发明的实施例的一个方面提供了一种提高hash查性能的方法,所述方法包括以下步骤:建立与片外存储器上的外部hash表一一映射的本地hash表,以
实现所述本地hash表与所述外部hash表对于同一hash地址所指向的关键字的信息相同;建立所述本地hash表和所述外部hash表对于hash查的联系,通过待查关键字的信息对所述本地hash表的信息进行读取和判断,完成对所述待查关键字的信息的hash查。
7.在一些实施例中,所述建立所述本地hash表和所述外部hash表对于hash查的联系,通过待查关键字的信息对所述本地hash表的信息进行读取和判断,完成对所述待查关键字的信息的hash查包括:通过在所述本地hash表中建立记录所述外部hash表状态的信息和hash冲突的信息建立所述本地hash表与所述外部hash表对于hash查的联系;通过待查关键字的信息对所述本地hash表的信息进行读取和判断,选择通过所述本地hash表或所述外部hash表进行访问,完成对所述待查关键字的信息的hash查。
8.在一些实施例中,所述通过待查关键字的信息对所述本地hash表的信息进行读取和判断,选择通过所述本地hash表或所述外部hash表进行访问,完成对所述待查关键字的信息的hash查包括:根据所述待查关键字的信息进行hash计算,得到对应的hash地址,根据所述hash地址读取在所述本地hash表中对应的信息;根据读取的信息判断所述hash地址在所述外部hash表中是否有效以及所述hash地址对应的hash表是否有链接冲突,根据判断结果选择对应的hash表进行访问,完成对所述待查关键字的信息的hash查。
9.在一些实施例中,所述根据所述待查关键字的信息进行hash计算,得到对应的hash地址包括:设置包括插入、查询、删除操作在内的hash查的模式;根据所述待查关键字及对应的值以及所述关键字对应的hash查模式进行hash计算,得到对应的hash地址。
10.在一些实施例中,所述根据读取的信息判断所述hash地址在所述外部hash表中是否有效以及所述hash地址对应的hash表是否有链接冲突,根据判断结果选择对应的hash表进行访问,完成对所述待查关键字的信息的hash查包括:根据所述待查关键字及对应的值以及所述关键字对应的插入模式进行hash计算,得到对应的hash地址;响应于所述hash地址在所述外部hash表中有效,读取所述hash地址对应的外部hash表的信息并比较所述待查关键字与所述hash地址在所述外部hash表中对应的关键字是否匹配,响应于不匹配并且所述hash地址对应的本地hash表有链接冲突,根据hash冲突算法计算得到新hash地址,读取所述新hash地址对应的本地hash表的信息并判断是否有空hash表,响应于有空hash表,更新所述新hash地址对应的外部hash表以及在所述本地hash表中将所述新hash地址对应的外部hash表的状态更新为有效,完成对所述待查关键字信息的插入。
11.在一些实施例中,所述根据读取的信息判断所述hash地址在所述外部hash表中是否有效以及所述hash地址对应的hash表是否有链接冲突,根据判断结果选择对应的hash表进行访问,完成对所述待查关键字的信息的hash查还包括:响应于所述hash地址在所述外部hash表中无效并且所述hash地址对应的本地hash表无链接冲突,更新所述hash地址对应的外部hash表的信息并在所述本地hash表中将所述hash地址对应的外部hash表的状态更新为有效,完成对所述待查关键字信息的插入。
12.在一些实施例中,所述根据读取的信息判断所述hash地址在所述外部hash表中是否有效以及所述hash地址对应的hash表是否有链接冲突,根据判断结果选择对应的hash表进行访问,完成对所述待查关键字的信息的hash查包括:根据所述待查关键字及对应的值以及所述关键字对应的查询模式或删除模式进行hash计算,得到对应的hash地址;
响应于所述hash地址在所述外部hash表中无效并且所述hash地址对应的本地hash表无链接冲突,得到所述待查关键字无对应的hash表的信息,查询失败并结束操作;响应于所述hash地址在所述外部hash表中有效,读取所述hash地址对应的外部hash表的信息并比较所述待查关键字与所述hash地址在所述外部hash表中对应的关键字是否匹配,响应于不匹配并且所述hash地址对应的本地hash表无链接冲突,得到所述待查关键字无对应的hash表的信息,查询失败并结束操作。
13.本发明实施例的另一个方面,还提供一种提高hash查性能的装置,所述装置包括:第一模块,配置用于建立与片外存储器上的外部hash表一一映射的本地hash表,以实现所述本地hash表与所述外部hash表对于同一hash地址所指向的关键字的信息相同;第二模块,配置用于建立所述本地hash表和所述外部hash表对于hash查的联系,通过待查关键字的信息对所述本地hash表的信息进行读取和判断,完成对所述待查关键字的信息的hash查。
14.本发明实施例的另一方面,还提供一种计算机设备,包括至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任一方法的步骤。
15.本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上任一方法步骤的计算机程序。
16.本发明至少具有以下有益效果:本发明提出一种提高hash查性能的方法、装置、设备及介质,其中,本发明提供的一种提高hash查性能的方法通过在本地建立本地hash表,并通过本地hash表对输入的关键字以及关键字对应的值的插入、查询和删除的过程。由于本地hash表为片上存储器,访问速度快,仅保存了外部hash表的状态信息和hash冲突信息,因此可以实现减少对片外存储器的访问次数和实现hash快速查;进一步可以减少缓存资源的占用,只在增加少量缓存资源的情况下实现hash快速查;并且本发明的方法不受hash算法的影响,对于hash查的不同查模式都支持对hash冲突的处理,因此具有通用性。
附图说明
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的实施例。
18.图1为本发明提供的一种提高hash查性能的方法的实施例的示意图;
19.图2为本发明提供的hash查装置中的本地hash表的示意图;
20.图3为本发明提供的本地hash表与外部hash表的映射关系的示意图;
21.图4为本发明提供的提高hash查性能的方法的插入模式的实施例的示意图;
22.图5为本发明提供的提高hash查性能的方法的查询模式的实施例的示意图;
23.图6为本发明提供的提高hash查性能的方法的删除模式的实施例的示意图;
24.图7为本发明提供的一种提高hash查性能的装置的实施例的示意图;
25.图8为本发明提供的一种计算机设备的实施例的示意图;
26.图9为本发明提供的一种计算机可读存储介质的实施例的示意图。
具体实施方式
27.以下描述了本发明的实施例。然而,应该理解,所公开的实施例仅仅是示例,并且其它实施例可以采取各种替代形式。
28.此外,需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。术语“包括”、“包含”或其任何其它变形旨在涵盖非排他性的包括,以使包含一系列要素的过程、方法、物品或装置不仅包括那些要素,也可以包括未明确列出的或这些过程、方法、物品或装置所固有的要素。
29.下面将结合附图说明本技术的一个或多个实施例。
30.基于以上目的,本发明实施例的第一个方面,提出了一种提高系统可靠性的方法的实施例。图1示出的是本发明提供的一种提高系统可靠性的方法的实施例的示意图。如图1所示,本发明实施例的一种提高系统可靠性的方法包括以下步骤:
31.s1、建立与片外存储器上的外部hash表一一映射的本地hash表,以实现所述本地hash表与所述外部hash表对于同一hash地址所指向的关键字的信息相同;
32.s2、建立所述本地hash表和所述外部hash表对于hash查的联系,通过待查关键字的信息对所述本地hash表的信息进行读取和判断,完成对所述待查关键字的信息的hash查。
33.基于以上目的,本发明实施例的第一个方面,还提出了一种提高hash查性能的方法的另一实施例。本发明实施例的一种提高hash查性能的方法包括以下步骤:首先建立与片外存储器上的外部hash表一一映射的本地hash表,在本实施例中,通过如图2所示的hash查装置建立本地hash表的示意图。
34.在hash查装置中设置hash处理单元接收外部输入的关键字k及其信息,即k、value、查模式(opmode),查模式包括插入操作、查询操作和删除操作。插入操作是将k对应的value保存在外部hash表;查询操作是读取k对应的外部hash表中的value并输出;删除操作是将k对应的外部hash表清零,释放hash表。在hash查装置中还设置寄存器文件,用来提供hash算法计算所需的配置信息、hash冲突算法所需的配置信息以及访问外部hash表起始地址信息。通过寄存器文件的配置信息可以根据关键字的值计算hash地址p以及基于hash冲突算法计算新的hash地址p
new
,通过访问p或者p
new
对应的本地hash表或者通过外部总线访问外部hash表输出操作的结果。
35.如图3所示,图3示出的为本地hash表与外部hash表的映射关系的示意图,可以建立本地hash表和外部hash表的一一映射关系,即对于同一个hash地址,该hash地址在本地hash表中和在外部hash表中所指向的关键字的信息是相同的。在本地hash表中保存外部hash表的状态信息和hash冲突信息,其定义格式为v:collchains,v表示当前p对应的外部hash表是否有效,为高时表示外部hash表保存有效的信息,为低时表示外部hash表为空;collchains表示当前p对应的hash表是否链接冲突的hash表,为0时表示没有链接冲突的hash表,为1时表示当前p对应的hash表链接冲突hash表的个数。本地hash表具体地定义含
义,如表1所示。
[0036][0037][0038]
表1
[0039]
在本实施例中,有三种查模式,
[0040]
如图4所示,插入模式的操作步骤包括:
[0041]
s100:hash查装置接收k、opmode信息,跳至s101。
[0042]
s101:hash处理单元进行hash计算,获取p,跳至s102。
[0043]
s102:读取p对应的本地hash表信息,跳至s103。
[0044]
s103:当p对应的本地hash表v=1时,读取p对应的外部hash表信息,比较当前输入的k与外部hash表中k是否匹配,如果匹配,跳至s1014。如果不匹配,当collchains=0时跳至s104,否则跳至s107。当p对应的本地hash表v=0,collchains=0时跳至s109,否则,跳至s108。
[0045]
s104:根据hash冲突算法计算p
new
,读取本地hash表信息,查是否有空hash表。如果有,获取p
new
,跳至s105,否则跳至s1013。
[0046]
s105:根据hash冲突算法计算p
new
,更新pnew对应的外部hash表:写入k、value等信息,置v=1。跳至s106。
[0047]
s106:更新p
new
对应的本地hash表:置v=1。执行完后,跳至s1012。
[0048]
s107:当p对应的本地hash表v=1时,根据hash冲突算法计算p
new
,读取链接的冲突的hash表信息,比较当前输入的k与外部hash表中k是否匹配,如果匹配,跳至s1011,如果不匹配,跳至s1013。
[0049]
s108:当p对应的本地hash表v=0时,根据hash冲突算法读取链接的冲突的hash表信息,比较当前输入的k与外部hash表中k是否匹配,如果匹配,跳至s1011,如果不匹配,跳至s109。
[0050]
s109:更新p对应的外部hash表:写入k、valid等信息,置v=1,跳至s1010。
[0051]
s1010:更新p对应的本地hash表:置v=1,插入成功,操作结束。
[0052]
s1011:根据hash冲突算法计算p
new
,更新p
new
对应的外部hash表:写入k、value等信息,插入成功,操作结束。
[0053]
s1012:更新p对应的本地hash表:collchains加1,插入成功,操作结束。
[0054]
s1013:插入失败,没有到空hash表保存k、value等信息,操作结束。
[0055]
s1014:更新p对应的外部hash表,写入k、value等信息,插入成功,操作结束。
[0056]
如图5所示,查询模式的操作步骤包括:
[0057]
s200:hash查装置接收k、opmode信息,跳至s201。
[0058]
s201:hash处理单元进行hash计算,获取p,跳至s202。
[0059]
s202:读取p对应的本地hash表信息,跳至s203。
[0060]
s203:当p对应的本地hash表v=1时,读取p对应的外部hash表信息,比较当前输入的k与外部hash表中k是否匹配,如果匹配,跳至s207。如果不匹配,collchains=0时跳至s205,否则跳至s204。当p对应的本地hash表v=0,collchains=0时跳至s205,否则,跳至s204。
[0061]
s204:根据hash冲突算法计算p
new
,读取链接的冲突的hash表信息,比较当前输入的k与外部hash表中k是否匹配,如果匹配,跳至s6。如果不匹配,跳至s205。
[0062]
s205:没有到k对应的hash表信息。查询失败,操作结束。
[0063]
s206:输出p
new
对应的外部hash表value信息。查询成功,操作结束。
[0064]
s207:输出p对应的外部hash表value信息。查询成功,操作结束。
[0065]
如图6所示,删除模式的操作步骤包括:
[0066]
s300:hash查装置接收k、opmode信息,跳至s301。
[0067]
s301:hash处理单元进行hash计算,获取p,跳至s302。
[0068]
s302:读取p对应的本地hash表信息,跳至s303。
[0069]
s303:当p对应的本地hash表v=1时,读取p对应的外部hash表信息,比较当前输入的k与外部hash表中k是否匹配,如果匹配,跳至s304。如果不匹配,collchains=0时跳至s308,否则跳至s305。当p对应的本地hash表v=0,collchains=0时跳至s308,否则,跳至s305。
[0070]
s304:更新p对应的外部hash表:做清零操作。结束后,跳至s3010。
[0071]
s305:根据hash冲突算法计算p
new
,读取链接的冲突的hash表信息,比较当前输入的k与外部hash表中k是否匹配,如果匹配,跳至s306。如果不匹配,跳至s8。
[0072]
s306:更新p
new
对应的外部hash表:做清零操作。结束后,跳至s307。
[0073]
s307:更新p
new
对应的本地hash表:置v=0。跳至s309。
[0074]
s308:没有到key对应的hash表信息。删除失败,操作结束。
[0075]
s309:更新p对应的本地hash表:置v=0,collchains减1。删除成功,操作结束。
[0076]
s3010:更新p对应的本地hash表:置v=0。删除成功,操作结束。
[0077]
通过本发明提出的,建立定义了本地hash表及信息格式以及插入、查询和删除三种查模式。
[0078]
本发明的实施例的第二个方面,提出了一种提高hash查性能的装置。图7示出的是本发明提供的一种提高hash查性能的装置的实施例的示意图。如图7所示,本发明提供的一种提高hash查性能的装置包括:第一模块011,配置用于建立与片外存储器上的外部hash表一一映射的本地hash表,以实现所述本地hash表与所述外部hash表对于同一hash地址所指向的关键字的信息相同;第二模块012,配置用于建立所述本地hash表和所述外部hash表对于hash查的联系,通过待查关键字的信息对所述本地hash表的信息进行读取和判断,完成对所述待查关键字的信息的hash查。
[0079]
基于以上目的,本发明实施例的第三个方面,提出了一种计算机设备,图8示出的是本发明提供的一种计算机设备的实施例的示意图。如图8所示,本发明提供的一种计算机
设备的实施例,包括以下模块:至少一个处理器021;以及存储器022,存储器022存储有可在处理器021上运行的计算机指令023,该计算机指令023由处理器021执行时实现如上所述的方法的步骤。
[0080]
本发明还提供了一种计算机可读存储介质。图9示出的是本发明提供的一种计算机可读存储介质的实施例的示意图。如图9所示,计算机可读存储介质031存储有被处理器执行时执行如上方法的计算机程序032。
[0081]
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,设置系统参数的方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
[0082]
此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。
[0083]
此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
[0084]
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
[0085]
在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(dsl)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、d0l或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
[0086]
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例
的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0087]
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
[0088]
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0089]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0090]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

技术特征:


1.一种提高hash查性能的方法,其特征在于,包括:建立与片外存储器上的外部hash表一一映射的本地hash表,以实现所述本地hash表与所述外部hash表对于同一hash地址所指向的关键字的信息相同;建立所述本地hash表和所述外部hash表对于hash查的联系,通过待查关键字的信息对所述本地hash表的信息进行读取和判断,完成对所述待查关键字的信息的hash查。2.根据权利要求1所述的方法,其特征在于,所述建立所述本地hash表和所述外部hash表对于hash查的联系,通过待查关键字的信息对所述本地hash表的信息进行读取和判断,完成对所述待查关键字的信息的hash查包括:通过在所述本地hash表中建立记录所述外部hash表状态的信息和hash冲突的信息建立所述本地hash表与所述外部hash表对于hash查的联系;通过待查关键字的信息对所述本地hash表的信息进行读取和判断,选择通过所述本地hash表或所述外部hash表进行访问,完成对所述待查关键字的信息的hash查。3.根据权利要求2所述的方法,其特征在于,所述通过待查关键字的信息对所述本地hash表的信息进行读取和判断,选择通过所述本地hash表或所述外部hash表进行访问,完成对所述待查关键字的信息的hash查包括:根据所述待查关键字的信息进行hash计算,得到对应的hash地址,根据所述hash地址读取在所述本地hash表中对应的信息;根据读取的信息判断所述hash地址在所述外部hash表中是否有效以及所述hash地址对应的hash表是否有链接冲突,根据判断结果选择对应的hash表进行访问,完成对所述待查关键字的信息的hash查。4.根据权利要求3所述的方法,其特征在于,所述根据所述待查关键字的信息进行hash计算,得到对应的hash地址包括:设置包括插入、查询、删除操作在内的hash查的模式;根据所述待查关键字及对应的值以及所述关键字对应的hash查模式进行hash计算,得到对应的hash地址。5.根据权利要求4所述的方法,其特征在于,所述根据读取的信息判断所述hash地址在所述外部hash表中是否有效以及所述hash地址对应的hash表是否有链接冲突,根据判断结果选择对应的hash表进行访问,完成对所述待查关键字的信息的hash查包括:根据所述待查关键字及对应的值以及所述关键字对应的插入模式进行hash计算,得到对应的hash地址;响应于所述hash地址在所述外部hash表中有效,读取所述hash地址对应的外部hash表的信息并比较所述待查关键字与所述hash地址在所述外部hash表中对应的关键字是否匹配,响应于不匹配并且所述hash地址对应的本地hash表有链接冲突,根据hash冲突算法计算得到新hash地址,读取所述新hash地址对应的本地hash表的信息并判断是否有空hash表,响应于有空hash表,更新所述新hash地址对应的外部hash表以及在所述本地hash表中将所述新hash地址对应的外部hash表的状态更新为有效,完成对所述待查关键字信息的插入。6.根据权利要求5所述的方法,其特征在于,所述根据读取的信息判断所述hash地址在
所述外部hash表中是否有效以及所述hash地址对应的hash表是否有链接冲突,根据判断结果选择对应的hash表进行访问,完成对所述待查关键字的信息的hash查还包括:响应于所述hash地址在所述外部hash表中无效并且所述hash地址对应的本地hash表无链接冲突,更新所述hash地址对应的外部hash表的信息并在所述本地hash表中将所述hash地址对应的外部hash表的状态更新为有效,完成对所述待查关键字信息的插入。7.根据权利要求4所述的方法,其特征在于,所述根据读取的信息判断所述hash地址在所述外部hash表中是否有效以及所述hash地址对应的hash表是否有链接冲突,根据判断结果选择对应的hash表进行访问,完成对所述待查关键字的信息的hash查包括:根据所述待查关键字及对应的值以及所述关键字对应的查询模式或删除模式进行hash计算,得到对应的hash地址;响应于所述hash地址在所述外部hash表中无效并且所述hash地址对应的本地hash表无链接冲突,得到所述待查关键字无对应的hash表的信息,查询失败并结束操作;响应于所述hash地址在所述外部hash表中有效,读取所述hash地址对应的外部hash表的信息并比较所述待查关键字与所述hash地址在所述外部hash表中对应的关键字是否匹配,响应于不匹配并且所述hash地址对应的本地hash表无链接冲突,得到所述待查关键字无对应的hash表的信息,查询失败并结束操作。8.一种提高hash查性能的装置,其特征在于,包括:第一模块,配置用于建立与片外存储器上的外部hash表一一映射的本地hash表,以实现所述本地hash表与所述外部hash表对于同一hash地址所指向的关键字的信息相同;第二模块,配置用于建立所述本地hash表和所述外部hash表对于hash查的联系,通过待查关键字的信息对所述本地hash表的信息进行读取和判断,完成对所述待查关键字的信息的hash查。9.一种计算机设备,其特征在于,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-7任意一项所述方法的步骤。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任意一项所述方法的步骤。

技术总结


本发明涉及计算机领域,提出一种提高Hash查性能的方法、装置、设备及介质。方法包括:建立与片外存储器上的外部Hash表一一映射的本地Hash表,以实现所述本地Hash表与所述外部Hash表对于同一Hash地址所指向的关键字的信息相同;建立所述本地Hash表和所述外部Hash表对于Hash查的联系,通过待查关键字的信息对所述本地Hash表的信息进行读取和判断,完成对所述待查关键字的信息的Hash查。本发明公开的方法可以减少缓存资源的占用,只在增加少量缓存资源的情况下实现Hash快速查。少量缓存资源的情况下实现Hash快速查。少量缓存资源的情况下实现Hash快速查。


技术研发人员:

巨新刚 闫鑫 王江 李树青 孙华锦 崔健

受保护的技术使用者:

山东云海国创云计算装备产业创新中心有限公司

技术研发日:

2022.09.16

技术公布日:

2022/12/26

本文发布于:2024-09-23 20:18:02,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/49295.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   信息   关键字   地址
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议