CN111309772A - 数据操作的管理方法及硬件处理模块 - Google Patents

数据操作的管理方法及硬件处理模块 Download PDF

Info

Publication number
CN111309772A
CN111309772A CN202010208075.4A CN202010208075A CN111309772A CN 111309772 A CN111309772 A CN 111309772A CN 202010208075 A CN202010208075 A CN 202010208075A CN 111309772 A CN111309772 A CN 111309772A
Authority
CN
China
Prior art keywords
hash table
hardware
value group
data operation
keyword
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010208075.4A
Other languages
English (en)
Inventor
黄朝波
文旭
彭晶鑫
邱模炯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ucloud Technology Co ltd
Original Assignee
Ucloud Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ucloud Technology Co ltd filed Critical Ucloud Technology Co ltd
Priority to CN202010208075.4A priority Critical patent/CN111309772A/zh
Publication of CN111309772A publication Critical patent/CN111309772A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种数据操作的管理方法及硬件处理模块,所述方法应用于硬件处理模块,具体包括:当接收到数据操作类请求时,从数据操作类请求中提取出关键字,关键字为逻辑存储空间的标识;从硬件处理模块中的硬件哈希表中查找与关键字对应的值组,值组中的值为物理存储空间的标识;若从硬件哈希表中查找对应的值组,则利用值组生成并输出数据操作信息,数据操作信息用于在值组所对应的物理存储空间响应数据操作类请求相应的操作;若从硬件哈希表中未查找到相对应的值组,则从内存哈希表中查找出相对应的值组,并更新至硬件哈希表中,然后返回执行所述从硬件哈希表中查找与所述关键字对应的值组,内存哈希表中的表项由中央处理器计算得到并更新。

Description

