一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

句柄标识解析缓存方法、查询方法及句柄标识解析系统与流程

2022-02-20 19:09:44 来源:中国专利 TAG:
句柄标识解析缓存方法、查询方法及句柄标识解析系统与流程

技术领域

本发明涉及网络通信技术领域,具体地,涉及到一种句柄标识解析缓存方法,句柄标识解析查询方法及句柄标识解析系统。

背景技术

1994年,世界互联网之父、TCP/IP协议共同发明人罗伯特卡恩发明了句柄(handle)标识解析系统。句柄标识解析系统是一种(K,V)类型的分布式数据库系统,以句柄标识字符串(包括前缀,全标识,二级节点标识,企业节点标识等)作为关键字值(key,K),对其进行解析后,得到一组句柄值(Value,V)。接着,能够以句柄值中的索引值(index)、类型值(type)作为单独的二级key,依次查询索引值(index)、类型值(type),从而在检索到的句柄值中继续查询特定目标的句柄值,在最终确定句柄值后访问与该句柄值对应的数据。

为了实现高性能的标识解析系统,在现有技术中通常会匹配高速的缓存系统来对数据进行缓存。在高速缓存系统中通过以上方式查询一个句柄标识的解析结果时,即使在句柄值中的索引值只有一个条件值且类型值也只有一个条件值的情况下,也至少需要进行三次分别对句柄标识字符串、索引值、类型值对应结果的查询,才能获得特定目标值。在索引值和类型值有多个条件值时,则查询次数会更多。这种需要多次查询才能定位到最终句柄标识解析结果的方式效率较低,查询缓存的时延较长。

因此,亟待一种技术方案能够减少句柄标识解析结果的缓存查询次数,提高缓存效率,降低查询缓存时延,以达到提高整个系统业务处理的每秒查询率(qps)的效果。



技术实现要素:

针对以上问题,本发明提供了一种句柄标识解析缓存方法、查询方法以及相应的句柄标识解析系统,能够有效地减少句柄标识解析结果的缓存查询次数。

本发明提供的句柄标识解析缓存方法,具体包括:步骤S1,将句柄标识字符串、索引值和类型值排列形成的字符串作为关键字值,计算关键字值对应的哈希地址,从而建立哈希表;步骤S2,将句柄标识解析结果缓存到所述哈希地址对应的存储单元中。

根据上述技术方案,以句柄标识字符串、索引值、类型值排列形成的字符串作为关键字值(key)进行哈希查询,这样的查询方式只需要一次哈希查询就能精准地获得与关键字值对应的哈希地址,大大减少了查询的次数,提高了查询缓存的效率和精准度。

在本发明的较优技术方案中,关键字值中的索引值为多个索引值排序形成的索引列表中的索引列表值;关键字值中的类型值为多个类型值排序形成的类型列表中的类型列表值。

根据上述技术方案,对索引值和类型值进行转换处理,采用排序后分配列表值的方式,对于相同的索引列表值、类型列表值,即使输入时顺序不同,通过排序仍能够在哈希表中对应于唯一的关键字值。

本发明还提供了一种句柄标识解析查询方法,包括:步骤S3,将句柄标识字符串、索引值和类型值排列形成的字符串作为关键字值,查询哈希表中与所述关键字值对应的哈希地址;步骤S4,从哈希地址对应的存储单元中读取句柄标识解析结果。

根据上述技术方案,以句柄标识字符串、索引值、类型值排列形成的字符串作为关键字值(key)进行哈希查询,这样的查询方式只需要一次哈希查询就能精准地获得句柄标识解析结果所在的哈希地址,大大减少了查询的次数,提高了查询缓存的效率和精准度。

在本发明的较优技术方案中,句柄标识解析查询方法还包括:步骤S5,根据生存时间值判断句柄标识解析结果是否过期:若过期,则删除句柄标识解析结果,并返回空值;若未过期,则返回句柄标识解析结果。根据上述较优技术方案,该句柄标识解析查询方法能够有效分辨过期数据,保证数据的时效性。

本发明提供的句柄标识解析系统包括:处理器;提供有缓存空间且与处理器通信连接的存储器;存储器中还存储有哈希表,哈希表经由处理器读取和执行,能够将关键字值转换为对应的哈希地址,其中,关键字值配置为句柄标识字符串、索引值和类型值排列形成的字符串,哈希地址配置为句柄标识解析结果在缓存空间中存储的地址。

附图说明

图1是本发明的一个实施方式中提供的句柄标识解析系统的总体结构图;

图2是图1实施方式中句柄标识解析的总体处理流程图;

图3是图1实施方式中句柄标识解析缓存的流程图;

图4是图1实施方式中句柄标识解析查询的流程图;

图5是图1实施方式中提供的一种句柄标识解析系统的结构示意图。

附图标记:1-安全策略子系统,2-tcp/http(s)子系统,3-缓存系统,4-递归转发子系统,5-递归服务器,6-缓存自检子系统,7-业务管理子系统,8-日志子系统,9-哈希表,10-存储器,101、102-存储单元,11-处理器。

具体实施方式

下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明的保护范围。

【系统架构】

本实施方式中,句柄标识解析系统的总体结构如图1所示。优选地,该句柄标识解析系统包括安全策略子系统1、tcp/http(s)子系统2、缓存系统3、递归转发子系统4、缓冲自检子系统6、业务管理子系统7以及日志子系统8。其中,安全策略子系统1用以判断句柄标识解析请求/应答及请求/应答用户身份等信息的安全性。判断结果为无安全性问题的信息才能通过安全策略子系统1,从而进行下一步的传送或解析。安全策略子系统1与业务管理子系统7、日志子系统8之间分别存在信息交互,安全策略子系统1能够将日期、时间、使用者等信息存入日志子系统8,以备之后调用和查询。

tcp/http(s)子系统2用以将从安全策略子系统1中传送过来的信息在进行tcp/http(s)协议转换之后传送到缓存系统3和递归转发子系统4中,另外tcp/http(s)子系统2也能够将后端返回信息传送给安全策略子系统1。tcp/http(s)子系统2与业务管理子系统7之间存在信息交互,而且tcp/http(s)子系统2能够将日期、时间、解析动作等信息存入日志子系统8以备之后调用和查询。

在对查询请求进行应答之后,应答结果可以被缓存在缓存系统3中,从而在下次接收到基本相同的查询请求时直接进行应答,可以提高应答速度。缓存系统3一方面与业务管理子系统7以及tcp/http(s)子系统2通信连接,从而便于在缓存系统3中查询调取需要的信息。另一方面,缓存系统3与缓存自检子系统6存在信息交互,从而及时利用递归查询获得的新的条目,对缓存系统3中的内容进行更新。

递归转发子系统4能够将tcp/http(s)子系统2中传来的信息递归转发到外部的递归服务器5,并且能够将递归服务器5返回的信息传送给缓存自检子系统6以供其查询判断。

递归服务器5可以位于系统外部,用于本地无缓存结果时的递归查询,即接收到递归转发子系统4传来的查询请求后进行递归查询,若无应答信息,则将查询请求递归到下一级递归服务器5,直到某个递归服务器5传送回相应的应答信息,再将相应的应答信息传送回递归转发子系统4。递归服务器5与业务管理子系统7之间存在信息交互,而且递归服务器5会将递归查询相应产生的、包含服务器名称等内容的递归查询日志存入日志子系统8以备之后调用和查询。

缓存自检子系统6,用于接收递归转发子系统4传来的递归查询的应答结果,判断该应答结果是否需要被缓存在缓存系统3中。在一些实施方式中,若缓存系统3中未缓存相应的应答结果或者相应条目数据已经过期,并且应答结果满足预先规定的条件,则可以将应答结果缓存到缓存系统3中。若缓存系统3中已缓存相应的应答结果或者该应答结果不满足预先规定的条件,则返回递归查询得到的应答结果而不进行缓存系统3的更新。

业务管理子系统7与以上安全策略子系统1、tcp/http(s)子系统2、缓存系统3、递归服务器5及缓存自检子系统6均有信息交互,以便业务管理子系统7对整个句柄标识解析系统中的每个流程系统地管理和监控。

日志子系统8与以上安全策略子系统1、tcp/http(s)子系统2及递归服务器5等均有信息交互,用于记录和存储安全策略子系统1、tcp/http(s)子系统2及递归服务器5等的日期、时间、动作等系统日志信息。

【处理流程】

进一步地,本实施方式中句柄标识解析系统的总体处理流程如图2所示。

句柄标识解析系统开始运行,首先进行系统配置初始化,若系统配置初始化失败,则退出解析;若系统配置初始化成功,则继续进行解析。系统配置初始化成功后,进行日志初始化,若日志初始化失败,则退出解析;若日志初始化成功,则继续进行解析。日志初始化成功后,进行缓存初始化,若缓存初始化失败,则退出解析;若缓存初始化成功,则继续进行解析。缓存初始化成功后,进行日志统计初始化,若日志统计初始化失败,则退出解析;若日志统计初始化成功,则继续进行解析。上述初始化步骤是把变量赋为默认值,把控件设为默认状态的过程,从而保证系统的正常运行。

上述初始化步骤均成功完成后,系统开始监听请求信息,监听的信息类型分为tcpListen,http(s)Listen和realConfListen等。其中,tcp为传输层数据与连接方式的规范,不携带数据,仅用于连接通信;http(s)为超文本传输安全协议,http(s)必须建立在tcp连接的基础上,定义传输内容规范,并且传输数据;realConf为配置信息命令,用于配置的增加、删除和修改等。而Listen指令的作用为指定服务器在哪些端口或地址和端口的组合上监听接入请求。

当系统监听到来自特定的端口或者地址的请求信息时,即接收到外界信息触发时,系统能够判断外部事件类型。

当外部事件类型为基于tcp的句柄标识解析查询请求时,首先tcp/http(s)子系统2中的tcp子系统进行tcp服务收包和解包,接下来进行策略检查,在此所说的策略检查是指基于接收到的关键字值(key),代入特定函数后是否能够得到对应的哈希地址。若策略检查失败,即在哈希表中没有查找到关键字值所对应的哈希地址,则解析终止并将策略检查失败的结果返回给用户;若策略检查成功,即在哈希表中查找到了关键字值所对应的哈希地址,在缓存系统3的缓存数据库中寻找哈希地址对应的存储单元。若在缓存数据库内哈希地址对应的存储单元中缓存有对应的句柄标识解析结果,则将句柄标识解析结果返回给用户;若在缓存数据库内哈希地址对应的存储单元中没有缓存对应的句柄标识解析结果或者对应的句柄标识解析结果已经过期,则继续进行递归查询。递归服务器经过一次或多次递归查询得到句柄标识解析结果,则返回句柄标识解析结果给用户,并将句柄标识解析结果发送到缓存自检子系统6。缓存自检子系统6判断是否需要缓存该句柄标识解析结果,若缓存数据库中没有缓存该句柄标识解析结果,则将其缓存到缓存数据库中。

当外部事件类型为http(s)时,使用tcp/http(s)子系统2中的http(s)子系统进行http(s)服务收包和解包,其他处理方式与外部事件类型为tcp时类似,此处不再赘述。

当外部事件类型为realConf时,crm命令下发。根据crm命令的具体内容,能够实现对哈希表和缓存数据库内信息对应地增加、删除和修改等操作。

【句柄标识字符串、句柄值】

哈希表是根据(Key,Value)而直接进行访问的数据结构。也就是说,它通过哈希函数计算的方式,把关键字值(key)映射到表中一个哈希地址来访问记录,以加快查找的速度。现有技术的句柄标识解析系统中,建立哈希表时所使用的关键字值仅为句柄标识字符串,句柄标识字符串包括前缀和后缀,其中,前缀包括顶级国家节点标识、二级节点标识、企业节点标识。例如以下字符串,

10.1045.xxx/january99-bearman

其中,10,代表顶级国家节点标识;1045,代表二级节点标识;xxx,代表企业节点标识;“.”为层级分隔符,分隔各级节点标识;“/”为前后缀分隔符,“/”之前的部分为前缀,“/”之后的部分为后缀;句柄标识字符串中不包括“.”和“/”。

在现有技术中,根据句柄标识字符串解析得到的一组句柄值的形式如下所示:

以上仅示意性地显示出了一栏数据中一种类型值(type)的解析结果。一组句柄值实际可以包含多栏数据,每栏数据采用一个索引值(index)进行标引,以将本栏数据与其他栏数据区别开。每栏数据中还可以包含不同类型值的数据。其中,

索引值(index),4字节无符号整型;

类型值(type),一个UTF8字符串;

数据(data),用于描述句柄标识的数据资源;

生存时间(TTL),表示数据在缓存空间内保留的时间;

权限掩码(permission),8位权限掩码,用于句柄的访问权限控制;

引用数(reference),表示对其他句柄的引用。

其中,类型值(type)具体包含

管理员(HS_ADMIN),表示句柄解析服务的一个或一组管理员;

服务站点(HS_SITE),表示提供句柄解析服务的服务站点;

命名授权代理服务(HS_NA_DELEGATE),用于将命名管理权限分配到服务站点;

服务(HS_SERV),表示句柄解析服务内容;

别名(HS_ALIAS),句柄标识对象有多个名称的情况下,能够用别名表示;

主站点(HS_PRIMARY),指定主要服务站点;

列表值(HS_VLIST),表示对其他句柄列表值的引用。

句柄标识必须在其type字段中指定一种类型值。类型值(type)不仅仅包括上述几种类型,句柄系统还提供了类型注册服务,该服务使用户或组织可以为其应用程序注册新的类型值。

通过以上数据结构可知,若采用现有技术中的查询方式,为了准确定位到特定的句柄标识解析结果,除了上述哈希表的映射过程,还需要使用索引值和类型值,在一组句柄值中进一步查询,方可得到特定的句柄标识解析结果。

【缓存方法】

本实施方式提供了一种句柄标识解析缓存方法,包括以下步骤,如图3所示:

步骤S1,将句柄标识字符串、索引值和类型值排列形成的字符串作为关键字值,计算关键字值对应的哈希地址,从而建立哈希表;

步骤S2,将句柄标识解析结果缓存到哈希地址对应的存储单元中。

在本实施方式中,由于建立哈希表时就已经使用了索引值和类型值作为关键字值的一部分,基于该编码方式的关键字值建立的哈希表可以直接解析出特定的句柄标识解析结果,而不需要进行多次查询。上述缓存方法大大方便了后续查询过程,减少了后续查询所需要的次数,提高了查询的效率和精准度。

优选地,在本实施方式提出的句柄标识解析缓存方法中,索引值和类型值均是通过排序之后的列表值。换言之,关键字值中的索引值为多个索引值排序形成的索引列表中的索引列表值;关键字值中的类型值为多个类型值排序形成的类型列表中的类型列表值。

举例而言,对于类型值,可以根据预先设定的规则,将可用的类型值排序后形成类型列表,并且为每种类型值赋予类型列表值。可用的类型值不仅包括之前列举的常见的类型值,也可以包含用户自定义的类型值,只要及时将其加入类型列表中并赋予相应的列表值即可适用查询功能。举例来说,类型值与类型列表值的对应关系可以参见下述表1.

表1

赋予类型列表值的排序规则可以是有序的,例如采用名称的字母排序、类型排序或者其他任何合适的排序方式及其组合实现,也可以是无序的,只要类型值与类型列表值是一一对应的即可。对于索引值,也可以采用与上述方式相同的或者相似的方式实现,此处不再赘述。

通过以上方式,将索引值和类型值分别按照一定规则进行排序,得到索引列表值和类型列表值;再将句柄标识字符串与索引列表值和类型列表值整合到一起,组成关键字值。

举例来说,若句柄标识字符串为10.1045.xxx/january99-bearman,索引值为2,类型值为HS_ADMIN,则在组成关键字值时,对索引值对应的索引列表值以及类型值对应的类型列表值进行查询。通过查询上述类型列表,可知HS_ADMIN的类型值对应的类型列表值为1,同理,查询索引值2对应的索引列表值为2。因此,若采用句柄标识字符串 indexList(索引列表值) typeList(类型列表值)的方式编码关键字值,则关键字值应当为10.1045.xxx/january99-bearman 2 1。

采用排序后分配列表值的方式,可以使得,对于相同的索引列表值、类型列表值,即使输入时顺序不同,通过排序仍能够在哈希表中对应于唯一的关键字值。当然,在一些实施方式中,也可以直接将索引值或者类型值与句柄标识字符串排列后构成关键字值,来建立或者查询哈希表。此外,在另一些实施方式中,关键字值也可以允许一定的合理变形,只要其包含索引值、类型值、句柄标识字符串的信息即可。

在确定了关键字值之后,能够利用哈希函数确定与该关键字值对应的哈希地址,利用哈希函数的计算过程能够将关键字值直接映射到对应于句柄标识解析结果的哈希地址,避免多次哈希查找造成的资源浪费。

【查询方法】

本实施方式提出的句柄标识解析缓存查询流程如图4所示。

