CN113326275B - 一种用于路由器的数据老化方法与系统 - Google Patents
一种用于路由器的数据老化方法与系统 Download PDFInfo
- Publication number
- CN113326275B CN113326275B CN202110642286.3A CN202110642286A CN113326275B CN 113326275 B CN113326275 B CN 113326275B CN 202110642286 A CN202110642286 A CN 202110642286A CN 113326275 B CN113326275 B CN 113326275B
- Authority
- CN
- China
- Prior art keywords
- data
- aging
- server
- client
- uptno
- 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.)
- Active
Links
- 230000032683 aging Effects 0.000 title claims abstract description 199
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000004458 analytical method Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims description 18
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 230000003993 interaction Effects 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种用于路由器的数据老化方法:客户端收到服务端发送的数据后,回调业务解析,将客户端的数据与服务端的数据建立关联关系;主备倒换,客户端感知到服务端下线后,遍历客户端中对应于该服务端的Svr下的DATASvr,将每一个垫层中的老化游标指向老化链的尾节点;备服务端上线后,向客户端发送数据同步消息,数据同步消息只携带ID+UPTNO,不填充数据内容;客户端收到数据同步消息后,根据ID在本地查找数据,如果没有找到,向服务端请求该数据,否则将该数据从老化链中移除,重新插入尾部,继续比对数据的UPTNO和消息中的UPTNO,如果不同则向服务端请求该数据,否则不需要请求。本发明还提供了相应的用于路由器的数据老化系统。
Description
技术领域
本发明属于通信技术领域,更具体地,涉及一种用于路由器的数据老化方法与系统。
背景技术
在实际网络中,路由器总会因为各种不可预期或不可控制的因素,导致系统出现故障无法运行。为了保证系统的高可靠性,路由器的主控板会按照1+1的方式主备部署。在系统出现故障且不可修复时,可以通过主备倒换的方式,由备主控接管系统,尽快修复故障,以继续提供服务。
在主备部署方式下,主控板服务端在向客户端传输数据的同时,也会传输一份至备主控板的服务端作为备份,但是备份只能尽力而为,所以,主服务端与客户端之间的数据能保持同步,但与备服务端之间可能存在差异。当系统出现异常时,主备倒换后,主服务端下线,备服务端升主成为新服务端,客户端与新服务端之间的数据可能不再同步,主要表现在以下两个方面:(1)两端数据关键字相同,但内容不同;(2)客户端部分数据来源于原服务端,而不存在于新服务端,即存在残留数据。
为了解决客户端数据残留的问题,传统方案是在主备倒换之后,客户端开启数据老化定时器,定时器超时时间按经验值选取,譬如5分钟,新服务端上线后,全力推送所有数据,客户端在老化定时器超时或者提前接收完新服务端的数据时,启动老化流程,将客户端未更新的数据老化掉。传统方案存在如下缺陷:(1)服务端:新服务端上线后,全量推送数据将导致系统在短时间内产生大量消息,影响系统的传输效率;(2)客户端:数据老化依赖于老化定时器超时时间的设置,而超时时间只能按经验值选取,无法精确设置,其结果是不能准确筛选出残留数据,导致可能出现有效数据被误删或者残留数据未被老化的问题。
发明内容
本发明的目的是克服现有技术方案的不足之处,提出一种改进的路由器老化方案及其实现方法,大量减少服务端消息推送量的同时,精确老化客户端的残留数据,保证两端数据的一致性。
为实现上述目的,按照本发明的一个方面,提供了一种用于路由器的数据老化方法,包括:
S1、服务端管理的每一个数据都有自己的数据标识ID和更新版本号UPTNO;
S2、客户端收到服务端发送的数据后,回调业务解析,将客户端的数据与服务端的数据建立关联关系;
S3、主备倒换,客户端感知到服务端下线后,遍历客户端中对应于该服务端的Svr下的DATASvr,将每一个垫层中的老化游标指向老化链的尾节点;
S4、备服务端上线后,向客户端发送数据同步消息,数据同步消息只携带ID+UPTNO,不填充数据内容;
S5、客户端收到数据同步消息后,根据ID在本地查找数据,如果没有找到,向服务端请求该数据,否则将该数据从老化链中移除,重新插入尾部,继续比对数据的UPTNO和消息中的UPTNO,如果不同则向服务端请求该数据,否则不需要请求。
本发明的一个实施例中,所述方法还包括:
S6、服务端收全客户端请求的数据后,向客户端发送这部分数据,携带ID和UPTNO,回调业务填充数据,发完之后通知客户端启动老化;
S7、客户端收到老化通知后,找到DATASvr中的老化链,从首节点开始遍历,直至老化游标指向的节点,对于遍历过程中的各节点,回调业务删除数据。
本发明的一个实施例中,在所述步骤S2中,将客户端的数据与服务端的数据建立关联关系,具体为:
设置其ID和UPTNO为服务端发送时携带的值,将数据挂接到DATASvr的老化链尾部,如果数据已经在其中,先从老化链移除,再插入尾部。
本发明的一个实施例中,在所述步骤S1中,服务端管理的每一个数据都有自己的数据标识ID和更新版本号UPTNO,具体为:
服务端新生成数据时,为数据分配数据标识ID,ID基于数据类型本端唯一;
服务端发送数据时,不论数据是创建还是更新,递增该数据类型的更新版本号UPTNO,UPTNO基于数据类型本端唯一,然后携带数据的ID+UPTNO,回调业务填充数据内容至消息中。
本发明的一个实施例中,在所述步骤S5中,客户端请求的数据只携带ID给服务端。
本发明的一个实施例中,在所述步骤S6中,如果业务主动通知了需要启动数据老化,将老化通知携带在同步消息中最后一个发送的数据中。
本发明的一个实施例中,在所述步骤S7中,回调业务删除数据后,将老化游标置空。
按照本发明的另一方面,还提供了一种用于路由器的数据老化系统,包括服务端和客户端,其中:
所述服务端,用于在新生成数据时,为数据分配数据标识ID,ID基于数据类型本端唯一;服务端发送数据时,不论数据是创建还是更新,递增该数据类型的更新版本号UPTNO,UPTNO基于数据类型本端唯一,然后携带数据的ID+UPTNO,回调业务填充数据内容至消息中;
所述客户端,用于在收到数据时回调业务解析数据,将数据与服务端的数据建立关联关系,设置其ID和UPTNO为服务端发送时携带的值;如果客户端的数据是新创建的,将数据插入老化链表尾部,否则将数据先从老化链表摘除,再重新插入尾部。
本发明的一个实施例中,所述系统还包括备服务端,所述备服务端只用来备份主服务端的数据,客户端只跟主服务端做数据交互;主备倒换后,原主服务端下线,原备服务端会自动升为主服务端。
本发明的一个实施例中,所述备服务端在上线后成为主服务端,用于在上线后向客户端发送数据同步消息,此时仅仅携带数据ID+UPTNO,不再回调业务填充数据内容;所述客户端,用于在收到数据时,首先根据服务端携带的ID查找本地数据,如果没有找到,向服务端请求该数据,否则,将数据从老化链表中摘除,再重新插入老化链表尾部,继续比对本地数据的UPTNO和服务端携带的UPTNO,如果不同则向服务端请求该数据,否则不需要处理;客户端请求数据时,只需要将请求数据的数据ID发送给服务端;
所述服务端,用于在收全客户端请求的数据后,向客户端发送这部分数据,此时,需要携带数据ID和UPTNO,并回调业务填充数据内容;如果数据归属的业务模块主动通知了需要启动数据老化,将老化通知携带在同步消息中最后一个发送的数据中;
所述客户端,用于正常接收数据,如果解析出服务端携带的老化事件通知,启动老化任务:遍历老化链表,从老化链表首节点开始,直至老化游标指向的节点,对于遍历过程中的各节点,回调业务删除数据,最后将老化游标置空。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:
(1)服务端针对性向客户端推送数据,有效减少服务端数据同步消息量,提高系统传输效率;业务参与老化流程,精确识别残留的数据,保证两端数据的一致性;缩短老化流程时间,提升系统整体性能;
(2)有效减少服务端数据同步消息量,提高系统传输效率;有效解决客户端数据残留的问题,保证两端数据的一致性;有效识别残留的数据,缩短老化耗时,提升系统整体性能;
(3)主备倒换后,新服务端全量推送数据,极端情况下(客户端数据与新服务端数据完全一致),整个过程无意义,新方案有针对性的向客户端推送真正需要更新的数据,上述极端场景下,能省去整个推送过程,减少了老化流程耗时;
(4)本发明使用了更优的方法区分服务端与客户端数据的一致性,相比传统内存校验和的方式,省去了大量的耗时计算。
附图说明
图1为本发明实施例中客户端数据管理结构图;
图2为本发明实施例中客户端在主备倒换前老化链操作示意图;
图3为本发明实施例中客户端在主备倒换时老化链操作示意图;
图4为本发明实施例中客户端在主备倒换后老化链操作示意图;
图5为本发明实施例中服务端与客户端在主备倒换后控制流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
首先对本发明中涉及到的服务端、备服务端以及客户端进行说明:
高可靠性的数据是有主备备份的,主主控上的主服务端是真实的服务端,备主控上的备服务端只用来备份主服务端的数据,客户端只跟主主控上的主服务端做数据交互;主备倒换后,原主主控下线,原主服务端下线,原备主控升为主主控,原备服务端会自动升为主服务端,这里的发送主体是倒换后升为主的服务端,也是倒换前备主控上的备服务端。
为了解决现有技术存在的问题,本发明提供了一种用于路由器的数据老化方法,包括:
S1、服务端管理的每一个数据都有自己的数据标识ID和更新版本号UPTNO。数据生成时分配ID,基于数据类型本端唯一,数据内容变化时设置UPTNO,基于数据类型本端唯一;服务端发送数据时,携带数据的ID和UPTNO,回调业务填充数据内容;
S2、客户端收到服务端发送的数据后,回调业务解析,将客户端的数据与服务端的数据建立关联关系,设置客户端的数据的ID和UPTNO为服务端发送时携带的值,将数据挂接到DATASvr的老化链尾部,如果数据已经在其中,先从老化链移除,再插入尾部;
S3、主备倒换,客户端感知到服务端下线后,遍历客户端中对应于该服务端的Svr下的DATASvr,将每一个垫层中的老化游标指向老化链的尾节点;
S4、备服务端上线后,向客户端发送数据同步消息,数据同步消息只携带ID+UPTNO,不填充数据内容;(在主备倒换后,备主控升为主主控,原备服务端升为新主服务端);
S5、客户端收到数据同步消息后,根据ID在本地查找数据,如果没有找到,向服务端请求该数据,否则,将该数据从老化链中移除,重新插入尾部,继续比对数据的UPTNO和消息中的UPTNO,如果不同则向服务端请求该数据,否则不需要请求;客户端请求的数据只携带ID给服务端;
S6、服务端收全客户端请求的数据后,向客户端发送这部分数据,携带ID和UPTNO,回调业务填充数据。发完之后,通知客户端启动老化;
S7、客户端收到老化通知后,找到DATASvr中的老化链,从首节点开始遍历,直至老化游标指向的节点,对于遍历过程中的各节点,回调业务删除数据。
本发明提出的路由器老化方案及其实现方法,包括主备倒换前、倒换时刻和倒换后三个阶段的服务端和客户端的老化处理流程,其步骤如下:
1、主备倒换前,作为数据老化的基础阶段,其功能在于数据的存储与管理;
(a)服务端新生成数据时,为数据分配数据标识ID,ID基于数据类型本端唯一;服务端发送数据时,不论数据是创建还是更新,递增该数据类型的更新版本号UPTNO,UPTNO基于数据类型本端唯一,然后携带数据的ID+UPTNO,回调业务填充数据内容至消息中;
(c)客户端收到数据时,回调业务解析数据,将数据与服务端的数据建立关联关系,设置其ID和UPTNO为服务端发送时携带的值;如果客户端的数据是新创建的,将数据插入老化链表尾部,否则将数据先从老化链表摘除,再重新插入尾部;
上述流程保证了客户端和服务端数据的一一对应,客户端的数据统一通过老化链表管理维护。
2、主备倒换时刻,作为数据老化的预处理阶段,其功能在于数据老化的初始目标范围的确定;
(d)系统执行主备倒换时,客户端感知到服务端下线后,设置老化游标,指向老化链表尾部。客户端基于老化链表老化数据,老化范围是从老化链的首节点到老化游标指向的节点之间的数据,上述流程表示在初始时刻,客户端的老化链表上管理的所有数据都在老化范围之内。
3、主备倒换后,作为数据老化的执行阶段,其功能在于从数据老化范围中,精确筛选并老化数据;
(e)备服务端上线后,向客户端发送数据同步消息,此时仅仅携带数据ID+UPTNO,不再回调业务填充数据内容;
(f)客户端收到数据时,首先根据服务端携带的ID查找本地数据,如果没有找到,向服务端请求该数据,否则,将数据从老化链表中摘除,再重新插入老化链表尾部,继续比对本地数据的UPTNO和服务端携带的UPTNO,如果不同则向服务端请求该数据,否则不需要处理;客户端请求数据时,只需要将请求数据的数据ID发送给服务端;
(g)服务端收全客户端请求的数据后,向客户端发送这部分数据,此时,需要携带数据ID和UPTNO,并回调业务填充数据内容。如果数据归属的业务模块(服务端每一类数据对应有一个业务管理模块,譬如路由数据对应路由模块管理,其他数据对应其他业务模块管理。老化流程需要数据归属的业务模块参与,当业务模块的数据发送完成后,可以主动通知客户端启动该数据的老化流程,如果不通知,客户端不会启动老化流程)主动通知了需要启动数据老化,将老化通知携带在同步消息中最后一个发送的数据中;
(h)客户端按步骤(c)正常接收数据。如果解析出服务端携带的老化事件通知,启动老化任务:遍历老化链表,从老化链表首节点开始,直至老化游标指向的节点,对于遍历过程中的各节点,回调业务删除数据,最后将老化游标置空。
以下结合附图进一步对本发明技术方案进行详细说明。
一、服务端数据存储
服务端的数据划分为不同的类型,以类型为单位,独立管理数据。每个数据都有ID和UPTNO两个属性,属性值基于本端类型唯一。
ID:数据标识号。数据管理的关键字,以递增的方式在数据创建时分配。对于同一个数据,ID保持不变。譬如,服务端A创建1个类型为a的数据,其ID是1,然后创建2个类型为b的数据,其ID依次是1、2;服务端B创建2个类型为b的数据,其ID依次是1、2。
UPTNO:发送版本号。数据校验的关键字,以递增的方式在数据发送时分配。对于同一个数据,UPTNO会变化。譬如,服务端A有1个类型为a的数据,首次发送时,UPTNO设置为1,再次发送时,UPTNO设置为2;服务端A有2个类型为b的数据,先发送第一个数据时,第一个数据的UPTNO设置为1,再发送第二个数据时,第二个数据的UPTNO设置为2,然后再次发送第一个数据时,第一个数据的UPTNO设置为3。服务端B类似。
二、客户端数据存储
图1描述了客户端数据存储的管理结构图,图中各单元描述如下:
LC:客户端本地存储数据类型。客户端存储的数据划分为不同类型,每一种类型对应一个LC。
SC:服务端数据类型。服务端的数据划分为不同类型,每一种类型对应一个SC。
Svr:服务端管理节点。客户端接收的数据可以来自于不同的服务端,每个服务端对应一个Svr节点。
DataSvr:服务端数据垫层。统一管理从服务端Svr节点接收的某一类型SC的所有数据
StaleList:老化链表。每个服务端数据垫层DataSvr管理一条老化链表,用于控制垫层中维护的数据的老化流程。
图1中三个垫层各维护有一条老化链表,链表所管控的数据分别详细说明如下:
StaleList1:数据来源于服务端Svr1节点,服务端数据类型是SC1,客户端本地存储类型是LC1;
StaleList2:数据来源于服务端Svr1节点,服务端数据类型是SC2,客户端本地存储类型是LC1;
StaleList2:数据来源于服务端Svr1节点,服务端数据类型是SC3,客户端本地存储类型是LC2;
图1所描述的数据存储管理图,其目的在于:
(1)保证从服务端接收的数据,客户端有唯一的数据与之关联,
假定服务端Svr节点向客户端发送一个类型为SC的数据,客户端接收到之后;其步骤如下:
1)根据Svr节点和SC信息,确定服务端垫层DataSvr,并从垫层中确定老化链表StaleList;
2)根据服务端在消息中携带的数据标识ID,从1)的垫层中查找数据,如果没有找到,创建一个数据;
3)将1)中的老化链表与2)中的数据建立关系,具体参见下述的老化链表的控制部分的说明;
4)根据服务端在消息中携带的数据标识ID和发送版本号UPTNO,将2)中的数据的ID和UPTNO设置为相同的值;
(2)客户端所有本地数据以服务端垫层为粒度,划分到各垫层的老化链表中,分开管理,有效控制从某一个服务端节点接收的某一类型数据的老化流程。
三、老化链表的控制
图2描述了路由器主备倒换之前,客户端从服务端接收到数据之后,其相应服务端垫层中老化链表的操作。假定数据接收之前,该老化链表中已经有5个数据节点,数据标识ID分别为1、2、3、4、5。服务端继续向客户端发送一个消息,消息中含有2个数据,ID分别是6和2。对于数据标识ID为6的数据,客户端进行创建数据流程,同时,创建一个新的老化链表节点挂接到老化链表的尾部;对于数据标识ID为2的数据,客户端走更新数据流程,将老化链表中对应于该数据的链表节点从链表中移除,然后重新挂接到链表尾部。
图3描述了路由器主备倒换时刻,客户端在感知到服务端下线事件时,其相应服务端垫层中老化链表的操作。从图1可以看出,对于同一个服务端节点,可以有多个服务端垫层,亦即有多个老化链表。对于这些链表,客户端需要将垫层中维护的老化游标指针指向垫层中老化链表的尾部节点。图3中老化链表尾节点是数据标识ID为2的节点,将老化游标指向该节点。此时,确定出老化初始目标围为老化链表中所有节点对应的数据。
图4描述了路由器主备倒换之后,客户端感知到备主控的服务端上线事件时,其相应服务端垫层中老化链表的操作。类似图2的处理方式,数据标识ID为7的节点对应创建数据流程,老化节点挂接到老化链表尾部;数据标识ID为2和4的节点对应更新数据流程,老化节点从老化链表中移除并挂接到尾部。不同之处在于在处理数据标识ID为2的数据时,老化游标指向的老化节点正好是该数据对应的老化节点,在将该节点从老化链表中移除之前,需要将老化游标调整为指向前一个老化节点,其数据标识ID为6。此时,老化目标范围缩小为4个数据,数据标识ID分别为1、2、5、6,其他数据已从初始目标范围剔除。
四、老化筛选与启动
图5描述了路由器主备倒换之后,客户端老化数据的筛选流程以及老化启动流程。
1.同步查询。备主控的服务端升主后,为了避免全量推送,服务端先向客户端查询需要同步的本地数据。假定新服务端某一类型的数据量有100w,消息缓存长度12k,服务端以并包的方式批量发送数据,发送内容包括数据标识ID和发送版本号UPTNO。将数据的ID和UPTNO逐个填入消息中,直至消息填满后,将消息发送至客户端。循环上述过程发送数据,在发送最后一个数据时,在消息中设置查询完成标记。
2.数据请求。客户端接收到同步查询消息后,筛选老化数据并请求非同步数据,其步骤如下:
1)根据服务端Svr节点和服务端数据类型SC信息,确定服务端垫层DataSvr,并从垫层中确定老化链表StaleList;
2)解析消息,对于消息中的每一个数据,重复3)-5);
3)根据消息中携带的数据标识ID,从1)的垫层中查找数据,如果没有找到,执行5),否则,继续;
4)将数据在老化链表中的对应节点从1)的老化链表中移除,并重新挂接到链表尾部,其目的在于将数据剔除出老化目标范围;继续比对数据的UPTNO和消息中携带的UPTNO,如果相同,执行2),否则,继续;
5)向服务端请求数据,携带数据标识ID,执行2);
6)当解析到消息中携带的查询完成标记时,在数据请求消息中设置数据请求完成标记;
3.数据同步。服务端接收到数据请求消息后,缓存消息中的数据标识ID。当接收到数据请求完成标记时,以并包的方式,将缓存的请求数据发送至客户端。发送内容不仅包括数据标识ID和发送版本号UPTNO,还包括业务回调填充。在同步最后一个数据时,如果业务主动通知了数据老化,将老化通知携带在同步消息中发送至客户端;否则不需要通知客户端启动老化,如果业务在后续通知数据老化,服务端再将老化通知单独通过消息发送至客户端;
4.老化启动。客户端正常接收消息,当解析到消息中携带有老化通知标记时,确定老化目标范围,开启老化流程:遍历老化链表,从老化链表首节点开始,直至老化游标指向的节点,对于遍历过程中的各节点,回调业务删除数据,遍历完成后,清空老化游标。
进一步地,本发明提供了一种用于路由器的数据老化系统,包括服务端和客户端,其中:
所述服务端,用于在新生成数据时,为数据分配数据标识ID,ID基于数据类型本端唯一;服务端发送数据时,不论数据是创建还是更新,递增该数据类型的更新版本号UPTNO,UPTNO基于数据类型本端唯一,然后携带数据的ID+UPTNO,回调业务填充数据内容至消息中;
所述客户端,用于在收到数据时回调业务解析数据,将数据与服务端的数据建立关联关系,设置其ID和UPTNO为服务端发送时携带的值;如果客户端的数据是新创建的,将数据插入老化链表尾部,否则将数据先从老化链表摘除,再重新插入尾部。
进一步地,所述用于路由器的数据老化系统还包括备服务端,所述备服务端只用来备份主服务端的数据,客户端只跟主服务端做数据交互;主备倒换后,原主服务端下线,原备服务端会自动升为主服务端。
进一步地,所述备服务端在上线后成为主服务端,用于在上线后向客户端发送数据同步消息,此时仅仅携带数据ID+UPTNO,不再回调业务填充数据内容;
所述客户端,用于在收到数据时,首先根据服务端携带的ID查找本地数据,如果没有找到,向服务端请求该数据,否则,将数据从老化链表中摘除,再重新插入老化链表尾部,继续比对本地数据的UPTNO和服务端携带的UPTNO,如果不同则向服务端请求该数据,否则不需要处理;客户端请求数据时,只需要将请求数据的数据ID发送给服务端;
所述服务端,用于在收全客户端请求的数据后,向客户端发送这部分数据,此时,需要携带数据ID和UPTNO,并回调业务填充数据内容;如果数据归属的业务模块主动通知了需要启动数据老化,将老化通知携带在同步消息中最后一个发送的数据中;
所述客户端,用于正常接收数据,如果解析出服务端携带的老化事件通知,启动老化任务:遍历老化链表,从老化链表首节点开始,直至老化游标指向的节点,对于遍历过程中的各节点,回调业务删除数据,最后将老化游标置空。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种用于路由器的数据老化方法,其特征在于,包括:
S1、服务端管理的每一个数据都有自己的数据标识ID和更新版本号UPTNO;
S2、客户端收到服务端发送的数据后,回调业务解析,将客户端的数据与服务端的数据建立关联关系;
S3、主备倒换,客户端感知到服务端下线后,遍历客户端中对应于该服务端的Svr下的DATASvr,将每一个垫层中的老化游标指向老化链的尾节点;
S4、备服务端上线后,向客户端发送数据同步消息,数据同步消息只携带ID+UPTNO,不填充数据内容;
S5、客户端收到数据同步消息后,根据ID在本地查找数据,如果没有找到,向服务端请求该数据,否则将该数据从老化链中移除,重新插入尾部,继续比对数据的UPTNO和消息中的UPTNO,如果不同则向服务端请求该数据,否则不需要请求。
2.如权利要求1所述的用于路由器的数据老化方法,其特征在于,还包括:
S6、服务端收全客户端请求的数据后,向客户端发送这部分数据,携带ID和UPTNO,回调业务填充数据,发完之后通知客户端启动老化;
S7、客户端收到老化通知后,找到DATASvr中的老化链,从首节点开始遍历,直至老化游标指向的节点,对于遍历过程中的各节点,回调业务删除数据。
3.如权利要求1或2所述的用于路由器的数据老化方法,其特征在于,在所述步骤S2中,将客户端的数据与服务端的数据建立关联关系,具体为:
设置其ID和UPTNO为服务端发送时携带的值,将数据挂接到DATASvr的老化链尾部,如果数据已经在其中,先从老化链移除,再插入尾部。
4.如权利要求1或2所述的用于路由器的数据老化方法,其特征在于,在所述步骤S1中,服务端管理的每一个数据都有自己的数据标识ID和更新版本号UPTNO,具体为:
服务端新生成数据时,为数据分配数据标识ID,ID基于数据类型本端唯一;
服务端发送数据时,不论数据是创建还是更新,递增该数据类型的更新版本号UPTNO,UPTNO基于数据类型本端唯一,然后携带数据的ID+UPTNO,回调业务填充数据内容至消息中。
5.如权利要求1或2所述的用于路由器的数据老化方法,其特征在于,在所述步骤S5中,客户端请求的数据只携带ID给服务端。
6.如权利要求2所述的用于路由器的数据老化方法,其特征在于,在所述步骤S6中,如果业务主动通知了需要启动数据老化,将老化通知携带在同步消息中最后一个发送的数据中。
7.如权利要求2所述的用于路由器的数据老化方法,其特征在于,在所述步骤S7中,回调业务删除数据后,将老化游标置空。
8.一种用于路由器的数据老化系统,其特征在于,包括服务端、备服务端和客户端,其中:
所述服务端,用于在新生成数据时,为数据分配数据标识ID,ID基于数据类型本端唯一;服务端发送数据时,不论数据是创建还是更新,递增该数据类型的更新版本号UPTNO,UPTNO基于数据类型本端唯一,然后携带数据的ID+UPTNO,回调业务填充数据内容至消息中;
所述客户端,用于在收到数据时回调业务解析数据,将数据与服务端的数据建立关联关系,设置其ID和UPTNO为服务端发送时携带的值;如果客户端的数据是新创建的,将数据插入老化链表尾部,否则将数据先从老化链表摘除,再重新插入尾部;
所述备服务端只用来备份主服务端的数据,客户端只跟主服务端做数据交互;主备倒换后,原主服务端下线,原备服务端会自动升为主服务端;
所述备服务端在上线后成为主服务端,用于在上线后向客户端发送数据同步消息,此时仅仅携带数据ID+UPTNO,不再回调业务填充数据内容;
所述客户端,用于在收到数据时,首先根据服务端携带的ID查找本地数据,如果没有找到,向服务端请求该数据,否则,将数据从老化链表中摘除,再重新插入老化链表尾部,继续比对本地数据的UPTNO和服务端携带的UPTNO,如果不同则向服务端请求该数据,否则不需要处理;客户端请求数据时,只需要将请求数据的数据ID发送给服务端。
9.如权利要求8所述的用于路由器的数据老化系统,其特征在于,
所述服务端,用于在收全客户端请求的数据后,向客户端发送这部分数据,此时,需要携带数据ID和UPTNO,并回调业务填充数据内容;如果数据归属的业务模块主动通知了需要启动数据老化,将老化通知携带在同步消息中最后一个发送的数据中;
所述客户端,用于正常接收数据,如果解析出服务端携带的老化事件通知,启动老化任务:遍历老化链表,从老化链表首节点开始,直至老化游标指向的节点,对于遍历过程中的各节点,回调业务删除数据,最后将老化游标置空。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110642286.3A CN113326275B (zh) | 2021-06-09 | 2021-06-09 | 一种用于路由器的数据老化方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110642286.3A CN113326275B (zh) | 2021-06-09 | 2021-06-09 | 一种用于路由器的数据老化方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113326275A CN113326275A (zh) | 2021-08-31 |
CN113326275B true CN113326275B (zh) | 2022-09-13 |
Family
ID=77420167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110642286.3A Active CN113326275B (zh) | 2021-06-09 | 2021-06-09 | 一种用于路由器的数据老化方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113326275B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1234159A (zh) * | 1996-09-24 | 1999-11-03 | 诺基亚电信公司 | 电信网中的分组路由选择 |
CN106878061A (zh) * | 2017-01-12 | 2017-06-20 | 烽火通信科技股份有限公司 | 一种实现数据通信设备配置同步的方法及装置 |
CN111149329A (zh) * | 2017-09-29 | 2020-05-12 | 芬基波尔有限责任公司 | 通过多个备用数据路径进行分组喷射的数据中心网络的结构控制协议 |
CN112583701A (zh) * | 2020-12-16 | 2021-03-30 | 焦点科技股份有限公司 | 一种基于版本号的高可靠消息机制来保证消息的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9818134B2 (en) * | 2015-04-02 | 2017-11-14 | Vungle, Inc. | Systems and methods for dynamic ad selection of multiple ads or ad campaigns on devices |
-
2021
- 2021-06-09 CN CN202110642286.3A patent/CN113326275B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1234159A (zh) * | 1996-09-24 | 1999-11-03 | 诺基亚电信公司 | 电信网中的分组路由选择 |
CN106878061A (zh) * | 2017-01-12 | 2017-06-20 | 烽火通信科技股份有限公司 | 一种实现数据通信设备配置同步的方法及装置 |
CN111149329A (zh) * | 2017-09-29 | 2020-05-12 | 芬基波尔有限责任公司 | 通过多个备用数据路径进行分组喷射的数据中心网络的结构控制协议 |
CN112583701A (zh) * | 2020-12-16 | 2021-03-30 | 焦点科技股份有限公司 | 一种基于版本号的高可靠消息机制来保证消息的方法 |
Non-Patent Citations (1)
Title |
---|
一种即时触发的PIT表项老化方法;黄慧群等;《信息工程大学学报》;20150430;第16卷(第2期);第152-156页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113326275A (zh) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107465767B (zh) | 一种数据同步的方法和系统 | |
KR20080068110A (ko) | 데이터 동기화 처리 방법 그리고 클라이언트 단말기, 서버및 그것의 데이터 동기화 시스템 | |
CN103580915B (zh) | 集群系统中确定主控节点的方法及装置 | |
CN110365750A (zh) | 服务注册系统及方法 | |
CN105814544B (zh) | 用于支持分布式数据网格中的持久化分区恢复的系统和方法 | |
CN107153660B (zh) | 分布式数据库系统的故障检测处理方法及其系统 | |
CN107623703B (zh) | 全局事务标识gtid的同步方法、装置及系统 | |
CN109639773B (zh) | 一种动态构建的分布式数据集群控制系统及其方法 | |
CN112052230B (zh) | 多机房数据同步方法、计算设备及存储介质 | |
CN112100004A (zh) | Redis集群节点的管理方法、存储介质 | |
CN103346914A (zh) | 分布式文件系统的拓扑结构更新方法和装置 | |
CN111694865A (zh) | 基于分布式系统的四层结构数据获取方法和装置 | |
WO2014177085A1 (zh) | 分布式多副本数据存储方法及装置 | |
CN106341251A (zh) | 基于双主控的主备倒换方法及装置 | |
CN114363350A (zh) | 一种服务治理系统及方法 | |
CN114900449A (zh) | 一种资源信息管理方法、系统及装置 | |
CN106850724B (zh) | 数据推送方法及装置 | |
CN106850747B (zh) | 一种分布式实时转码系统的转码节点管理系统及方法 | |
CN113326275B (zh) | 一种用于路由器的数据老化方法与系统 | |
CN102420746A (zh) | 组播流量的转发方法及网络设备 | |
CN110209986A (zh) | 内存状态数据同步方法及装置 | |
US20230396673A1 (en) | Checking State Consistency in a Log Replication Configuration | |
CN112069152A (zh) | 一种数据库集群升级方法、装置、设备以及存储介质 | |
CN112328685A (zh) | 一种全对等分布式数据库数据同步方法 | |
CN114598711B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |