CN106844233A - 一种基于哈希表的路由器运行数据缓存方法及系统 - Google Patents

一种基于哈希表的路由器运行数据缓存方法及系统 Download PDF

Info

Publication number
CN106844233A
CN106844233A CN201611118245.XA CN201611118245A CN106844233A CN 106844233 A CN106844233 A CN 106844233A CN 201611118245 A CN201611118245 A CN 201611118245A CN 106844233 A CN106844233 A CN 106844233A
Authority
CN
China
Prior art keywords
router
hash table
service data
node
data
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
CN201611118245.XA
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.)
SHENZHEN ZHONGWEI INTERNET SOFTWARE Co Ltd
SHENZHEN DETRAN TECHNOLOGY Co Ltd
Original Assignee
SHENZHEN ZHONGWEI INTERNET SOFTWARE Co Ltd
SHENZHEN DETRAN 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 SHENZHEN ZHONGWEI INTERNET SOFTWARE Co Ltd, SHENZHEN DETRAN TECHNOLOGY Co Ltd filed Critical SHENZHEN ZHONGWEI INTERNET SOFTWARE Co Ltd
Priority to CN201611118245.XA priority Critical patent/CN106844233A/zh
Publication of CN106844233A publication Critical patent/CN106844233A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种基于哈希表的路由器运行数据缓存方法及系统,属于路由器运行信息处理技术领域。本发明方法包括如下步骤:在与路由器连接的服务器内存中创建哈希表;收到路由器运行数据上报指令,通过哈希函数计算得到所述路由器在服务器内存中对应的节点的哈希表位置;在所述哈希表位置查找是否存在所述路由器的节点信息,如果存在,更新该节点信息;如果不存在,新增节点和节点对应的哈希表索引,并将上报的运行数据存储在新增的节点上;将内存数据写入数据库;本发明还提供了一种实现上述方法的系统。本发明的有益效果为:相比传统数据库,本发明能够提高约1000倍写入性能,每秒对外提供数百万次级别更新能力,足够满足百万级大型系统接入应用。

Description