数据操作的管理方法及硬件处理模块
技术领域
本申请涉及数据操作技术领域,特别涉及一种数据操作的管理方法及硬件处理模块。
背景技术
现今,由于受到处理器架构优化以及半导体工艺等的影响,中央处理器(CentralProcessing Unit,CPU)的性能提升越来越慢。但是相对的,随着非易失性存储等计算机存储介质大范围应用,存储的输入/输出性能则大幅度地在提升。所以通过纯软件对数据进行读写或者删除等管理操作的方式,即单纯的运行在CPU上的软件进行数据管理的方式,将会占用CPU的大部分资源,从而不利于CPU进行其他的处理。
因此,现今采用的一种较优的方式是设置一个专门的硬件处理模块,并在硬件处理模块中存储一个包含大量前后端中的盘的各个块的映射关系的关系表,对于可以匹配到对应的表项的常规流量,则由硬件处理模块直接处理,对于无法匹配到对应的表项的非常规流量,则发送给CPU由软件进行处理,从而降低对CPU的资源的占用。
由于分布式存储后端服务器集群的规模、服务器存储盘的数量、盘的容量等,这些动态的变化都会影响到前后端存储盘的块的具体映射。所以,很多时候还需求通过灵活性强的软件方式进行处理,并不能将所有流量都由硬件处理,而频繁的发送给CPU通过软件的进行处理又会影响处理效率。这就需要在软件处理方式和硬件处理方式之间找到平衡,因此设计这种方案的复杂度非常高。设计不合理不仅会影响数据管理的效率,并且同样会占用CPU的大量资源。
发明内容
基于上述现有技术的不足,本发明提供了一种数据操作的管理方法及硬件管理模块,以解决在保证数据操作处理效率的前提下,使得数据操作的管理方案的设计更加简便的问题。
为了实现上述目的,本发明提供了以下技术方案:
本申请第一方面提供了一种数据操作的管理方法,应用于硬件处理模块,所述方法包括:
当接收到数据操作类请求时,从所述数据操作类请求中提取出关键字;其中,所述关键字为逻辑存储空间的标识;
从所述硬件处理模块中的硬件哈希表中查找与所述关键字对应的值组;其中,所述值组中的各个值为物理存储空间的标识;
若从所述硬件哈希表中查找到与所述关键字相对应的值组,则利用所述值组生成并输出数据操作信息;其中,所述数据操作信息用于在所述值组对应的物理存储空间响应所述数据操作类请求所请求的操作;
若从所述硬件哈希表中未查找到与所述关键字相对应的值组,则从内存哈希表中查找出与所述关键字相对应的值组,并更新至所述硬件哈希表中;其中,所述内存哈希表中的表项的数量大于所述硬件哈希表中的表项的数量;所述内存哈希表中的表项由中央处理器计算得到及更新;
返回执行所述从硬件哈希表中查找与所述关键字对应的值组。
可选地,在上述的管理方法中,所述从所述操作类请求中提取出关键字之前,还包括:
接收操作请求;其中,所述操作请求携带有操作类型标识;
根据所述操作类型标识,判断所述操作请求是否为数据操作类请求;
若判断出所述操作请求为数据操作类请求,则执行所述从所述数据操作类请求中提取出关键字;
若判断出所述操作请求不是数据操作类请求,则将所述操作请求发送给中央处理器进行处理。
可选地,在上述的管理方法中,所述从内存哈希表中查找出与所述关键字相对应的值组,并更新至所述硬件哈希表中,包括:
从所述内存哈希表中查找出包含有与所述关键字相对应的值组的目标表项;
将所述目标表项以及与所述目标表项临近的表项更新至所述硬件哈希表中。
可选地,在上述的管理方法中,还包括:
若从所述内存哈希表中未查找到与所述关键字相对应的值组,则向中央处理器发送中断请求;其中,所述中断请求用于触发所述中央处理器利用相应的映射算法计算得到所述关键字对应的值组,并将所述值组更新至所述内存哈希表中;
接收所述中央处理器反馈的更新消息,并返回执行所述从内存哈希表中查找出与所述关键字相对应的值组,并更新至所述硬件哈希表中;其中,所述中央处理器在将所述值组更新至所述内存哈希表后,向所述硬件处理模块发送所述更新消息。
可选地,在上述的管理方法中,所述从硬件哈希表中查找与所述关键字对应的值组之后,还包括:
若从所述硬件哈希表中未查找到与所述关键字相对应的值组,则将所述数据操作类请求置于等待状态,并处理其他数据操作类请求;
当再次调度所述数据操作类请求时,返回执行所述从所述硬件哈希表中查找与所述关键字对应的值组。
本申请第二方面提供了一种硬件处理模块,包括:
提取单元,用于当接收到数据操作类请求时,从所述数据操作类请求中提取出关键字;其中,所述关键字为逻辑存储空间的标识;
第一查找单元,用于从所述硬件处理模块中的硬件哈希表中查找与所述关键字对应的值组;其中,所述值组中的各个值为物理存储空间的标识;
生成单元,用于当所述第一查找单元从所述硬件哈希表中查找到与所述关键字相对应的值组时,利用所述值组生成并输出数据操作信息;其中,所述数据操作信息用于在所述值组对应的物理存储空间响应所述数据操作类请求所请求的操作;
第二查找单元,用于当所述第一查找单元从所述硬件哈希表中未查找到与所述关键字相对应的值组时,从内存哈希表中查找出与所述关键字相对应的值组,并更新至所述硬件哈希表中;其中,所述内存哈希表中的表项的数量大于所述硬件哈希表中的表项的数量;所述内存哈希表中的表项由中央处理器计算得到并更新;
第一返回单元,用于返回执行所述从硬件哈希表中查找与所述关键字对应的值组。
可选地,在上述的硬件处理模块中,还包括:
接收单元,用于接收操作请求;其中,所述操作请求携带有操作类型标识;
判断单元,用于根据所述操作类型标识,判断所述操作请求是否为数据操作类请求;
其中,当所述判断单元判断出所述操作请求为数据操作类请求时,所述提取单元执行所述从所述数据操作类请求中提取出关键字;
第一发送单元,用于当所述判断单元判断出若判断出所述操作请求不是数据操作类请求时,将所述操作请求发送给中央处理器进行处理。
可选地,在上述的硬件处理模块中,第二查找单元,包括:
第二查找子单元,用于从所述内存哈希表中查找出包含有与所述关键字相对应的值组的目标表项;
第一更新单元,用于将所述目标表项以及与所述目标表项临近的表项更新至所述硬件哈希表中。
可选地,在上述的硬件处理模块中,还包括:
第二发送单元,用于在所述第二查找单元从所述内存哈希表中未查找到与所述关键字相对应的值组时,向中央处理器发送中断请求;其中,所述中断请求用于触发所述中央处理器利用相应的映射算法计算得到所述关键字对应的值组,并将所述值组更新至所述内存哈希表中;
接收单元,用于接收所述中央处理器反馈的更新消息,并返回执行所述从内存哈希表中查找出与所述关键字相对应的值组,并更新至所述硬件哈希表中;其中,所述中央处理器在将所述值组更新至所述内存哈希表后,向所述硬件处理模块发送所述更新消息。
可选地,在上述的硬件处理模块中,还包括:
等待单元,用于当所述第一查找单元从所述内存哈希表中未查找到与所述关键字相对应的值组时,将所述数据操作类请求置于等待状态,并处理其他数据操作类请求;
第二返回单元,用于当再次调度所述数据操作类请求时,返回执行所述从所述硬件哈希表中查找与所述关键字对应的值组。
本申请提供的数据操作的管理方法,应用于硬件处理模块,通过每一组关键字都唯一对应着一组值,从而可以在接收到数据操作类请求时,可以从配置在硬件处理模块中的硬件哈希表中查找与数据操作类请求中提取到的关键字对应值组。当从硬件哈希表中未查找到与关键字相对应的值组,则从存储更多表项的内存哈希表中查找出,并更新至所述硬件哈希表中,然后返回从硬件哈希表中查找与关键字对应的值组,以根据查找到的值组生成并输出操作信息来实现数据操作。并且,由于内存哈希表中的表项是由中央处理器计算得到以及更新的,所以可以保证最终都可以从硬件哈希表中查找到关键字对应的值组,因此本发明可以实现将所有的数据操作类请求,都在硬件中进行处理,不需要软件处理。从而将软件方式的灵活性一致的反映到硬件处理模块中,因此在设计过程中不需要在软件处理方式的灵活性和硬件处理方式的高效性之间找到平衡,并且处理效率也更加高效。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据操作的管理方法的流程示意图;
图2为本申请实施例提供的一种逻辑盘块操作与分布式存储盘块操作的映射关系示意图;
图3为本申请另一实施例提供的另一种数据操作的管理方法的流程示意图;
图4为本申请另一实施例提供的另一种数据操作的管理方法的流程示意图;
图5为本申请另一实施例提供的一种硬件处理模块的结构示意图;
图6为本申请另一实施例提供的一种第二查找单元的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请实施例提供了一种数据操作的管理方法,应用于硬件处理模块,如图1所示,该方法具体包括:
S101、当接收到数据操作类请求时,从数据操作类请求中提取出关键字。
其中,提取的关键字为逻辑存储空间的标识。
首先需要说明的是,本申请实施例提供的数据操作的管理方法,用于与硬件处理模块,即通过硬件处理模块实现,并且主要针对于分布式块存储技术领域。
分布式块存储本质上相当于通过一层转换层,把对逻辑卷的块操作转换成对分布式存储块的块操作,而转换的过程依靠于两者的映射关系。在本申请实施例中,逻辑卷到分布式存储块的映射关系,可以采用多键(key)到多值(value)的映射方式。用函数表示为:(y0,y1,…,yn-1,yn)=f(x0,x1,…,xm-1,xm),其中,f为映射函数、x为输入参数、m为输入的关键字的个数、y为输出的值、n为输出值组中的值的数量。并且,m、n不小于1,且可以不相等。例如,如图2所示,逻辑盘的两个关键字对应有分布式存储盘的多个值,从而通过关键字和值组的映射关系,实现了逻辑盘的块操作与分布式存储块操作之间的转换。
也就是说,在本申请实施例中,从数据操作类请求中提取的关键字,就是逻辑卷的标识,并且所提取的关键字可以为多个,具体所提取的关键字的个数,取决于所设置的逻辑卷到分布式存储空间的映射关系。并且,每一组关键字都对应有唯一的一组值。
还需要说明的是,数据操作类请求主要指的是对数据进行读取、写入、清除等操作的请求。
可选地,对接收到的数据操作类请求,按照预先设定的格式进行解析,从数据操作类请求中提取出来相应的关键字。
S102、从硬件处理模块中的硬件哈希表中查找与关键字对应的值组。
其中,查找到的值组中的值为物理存储空间的标识,即值组指的是关键字对应的一组标识,具体指的就是分布式存储盘的物理存储空间的标识。
硬件哈希表则指的是存储在硬件处理模块中的哈希表,并且存储有多组关键字所对应的值组。也就是说,本申请提供的方法,将逻辑盘块操作映射至分布式存储盘的块操作所需的多关键字到值组的映射关系,通过硬件哈希表实现到了硬件处理模块中。而直接从存储在硬件处理模块中的哈希表查找关键字对应的值组,极大地提高了数据操作效率。
需要说明的是,由于在本申请实施例中,硬件哈希表是设置于硬件处理模块中,所以硬件哈希表中的表项不适宜过多,否则会消耗硬件处理模块过多的资源。
可选地,可以在硬件处理模块中设置内容可寻址存储器(content addressablememory,CAM),并通过CAM来实现硬件哈希表。所以可以通过CAM从硬件处理模块中的硬件哈希表中查找与关键字对应的值组。CAM是以内容进行寻址的存储器,它的主要工作机制就是将一个输入数据项与存储在CAM中的存储所有数据项自动同时进行比较,判别该输入数据项与CAM中存储的数据项是否相匹配,并输出该数据项对应的匹配信息。所以,在硬件哈希表中每个表项存储有一组关键字以及该组关键字对应的值组。由于CAM是不允许冲突的存在,因此通过这种方式能很好的关键字与值组的唯一对应关系。
S103、判断从硬件哈希表中是否查找到与关键字相对应的值组。
其中,若从硬件哈希表中查找到与关键字相对应的值组,则执行步骤S104,若从硬件哈希表中未查找到与关键字相对应的值组,则执行步骤S105。
S104、利用值组生成并输出数据操作信息,数据操作信息用于在值组对应的物理存储空间响应数据操作类请求相应的操作。
具体的,根据查找到的值组以及关键字所对应的存储卷的信息,构建对后台服务器的存储块的数据操作信息,然后将构建的数据操作信息输出,以利用数据操作信息中的值组,确定所要操作的存储空间的位置,并对确定的存储空间进行数据操作类请求所请求的数据操作。
S105、从内存哈希表中查找出与关键字相对应的值组,并更新至硬件哈希表中。
其中,内存哈希表中的表项的数量大于硬件哈希表中的表项的数量。由于为了避免硬件哈希表占用硬件处理模块过多的资源,但又需要避免查找不到关键字对应的值组的频繁发生,从而影响硬件处理模块的处理速度,所以额外设置了一个存储表项更多的内存哈希表。当从硬件哈希表查找不到关键字对应的值组时,可以从内存哈希表进行查找,并更新至硬件哈希表中,从而有效地降低了查找不到关键字对应的值组的情况的发生。
由于,内存哈希表不设置于硬件处理模块中,所以并不会占用硬件处理模块的资源。可选地,内存哈希表可以设置在嵌入式中央处理中。
还需要说明的是,内存哈希表中的表项由中央处理器计算得到以及更新,即内存哈希表中的表项由中央处理通过软件处理的方式进行计算等到,具体为通过相应的映射算法计算得到,并更新至内存哈希表中,最终可以将表项更新至硬件哈希表。从而保证通过硬件哈希表都可以查找到关键字对应的值组,不需要将请求发送至中央处理器,通过软件的方式进行处理,所有的请求都由硬件处理模块处理,中央处理器相当于起到辅助的作用。并且由于内存哈希表足够大,所以更新内存哈希表更新的需求并不会太多,因此中央处理器也就不需要进行频繁的更新,从而不会占用中央处理器过多的资源。也因此实现了将软件处理方法的灵活性,整合到硬件处理的方式中,从而将软件处理方法的灵活性与硬件处理的高效性有效的结合在一起。
可选地,本申请另一实施例中,步骤S105的一种具体实施方式,如图3所示,包括:
S301、从内存哈希表中查找出包含有与关键字相对应的值组的目标表项。
可选地,从内存哈希表中查找包含有与关键字相对应的值组的目标表项,也可以是采用内容查找得方式,具体可以的查找过程可以相应地参考步骤S102的具体实施方式,此处不再赘述。
S302、将目标表项以及与目标表项临近的表项更新至硬件哈希表中。
需要说明的是,与目标表项临近的表项指的是,存储有在地址与关键字所对应的存储卷的地址相邻的存储卷对应的关键字及其对应值组的表项。
具体的,由于硬件哈希表中的表项是比较有限的,所以当将目标表项以及目标表项临近的表项更新至硬件哈希表前,需要确定当前硬件哈希表还可以再添加多少个表项,若当前硬件哈希表还可以添加的表项的数量大于或等于,所要更新至硬件哈希表中的表项的数量,则直接将目标表项以及目标表项临近的表项添加至硬件哈希表中;若当前硬件哈希表还可以添加的表项的小于,所要更新至硬件哈希表中的表项的数量,则需要相应地删除硬件哈希表中的部分表项,以使得硬件哈希表还可以添加的表项的数量等于目标表项以及目标表项临建的表项的总数量,然后再将目标表项以及目标表项临近的表项添加至硬件哈希表中。其中,可以依据表项在硬件哈希中的时间,优先选择删除在硬件哈希表中存储时间较长的表项。
本申请实施例提供的数据操作的管理方法中,每一组关键字都唯一对应着一组值,从而可以在接收到数据操作类请求时,可以从配置在硬件处理模块中的硬件哈希表中查找与数据操作类请求中提取到的关键字对应值组。当从所述硬件哈希表中未查找到与关键字相对应的值组,则从存储更多表项的内存哈希表中查找出,并更新至所述硬件哈希表中,然后返回从硬件哈希表中查找与关键字对应的值组,以进行数据操作。并且,由于内存哈希表中的表项是由中央处理器计算得到并更新的,因此,本发明可以实现将所有的数据操作类请求,都在硬件中进行处理,不需要软件处理。从而将软件方式的灵活性也能够一致的反映到硬件处理中,因此在设计过程中不需要在软件处理方式的灵活性和硬件处理方式的高效性之间找到平衡,因此设计非常简便。
本申请另一实施例提供了另一种数据操作的管理方法,应用于硬件处理模块,如图4所示,该管理方法具体包括:
S401、接收操作请求,操作请求携带有操作类型标识。
需要说明的是,操作请求分为两类,一类是数据操作类请求,主要包括对数据的写入、读取、删除等操作;另一类为管理控制类请求,主要包括创建队列、删除队列,以及设置、管理命名空间等。由于,数据操作类请求由硬件处理模块处理,而管理控制类请求需要由中央处理器进行处理,所以需要通过操作类型标识区别操作请求。
S402、根据操作类型标识,判断操作请求是否为数据操作类请求。
需要说明的是,若判断出接收到的操作请求不是数据操作类请求,及判断出接收到的操作请求为管理控制类请求时,则执行步骤S403。若判断出接收到的操作请求为数据操作类请求,则执行步骤S404。
S403、将操作请求发送给中央处理器进行处理。
具体的,硬件处理模块在确定操作请求为管理控制类请求时,可以通过直接内存存取的方式,将操作请求传输至中央处理器的内存中。
S404、从操作请求中提取出关键字。
需要说明的是,在执行步骤S404提取到关键字后,执行步骤S405。
S405、从硬件处理模块中的硬件哈希表中查找与关键字对应的值组。
其中,值组中的值为物理存储空间的标识。
需要说明的是,步骤S405的具体实施方式可相应地参考上述方法实施例中的步骤S102,此处不再赘述。
S406、判断从硬件处理模块中的硬件哈希表中是否查找到与关键字对应的值组。
其中,若判断出硬件哈希表中查找到与关键字对应的值组,则执行步骤S407,若从硬件哈希表中未查找到与关键字对应的值组,则执行步骤S408。
S407、利用值组生成并输出数据操作信息,数据操作信息用于在值组对应的物理存储空间响应数据操作类请求相应的操作。
需要说明的是,步骤S407的具体实施方式可相应地参考上述方法实施例中的步骤S104,此处不再赘述。
S408、从内存哈希表中查找出与关键字相对应的值组。
需要说明的是,步骤S408的具体实施方式可相应地参考上述方法实施例中的步骤S105,此处不再赘述。
S409、判断从内存哈希表中是否查找到与关键字相对应的值组。
其中,若从内存哈希表中查找到与关键字相对应的值组,则执行步骤S410;若从内存哈希表中未查找到与关键字相对应的值组,则执行步骤S411。
S410、将从内存哈希表中查找到的与关键字对应的值组更新至硬件哈希表中。
需要说明的是,在执行步骤S410后,返回执行步骤S405。
S411、向中央处理器发送中断请求,中断请求用于触发中央处理器利用相应的映射算法计算得到关键字对应的值组,并将值组更新至内存哈希表中。
也就是说,中央处理器中相当于拥有关键字与值组的对应关系的全集。对于在硬件哈希表和内存哈希表中都查找不到的关键字的值组,都可以通过软件的方式计算得到。具体的,中央处理器计算得到关键字对应的值组,并生成包含关键字及其对应的值组的表项,然后将生成的表项更新至内存哈希表中。
需要说明的是,本申请实施例中,向中央处理器发送中断请求,以通过中断请求触发中央处理器利用相应的映射算法计算得到关键字对应的值组,并将值组更新至内存哈希表中,区别于现有技术中将请求发送给中央处理器进行处理。在本申请实施例中,中央处理器仅是计算得到关键字对应的值组,对于操作请求的处理还是由硬件处理模块进行处理,中央处理器起到的是辅助作用。而现有技术中,是直接将操作请求发送给中央处理器进行处理,硬件处理模块不再处理该操作请求。
同样,虽然内存哈希表所包含的表项比较多,但是所包含的表项也是有限的,所以当内存哈希表存储的表项已满时,需要将内存哈希表中存储最久的表项删除,以能将新生成的表项更新至内存哈希表中。
需要说明的是,中央处理器在将值组更新至内存哈希表中后,会向硬件处理模块发送更新信息,告知硬件处理模块已将关键字对应的值组更新到内存哈希表中。可以看出在本申请实施例中,内存哈希表始终处于被动的状态,硬件处理模块可以主动从内存哈希表中获取表项,对硬件哈希表进行更新。而中央处理器则可以主动将表项更新至内存哈希表中。
S412、接收中央处理器反馈的更新消息。
可选地,在本申请实施例中,在执行步骤S412后,可以返回执行步骤S408。当然,也可以是返回步骤S405再次执行,但是这样会多执行两个步骤,所以本申请实施例是在执行步骤S412后,直接返回执行步骤S408。
可选地,在本申请另一实施例中,在从内存哈希表中未查找到与关键字相对应的值组之后,还可以进一步执行:将本次的数据操作类请求置于等待状态,并处理其他数据操作类请求。
由于,中央处理器计算得到关键字对应的值组,并向将值组更新至内存哈希表的过程是需要时间的,所以为了加快请求的处理效率,此时硬件处理模型可以将本次的数据操作类请求置于等待状态,然后处理后续接收的数据操作类请求。
需要说明的是,在本申请实施例中,在接收到中央处理器反馈的更新后,并不是返回执行步骤S408。因为本轮的数据操作类请求已经被置于等待状态,所以需要再次调度该数据操作类请求。当再次调度本次的数据操作类请求时,则返回执行步骤S405,重新开始从硬件哈希表查找关键字对应的值组,而不是返回执行步骤S408。
可选地,本申请另一实施例中,所提供的数据操作的管理方法,还可以进一步包括:分别监测所述硬件哈希表中的各个表项在所述硬件哈希表中的时间。
其中,若硬件哈希表中的表项在硬件哈希表中的时间超过预设时间,则随机加载内存哈希表中一个表项替换硬件哈希表中的时间超过预设时间的表项。从而能保持硬件哈希表中的能持续不断地自动更新较新的表项。
本申请另一实施例提供了一种硬件处理模块,如图5所示,包括:
提取单元501,用于当接收到数据操作类请求时,从数据操作类请求中提取出关键字。
其中,关键字为逻辑存储空间的标识。
第一查找单元502,用于从硬件处理模块中的硬件哈希表中查找与关键字对应的值组。
其中,值组中的值为物理存储空间的标识。
生成单元503,用于当第一查找单元从硬件哈希表中查找到与关键字相对应的值组时,利用值组生成并输出数据操作信息。
其中,数据操作信息用于在值组对应的物理存储空间响应数据操作类请求相应的操作。
第二查找单元504,用于当第一查找单元从硬件哈希表中未查找到与关键字相对应的值组时,从内存哈希表中查找出与关键字相对应的值组,并更新至硬件哈希表中。
其中,内存哈希表中的表项的数量大于硬件哈希表中的表项的数量。内存哈希表中的表项由中央处理器计算得到并更新。
第一返回单元505,用于返回执行从硬件哈希表中查找与关键字对应的值组。
需要说明的是,本申请实施例中的上述单元的具体工作过程可相应地参考上述方法实施例中的步骤S101~步骤S105,此处不再赘述。
可选地,本申请另一实施例中,硬件处理模块还包括:
接收单元,用于接收操作请求。其中,操作请求携带有操作类型标识。
判断单元,用于根据操作类型标识,判断操作请求是否为数据操作类请求。
其中,当判断单元判断出操作请求为数据操作类请求时,提取单元执行从数据操作类请求中提取出关键字。
第一发送单元,用于当判断单元判断出若判断出操作请求不是数据操作类请求时,将操作请求发送给中央处理器进行处理。
需要说明的是,本申请实施例中的上述单元的具体工作过程可相应地参考上述方法实施例中的步骤S401~步骤S404,此处不再赘述。
可选地,本申请另一实施例中,第二查找单元504,如图6所示,具体包括:
第二查找子单元601,用于从内存哈希表中查找出包含有与关键字相对应的值组的目标表项。
第一更新单元602,用于将目标表项以及与目标表项临近的表项更新至硬件哈希表中。
需要说明的是,本申请实施例中的上述单元的具体工作过程可相应地参考上述方法实施例中的步骤S301~步骤S302,此处不再赘述。
可选地,本申请的另一实施例中,硬件处理模块还包括:
第二发送单元,用于在第二查找单元从内存哈希表中未查找到与关键字相对应的值组时,向中央处理器发送中断请求。
其中,中断请求用于触发中央处理器利用相应的映射算法计算得到关键字对应的值组,并将值组更新至内存哈希表中。
接收单元,用于接收中央处理器反馈的更新消息,并返回执行从内存哈希表中查找出与关键字相对应的值组,并更新至硬件哈希表中。
其中,中央处理器在将值组更新至内存哈希表后向硬件处理模块发送更新消息。
需要说明的是,本申请实施例中的上述单元的具体工作过程可相应地参考上述方法实施例中的步骤S411以及步骤S412,此处不再赘述。
可选地,本申请的另一实施例中,硬件处理模块还包括:
等待单元,用于当第一查找单元从内存哈希表中未查找到与关键字相对应的值组时,将数据操作类请求置于等待状态,并处理其他数据操作类请求。
第二返回单元,用于当再次调度数据操作类请求时,返回执行从硬件哈希表中查找与关键字对应的值组。
本申请实施例提供的硬件处理模块中,每一组关键字都唯一对应着一组值,从而可以在接收到数据操作类请求时,由第一查找单元可以从配置的硬件哈希表中查找与数据操作类请求中提取到的关键字对应值组。当从所述硬件哈希表中未查找到与关键字相对应的值组,则由第二查找单元从存储更多表项的内存哈希表中查找出,并更新至所述硬件哈希表中,然后第一返回单元返回从硬件哈希表中查找与关键字对应的值组,并根据查找到的值组生成并输出操作信息,以进行数据操作。并且,由于内存哈希表中的表项是由中央处理器计算得到并更新的,因此,本发明可以实现将所有的数据操作类请求,都在硬件中进行处理,不需要软件处理。从而将软件方式的灵活性也能够一致的反映到硬件处理中,因此在设计过程中不需要在软件处理方式的灵活性和硬件处理方式的高效性之间找到平衡,因此设计非常简便。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种数据操作的管理方法,其特征在于,应用于硬件处理模块,所述方法包括:
当接收到数据操作类请求时,从所述数据操作类请求中提取出关键字;其中,所述关键字为逻辑存储空间的标识;
从所述硬件处理模块中的硬件哈希表中查找与所述关键字对应的值组;其中,所述值组中的各个值为物理存储空间的标识;
若从所述硬件哈希表中查找到与所述关键字相对应的值组,则利用所述值组生成并输出数据操作信息;其中,所述数据操作信息用于在所述值组对应的物理存储空间响应所述数据操作类请求所请求的操作;
若从所述硬件哈希表中未查找到与所述关键字相对应的值组,则从内存哈希表中查找出与所述关键字相对应的值组,并更新至所述硬件哈希表中;其中,所述内存哈希表中的表项的数量大于所述硬件哈希表中的表项的数量;所述内存哈希表中的表项由中央处理器计算得到及更新;
返回执行所述从硬件哈希表中查找与所述关键字对应的值组。
2.根据权利要求1所述的方法,其特征在于,所述从所述操作类请求中提取出关键字之前,还包括:
接收操作请求;其中,所述操作请求携带有操作类型标识;
根据所述操作类型标识,判断所述操作请求是否为数据操作类请求;
若判断出所述操作请求为数据操作类请求,则执行所述从所述数据操作类请求中提取出关键字;
若判断出所述操作请求不是数据操作类请求,则将所述操作请求发送给中央处理器进行处理。
3.根据权利要求1所述的方法,其特征在于,所述从内存哈希表中查找出与所述关键字相对应的值组,并更新至所述硬件哈希表中,包括:
从所述内存哈希表中查找出包含有与所述关键字相对应的值组的目标表项;
将所述目标表项以及与所述目标表项临近的表项更新至所述硬件哈希表中。
4.根据权利要求1所述的方法,其特征在于,还包括:
若从所述内存哈希表中未查找到与所述关键字相对应的值组,则向中央处理器发送中断请求;其中,所述中断请求用于触发所述中央处理器利用相应的映射算法计算得到所述关键字对应的值组,并将所述值组更新至所述内存哈希表中;
接收所述中央处理器反馈的更新消息,并返回执行所述从内存哈希表中查找出与所述关键字相对应的值组,并更新至所述硬件哈希表中;其中,所述中央处理器在将所述值组更新至所述内存哈希表后,向所述硬件处理模块发送所述更新消息。
5.根据权利要求1所述的方法,其特征在于,所述从硬件哈希表中查找与所述关键字对应的值组之后,还包括:
若从所述硬件哈希表中未查找到与所述关键字相对应的值组,则将所述数据操作类请求置于等待状态,并处理其他数据操作类请求;
当再次调度所述数据操作类请求时,返回执行所述从所述硬件哈希表中查找与所述关键字对应的值组。
6.一种硬件处理模块,其特征在于,包括:
提取单元,用于当接收到数据操作类请求时,从所述数据操作类请求中提取出关键字;其中,所述关键字为逻辑存储空间的标识;
第一查找单元,用于从所述硬件处理模块中的硬件哈希表中查找与所述关键字对应的值组;其中,所述值组中的各个值为物理存储空间的标识;
生成单元,用于当所述第一查找单元从所述硬件哈希表中查找到与所述关键字相对应的值组时,利用所述值组生成并输出数据操作信息;其中,所述数据操作信息用于在所述值组对应的物理存储空间响应所述数据操作类请求所请求的操作;
第二查找单元,用于当所述第一查找单元从所述硬件哈希表中未查找到与所述关键字相对应的值组时,从内存哈希表中查找出与所述关键字相对应的值组,并更新至所述硬件哈希表中;其中,所述内存哈希表中的表项的数量大于所述硬件哈希表中的表项的数量;所述内存哈希表中的表项由中央处理器计算得到及更新;
第一返回单元,用于返回执行所述从硬件哈希表中查找与所述关键字对应的值组。
7.根据权利要求6所述的硬件处理模块,其特征在于,还包括:
接收单元,用于接收操作请求;其中,所述操作请求携带有操作类型标识;
判断单元,用于根据所述操作类型标识,判断所述操作请求是否为数据操作类请求;
其中,当所述判断单元判断出所述操作请求为数据操作类请求时,所述提取单元执行所述从所述数据操作类请求中提取出关键字;
第一发送单元,用于当所述判断单元判断出若判断出所述操作请求不是数据操作类请求时,将所述操作请求发送给中央处理器进行处理。
8.根据权利要求6所述的硬件处理模块,其特征在于,第二查找单元,包括:
第二查找子单元,用于从所述内存哈希表中查找出包含有与所述关键字相对应的值组的目标表项;
第一更新单元,用于将所述目标表项以及与所述目标表项临近的表项更新至所述硬件哈希表中。
9.根据权利要求6所述的硬件处理模块,其特征在于,还包括:
第二发送单元,用于在所述第二查找单元从所述内存哈希表中未查找到与所述关键字相对应的值组时,向中央处理器发送中断请求;其中,所述中断请求用于触发所述中央处理器利用相应的映射算法计算得到所述关键字对应的值组,并将所述值组更新至所述内存哈希表中;
接收单元,用于接收所述中央处理器反馈的更新消息,并返回执行所述从内存哈希表中查找出与所述关键字相对应的值组,并更新至所述硬件哈希表中;其中,所述中央处理器在将所述值组更新至所述内存哈希表后,向所述硬件处理模块发送所述更新消息。
10.根据权利要求6所述的硬件处理模块,其特征在于,还包括:
等待单元,用于当所述第一查找单元从所述内存哈希表中未查找到与所述关键字相对应的值组时,将所述数据操作类请求置于等待状态,并处理其他数据操作类请求;
第二返回单元,用于当再次调度所述数据操作类请求时,返回执行所述从所述硬件哈希表中查找与所述关键字对应的值组。
CN202010208075.4A 2020-03-23 2020-03-23 数据操作的管理方法及硬件处理模块 Pending CN111309772A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010208075.4A CN111309772A (zh) 2020-03-23 2020-03-23 数据操作的管理方法及硬件处理模块

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010208075.4A CN111309772A (zh) 2020-03-23 2020-03-23 数据操作的管理方法及硬件处理模块