首先,执行步骤S3,将句柄标识字符串、索引值和类型值排列形成的字符串作为关键字值,查询哈希表中与所述关键字值对应的哈希地址。

本实施方式中,步骤S3进一步包括,调用查询程序(例如是hhdl_cache_get程序)查询关键字值,并且由关键字值计算得到对应的哈希地址的步骤。

接着,在步骤S3之后,执行步骤S4,从哈希地址对应的存储单元中读取句柄标识解析结果。

具体而言,根据哈希地址,在缓存系统3的缓存数据库中查询该哈希地址对应的存储单元中是否缓存了对应的句柄标识解析结果。若存有对应的句柄标识解析结果,则读取该句柄标识解析结果。若该哈希地址对应的存储单元中未缓存有对应的句柄标识解析结果,则向用户返回空值(NULL)。

在执行步骤S4之后,还包括:步骤S5,根据生存时间值判断该哈希地址对应的句柄标识解析结果是否过期:若过期,则删除该句柄标识解析结果,并返回空值;若未过期,则返回该句柄标识解析结果。

具体而言,在步骤S5中,若该哈希地址对应的存储单元中缓存有对应的句柄标识解析结果,则根据句柄标识解析结果对应的生存时间值(TTL),检验该句柄标识解析结果是否已经过期。若该句柄标识解析结果已经过期,则向用户返回空值(NULL);若该句柄标识解析结果未过期,则向用户返回对应的句柄标识解析结果。

另外地,在执行步骤S3时,若将句柄标识字符串、索引值和类型值排列形成的字符串作为关键字值,查询哈希表,但未查询到所述关键字值对应的哈希地址时,可以根据句柄标识字符串查找到对应的一组句柄值,再使用索引值和类型值,在一组句柄值中进一步查询,以获得特定的句柄标识解析结果

【句柄标识解析系统】

另外,本实施方式提出了一种句柄标识解析系统,其结构如图5所示,具体包括处理器11以及与处理器11通信连接,至少部分用于提供缓存空间的存储器10。存储器10中存储有哈希表9,哈希表9经由所述处理器11读取和执行,能够将关键字值转换为对应的哈希地址。其中,关键字值配置为句柄标识字符串、索引值和类型值排列形成的字符串,哈希地址配置为句柄标识解析结果在缓存系统3中存储的地址。存储器10的缓存系统3包含多个与哈希地址对应的存储单元101、102,用于缓存句柄标识解析结果。

在哈希表9中,可以由关键字值计算出对应的哈希地址,将句柄标识解析结果缓存在缓存系统3的缓存数据库中该哈希地址对应的存储单元101、102中或者到哈希地址对应的存储单元101、102中读取相应的句柄标识解析结果。

综上所述,以上述方式缓存和查询句柄标识解析结果,在查询时能够用关键字值计算出对应的哈希地址,以哈希地址直接查询到对应的句柄标识解析结果。只需要一次哈希查询即可实现原本需要三次以上哈希查询方可达到的效果,有效地减少了句柄标识解析结果的缓存查询次数,降低了查询缓存时延,从而提高了整个系统业务处理的每秒查询率。

在本发明的实施方式中,存储器10和处理器11可以处于同一存储介质如DNS服务器、计算机存储介质等中,也可以分设与不同的硬件、软件或云端网络之中,换言之,上述的句柄标识解析系统可以由一个独立的DNS服务器、计算机等设备组成,也可以由多个硬件、软件、硬件软件以云端网络等一种或多种组合而成。

另外,需要说明的是,存储器10可包含非易失性存储器,例如只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、快闪存储器(FLASH)或能够在有或者没有应用电力的情况下存储程序指令或数据的任何其他装置。存储器10还可包括易失性存储器,例如随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM),还可使用其他类型的RAM来实现存储器10。存储器10可使用单个存储器模块或多个存储器模块来实现。虽然存储器10被描绘为与处理器11本地互连,但本领域的技术人员将认识到,在不偏离主题技术的范围的情况下存储器10可与处理器11分离地设置在不同的计算机中。

处理器11可以是通用处理器、处理器核心、多处理器、可重配置处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、状态机、门控逻辑、离散硬件部件或者任何其他处理单元以及上述一个或多个处理器的组合。

以上所述仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的原则和精神之内所作的任何修改、等同替换和改进等,均就包含在本发明的保护范围之内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献