一种基于哈希表的路由器运行数据缓存方法及系统
技术领域
本发明涉及路由器运行信息处理技术,尤其涉及一种基于哈希表的路由器运行数据缓存方法,还涉及一种实现该方法的系统。
背景技术
随着无线通信传输速度的飞速提高,资费的不断降低,无线路由器被广泛应用在电力、水利、物流等各个行业,有效提高了各个行业的效率。在这些行业应用中,无线路由器具有分布广泛、数量众多的特点,M2M管理云平台用于实现对这些无线通信路由器的设备远程管理。提供运行状态监控、参数远程修改查看,远程升级等功能。
无线路由器运行数据,包括当前在线状态,网络模式,信号强度,流量统计等。这些数据由路由器在运行过程中,定期上报。一般10-60秒上报一次。在中小规模项目中,例如接入2000台设备的系统,10秒钟上报一次,每秒系统需要处理200个运行状态数据上报,普通关系型数据库即可很好满足需求。
当系统接入数十万甚至百万台设备后,每秒需要处理数万个运行状态数据包,数据库系统无法提供每秒数万次的更新能力。特别是对于数百万台设备接入,平均每秒收到的数据上报指令最大约数十万条。针对每秒几十万次的更新频率性能需求,普通数据库或者文件系统,均无法满足需求。部分内存数据库可以提供约10万次每秒的更新能力,但需要安装和配置额外的组件,增加了项目部署和维护的成本,而且性能上也无法完全满足超大型系统需求。
发明内容
为解决现有技术中的问题,本发明提供一种基于哈希表的路由器运行数据缓存方法,还提供了一种实现上述方法的系统。
本发明基于哈希表的路由器运行数据缓存方法包括如下步骤:
S1:在与路由器连接的服务器内存中创建哈希表;
S2:收到路由器运行数据上报指令,通过哈希函数计算得到所述路由器在服务器内存中对应的节点的哈希表位置;
S3:在所述哈希表位置查找是否存在所述路由器的节点信息,如果存在,更新该节点信息;如果不存在,新增节点和节点对应的哈希表索引,并将上报的运行数据存储在新增的节点上;
S4:将内存数据写入数据库。
本发明作进一步改进,在步骤S1中,创建哈希表的方法为:创建一个容量为N的数组指针,所述指针指向一个数组,该数组是由N个节点的首地址组成。
本发明作进一步改进,数组指针的容量N根据路由器的数量配置。
本发明作进一步改进,在步骤S2中,路由器标示符的后8个字节为路由器的唯一序列号,所述哈希函数是由路由器序列号的标示符决定,哈希函数算法如下:
A1:对路由器标示符的后8个字节中,每两个字节按照按十六进制文本转二进制,转为一个字节,得到4个字节的二进制数值;
A2:将步骤A1得到的二进制数值强制赋值给unsigned int,得到路由器唯一id号;
A3:将步骤A2得到的id号对哈希表容量取余,即得到哈希表位置值。
本发明作进一步改进,在步骤A3中,每个哈希表位置采用链表保存数据,当得到哈希表位置后,对链表中每个节点的id号进行对比,如果与请求上报指令的路由器的id号相同,则找到该路由器的节点,否则,在链表尾端新增节点。
本发明作进一步改进,服务器收到路由器运行数据上报指令,更新数据的具体方法为:
S301:开始处理上报数据;
S302:判断路由器的参数是否合法,如果是,根据路由器的标示符得到id,如果否,执行步骤S35;
S303:获取哈希表位置,在哈希表位置的链表循环查找id;
S304:判断是否找到id,如果是,更新路由器运行数据,如果否,新增节点,将运行数据给新增节点赋值,加入链表尾端;
S305:上报处理结束。
本发明作进一步改进,服务器提供对外读取路由器运行数据的接口,用户能够通过该接口读取内存中的数据,读取内存中路由器运行数据的方法包括如下步骤:
S311:开始读取数据;
S312:根据路由器的标示符的到id;
S313:获取哈希表位置,在哈希表位置的链表循环查找id;
S314:判断是否找到id,如果是,读取路由器运行数据,如果否,读取失败;
S315:读取结束。
本发明作进一步改进,在步骤S4中,内存数据定期写入数据库,具体实现方法为:
S41:更新开始,内存每更新一次数据,更新次数加1;
S42:判断更新次数是否达到同步阀值,如果是,将流量与数据库中的相应路由器的流量累加,更新到数据库,如果否,返回执行步骤S41;
S43:将信号强度、网络模式、GPS位置、最后活跃时间更新到数据库;
S44:清空内存节点流量统计,更新次数归零,更新结束。
本发明还提供了一种实现上述方法的系统,包括:
哈希表创建模块:用于在与路由器连接的服务器内存中创建哈希表;
哈希表位置计算模块:用于收到路由器运行数据上报指令,通过哈希函数计算得到所述路由器在服务器内存中对应的节点的哈希表位置;
数据更新模块:用于在所述哈希表位置查找是否存在所述路由器的节点信息,如果存在,更新该节点信息;如果不存在,新增节点和节点对应的哈希表索引,并将上报的运行数据存储在新增的节点上;
数据库写入模块:用于将内存数据写入数据库。
本发明作进一步改进,在数据更新模块在收到路由器运行数据上报指令后,开始更新数据,所述数据更新模块包括:
初始化单元:用于开始处理上报数据;
第一判断单元:用于判断路由器的参数是否合法,如果是,根据路由器的标示符得到id,如果否,上报处理结束;
获取单元:用于获取哈希表位置,在哈希表位置的链表循环查找id;
第二判断单元:用于判断是否找到id,如果是,更新路由器运行数据,如果否,新增节点,将运行数据给新增节点赋值,加入链表尾端;
结束单元:用于结束上报数据处理。
与现有技术相比,本发明的有益效果是:能极大提高并发写入性能,相比传统数据库,本发明能够提高约1000倍写入性能,每秒对外提供数百万次级别更新能力,足够满足百万级大型系统接入应用;本发明基于哈希表,对路由器的标示符进行哈希算法,将运行数据保存在内存,提供每秒百万次级别的更新能力,解决百万级路由器接入的数据上报处理问题;所有路由器数据为链表数组,对每个链表的首地址进行哈希,定位到链表首地址后,再通过循环对比id号来得到具体节点地址,有效解决了哈希冲突。
附图说明
图1为本发明方法流程图;
图2为本发明内存数据结构图;
图3为本发明服务器内存更新数据方法流程图;
图4为读取内存数据方法流程图;
图5为将内存数据写入数据库方法流程图;
图6为内存数据与数据库数据同步示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步详细说明。
路由器在运行过程中,需要频繁上报的内容包括:
(1)流量使用:差量上报,是指路由器在运行过程中,使用的网络流量,包括上行与下行流量。一般情况下,不包括wifi流量,只包括3G/4G等可能产生费用的网络流量;
(2)信号强度:指当前3G/4G网络信号强度;
(3)网络模式:指路由器当前工作的网络模式,大部分情况下网络模式是固定的,但在信号不好的时候,路由器可能会从4G切换到3G,或者反过来,在有4G信号的地方,自动从3G切换到4G,此时会发生网络模式变化;
(4)告警内容:路由器运行过程中产生的故障会上报;
(5)位置信息:GPS位置上报;
(6)基站信息:当前连接的基站信息上报;
(7)Wifi AP上报:路由器作为wifi客户端连接时,上报wifi服务端的AP地址;
此外,还可能包括其他信息,比如,在交通,物流运输等项目中,gps位置也会被频繁上报。
其中,只要路由器在正常使用、流量使用、信号强度、网络模式数据会频繁上报,如果为了保证监控的时效性,一般路由器上报的时间间隔在10–120秒。对于数百万台设备接入,平均每秒收到的数据上报指令最大约数十万条。
本发明就是用于解决海量(百万台级别)路由器同时接入到M2M云平台时,路由器运行状态的更新问题。
如图1所示,本发明基于哈希表的路由器运行数据缓存方法包括如下步骤:
S1:在与路由器连接的服务器内存中创建哈希表;
S2:收到路由器运行数据上报指令,通过哈希函数计算得到所述路由器在服务器内存中对应的节点的哈希表位置;
S3:在所述哈希表位置查找是否存在所述路由器的节点信息,如果存在,更新该节点信息;如果不存在,新增节点和节点对应的哈希表索引,并将上报的运行数据存储在新增的节点上;
S4:将内存数据写入数据库。
服务器系统在启动的时候,内存中节点是空的,哈希表也是空的,在收到路由器运行数据上报指令时,先通过哈希函数计算查找节点位置,因为是第一次上报,肯定是找不到所述路由器的节点信息,因此,需要新增节点,并增加哈希表索引。当同一台设备,第二次上报运行数据的时候,就能够根据哈希表和哈希函数找到该路由器对应的节点了,直接更新该节点运行数据即可。
如图2所示,本发明将每个路由器设备的数据视作一个内存节点,这个节点包含路由器流量累积,当前信号强度,网络模式,最后活跃时间,经纬度位置等信息,也可继续扩展添加其它需要频繁上报的字段。内存更新速度数万到数十万倍于数据库系统,可以极大提高性能。此外,本发明基于哈希表,对路由器的标示符进行哈希算法,将运行数据保存在内存,提供每秒百万次级别的更新能力,解决百万级路由器接入的数据上报处理问题,能极大提高服务器的并发写入性能。
将路由器信息内存化后,产生的一个问题是,当上报数据指令到达时,如何快速找到对应路由器信息节点位置,本发明中,使用哈希表来索引每个设备的节点位置信息。在步骤S2中,创建索引的方法为:创建一个容量为N的数组指针,所述指针指向一个数组,该数组是由N个节点的首地址组成。其中,数组指针的容量N根据路由器的数量配置。
本例系统初始化一个容量N为100000的数组指针,每个指针指向一个vector数组(包括十万个节点的首地址)。
对于哈希表,哈希函数是否设计合理,是影响效率的很大因素。哈希函数的设计,由根据路由器序列号的标示符编码规则来决定。
每台无线路由器,具有一个唯一标示符,本文中称为SN,SN由两部分组成,前半部分为用户可自定义字符串,提供给客户用于标记区分路由器。后8个字节为路由器唯一序列号。
路由器8个字节唯一标示符编码规则如下:
第一字节:出厂年,6=2016年,7=2017年,A=2020年,类推;
第二字节:出厂月,1=1月,12=12月,类推;
第三、第四字节:共同表示生产日期,03=3日,24=24日,类推;
第五、六字节:型号计数位;
第七、八字节:计数位;
除第一个字节外,后面字节取值范围均为0-9,A-F。
针对上述编码规则,哈希函数算法如下:
A1:对路由器标示符的后8个字节中,每两个字节按照按十六进制文本转二进制,转为一个字节,得到4个字节的二进制数值;
A2:将步骤A1得到的二进制数值强制赋值给unsigned int,得到路由器唯一id号;
A3:将步骤A2得到的id号对哈希表容量取余,即得到哈希表位置值。
当两个路由器的序列号,通过上述hash(哈希)函数,得到的位置相同时,产生hash冲突,本发明中通过链表解决冲突。在步骤A3中,每个哈希表位置采用链表保存数据,当得到哈希表位置后,对链表中每个节点的id号进行对比,如果与请求上报指令的路由器的id号相同,则找到该路由器的节点,否则,在链表尾端新增节点。
如图3所示,服务器收到路由器运行数据上报指令,更新数据的具体方法为:
S301:开始处理上报数据;
S302:判断路由器的参数是否合法,如果是,根据路由器的标示符得到id,如果否,执行步骤S35;
S303:获取哈希表位置,在哈希表位置的链表循环查找id;
S304:判断是否找到id,如果是,更新路由器运行数据,如果否,新增节点,将运行数据给新增节点赋值,加入链表尾端;
S305:上报处理结束。
本发明采用C/C++语言举例说明,但并不限定只能由C/C++实现。
本发明写入上报数据的函数为:void report(const char*sn,unsigned intflux,char signal,char net_mode,double lat,double lon);
参数说明:
sn——路由器序列号,最后8个字节为唯一标示符;
flux——上报的流量,差量上报,即每次上报的流量为两次上报间隔内使用的值;
signal——网络信号强度;
net_mode——网络模式;
lat,lon——当前GPS位置经纬度。
此外,本发明提供对外读取接口,该接口返回某个设备上报的累积数据,包括流量累积,当前信号强度,网络模式,最后活跃时间等字段。读取接口用于展示数据给用户,或者用于给其它第三方接口调用等提供数据来源。
如图4所示,读取内存中路由器运行数据的方法包括如下步骤:
S311:开始读取数据;
S312:根据路由器的标示符的到id;
S313:获取哈希表位置,在哈希表位置的链表循环查找id;
S314:判断是否找到id,如果是,读取路由器运行数据,如果否,读取失败;
S315:读取结束。
读取接口为:void read(const char*sn,unsigned int&flux,char&signal,char&net_mode,unsigned int&last_time,double&lat,double&lon);
参数说明:
sn——路由器序列号,最后8个字节为唯一标示符;
flux——输出参数,上报的流量累积;
signal——输出参数,网络信号强度;
net_mode——输出参数,网络模式;
last_time——输出参数,最后活跃时间,unix时间戳;
lat,lon——输出参数,读取设备上报的最新gps位置经纬度。
虽然,内存数据具有写入快的优点,但在系统重启,断电等特殊场合,可能会导致数据丢失,因此需要定期将内存数据同步写入数据库,以保证数据完整性。
如图5所示,本例将内存数据定期写入数据库的具体实现方法为:
S41:更新开始,内存每更新一次数据,更新次数加1;
S42:判断更新次数是否达到同步阀值,如果是,将流量与数据库中的相应路由器的流量累加,更新到数据库,如果否,返回执行步骤S41;
S43:将信号强度、网络模式、GPS位置、最后活跃时间更新到数据库;
S44:清空内存节点流量统计,更新次数归零,更新结束。
在更新次数达到预设的同步阈值时,例如可以设定为每上报100次数据同步到数据库,锁定节点,将该内存节点数据写入数据库,并清零重设节点更新次数,避免反复同步到数据库。
数据库同步接口为:void sync_to_db(constchar*sn);其中,sn为需要同步写入数据库的节点路由器序列号。
如图6所示,为本发明加入数据同步功能后的示意图,同步机制使得即使发生系统断电等极端情况,丢失的数据也在可接受范围内。一台无线通信路由器,每月上报数万到数十万次,在断电等极端场合下丢失小部分数据,对整体统计影响基本可忽略不计。
此外,本发明还提供了一种实现上述方法的系统,包括:
哈希表创建模块:用于在与路由器连接的服务器内存中创建哈希表;
哈希表位置计算模块:用于收到路由器运行数据上报指令,通过哈希函数计算得到所述路由器在服务器内存中对应的节点的哈希表位置;
数据更新模块:用于在所述哈希表位置查找是否存在所述路由器的节点信息,如果存在,更新该节点信息;如果不存在,新增节点和节点对应的哈希表索引,并将上报的运行数据存储在新增的节点上;
数据库写入模块:用于将内存数据写入数据库。
本发明作进一步改进,在数据更新模块在收到路由器运行数据上报指令后,开始更新数据,所述数据更新模块包括:
初始化单元:用于开始处理上报数据;
第一判断单元:用于判断路由器的参数是否合法,如果是,根据路由器的标示符得到id,如果否,上报处理结束;
获取单元:用于获取哈希表位置,在哈希表位置的链表循环查找id;
第二判断单元:用于判断是否找到id,如果是,更新路由器运行数据,如果否,新增节点,将运行数据给新增节点赋值,加入链表尾端;
结束单元:用于结束上报数据处理。
最后,本发明通过与现有数据库系统对比测试来进一步说明。
本发明与现有数据库的测试配置如下:
项目 配置
CPU Intel Core i7-3770@3.4G HZ,4核8线程
内存 8G
硬盘 1TB企业级硬盘,7200转,64MB缓存
操作系统 64位Linux,2.6.32内核(VMware虚拟机)
数据库 Mysql 5.1版本
通过测试,测试结论如下:
通过上述测试结论可以看出,本发明相比传统数据库,可提高约1000倍写入性能,每秒对外提供数百万次级别更新能力,足够满足百万级大型系统接入应用,理想情况下,可满足千万级设备接入需求。
以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。

Claims (10)

1.一种基于哈希表的路由器运行数据缓存方法,其特征在于包括如下步骤:
S1:在与路由器连接的服务器内存中创建哈希表;
S2:收到路由器运行数据上报指令,通过哈希函数计算得到所述路由器在服务器内存中对应的节点的哈希表位置;
S3:在所述哈希表位置查找是否存在所述路由器的节点信息,如果存在,更新该节点信息;如果不存在,新增节点和节点对应的哈希表索引,并将上报的运行数据存储在新增的节点上;
S4:将内存数据写入数据库。
2.根据权利要求1所述的基于哈希表的路由器运行数据缓存方法,其特征在于:在步骤S1中,创建哈希表的方法为:创建一个容量为N的数组指针,所述指针指向一个数组,该数组是由N个节点的首地址组成。
3.根据权利要求2所述的基于哈希表的路由器运行数据缓存方法,其特征在于:数组指针的容量N根据路由器的数量配置。
4.根据权利要求2所述的基于哈希表的路由器运行数据缓存方法,其特征在于:在步骤S2中,路由器标示符的后8个字节为路由器的唯一序列号,所述哈希函数是由路由器序列号的标示符决定,哈希函数算法如下:
A1:对路由器标示符的后8个字节中,每两个字节按照按十六进制文本转二进制,转为一个字节,得到4个字节的二进制数值;
A2:将步骤A1得到的二进制数值强制赋值给unsigned int,得到路由器唯一id号;
A3:将步骤A2得到的id号对哈希表容量取余,即得到哈希表位置值。
5.根据权利要求4所述的基于哈希表的路由器运行数据缓存方法,其特征在于:在步骤A3中,每个哈希表位置采用链表保存数据,当得到哈希表位置后,对链表中每个节点的id号进行对比,如果与请求上报指令的路由器的id号相同,则找到该路由器的节点,否则,在链表尾端新增节点。
6.根据权利要求5所述的基于哈希表的路由器运行数据缓存方法,其特征在于:服务器收到路由器运行数据上报指令,更新数据的具体方法为:
S301:开始处理上报数据;
S302:判断路由器的参数是否合法,如果是,根据路由器的标示符得到id,如果否,执行步骤S35;
S303:获取哈希表位置,在哈希表位置的链表循环查找id;
S304:判断是否找到id,如果是,更新路由器运行数据,如果否,新增节点,将运行数据给新增节点赋值,加入链表尾端;
S305:上报处理结束。
7.根据权利要求6所述的基于哈希表的路由器运行数据缓存方法,其特征在于:服务器提供对外读取路由器运行数据的接口,用户能够通过该接口读取内存中的数据,读取内存中路由器运行数据的方法包括如下步骤:
S311:开始读取数据;
S312:根据路由器的标示符的到id;
S313:获取哈希表位置,在哈希表位置的链表循环查找id;
S314:判断是否找到id,如果是,读取路由器运行数据,如果否,读取失败;
S315:读取结束。
8.根据权利要求1-7任一项所述的基于哈希表的路由器运行数据缓存方法,其特征在于:
在步骤S4中,内存数据定期写入数据库,具体实现方法为:
S41:更新开始,内存每更新一次数据,更新次数加1;
S42:判断更新次数是否达到同步阀值,如果是,将流量与数据库中的相应路由器的流量累加,更新到数据库,如果否,返回执行步骤S41;
S43:将信号强度、网络模式、GPS位置、最后活跃时间更新到数据库;
S44:清空内存节点流量统计,更新次数归零,更新结束。
9.一种实现根据权利要求1-8任一项所述基于哈希表的路由器运行数据缓存方法的系统,其特征在于包括:
哈希表创建模块:用于在与路由器连接的服务器内存中创建哈希表;
哈希表位置计算模块:用于收到路由器运行数据上报指令,通过哈希函数计算得到所述路由器在服务器内存中对应的节点的哈希表位置;
数据更新模块:用于在所述哈希表位置查找是否存在所述路由器的节点信息,如果存在,更新该节点信息;如果不存在,新增节点和节点对应的哈希表索引,并将上报的运行数据存储在新增的节点上;
数据库写入模块:用于将内存数据写入数据库。
10.根据权利要求9所述的系统,其特征在于:在数据更新模块在收到路由器运行数据上报指令后,开始更新数据,所述数据更新模块包括:
初始化单元:用于开始处理上报数据;
第一判断单元:用于判断路由器的参数是否合法,如果是,根据路由器的标示符得到id,如果否,上报处理结束;
获取单元:用于获取哈希表位置,在哈希表位置的链表循环查找id;
第二判断单元:用于判断是否找到id,如果是,更新路由器运行数据,如果否,新增节点,将运行数据给新增节点赋值,加入链表尾端;
结束单元:用于结束上报数据处理。
CN201611118245.XA 2016-12-07 2016-12-07 一种基于哈希表的路由器运行数据缓存方法及系统 Pending CN106844233A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611118245.XA CN106844233A (zh) 2016-12-07 2016-12-07 一种基于哈希表的路由器运行数据缓存方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611118245.XA CN106844233A (zh) 2016-12-07 2016-12-07 一种基于哈希表的路由器运行数据缓存方法及系统

