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

一种基于哈希表的路由管理方法及系统与流程

2022-02-22 07:58:38 来源:中国专利 TAG:


1.本发明涉及数据路由技术领域,尤其是涉及一种基于哈希表的路由管理方法及系统。


背景技术:

2.电信运营系统随着现代业务的发展和云化架构的推广,单一系统越来越少,多采用分布式系统,将系统分多个模块在多个主机上部署,这种部署方法在实际落实过程中出现了一些数据路由问题,往往需要根据业务属性将数据路由到指定的主机和系统中。
3.随着业务量的增加,对数据路由的性能和精确度要求越来越高,亟需提高数据存取和路由寻址性能,进而保障系统的快速正常运行。


技术实现要素:

4.针对上述问题,本发明提供了一种基于哈希表的路由管理方法及系统,对应用系统中的数据提供高性能的缓存存储和路由寻址,保障系统的路由性能。
5.为实现上述目的,本发明提供了一种基于哈希表的路由管理方法及系统,包括:
6.定义共享内存的路由数据结构;
7.根据散列算法将需要路由查找的数据存储到所述共享内存中,数据包括hashid和路由模块值;
8.路由寻址时根据散列算法计算所述数据路由索引的hashid;
9.将hashid作为路由缓存数组的下标得到所述数据在共享内存的位置;
10.读取所述位置的路由模块值。
11.作为本发明的进一步改进,所述定义共享内存的路由数据结构;包括:
12.记录起始数据位置、空闲内存起始地址、内存区末尾地址、共享内存数据总量、共享内存初始化时间、扩展时间和路由模块值。
13.作为本发明的进一步改进,所述根据散列算法将需要路由查找的数据存储到所述共享内存中;包括:
14.通过散列算法计算所述数据用于路由索引的hashid;
15.将所述hashid作为路由缓存数组的下标,获取所述数据在所述共享内存中的位置;
16.若所述位置为初始值0,则所述数据在所述共享内存中不存在,将所述数据添加到所述共享内存中的所述空闲内存起始地址处。
17.作为本发明的进一步改进,若所述位置大于0,则所述数据在所述共享内存中已存在,则将所述数据作为修改数据覆盖该所述位置的原数据。
18.作为本发明的进一步改进,当得到所述数据在共享内存的位置,需对所述位置进行判断;
19.若所述位置为初始值0,则共享内存中不存在所述数据,路由寻址失败;
20.若所述位置大于0,则所述共享内存中存在所述数据,路由寻址成功。
21.本发明还提供了一种基于哈希表的路由管理系统,包括:数据结构模块、数据存储模块、路由寻址模块和数据获取模块;
22.所述数据结构定义模块,用于:
23.定义共享内存的路由数据结构;
24.所述数据存储模块,用于:
25.根据散列算法将需要路由查找的数据存储到所述共享内存中,数据包括hashid和路由模块值;
26.所述路由寻址模块,用于:
27.路由寻址时根据散列算法计算所述数据路由索引的hashid;
28.将hashid作为路由缓存数组的下标得到所述数据在共享内存的位置;
29.所述数据获取模块,用于:
30.读取所述位置的路由模块值。
31.作为本发明的进一步改进,所述定义共享内存的路由数据结构;包括:
32.记录起始数据位置、空闲内存起始地址、内存区末尾地址、共享内存数据总量、共享内存初始化时间、扩展时间和路由模块值。
33.作为本发明的进一步改进,所述根据散列算法将需要路由查找的数据存储到所述共享内存中;包括:
34.通过散列算法计算所述数据用于路由索引的hashid;
35.将所述hashid作为路由缓存数组的下标,获取所述数据在所述共享内存中的位置;
36.若所述位置为初始值0,则所述数据在所述共享内存中不存在,将所述数据添加到所述共享内存中的所述空闲内存起始地址处。
37.作为本发明的进一步改进,若所述位置大于0,则所述数据在所述共享内存中已存在,则将所述数据作为修改数据覆盖该所述位置的原数据。
38.作为本发明的进一步改进,当得到所述数据在共享内存的位置,需对所述位置进行判断;
39.若所述位置为初始值0,则共享内存中不存在所述数据,路由寻址失败;
40.若所述位置大于0,则所述共享内存中存在所述数据,路由寻址成功。
41.与现有技术相比,本发明的有益效果为:
42.本发明采用静态共享内存作为存储,使得数据的存储都是通过静态共享内存实现,无需动态分配存储,提高了数据存储及路由寻址的效率,节省了数据存储及寻址的时间。
附图说明
43.图1为本发明一种实施例公开的基于哈希表的路由管理方法流程图;
44.图2为本发明一种实施例公开的基于哈希表的路由管理系统示意图;
45.图3为本发明一种实施例公开的共享内存中数据存储流程图。
具体实施方式
46.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
47.下面结合附图对本发明做进一步的详细描述:
48.如图1所示,本发明提供的一种基于哈希表的路由管理方法,包括:
49.s1、定义共享内存的路由数据结构;
50.其中,包括:
51.记录起始数据位置、空闲内存起始地址、内存区末尾地址、共享内存数据总量、共享内存初始化时间、扩展时间和路由模块值。
52.数据结构定义过程示例如下:
[0053][0054]
s2、根据散列算法将需要路由查找的数据存储到共享内存中,数据包括hashid和路由模块值;
[0055]
其中,包括:
[0056]
通过散列算法计算数据用于路由索引的hashid;
[0057]
将hashid作为路由缓存(route_cache)数组的下标,获取数据在共享内存中的位置;
[0058]
若位置为初始值0,则数据在共享内存中不存在,将数据添加到共享内存中的空闲内存起始地址处;
[0059]
若位置大于0,则数据在共享内存中已存在,则将数据作为修改数据覆盖该位置的原数据。
[0060]
s3、路由寻址时根据散列算法计算数据路由索引的hashid;
[0061]
s4、将hashid作为路由缓存(route_cache)数组的下标得到数据在共享内存的位置;
[0062]
若位置为初始值0,则共享内存中不存在数据,路由寻址失败;
[0063]
若位置大于0,则共享内存中存在数据,路由寻址成功,进入步骤s5。
[0064]
s5、读取位置的路由模块值。
[0065]
如图2所示,本发明还提供了一种基于哈希表的路由管理系统,包括:数据结构模块、数据存储模块、路由寻址模块和数据获取模块;
[0066]
数据结构定义模块,用于:
[0067]
定义共
[0068]
享内存的路由数据结构;
[0069]
其中,包括:
[0070]
记录起始数据位置、空闲内存起始地址、内存区末尾地址、共享内存数据总量、共享内存初始化时间、扩展时间和路由模块值。
[0071]
数据存储模块,用于:
[0072]
根据散列算法将需要路由查找的数据存储到共享内存中,数据包括hashid和路由模块值;
[0073]
其中,包括:
[0074]
通过散列算法计算数据用于路由索引的hashid;
[0075]
将hashid作为路由缓存数组的下标,获取数据在共享内存中的位置;
[0076]
若位置为初始值0,则数据在共享内存中不存在,将数据添加到共享内存中的空闲内存起始地址处。
[0077]
若位置大于0,则数据在共享内存中已存在,则将数据作为修改数据覆盖该位置的原数据。
[0078]
路由寻址模块,用于:
[0079]
路由寻址时根据散列算法计算数据路由索引的hashid;
[0080]
将hashid作为路由缓存数组的下标得到数据在共享内存的位置;
[0081]
其中,当得到数据在共享内存的位置,需对位置进行判断;
[0082]
若位置为初始值0,则共享内存中不存在数据,路由寻址失败;
[0083]
若位置大于0,则共享内存中存在数据,路由寻址成功。
[0084]
数据获取模块,用于:
[0085]
读取位置的路由模块值。
[0086]
实施例:
[0087]
如图3所示,本发明在共享内存中的数据存储流程,包括:
[0088]
步骤1、通过散列函数计算数据路由索引的hashid;
[0089]
步骤2、将hashid作为route_cache数组的下标得到该哈希值在共享内存的位置
[0090]
步骤3、判断位置,如果该位置为初始值0,表示数据在共享内存数据区中不存在,可以在共享内存中空闲内存起始位置添加新数据;如果位置》0,表示数据在共享内存数据区中已存在。
[0091]
本发明中,采用时间复杂度为o(1)的散列算法,从而使数据存取达到了极高的性能。
[0092]
本发明的优点:
[0093]
通过采用静态共享内存作为存储,使得数据的存储都是通过静态共享内存实现,无需动态分配存储,提高了数据存储及路由寻址的效率,节省了数据存储及寻址的时间。
[0094]
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人
员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献