Publications (1)

Publication Number Publication Date
CN111309772A true CN111309772A (zh) 2020-06-19

Family

ID=71162416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010208075.4A Pending CN111309772A (zh) 2020-03-23 2020-03-23 数据操作的管理方法及硬件处理模块

Country Status (1)

Country Link
CN (1) CN111309772A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197754A (zh) * 2007-12-27 2008-06-11 腾讯科技(深圳)有限公司 分布式系统、分布式业务处理方法及相关装置
CN102779180A (zh) * 2012-06-29 2012-11-14 华为技术有限公司 数据存储系统的操作处理方法,数据存储系统
US20120304159A1 (en) * 2011-05-27 2012-11-29 Luis Ceze Hardware support for hashtables in dynamic languages
CN103581024A (zh) * 2013-11-21 2014-02-12 盛科网络(苏州)有限公司 Mac地址硬件与软件相结合的学习方法及装置
CN106033420A (zh) * 2015-03-11 2016-10-19 杭州华三通信技术有限公司 哈希表的处理方法及装置
CN109582598A (zh) * 2018-12-13 2019-04-05 武汉中元华电软件有限公司 一种基于外部存储实现高效查找哈希表的预处理方法
CN110211617A (zh) * 2019-05-17 2019-09-06 中国科学院计算技术研究所 一种哈希硬件处理装置及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197754A (zh) * 2007-12-27 2008-06-11 腾讯科技(深圳)有限公司 分布式系统、分布式业务处理方法及相关装置
US20120304159A1 (en) * 2011-05-27 2012-11-29 Luis Ceze Hardware support for hashtables in dynamic languages
CN102779180A (zh) * 2012-06-29 2012-11-14 华为技术有限公司 数据存储系统的操作处理方法,数据存储系统
CN103581024A (zh) * 2013-11-21 2014-02-12 盛科网络(苏州)有限公司 Mac地址硬件与软件相结合的学习方法及装置
CN106033420A (zh) * 2015-03-11 2016-10-19 杭州华三通信技术有限公司 哈希表的处理方法及装置
CN109582598A (zh) * 2018-12-13 2019-04-05 武汉中元华电软件有限公司 一种基于外部存储实现高效查找哈希表的预处理方法
CN110211617A (zh) * 2019-05-17 2019-09-06 中国科学院计算技术研究所 一种哈希硬件处理装置及方法