Publications (1)

Publication Number Publication Date
CN106844233A true CN106844233A (zh) 2017-06-13

Family

ID=59139752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611118245.XA Pending CN106844233A (zh) 2016-12-07 2016-12-07 一种基于哈希表的路由器运行数据缓存方法及系统

Country Status (1)

Country Link
CN (1) CN106844233A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108388613A (zh) * 2018-02-08 2018-08-10 竞技世界(北京)网络技术有限公司 一种缓存数据的更新方法
CN111031567A (zh) * 2020-01-14 2020-04-17 南通先进通信技术研究院有限公司 一种核心网设备的流量统计方法
CN112256697A (zh) * 2020-10-14 2021-01-22 宁波三星医疗电气股份有限公司 一种用于电力采集终端数据管理的方法
CN112947856A (zh) * 2021-02-05 2021-06-11 彩讯科技股份有限公司 一种内存数据的管理方法、装置、计算机设备及存储介质
CN117827848A (zh) * 2024-03-04 2024-04-05 苏州元脑智能科技有限公司 哈希连接方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020199014A1 (en) * 2001-03-26 2002-12-26 Accton Technology Corporation Configurable and high-speed content-aware routing method
CN1549496A (zh) * 2003-05-07 2004-11-24 华为技术有限公司 一种网际协议报文的统计方法
CN101060494A (zh) * 2007-05-17 2007-10-24 华为技术有限公司 一种路由选择的方法、系统及路由器
CN101207555A (zh) * 2006-12-18 2008-06-25 中兴通讯股份有限公司 一种路由黑洞避免过程中过载位自动清除的方法
CN101350788A (zh) * 2008-08-25 2009-01-21 中兴通讯股份有限公司 一种网络处理器内外混合查表方法
CN101827137A (zh) * 2010-04-13 2010-09-08 西安邮电学院 一种基于哈希表和扩展存储器的高性能IPv6地址查找方法
CN105978748A (zh) * 2016-04-26 2016-09-28 上海斐讯数据通信技术有限公司 一种基于哈希节点的终端设备信息统计的方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020199014A1 (en) * 2001-03-26 2002-12-26 Accton Technology Corporation Configurable and high-speed content-aware routing method
CN1549496A (zh) * 2003-05-07 2004-11-24 华为技术有限公司 一种网际协议报文的统计方法
CN101207555A (zh) * 2006-12-18 2008-06-25 中兴通讯股份有限公司 一种路由黑洞避免过程中过载位自动清除的方法
CN101060494A (zh) * 2007-05-17 2007-10-24 华为技术有限公司 一种路由选择的方法、系统及路由器
CN101350788A (zh) * 2008-08-25 2009-01-21 中兴通讯股份有限公司 一种网络处理器内外混合查表方法
CN101827137A (zh) * 2010-04-13 2010-09-08 西安邮电学院 一种基于哈希表和扩展存储器的高性能IPv6地址查找方法
CN105978748A (zh) * 2016-04-26 2016-09-28 上海斐讯数据通信技术有限公司 一种基于哈希节点的终端设备信息统计的方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108388613A (zh) * 2018-02-08 2018-08-10 竞技世界(北京)网络技术有限公司 一种缓存数据的更新方法
CN108388613B (zh) * 2018-02-08 2020-09-11 竞技世界(北京)网络技术有限公司 一种缓存数据的更新方法
CN111031567A (zh) * 2020-01-14 2020-04-17 南通先进通信技术研究院有限公司 一种核心网设备的流量统计方法
CN111031567B (zh) * 2020-01-14 2022-06-24 南通先进通信技术研究院有限公司 一种核心网设备的流量统计方法
CN112256697A (zh) * 2020-10-14 2021-01-22 宁波三星医疗电气股份有限公司 一种用于电力采集终端数据管理的方法
CN112947856A (zh) * 2021-02-05 2021-06-11 彩讯科技股份有限公司 一种内存数据的管理方法、装置、计算机设备及存储介质
CN112947856B (zh) * 2021-02-05 2024-05-03 彩讯科技股份有限公司 一种内存数据的管理方法、装置、计算机设备及存储介质
CN117827848A (zh) * 2024-03-04 2024-04-05 苏州元脑智能科技有限公司 哈希连接方法、装置、电子设备及存储介质
CN117827848B (zh) * 2024-03-04 2024-05-03 苏州元脑智能科技有限公司 哈希连接方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN106844233A (zh) 一种基于哈希表的路由器运行数据缓存方法及系统
US20190087262A1 (en) Dispersed b-tree directory trees
US10366113B2 (en) Method and system for generating a geocode trie and facilitating reverse geocode lookups
US9971538B2 (en) Load balancing and service differentiation within a dispersed storage network
CN103577407B (zh) 用于分布式数据库的查询方法及查询装置
US9305176B2 (en) Database generation from a spreadsheet
CN106209974B (zh) 一种数据同步方法、设备及系统
US20180285371A1 (en) Method and apparatus for automatically discovering gas station poi, storage medium and device
US20220358008A1 (en) Wide stripe data storage and constructing, repairing and updating method thereof
US11645133B2 (en) Modifying encoded data in a distributed storage network
CN102306165A (zh) 船舶电子海图数据多平台共享服务装置及其构建方法
CN112395269B (zh) MySQL高可用组的搭建方法及装置
CN112100160B (zh) 一种基于Elastic Search的双活实时数据仓库建设方法
CN109377383A (zh) 产品数据同步方法、装置、计算机设备及存储介质
CN104168335A (zh) 一种数据同步方法和装置
CN112686418A (zh) 一种履约时效预测方法和装置
EP2965492A1 (en) Selection of data storage settings for an application
CN110008197A (zh) 一种数据处理方法、系统及电子设备和存储介质
CN108509529A (zh) 数据分页排序方法、装置及可读存储介质
CN106383826A (zh) 数据库查询方法和装置
CN107203437A (zh) 防止内存数据丢失的方法、装置和系统
CN114598680B (zh) 域名的管理方法、装置及存储介质
CN104794226B (zh) 基于HBase数据库对数据的写操作方法及装置
CN103778218A (zh) 基于云计算的标准信息一致性预警系统及方法
CN105830063B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20170613