Similar Documents

Publication Publication Date Title
CN111226205B (zh) Kvs树数据库
TWI719281B (zh) 用於串流選擇之系統、機器可讀媒體、及機器實施之方法
JP6356675B2 (ja) 集約/グループ化動作:ハッシュテーブル法のハードウェア実装
CN106294190B (zh) 一种存储空间管理方法及装置
CN102479207B (zh) 一种信息搜索的方法、系统及信息搜索设备
US7769792B1 (en) Low overhead thread synchronization system and method for garbage collecting stale data in a document repository without interrupting concurrent querying
EP2541423B1 (en) Replacement policy for resource container
US7634517B1 (en) System and method for dynamically updating a document repository without interrupting concurrent querying
WO2021253688A1 (zh) 数据同步方法及装置、数据查询方法及装置
CN113906407A (zh) 用于数据库变化流的缓存技术
CN114546295B (zh) 一种基于zns固态硬盘的智能写分配方法和装置
CN111752945B (zh) 一种基于容器和层次模型的时序数据库数据交互方法和系统
CN111913917A (zh) 一种文件处理方法、装置、设备和介质
US10747773B2 (en) Database management system, computer, and database management method
CN114924999A (zh) 一种高速缓存管理方法、装置、系统、设备及介质
US10558636B2 (en) Index page with latch-free access
US8566342B2 (en) In-memory data optimization system
CN116783588A (zh) 用于大元数据管理的列技术
CN117271162A (zh) 一种请求处理方法、装置、设备和存储介质
CN111309772A (zh) 数据操作的管理方法及硬件处理模块
CN114625780A (zh) 一种时序数据库
CN109492020A (zh) 一种数据缓存方法、装置、电子设备及存储介质
Deng et al. Spatial-keyword skyline publish/subscribe query processing over distributed sliding window streaming data
CN114063931A (zh) 一种基于大数据的数据存储方法
CN112702426A (zh) 数据包转发方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20200619

RJ01 Rejection of invention patent application after publication