CN113037797A - 数据处理方法及其装置 - Google Patents
数据处理方法及其装置 Download PDFInfo
- Publication number
- CN113037797A CN113037797A CN201911359364.8A CN201911359364A CN113037797A CN 113037797 A CN113037797 A CN 113037797A CN 201911359364 A CN201911359364 A CN 201911359364A CN 113037797 A CN113037797 A CN 113037797A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- target
- target node
- request
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据处理方法,可以用于存储系统中。请求节点向N个业务节点发送数据查询消息,请求节点接收M个查询应答消息,所述查询应答消息包括生产所述业务节点中的数据的节点信息,M为小于等于N的正整数,请求节点根据M个查询应答消息确定目标节点,请求节点向目标节点发送批量同步请求消息,请求节点接收目标节点发送的批量同步应答消息,批量同步应答消息包括目标节点中的数据,请求节点存储目标节点中的数据。本申请实施例可以同步目标节点生产的数据,且不向目标节点同步请求节点生产的数据,因此节省了系统的资源。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及一种数据处理方法及其装置。
背景技术
为了实现高可靠性,网络设备需要应用(APP,Application)支持独立升级和重启。为了进一步提高APP重启的业务恢复速度,通常将APP的状态数据外置到独立的数据库(DB,data base),从而业务进程重启后,可以通过读取DB中的状态数据,快速恢复到之前的状态。另外,设备内各个APP的状态数据通过DB集中外置,使得各个APP可以通过DB支持的订阅/发布机制,获得自己感兴趣的其他APP的状态数据,促进了业务进程间的解耦。
很多网络设备是由多个节点组成的,每个节点运行独立的操作系统(Operationsystem,OS)OS、DB和一些APP,它可以是网络设备里面的一块单板,如主处理单元(MainProcessing Unit,MPU)、线路处理单元(Line Processing Unit,LPU)或者业务处理单元(Service Processing Unit,SPU)或者单板上的某一个中央处理单元(CentralProcessing Unit,CPU),比如SPU上可能有多个CPU分别运行不同的OS、DB和APP。不同的节点上的APP都会产生数据,这些数据可能需要同步到其它的节点。
在传统的数据库同步中,主节点向从节点同步自己生产的数据,所以当主节点向从节点同步完成后,主节点和从节点上的数据库的内容是一致的,导致相同的数据内容冗余,浪费了系统资源。
发明内容
本申请提供了一种数据处理方法及其装置,用于同步目标节点生产的数据,且不向目标节点同步请求节点生产的数据,因此节省了系统的资源。
本申请第一方面提供了一种数据处理方法。
存储系统中的某一个节点需要向其他节点同步业务数据时,则该节点会根据该节点需要消费的数据类型向存储系统内的其他N个节点发送数据查询消息,该节点即为请求节点,该N个节点为N个业务节点。该N个业务节点包括和该请求节点消费相同数据类型的节点,还包括生产该请求节点消费数据的节点。该数据查询消息中携带了请求节点的节点类型的标识,该N为正整数。
当请求节点向N个业务节点发送数据查询消息之后,该请求节点会接收到M个查询应答消息,该M个查询应答消息是由该N个业务节点中的M个业务节点分别发送的,该M个查询应答消息中的每个查询应答消息是业务节点根据请求节点的节点类型的标识生成,每个查询应答消息包括生产该业务节点中的数据的节点信息,该M为小于等于N的正整数。
该请求节点根据M个查询应答消息确定需要同步数据的目标节点,该目标节点中至少一种数据类型为该请求节点消费的数据类型,该M个业务节点中包括该目标节点。
该请求节点确定完目标节点之后,生成批量同步请求消息,该批量同步请求消息用于向目标节点请求同步该目标节点中的数据,生成该批量同步请求消息之后,该请求节点会向该目标节点发送该批量同步请求消息。
请求节点向目标节点发送批量同步请求消息之后,请求节点会接收到目标节点发送的批量同步应答消息,该批量同步应答消息包括了该目标节点中的数据。
请求节点从该批量同步请求消息中获取到了该目标节点中的数据之后,则该请求节点存储该目标节点中的数据。
本申请中,请求节点根据接收的数据查询应答消息确定需要同步的目标节点,通过该目标节点发送的批量同步应答消息同步了目标节点中至少一种数据类型的数据,且不向目标节点同步请求节点生产的数据,因此节省了系统的资源。
可选地,在一种可能的实现方式中,该请求节点在向N个业务节点发送数据查询消息之前,该请求节点会从该请求节点本地的系统中获取该请求节点的配置信息,该请求节点的配置信息是基于存储系统中的数据库表配置的,该请求节点的配置信息包括该请求节点会生产和消费的数据类型。
本申请中,通过获取该配置信息,请求节点可以通过该配置信息确定该请求节点需要消费和生产的数据类型,进而向其他节点同步该请求节点的需要消费的数据,提升了方案的可实现性。
可选地,在一种可能的实现方式中,该请求节点获取该请求节点的配置信息的获取途径有很多种,例如,该请求节点的配置信息可以是在安装配置该请求节点时,在安装该请求节点的系统的软件安装包里包括有该请求节点的配置信息,或者,该请求节点的配置信息是由其他节点或者设备配置好之后发送给该请求节点的,或者,该请求节点的配置信息是在安装配置请求节点时,通过配置接口,采用命令行的方式输入到该请求节点中的。
该请求节点的配置信息可以是单独的文件,也可以是其他文件中的表项。
本申请中,请求节点可以通过多种途径获取配置信息,提升了方案的可实现性。
可选地,在一种可能的实现方式中,当请求节点需要修改该请求节点的配置信息时,可以通过用户配置接口进行修改,也可以通过系统中预留的命令行的方式进行修改。
本申请中,请求节点可以通过多种方式修改配置信息,提升了存储系统的灵活性。
可选地,在一种可能的实现方式中,该请求节点在向N个业务节点发送数据查询消息之前,该请求节点会从该请求节点本地的系统中获取该请求节点的优先级映射关系,该请求节点的优先级映射关系表示该请求节点中的数据的数据类型对应的不同的优先级。
本申请中,当请求节点向其他节点同步数据时,请求节点通过获取该优先级映射关系,可以在同步过程中通过该优先级映射关系优先同步优先级高的基础数据,而其他节点在接收到该优先级高的基础数据之后可以开始处理业务,缩短了业务恢复的时间。
可选地,在一种可能的实现方式中,该请求节点获取该请求节点的优先级映射关系的途径有很多种,例如,该请求节点的优先级映射关系可以是在安装配置该请求节点时,在安装该请求节点的系统的软件安装包里包括有该请求节点的优先级映射关系,或者,该请求节点的优先级映射关系是由其他节点或者设备配置好之后发送给该请求节点的,或者,该请求节点的优先级映射关系是在安装配置请求节点时,通过配置接口,采用命令行的方式输入到该请求节点中的。
该请求节点的优先级映射关系可以是单独的文件,也可以是其他文件中的表项。
本申请中,请求节点可以通过多种途径获取该优先级映射关系,提升了方案的可实现性。
可选地,在一种可能的实现方式中,当请求节点需要修改该请求节点的优先级映射关系时,可以通过用户配置接口进行修改,也可以通过系统中预留的命令行的方式进行修改。
本申请中,请求节点可以通过多种方式修改改优先级映射关系,提升了该存储系统的灵活性。
可选地,在一种可能的实现方式中,请求节点在生产数据时,生成对应的请求节点的版本信息,该请求节点的版本信息表示该请求节点生产的数据写入数据库后,请求节点生成该生产数据的版本信息。
当请求节点再次生产数据时,请求节点会更新该目标版本信息。该请求节点只有在生产数据时,才更新版本信息,如果是该请求节点从其他节点接收数据写入数据库时,则不更新该版本信息。
本申请中,请求节点通过生成请求节点的版本信息,在同步过程中,其他节点可以通过该版本信息确定需要同步的具体数据,而不需要同步冗余的数据,节省了存储系统的资源。
可选地,在一种可能的实现方式中,当请求节点配置安装完成之后,请求节点会向控制节点发送请求节点的注册信息,该请求节点的注册信息中包括该请求节点的节点类型信息,通信地址信息,节点标识信息等。控制节点接收到该请求节点发送的请求节点的注册信息之后,会存储该请求节点的注册信息中包含的数据。
该请求节点在向控制节点发送请求节点的注册信息之后,该请求节点还会向控制节点发送订阅节点信息变化通知,该订阅节点信息变化通知用于当该请求节点订阅的节点发生状态变化时,控制节点向该请求节点发送状态变化通知消息。
本申请中,通过向控制节点发送注册信息和订阅相关的节点信息,在存储系统中的节点发生变化时,可以通过控制节点获取该节点的状态变化通知,提升了存储系统的效率。
可选地,在一种可能的实现方式中,在请求节点向N个业务节点发送数据查询消息之前,请求节点会向控制节点发送节点查询消息,该节点查询消息包括向控制节点查询存储系统中所有节点的信息的指令。
当请求节点向控制节点发送节点查询消息之后,请求节点会接收到控制节点发送的数据服务节点信息,该数据服务节点的信息包括节点的类型信息,节点的通信地址,节点的标识等等信息。
请求节点接收到控制节点发送的数据服务节点信息之后,根据该数据服务节点信息中的节点的类型信息,并且结合该请求节点消费的数据类型确定n个业务节点,该n个业务节点包括和该请求节点消费相同数据的节点,还包括生产该请求节点消费数据的节点,n为正整数,该请求节点消费的数据类型从该请求节点的配置信息中获取。请求节点确定n个业务节点后,生成数据查询消息,该数据查询消息还包括请求节点的类型信息。
本申请中,通过向控制节点发送节点查询消息,并通过控制节点发送的数据节点信息获取到需要同步的节点的信息,提升了方案的可实现性。
可选地,在一种可能的实现方式中,请求节点接收到的查询应答消息中还包括发送该查询应答消息的业务节点从其他节点获取的、该请求节点需要的消费的数据的生产节点的信息,该请求节点根据接收到的M个查询应答消息以及该请求节点需要的数据,将发送M个查询应答消息的M个节点中生产或消费该请求节点需要的数据的节点确定为目标节点。
本申请中,通过查询应答消息中生产或消费该请求节点需要的数据的节点确定目标节点,提升了方案的可实现性。
可选地,请求节点接收到m个业务节点发送的m个查询应答消息,当该m个查询应答消息中不包括N个业务节点中P个业务节点发送的查询应答消息,则确定该P个业务节点为故障节点,该n,m和p为正整数。
该请求节点根据该故障节点的节点生产的数据的类型,从M个查询应答消息中确定消费该故障节点生产的数据的业务节点作为故障替代节点。
请求节点确定了故障替代节点之后,生成批量同步请求消息,并向该故障替代节点发送该批量同步请求消息,该批量同步请求消息用于向该故障替代节点同步故障节点生产的数据。
本申请中,通过查询应答消息确定故障节点,将查询应答消息中消费该故障节点生产的数据的业务节点作为故障替代节点,且请求该故障替代节点向该请求节点同步故障节点生产的数据,提升了存储系统的容错率。
可选地,在一种可能的实现方式中,请求节点接收m个业务节点发送的m个查询应答消息,当请求节点没有向P个业务节点发送数据查询消息,但m个业务节点发送的数据查询消息中还包括P个业务节点的标识,且请求节点根据配置信息确定该P个业务节点生产的数据的类型是该请求节点消费的类型,则可以确定该P个业务节点为故障节点,该n,m和p为正整数。
该请求节点根据该故障节点的节点生产的数据的类型,从M个查询应答消息中确定消费该故障节点生产的数据的业务节点作为故障替代节点。
请求节点确定了故障替代节点之后,生成批量同步请求消息,并向该故障替代节点发送该批量同步请求消息,该批量同步请求消息用于向该故障替代节点同步故障节点生产的数据。
本申请中,通过查询应答消息确定故障节点,将查询应答消息中消费该故障节点生产的数据的业务节点作为故障替代节点,且请求该故障替代节点向该请求节点同步故障节点生产的数据,提升了存储系统的容错率。
可选地,在一种可能的实现方式中,请求节点确定的故障替代节点和请求节点确定的目标节点相同,即请求节点确定的该目标节点还同步了故障节点生产的数据,则请求节点向目标节点发送批量同步请求消息,该批量同步请求消息用于向目标节点请求同步该目标节点生产的数据,且该批量同步请求消息中携带了故障节点的标识和需要同步的该故障节点生产的数据的标识。
本申请中,当目标节点和故障替代节点相同时,请求节点只需要向目标节点发送批量同步请求消息,即可同步该目标节点生产的数据和该故障节点生产数据,节省了存储系统的资源。
可选地,在一种可能的实现方式中,请求节点在存储了目标节点发送的数据之后,请求节点生成实时同步请求消息,该实时同步请求消息用于向目标节点请求同步在目标节点发送批量同步应答消息之后该目标节点生产的数据,请求节点向目标节点发送该实时同步请求消息。
请求节点向目标节点发送该实时同步请求消息之后,请求节点会接收到该目标节点发送的目标节点向请求节点发送批量同步应答消息之后目标节点生产的数据。
本申请中,请求节点向目标节点发送实时同步请求,并且同步了目标节点在向请求节点发送批量同步应答消息之后目标节点生产的数据,提升了数据同步的时效性。
本申请第二方面提供了一种数据处理方法。
存储系统中的某一个节点接收其他节点的请求,要向其他节点同步业务数据时,则该节点会先接收到其他节点发送的数据查询消息,该数据查询消息用于向该目标节点请求该目标节点中存储的数据的类型的信息,该节点即为目标节点,其他节点即为请求节点。
目标节点接收到请求节点发送的数据查询消息之后,目标节点根据该数据查询消息生成数据查询应答消息,该数据查询应答消息包括该目标节点中的数据的信息,该目标节点向请求节点发送该数据查询应答消息。
目标节点向请求节点发送数据查询应答消息之后,会接收到请求节点发送的批量同步请求消息,该批量同步请求消息用于向目标节点请求同步该目标节点中的存储的数据。
该目标节点在接收到请求节点发送的批量同步请求消息之后,目标节点从数据库中获取该目标节点中的数据,进而根据生产的数据生产批量同步应答消息,即该批量同步应答消息包括该目标节点生产的数据。
目标节点生产批量同步应答消息之后,目标节点向请求节点发送该批量同步应答消息,以使得该请求节点接收到该批量同步应答消息之后存储该批量应答消息中目标节点中的数据。
本申请中,目标节点接收请求节点的批量同步请求消息,并且向该请求节点同步该目标节点中至少一种数据类型的数据,而不向请求节点同步请求节点生产的数据,因此节省了系统的资源。
可选地,在一种可能的实现方式中,该目标节点接收其他节点发送的数据查询消息之前,该目标节点会从该目标节点本地的系统中获取该目标节点的配置信息,该目标节点的配置信息是基于存储系统中的数据库表配置的,该目标节点的配置信息包括该目标节点会生产和消费的数据类型。
本申请中,通过获取该配置信息,目标节点可以通过该配置信息确定该请求节点需要消费和生产的数据类型,进而向其他节点同步该请求节点的需要消费的数据,提升了方案的可实现性。
可选地,在一种可能的实现方式中,该目标节点获取该目标节点的配置信息的获取途径有很多种,例如,该目标节点的配置信息可以是在安装配置该目标节点时,在安装该目标节点的系统的软件安装包里包括有该目标节点的配置信息,或者,该目标节点的配置信息是由其他节点或者设备配置好之后发送给该目标节点的,或者,该目标节点的配置信息是在安装配置目标节点时,通过配置接口,采用命令行的方式输入到该目标节点中的。
该目标节点的配置信息可以是单独的文件,也可以是其他文件中的表项。
本申请中,请求节点可以通过多种途径获取配置信息,提升了方案的可实现性。
可选地,在一种可能的实现方式中,当目标节点需要修改该目标节点的配置信息时,可以通过用户配置接口进行修改,也可以通过系统中预留的命令行的方式进行修改。
本申请中,请求节点可以通过多种方式修改配置信息,提升了存储系统的灵活性。
可选地,在一种可能的实现方式中,该目标节点在向N个业务节点发送数据查询消息之前,该目标节点会从该目标节点本地的系统中获取该目标节点的优先级映射关系,该目标节点的优先级映射关系表示该目标节点中的数据的数据类型对应的不同的优先级。
本申请中,目标节点通过获取该优先级映射关系,可以在同步过程中通过该优先级映射关系优先同步优先级高的基础数据,而其他节点在接收到该优先级高的基础数据之后可以开始处理业务,缩短了业务恢复的时间。
可选地,在一种可能的实现方式中,该目标节点获取该目标节点的优先级映射关系的途径有很多种,例如,该目标节点的优先级映射关系可以是在安装配置该目标节点时,在安装该目标节点的系统的软件安装包里包括有该目标节点的优先级映射关系,或者,该目标节点的优先级映射关系是由其他节点或者设备配置好之后发送给该目标节点的,或者,该目标节点的优先级映射关系是在安装配置目标节点时,通过配置接口,采用命令行的方式输入到该目标节点中的。
该目标节点的优先级映射关系可以是单独的文件,也可以是其他文件中的表项。
本申请中,请求节点可以通过多种途径获取该优先级映射关系,提升了方案的可实现性。
可选地,在一种可能的实现方式中,当目标节点需要修改该目标节点的优先级映射关系时,可以通过用户配置接口进行修改,也可以通过系统中预留的命令行的方式进行修改。
本申请中,请求节点可以通过多种方式修改改优先级映射关系,提升了该存储系统的灵活性。
可选地,在一种可能的实现方式中,目标节点在生产数据时,生成对应的目标节点的版本信息,该目标节点的版本信息表示该目标节点生产的数据写入数据库后,目标节点生成该生产数据的版本信息。
当目标节点再次生产数据时,目标节点会更新该目标版本信息。该目标节点只有在生产数据时,才更新版本信息,如果是该目标节点从其他节点接收数据写入数据库时,则不更新该版本信息。
本申请中,请求节点通过生成请求节点的版本信息,在同步过程中,其他节点可以通过该版本信息确定需要同步的具体数据,而不需要同步冗余的数据,节省了存储系统的资源。
可选地,在一种可能的实现方式中,当目标节点配置安装完成之后,目标节点会向控制节点发送目标节点的注册信息,该目标节点的注册信息中包括该目标节点的节点类型信息,通信地址信息,节点标识信息等。控制节点接收到该目标节点发送的目标节点的注册信息之后,会存储该目标节点的注册信息中包含的数据。
该目标节点在向控制节点发送目标节点的注册信息之后,该目标节点还会向控制节点发送订阅节点信息变化通知,该订阅节点信息变化通知用于当该目标节点订阅的节点发生状态变化时,控制节点向该目标节点发送状态变化通知消息。
本申请中,通过向控制节点发送注册信息和订阅相关的节点信息,在存储系统中的节点发生变化时,可以通过控制节点获取该节点的状态变化通知,提升了存储系统的效率。
可选地,在一种可能的实现方式中,在目标节点在接收请求节点发送的数据查询消息之前,该目标节点还接收了P个业务节点发送的该P个业务节点生产的数据,P为正整数。
目标节点接收到请求节点发送的批量同步请求消息之后,目标节点根据批量同步请求消息中的故障节点的标识,和该故障节点生产的数据的标识,该故障节点的标识用于指示请求同步故障生产者生产的数据,该目标节点从数据库中获取该目标节点生产的数据和该故障节点生产的数据,进而根据该目标节点生产的数据和该故障节点生产的数据生产批量同步应答消息。
本申请中,目标节点通过接收到的批量同步请求消息中故障节点的标识和该故障节点生产的数据的标识,确定需要向该请求节点同步该目标节点生产的数据和该故障节点生产的数据,提升了存储系统的容错率。
可选地,在一种可能的实现方式中,该目标节点通过请求节点发送的批量同步请求消息确定需要向该请求节点发送的该目标节点生产的数据,该目标节点根据目标节点生产的数据和目标节点的优先级映射关系生成批量同步应答消息,即按照优先级高的数据到优先级低的数据的方式生成批量同步应答消息。
本申请中,目标节点通过该优先级映射关系优先同步优先级高的基础数据,而请求节点在接收到该优先级高的基础数据之后可以开始处理业务,缩短了业务恢复的时间。
可选地,在一种可能的实现方式中,该目标节点通过请求节点发送的批量同步请求消息确定需要向该请求节点发送的该目标节点生产的数据和P个业务节点生产的数据,该P个业务节点为故障节点,且该P个业务节点已经将生产的数据同步至该目标节点,该目标节点根据目标节点生产的数据、该P个业务节点生产的数据和目标节点的优先级映射关系生成批量同步应答消息,即按照优先级高的数据到优先级低的数据的方式生成批量同步应答消息。
本申请中,当目标节点同步了P个业务节点生产的数据,且根据请求节点发送的批量同步请求消息确定该P个业务节点为故障节点,目标节点向请求节点同步该目标节点生产的数据和该故障节点生产的数据,而不需要存储系统中的节点再重新生产该故障节点生产的数据,节省了存储系统的资源。
可选地,在一种可能的实现方式中,在目标节点进行批量同步时,目标节点会依次扫描数据库中该目标节点生产的各个表的数据并订阅这些表的变化,被扫描的表的数据会依次推送到数据传输通道,当在批量同步过程中,当数据库中目标节点生产的数据更新了,则目标节点判断该数据是否已经被扫描到且已经同步,如果该数据已经同步,则再次将该更新的数据和此时扫描到的数据一同放入数据传输通道中。
本申请中,目标节点再批量同步时,如果该目标节点生产了新的数据时,则将该新的数据和此刻扫描到的数据一同放入数据传输通道,提升了数据同步的时效性。
可选地,在一种可能的实现方式中,目标节点在批量同步完目标节点的所有生产数据之后,目标节点会向请求节点发送批量同步结束消息,该批量同步结束消息中会携带本地数据库的版本信息。
本申请中,在批量同步结束时,向请求节点发送批量同步结束消息,且携带批量同步结束时目标节点本地数据库的版本信息,使得请求节点在后续实时同步时不会同步冗余的数据,节省了系统的资源。
可选地,在一种可能的实现方式中,目标节点在向请求节点发送同步应答消息之后,目标节点会接收到请求节点发送的实时同步请求,该实时同步请求中携带了批量同步结束消息中携带的目标节点数据库的版本信息,该实时同步请求消息用于向目标节点请求同步在目标节点发送批量同步应答消息之后目标节点生产的数据。
该目标节点在接收到请求节点发送的实时同步请求消息之后,目标节点向该请求节点发送该目标节点向该请求节点发送批量同步应答消息之后该目标节点生产的数据。
本申请中,目标节点接收请求节点发送的实时同步请求,并且向请求节点同步了目标节点在向请求节点发送批量同步应答消息之后目标节点生产的数据,提升了数据同步的时效性。
可选地,在一种可能的实现方式中,该目标节点在接收到请求节点发送的批量同步请求消息之后,该目标节点启动一个定时器,如果在定时器超时之前,又收到了其他节点发送的批量同步请求消息,该其他节点发送的批量同步请求用于向目标节点请求同步和请求节点相同的数据,则目标节点将该其他节点和该请求节点加入到相同的组播组中进行数据同步,目标节点同时同步该组播组中的节点,该其他节点包括第二请求节点。
本申请中,目标节点在接收到请求节点发送的批量同步请求消息之后,启动定时器,且在定时器超时之前将向该目标节点请求批量同步相同数据的其他节点和该请求节点加入到相同的组播组中进行数据同步,而不需要分别进行同步,节省了系统的资源。
可选地,在一种可能的实现方式中,如果在批量同步时,组播组中有节点同步性能较低,影响整个组播组的同步性能,则将这些同步性能较低的节点从组播组中删除,将该同步性能较低的节点采用单播的方式进行数据同步的处理。
本申请中,目标节点在批量同步时,如果组播组中有同步性能较低的节点,则将该性能较低的节点从组播组中删除,该处理方式使组播组中的平均性能提高,进而提升了目标节点批量同步该组播组的效率。
可选地,在一种可能的实现方式中,如果从组播组中删除之后,该节点的同步性能提高了,进度赶上组播组同步进度时,则将该节点重新加入组播组进行数据同步。
本申请中,目标节点在批量同步时,如果将某节点从组播组中删除之后,该节点的进度赶上组播组的同步进度时,则将该节点重新加入到该组播组中,节省了系统的资源。
可选地,在一种可能的实现方式中,目标节点在接收到请求节点发送的实时同步请求之后,目标节点根据实时同步请求携带的版本信息确定需要同步的该目标节点发送批量同步应答消息之后该目标节点生产的数据,目标节点采用环形队列的方式同步该目标节点发送批量同步应答消息之后该目标节点生产的数据,该环形队列的同步方式根据该目标节点更新生产数据的先后顺序来进行同步,即优先同步该目标节点最先更新的生产数据。
本申请中,目标节点在接收到请求节点发送的实时同步请求之后,通过环形队列的方式同步该目标节点在发送批量同步应答消息之后该目标节点生产的数据,该环形队列的同步方式是根据该目标节点更新生产数据的先后顺序进行同步的,即请求请求节点优先接收到了目标节点最先更新的生产数据,提升了数据同步的时效性。
可选地,在一种可能的实现方式中,该环形队列中包括队列头指针,队列尾指针,一个或多个同步指针,该队列头指针指向的队列位置表示在环形队列中第一个被加入进来待同步的数据,队列尾指针指向的队列位置表示目标节点最新生产的数据,当目标节点更新一项生产数据时,队列尾指针向队列头指针方向移动一个队列位置,即该队列尾指针指向的队列位置包括该目标节点更新的一项生产数据,一个或多个同步指针表示不同的节点同步的数据的进度。该环形队列中每个队列位置包括数据库中对应的数据,该数据的数据类型,还有该数据对应的数据库版本信息。
本申请中,目标节点通过具体的环形队列的方式同步数据,提升了方案的可实现性。
可选地,在一种可能的实现方式中,目标节点采用环形队列的方式同步数据时,当队列尾指针的位置和队列头指针的位置重合时,则删除队列头指针指向的位置和距离队列头指针最近的同步指针指向的位置之间的数据,并且将队列头指针移动到距离队列头指针最近的同步指针指向的位置。
本申请中,目标节点在采用环形队列的方式同步数据时,当队列尾指针的位置和队列头指针的位置重合时,则删除队列头指针指向的位置和距离队列头指针最近的同步指针指向的位置之间的数据,提升了方案的可实现性。
本申请第三方面提供了一种节点装置。
发送单元,用于向N个业务节点发送数据查询消息,数据查询消息中携带请求节点的节点类型的标识,N为正整数;
接收单元,用于接收业务节点发送的M个查询应答消息,M个查询应答消息是由N个业务节点根据请求节点的节点类型的标识生成,查询应答消息包括生产业务节点中的数据的节点信息,M为小于等于N的正整数;
确定单元,用于根据M个查询应答消息确定目标节点,M个业务节点包括目标节点;
发送单元还用于向目标节点发送批量同步请求消息,批量同步请求消息用于请求同步目标节点中的数据;
接收单元还用于接收目标节点发送的批量同步应答消息,批量同步应答消息包括目标节点中的数据;
存储单元,用于存储目标节点中的数据。
可选地,所述节点装置还包括:
获取单元,用于获取请求节点的配置信息,请求节点的配置信息包括请求节点生产的数据的类型、请求节点消费的数据的类型以及每种类型的数据的同步方式。
可选地,发送单元还用于向控制节点发送节点查询消息,节点查询消息用于查询数据服务节点信息,数据服务节点信息包括与控制节点关联的节点的信息;
接收单元还用于接收控制节点发送的数据服务节点信息;
节点装置还包括:
生成单元,用于根据数据服务节点信息生成数据查询消息。
可选地,每个查询应答消息还包括发送查询应答消息的业务节点获取的、请求节点需要的数据的生产节点的信息;
确定单元具体用于根据M个查询应答消息以及请求节点需要的数据将生产或消费请求节点需要的数据的节点确定为目标节点。
可选地,N个业务节点还包括P个业务节点,P为小于N的正整数;
确定单元还用于,若M个查询应答消息中不包括P个业务节点发送的查询应答消息,则确定单元确定P个业务节点为故障节点;
确定单元还用于根据M个查询应答消息将消费P个业务节点生产的数据的节点确定为故障替代节点;
发送单元还用于向故障替代节点发送批量同步请求消息。
可选地,N个业务节点不包括K个业务节点,K和N为正整数;
确定单元还用于,若M个数据查询应答消息中包括K个业务节点的信息,且请求节点使用K个业务节点生产的数据,则确定单元确定K个业务节点为故障节点;
确定单元还用于根据M个查询应答消息将消费K个业务节点生产的数据的节点确定为故障替代节点;
发送单元还用于向故障替代节点发送批量同步请求消息。
可选地,故障替代节点是目标节点中的一个或多个。
可选地,发送单元还用于向目标节点发送实时同步请求消息;
接收单元还用于接收目标节点发送的批量同步应答消息之后目标节点生产的数据。
本申请第四方面提供了一种节点装置。
接收单元,用于接收请求节点发送的数据查询消息,数据查询消息中携带请求节点的节点类型的标识;
发送单元,用于向请求节点发送数据查询应答消息,数据查询应答消息由目标节点根据请求节点的节点类型的标识生成,数据查询应答消息包括生产所述业务节点中的所述请求节点需要消费的数据的节点的信息;
接收单元还用于接收请求节点发送的批量同步请求消息,批量同步请求消息用于请求同步目标节点中的数据;
生成单元,用于根据批量同步请求消息生成同步应答消息,同步应答消息包括目标节点中的数据;
发送单元还用于向请求节点发送同步应答消息,以使得请求节点存储目标节点中的数据。
可选地,发送单元还用于向控制节点发送注册信息,注册信息包括目标节点的信息。
可选地,节点装置还包括:
获取单元,用于获取目标配置信息,目标配置信息指示目标节点生产的的数据的类型、目标节点消费的数据的类型以及每种类型的数据的同步方式。
可选地,获取单元还用于获取目标节点的优先级映射关系,目标节点的优先级映射关系包括目标节点的每种数据的类型在数据同步时对应的优先级。
可选地,生成单元还用于生成目标版本信息,目标版本信息表示目标节点生产的数据的版本信息;
节点装置还包括:
更改单元,用于当目标节点更改目标节点生产的数据时,目标节点更新目标版本信息。
可选地,接收单元还用于接收P个业务节点发送的P个业务节点生产的数据,P为正整数;
若批量同步请求消息包括故障节点标识,同步应答消息还包括P个业务节点生产的数据。
可选地,节点装置还包括:
确定单元,用于通过批量同步请求消息确定待同步的目标节点中的数据;
生成单元还用于根据目标节点的优先级映射关系以及目标节点中的数据生成同步应答消息。
可选地,生成单元具体用于根据目标节点的优先级映射关系、P个业务节点生产的数据以及目标节点生产的数据生成同步应答消息。
可选地,节点装置还包括:
判断单元,用于当目标节点生产的数据发生变化时,判断单元判断目标节点生产的数据是否已经批量同步;
同步单元,用于若目标节点生产的数据已经批量同步,则同步单元批量同步目标节点生产的数据中发生变化的数据。
可选地,接收单元还用于接收请求节点的实时同步请求;
发送单元还用于根据实时同步请求向请求节点发送实时同步数据,实时同步数据包括目标节点向请求节点发送批量同步应答消息之后目标节点生产的数据。
可选地,节点装置还包括:
启动单元,用于启动定时器;
加入单元,用于在定时器到时之前,若目标节点接收到第二请求节点发送的第二批量同步请求消息,第二批量同步请求消息用于请求同步目标节点中的数据,则加入单元将第二请求节点和请求节点加入到相同的组播组,组播组用于向请求节点和第二请求节点传送相同的批量同步应答消息。
本申请第五方面提供了一种节点装置,包括处理器和存储器,所述处理器存储程序代码,所述处理器执行所述程序代码以实现申请第一方面及其各实现方式中的方法。
本申请第六方面提供了一种节点装置,包括处理器和存储器,所述处理器存储程序代码,所述处理器执行所述程序代码以实现申请第二方面及其各实现方式中的方法。
本申请第七方面提供了一种计算机存储介质,所述计算机存储介质中存储有指令,所述指令在所述计算机上执行时,使得计算机执行如本申请第一方面,和/或,第二方面实施方式所述的方法。
本申请第八方面提供了一种计算机程序产品,所述计算机程序产品在计算机上执行时,使得所述计算机执行如本申请第一方面,和/或,第二方面实施方式所述的方法。
本申请具有以下优点:
根据接收的数据查询应答消息确定需要同步的目标节点,该目标节点为主节点,通过目标节点发送的批量同步应答消息同步了目标节点生产的数据,且不向目标节点同步请求节点生产的数据,该请求节点为从节点,因此节省了系统的资源。
附图说明
图1为本申请实施例中的存储系统框架示意图;
图2为本申请实施例中数据处理方法一个流程示意图;
图3为本申请实施例中数据处理方法另一流程示意图;
图4为本申请实施例中一个数据同步过程示意图;
图5为本申请实施例中一个节点装置结构示意图;
图6为本申请实施例中另一节点装置结构示意图;
图7为本申请实施例中另一节点装置结构示意图;
图8为本申请实施例中另一节点装置结构示意图;
图9为本申请实施例中另一节点装置结构示意图。
具体实施方式
本申请实施例提供了一种数据处理方法,用于在数据存储中,请求节点根据接收到的数据查询应答消息确定需要同步的目标节点,并通过目标节点发送的批量同步应答消息同步该目标节点生产的数据,且不向该目标节点同步请求节点生产的数据,因此节省了系统的资源。
请参阅图1,为本申请提供的存储系统框架示意图。
本申请实施例提供了一种存储系统框架,该存储系统框架包括至少两个节点,还有至少一个服务治理中心,每个节点运行独立的操作系统(operation system,OS)、数据库(database,DB)和一些应用(application,APP),该服务治理中心包括一个OS,还可以包括DB和APP,在实际应用过程中,当服务治理中心只包括OS时,服务治理中心将数据存储于文件系统中。可以理解的是,本存储系统框架中还可以包括更多的节点和服务治理中心,本申请实施例仅以两个节点和一个服务治理中心为例进行说明,并不对本方法中的节点数量和服务治理中心数量做限制。
需要说明的是,在实际应用过程中,当一个存储系统存在多个服务治理中心时,则可以选择其中一个作为主服务治理中心,该存储系统中的其他服务治理中心将数据同步至该主服务治理中心。
节点可以是网络设备里面的一块单板,如主处理单元(main processing unit,MPU)、业务处理单元(service processing unit,SPU),或者还可以是单板上的某一个中央处理单元(central processing unit,CPU),在实际应用过程中,该节点还可以是其他类型的节点,例如线路处理单元(line processing unit,LPU),具体此处不做限定。
节点和服务治理中心可以是集成在一个设备里的,也可以分别设置在不同的网络设备里的。当节点和服务治理中心是集成在一个网络设备里时,节点和服务治理中心可以通过电性连接,当节点和服务治理中心分别在不同的网络设备里时,则可以通过有线网络连接或者无线网络连接的方式连接,本申请实施例中,对节点和服务治理中心的具体连接方式不做限定,只要该连接可以使节点和服务治理中心之间互相传输数据即可。
节点中还包括存储数据的数据库,用于做数据调度的分布式数据服务模块(distributed data service,DDS),还有系统中运行的APP。当APP生产数据时,APP会向DB发起写入请求,在数据写入到DB之后,DB会向DDS发送DB修改通知。当节点需要向其他节点同步数据时,DDS会向DB发起读数据请求,读取数据之后,DDS再向其他节点发送该读取的数据,其他节点的DDS接收到该数据之后,会将该数据写入其他节点的DB中,且其他节点的DB会向其他节点上的APP发送DB修改通知。
本申请实施例中生产数据表示该节点在处理业务过程中产生的数据,消费数据表示该节点在处理业务过程中需要用到的数据。
本申请实施例中的数据类型包括互联网安全协议(Internet protocolsecurity,IPsec)流表、网络地址转换(Network address translation,NAT)会话表、用户网络路由(user network routes,UNR)等,具体此处不做限定。
在本申请实施例中,为了方便描述,仅以节点作为执行主体描述具体的实施方式,即DDS、DB以及APP所执行的动作由该DDS、DB以及APP所在的节点为执行主体为例进行说明,并不对本申请实施例的执行主体进行限制。
下面结合图1的存储系统框架,对本申请实施例中的数据处理方法进行描述:
为了方便描述,本申请实施例中以控制节点表示服务治理中心,以请求节点和目标节点分别表示存储系统框架中的两个节点为例进行说明。
本申请实施例中,存储系统内可能出现故障节点,根据存储系统中是否存在故障节点的情况,本申请实施例的具体实施方式有几种,下面分别进行描述。
一、当存储系统中不存在故障节点时。
请参阅图2,为本申请提供的数据处理方法的一个实施例的流程示意图。
在步骤201中,目标节点获取目标配置信息。
目标节点从目标节点本地的系统中获取目标配置信息,该目标配置信息基于存储系统的数据库配置的,该目标配置信息包括该目标节点会生产和消费的数据类型。
可选地,在实际应用过程中,该目标配置信息还可以包括存储系统中各种类型的节点会生产和消费的数据类型,具体此处不做限定。
可选地,该目标配置信息获取的方式有很多种,例如,该目标配置信息可以是在安装配置目标节点时,在安装该目标节点的系统的软件安装包里包括有该目标配置信息,或者该目标配置信息是由其他节点或者设备配置好之后发送给该目标节点的,可以理解的是,该目标配置信息还可以从其他途径获取,例如该目标配置信息是在安装配置目标节点时,通过配置接口,采用命令行的方式输入到目标节点中的,具体此处不做限定。
该目标配置信息可以是单独的目标配置文件,也可以是其他配置文件中的表项,具体此处不做限定。
当需要修改该目标配置信息时,可以通过用户配置接口进行修改,也可以通过系统中预留的命令行的方式进行修改,具体此处不做限定。
在步骤202中,目标节点获取目标节点的优先级映射关系。
目标节点从系统中获取该目标节点的优先级映射关系,该优先级映射关系表示不同的数据类型对应不同的优先级。
在实际应用中,数据库中的各种数据之间存在依赖关系,不同数据其用途和重要性是不同的。在网络设备上,数据同步的目的是为了让各个节点上的应用能够直接从本地数据库获取数据进行业务处理,在应用进行业务处理的过程中,需要一些基础的业务数据,例如系统中的节点信息,或者基本的配置信息,如果这些基础类型的数据不优先同步,即使目标节点优先同步了其他业务数据,在没有基础类型的数据的情况下,也不能进一步处理其他业务数据。因此,需要配置优先级映射关系来指示在数据同步时,需要优先同步哪些数据类型。
该目标节点的优先级映射关系获取的方式有很多种,例如,该优先级映射关系可以是安装配置目标节点时,在软件安装包里包括有该优先级映射关系。
可选地,该优先级映射关系是由其他节点或者设备配置好之后发送给该目标节点的,可以理解的是,该优先级映射关系还可以从其他途径获取,例如该优先级映射关系是在安装配置目标节点时,通过配置接口,采用命令行的方式输入到目标节点中的,具体此处不做限定。
该优先级映射关系可以是单独的优先级映射关系文件,也可以是其他配置文件中的表项,具体此处不做限定。
当需要修改该优先级映射关系时,可以通过用户配置接口进行修改,也可以通过系统之预留的命令行的方式进行修改,具体此处不做限定。
在步骤203中,目标节点生成目标版本信息。
目标节点在生产数据时,生成对应的目标版本信息,该目标版本信息表示该目标节点生产的数据写入数据库时,目标节点生成生产数据的版本信息。
当目标节点再次生产数据时,则目标节点会更新该目标版本信息。例如,当前的版本号是1.1,当目标节点上的APP创建、更新和删除(create、update and delete,CUD)数据时,目标节点会基于该新的数据中每条不同的表项的数据更新该版本号,即目标节点上的APP生产了表项A,则目标节点更新该版本号到1.2,当APP将表项A更新为表项B,则目标节点更新该版本号到1.3,当APP继续将表项B删除时,则目标节点更新该版本号到1.4。
需要说明的是,只有目标节点生产数据时,目标节点才更新版本信息,如果是目标节点从其他节点接收的数据写入数据库时,则不更新版本信息。
在步骤204中,目标节点向控制节点发送注册信息。
当目标节点配置安装完成之后,目标节点会向控制节点发送注册信息,该注册信息中包括该目标节点的节点类型信息,通信地址信息等等,可以理解的是,还可以包括其他类型的基础信息,例如该目标节点的节点标识信息等,具体此处不做限定。控制节点接收到该注册信息之后,会存储该注册信息中包含的数据。
该目标节点在向控制节点发送注册信息之后,还可以向控制节点发送订阅节点信息变化通知,该订阅节点信息变化通知用于当与该目标节点相关的节点发生状态变化时,控制节点向该目标节点发送状态变化通知消息。例如,当该目标节点需要消费的数据是1,而生产该数据的节点故障了,该目标节点就会接收到控制节点发送的状态变化通知消息,该状态变化通知消息包含了该故障节点发生故障的信息。
在本申请实施例中,该目标节点在注册完成之后,也可以不向控制节点发送订阅节点信息变化通知,具体此处不做限定。
在步骤205中,请求节点向控制节点发送节点查询消息。
当请求节点需要向其他节点同步该请求节点需要消费的数据时,请求节点会生成节点查询消息,该节点查询消息包括向控制节点请求存储系统中生产或者消费该请求节点消费的数据的节点的信息指令。
请求节点向控制节点发送该节点查询消息。
可以理解的是,在实际应用过程中,该节点查询消息还可以包括向控制节点请求存储系统中所有节点的信息的指令,具体此处不做限定。
在步骤206中,控制节点向请求节点发送数据服务节点信息。
当控制节点接收到请求节点发送的节点查询消息之后,控制节点获取已经存储的节点的信息,该已经存储的节点的信息可以包括节点的类型信息,节点的通信地址,可以理解的是,该节点的信息还可以包括节点的标识等等信息。该控制节点根据获取到的节点的信息生成数据服务节点信息,并向请求节点发送数据服务节点信息。
在步骤207中,请求节点根据数据服务节点信息生成数据查询消息。
请求节点接收到控制节点发送的数据服务节点信息之后,根据该数据服务节点信息中的节点的类型信息,且结合该请求节点消费的数据类型确定n个业务节点,n为正整数,该请求节点消费的数据类型从该请求节点的配置信息中获取。请求节点确定n个业务节点后,生成数据查询消息,该数据查询消息还包括请求节点的类型信息。
该n个业务节点包括和该请求节点消费一种或者多种相同类型数据的节点,例如,业务节点A消费的数据类型是1,2和3,请求节点消费的数据类型是2,3和4,业务节点A消费的数据类型2、3与请求节点相同,则请求节点可以确定该业务节点A为需要同步数据的业务节点。
该n个业务节点还包括生产该请求节点一种或者多种消费数据类型的节点,例如,业务节点B生产的数据类型是1,2和3,请求节点消费的数据类型是2,3和4,业务节点B生产的数据2、3为请求节点需要消费的数据,则请求节点可以确定该业务节点B为需要同步数据的业务节点。
在步骤208中,请求节点向n个业务节点发送数据查询消息。
请求节点生成数据查询消息后,向n个业务节点发送数据查询消息。
图2中仅以业务节点包括两个节点为例进行说明,实际应用中,还可以包括更多节点,因此,请求节点向n个业务节点发送数据查询消息的动作,在图中,以步骤208虚线框内的多条带箭头的直线表示。
在步骤209中,n个业务节点向请求节点发送n个查询应答消息。
n个业务节点在接收到请求节点发送的数据查询消息之后,n个业务节点会从该数据查询消息中获取到该请求节点的节点类型信息,该n个业务节点根据该请求节点的节点类型信息从该n个业务节点中的配置信息获取到该请求节点需要消费的数据类型,该n个业务节点根据本地数据库中会生产该节点需要消费的数据类型的所有生产者的相关信息生成查询应答消息,并向请求节点发送n个查询应答消息。
在实际应用过程中,该查询应答消息中生产者的相关信息可以包括生产者的标识,数据库版本信息等。例如,MPU接收到了SPU的数据查询消息,该数据查询消息中携带的请求节点类型指示该请求节点的节点类型为SPU,则MPU根据配置信息,获取到SPU需要消费的数据类型包括IPSec流表,则MPU生成查询应答消息,该查询应答消息中携带MPU的标识,和MPU的数据库版本号。
图2中仅以业务节点包括两个节点为例进行说明,实际应用中,还可以包括更多节点,因此,n个业务节点向请求节点发送查询应答消息的动作,在图中,以步骤209虚线框内的多条带箭头的直线表示。
在步骤210中,请求节点根据n个查询应答消息以及请求节点需要的数据将生产或消费请求节点需要的数据的节点确定为目标节点。
请求节点接收n个业务节点发送的n个查询应答消息,在该查询应答消息中包含的生产者信息和请求节点确定的生产者信息相同,则请求节点从该n个业务节点中确定生产该请求节点消费的数据的节点为目标节点。
在步骤211中,请求节点向目标节点发送批量同步请求消息。
请求节点确定目标节点之后,生成批量同步请求消息,该批量同步请求消息用于向目标节点请求同步该目标节点生产的数据。
在步骤212中,目标节点根据批量同步请求消息生成批量同步应答消息。
目标节点接收到请求节点发送的批量同步请求消息之后,则从数据库中获取该目标节点生产的数据,进而根据生产的数据生成批量同步应答消息。
可选地,在根据生产的数据生成批量同步应答消息时,还可以根据数据的优先级映射关系生成批量同步应答消息。例如,该目标节点生产的数据是a,b,c对应的优先级映射关系从高到低依次是c,b,a,则该目标节点根据优先高的数据c优先生成批量同步应答消息,再依次根据b和a生成批量同步应答消息。
在批量同步时,需要同步的数据量很大,而不能将所有的数据都放在一个批量同步应答消息中,所以目标节点会生成多个批量同步应答消息,在请求节点接收到批量同步应答消息时,如果是先接收到了业务类数据类型的数据,而基础类数据类型的数据还没接收到,则不能进行相关的业务,而需要接收到基础类数据类型的数据之后,才能开展相关的业务,因此根据数据类型的优先级映射关系生成批量同步应答消息可以提升请求节点恢复数据业务的效率。
在目标节点进行批量同步时,目标节点会依次扫描数据库中该目标节点生产的各个表的数据并依次订阅这些表的变化,被扫描的表的数据会依次推送到数据传输通道,当在批量同步过程中,当目标节点订阅的表发生变化时,则目标节点判断该订阅的表是否已经同步,如果该订阅的表已经同步,则再次将发生变化的表和此刻扫描到的数据一同放入数据传输通道。例如,目标节点要发送优先级从低到高分别为1、2、3的表中a、b、c的数据,则先订阅表c,并扫描表c,表c扫描后,开始扫描表b,如果在扫描表b的过程中,表c的数据有更新,则表c更新的数据和表b的数据一起推送到数据传输通道,但是如果表a的数据有更新,因为表a的数据还未扫描和订阅到,因此不会优先推送表a的数据。
更具体地,当在同步某一张表中表项数据时,该表中的某一条表项数据发生了变化,则将该条表项数据和同步到的表项数据一同推送到数据传输通道中。例如,当扫描到表A的时候,表A中有10000条表项数据,目标节点依次按照第1条表项向第10000条表项的顺序进行推送,当推送到第1000条表项数据的时候,已经推送过的第100条表项数据发生了变化,则将该第100条表项数据和第1000条表项数据一同推送到数据传输通道中,当推送到第1500条表项数据时,还未推送到的第3000条表项数据发生了变化,则将第3000条表项数据和第1500条表项数据一同推送到数据传输通道中。
需要说明的是,在实际应用过程中,当在同步某一张表中表项数据时,还可以通过其他的方式来进行批量同步,例如,当正在推送该表中某一表项时,该表已经推送过的表项发生了变化,则将该发生了变化的表项和正在推送的表项一同推送到数据传输通道中,当还未推送的表项发生变化时,则不推送该还未发生变化的表项。例如,当开始扫描一个数据表的时候,该数据表中有10000条表项数据,目标节点依次按照第1条表项向第10000条表项的顺序进行推送,当推送到第1000条表项数据的时候,已经推送过的第100项表项数据发生了变化,则将该第100条表项数据和第1000条表项数据一同推送到数据传输通道中,当推送到第1500条表项数据的时候,第2000条表项数据发生了变化,则此刻只推送第1500条表项数据,不推送该第2000条数据。
可以理解的是,在批量同步过程中,如果有更新的数据不进行优先推送,还可以通过后面的步骤进行实时同步也可以,具体此处不做限定。
在批量同步过程中,如果收到了请求节点的批量同步请求后,可以启动一个定时器,该定时器的时间可以是0.5秒,也可以是0.3秒,在实际应用过程中,可以根据具体的情况制定该定时器的时间,此处不做限定。
如果在定时器超时之前,又收到了其他节点发送的批量同步请求,该其他节点发送的批量同步请求用于向目标节点请求同步和请求节点相同的数据,则将这些节点和请求节点一起加入到相同的组播组进行数据同步。
如果组播组中有节点同步性能较低,影响整个组播组的同步性能,则将这些同步性能较低的节点从组播组中删除,将该同步性能较低的节点采用单播的方式进行数据同步的处理。如果从组播组中删除之后,该节点的同步性能提高了,进度赶上组播组同步进度时,则将该节点重新加入组播组进行数据同步。
例如,A节点和B节点被加入到相同的组播组进行数据批量同步,实时监控A节点和B节点的同步速度,可以启动一个定时器,定时器结束时,B节点同步的数据量低于预设值,则将B节点从该组播组中删除。当B节点的同步的数据量高于预设值时,则将B节点重新加入到组播组中进行数据的批量同步。
在步骤213中,目标节点向请求节点发送批量同步应答消息。
目标节点根据生产的数据生成批量同步应答消息之后,向请求节点发送该批量同步应答消息。
在批量同步完目标节点的所有生产数据之后,目标节点会向请求节点发送批量同步结束消息,该批量同步结束消息中会携带本地数据库的版本信息。
在步骤214中,请求节点存储目标节点生产的数据。
请求节点接收到目标节点发送的批量同步应答消息之后,请求节点获取该批量同步应答消息中目标节点生产的数据,并将该目标节点生产的数据存储到数据库中。
在步骤215中,请求节点向目标节点发送实时同步请求消息。
在请求节点接收到目标节点发送的批量同步结束消息之后,请求节点会进行一些相关处理,例如系统的内存申请,批量同步的数据通道的撤销,建立新的数据传输通道等。请求节点完成相关处理之后,请求节点生成实时同步请求消息,且该实时同步请求中携带了批量同步结束消息中携带的目标节点数据库的版本信息,该实时同步请求消息用于向目标节点请求同步在目标节点发送批量同步应答消息之后目标节点生产的数据,请求节点向目标节点发送该实时同步请求消息。
在步骤216中,目标节点向请求节点发送批量同步应答消息之后目标节点生产的数据。
目标节点接收到实时同步请求消息之后,会根据该数据库中在向请求节点发送批量同步应答消息之后目标节点生产的数据生成报文信息,并向目标节点发送该报文信息。
在目标节点进行实时同步过程中,目标节点采用环形队列的方式同步数据。
请参阅图4,环形队列中包括队列头指针,队列尾指针,同步指针1,同步指针2,同步指针3,图4中的环形小方格代表一项数据,该数据包括数据库中的数据,该数据的数据类型,还有该数据的对应的数据库版本信息。
该版本信息包括版本号,该版本号可以根据生产数据的更新,按照递增或者递减的规律对应更新,例如版本号为1.1,当该节点的生产数据更新时,则版本号更新为1.2,或者版本号更新为1.5,可以理解的是,该版本号的更新方式还可以是其他方式,例如当该节点的生产数据更新时,版本号变更为1.0,只要版本号的更新遵循一定数学规律即可。
队列头指针401指向的数据表示在环形队列中第一个被加入进来待同步的数据,如果在同步的过程中,目标节点生产了一项新的数据,则将该新的数据加入到队列尾的位置,即队列尾指针402往逆时针方向移动一格。
每个同步指针表示一个实时同步任务,该同步指针的指向表示节点同步的进度。例如,目标节点接收了请求节点和第二请求节点的实时同步请求,请求节点和第二请求节点的节点类型相同,请参阅图4,请求节点的实时同步指针为同步指针1,第二请求节点的实时同步指针为同步指针2,同步指针1指向的位置表示请求节点实时同步到了第一数据,即从队列头指针到同步指针1指向的数据位置的数据是已经被请求节点同步了,同步指针2指向的位置表示第二请求节点实时同步到了第二数据,即从队列头指针到同步指针2指向的数据位置的数据已经被第二请求节点同步了,该第一数据的版本信息要高于第二数据的版本信息,即该第一数据加入环形队列的时间点要早于第二数据。
当目标节点生产的数据不断的增加到该环形队列中时,队列尾指针随着移动会向队列头指针靠近,当队列尾指针和队列头指针即将重合时,则删除队列头指针和距离队列头指针最近的同步指针之间的数据,并且将队列头指针移动到距离队列头指针最近的同步指针处,例如,请参阅图4,同步指针1是距离队列头指针最近的同步指针,当队列尾指针和队列头指针即将重合时,则删除队列头指针和同步指针1之间的数据,并且将队列头指针移动到同步指针1处。
在实际应用中,还可以通过其他方式移动队列头指针,例如在环形队列同步数据时,可以启动定时器,在定时器超时时,删除队列头指针和距离队列头指针最近的同步指针之间的数据,并且将队列头指针移动到距离队列头指针最近的同步指针处。
在环形队列中,当队列尾指针和队列头指针即将重合时,还有同步指针在队列头指针处,则对该同步指针对应的节点重新进行批量同步,需要说明的是,还可以有其他方式处理,例如在该环形队列中删除该同步指针,增加一个新的环形队列用于向该同步指针对应的节点实时同步数据,具体的处理方式,此处不做限定。
在本实施例中,目标节点配置了优先级映射关系,并且在同步的过程中,根据该优先级映射关系将基础的数据优先同步给请求节点,请求节点根据该基础的数据可以先进行相关的处理,因此缩短了请求节点相关业务恢复的时间。
二、当存储系统中存在故障节点时。
当存储系统中存在故障节点时,请求节点会根据M个查询应答消息确定该故障节点的故障替代节点,请参阅图3,为本申请提供的数据处理方法的另一实施例的流程示意图。
在步骤301中,目标节点获取目标配置信息。
在步骤302中,目标节点获取目标节点的优先级映射关系。
在步骤303中,目标节点生成目标版本信息。
在步骤304中,目标节点向控制节点发送注册信息。
在步骤305中,请求节点向控制节点发送节点查询消息。
在步骤306中,控制节点向请求节点发送数据服务节点信息。
在步骤307中,请求节点根据数据服务节点信息生成第一查询消息。
在步骤308中,请求节点向N个业务节点发送数据查询消息。
在步骤309中,n个业务节点向请求节点发送n个查询应答消息。
本实施例中的步骤301至310与前述图2所示实施例中的步骤201至210类似,此处不再赘述。
在步骤311中,请求节点确定P个业务节点为故障节点。
请求节点接收m个业务节点发送的m个查询应答消息,当该m个查询应答消息中不包括N个业务节点中p个业务节点发送的查询应答消息,则确定该P个业务节点为故障节点,n、m和p为正整数。
可选地,还可以通过其他方式确定该P个业务节点为故障节点。例如,请求节点接收m个业务节点发送的m个查询应答消息,当请求节点没有向P个业务节点发送数据查询消息,但m个业务节点发送的数据查询消息中还包括该P个业务节点的标识,且请求节点根据配置信息确定该P个业务节点生产的数据的类型是请求节点消费的类型,则可以确定该P个业务节点为故障节点。
在步骤312中,请求节点根据M个查询应答消息将消费P个业务节点生产的数据的节点确定为故障替代节点。
请求节点根据该故障节点生产的数据的类型,从M个查询应答消息中确定消费该故障节点生产的数据的其他节点作为故障替代节点。
具体的,该请求节点会获取该M个查询应答消息中消费该故障节点生产的数据的节点信息,当有多个节点同步了该故障节点的多个数据表时,且消费该故障节点生产的数据的节点中包括了和该请求节点的节点类型相同的节点,则该请求节点选择该类型相同的节点作为故障替代节点。
当消费该故障节点生产的数据的节点中未包含和该请求节点的节点类型相同的节点,则该请求节点需要针对该故障节点生产的数据的类型,确定Q个故障替代节点,该Q个故障替代节点分别消费了该故障节点中一种或多种数据类型的数据。
当该目标节点同步了故障节点生产的数据,则确定将该目标节点作为故障替代节点,即该请求节点确定向该目标节点同步该目标节点生产的数据和该故障节点生产的数据。
在步骤313中,请求节点向目标节点发送批量同步请求消息。
请求节点确定目标节点之后,生成批量同步请求消息,该批量同步请求消息用于向目标节点请求同步该目标节点生产的数据,且该批量同步请求消息中携带了故障节点的标识和需要同步的该故障节点生产的数据的标识。
示例性的,该批量同步请求消息中故障节点的标识如表1所示。
表1
批量同步请求消息 | 批量同步请求消息 | |
故障节点ID | ID1 | ID2 |
故障节点生产的表ID | ID3、ID4 |
如表1所示,当批量同步请求消息包括故障节点ID1和该故障节点生产的表ID3和表ID4,则该查询应答消息用于指示向故障替代节点同步该故障节点ID1中表ID3和表ID4。
当该批量同步请求消息中只有故障节点的标识ID2,则该批量同步请求消息用于指示向故障替代节点同步该故障节点ID2生产的所有数据。
在步骤314中,目标节点根据批量同步请求消息生成批量同步应答消息。
目标节点接收到请求节点发送的批量同步请求消息之后,目标节点根据批量同步请求消息中的故障节点的信息和该故障节点生产的数据的标识,从数据库中获取该目标节点生产的数据和该故障节点生产的数据,进而根据该目标节点生产的数据和该故障节点生产的数据生成批量同步应答消息。
在根据该目标节点生产的数据和该故障节点生产的数据生成批量同步应答消息时,还可以根据数据的优先级映射关系生成批量同步应答消息。例如,数据a,b,c对应的优先级映射关系从高到低依次是c,b,a,则该目标节点根据优先高的数据c优先生成批量同步应答消息,再依次根据b和a生成批量同步应答消息。
在批量同步时,需要同步的数据量很大,而不能将所有的数据都放在一个批量同步应答消息中,所以目标节点会生成多个批量同步应答消息,在请求节点接收到批量同步应答消息时,如果是先接收到了业务类数据类型的数据,而基础类数据类型的数据还没接收到,则不能进行相关的业务,而需要接收到基础类数据类型的数据之后,才能开展相关的业务,因此根据数据类型的优先级映射关系生成批量同步应答消息可以提升请求节点恢复数据业务的效率。
在目标节点进行批量同步时,目标节点会依次扫描数据库中该目标节点生产的各个表的数据并订阅这些表的变化,被扫描的表的数据会依次推送到数据传输通道,当在批量同步过程中,当目标节点订阅的表发生变化时,则目标节点判断该订阅的表是否已经、已经同步,如果该订阅的表已经同步,则再次将发生变化的表和此刻扫描到的数据一同放入数据传输通道。例如,目标节点要发送优先级从低到高分别为1、2、3的表中a、b、c的数据,则先订阅表c,并扫描表c,表c扫描后,开始扫描表b,如果在扫描表b的过程中,表c的数据有更新,则表c更新的数据和表b的数据一起推送到数据传输通道,但是如果表a的数据有更新,因为表a的数据还未扫描和订阅到,因此不会优先推送表a的数据。
更具体地,当在同步某一张表中表项数据时,该表中的某一条表项数据发生了变化,则将该条表项数据和同步到的表项数据一同推送到数据传输通道中。例如,当扫描到表A的时候,表A中有10000条表项数据,目标节点依次按照第1条表项向第10000条表项的顺序进行推送,当推送到第1000条表项数据的时候,已经推送过的第100条表项数据发生了变化,则将该第100条表项数据和第1000条表项数据一同推送到数据传输通道中,当推送到第1500条表项数据时,还未推送到的第3000条表项数据发生了变化,则将第3000条表项数据和第1500条表项数据一同推送到数据传输通道中。
需要说明的是,在实际应用过程中,当在同步某一张表中表项数据时,还可以通过其他的方式来进行批量同步,例如,当正在推送该表中某一表项时,该表已经推送过的表项发生了变化,则将该发生了变化的表项和正在推送的表项一同推送到数据传输通道中,当还未推送的表项发生变化时,则不推送该还未发生变化的表项。例如,当开始扫描一个数据表的时候,该数据表中有10000条表项数据,目标节点依次按照第1条表项向第10000条表项的顺序进行推送,当推送到第1000条表项数据的时候,已经推送过的第100项表项数据发生了变化,则将该第100条表项数据和第1000条表项数据一同推送到数据传输通道中,当推送到第1500条表项数据的时候,第2000条表项数据发生了变化,则此刻只推送第1500条表项数据,不推送该第2000条数据。
可以理解的是,在批量同步过程中,如果有更新的数据不进行优先推送,还可以通过后面的步骤进行实时同步也可以,具体此处不做限定。
在批量同步过程中,如果收到了请求节点的批量同步请求后,可以启动一个定时器,如果在定时器超时之前,又收到了其他节点发送的批量同步请求,该其他节点发送的批量同步请求用于向目标节点请求同步和请求节点相同的数据,则将这些节点和请求节点加入到相同的组播组进行数据同步,第二请求节点即为相同类型的其他节点。
如果组播组中有节点同步性能较低,影响整个组播组的同步性能,则将这些同步性能较低的节点从组播组中删除,将该同步性能较低的节点采用单播的方式进行数据同步的处理。如果从组播组中删除之后,该节点的同步性能提高了,进度赶上组播组同步进度时,则将该节点重新加入组播组进行数据同步。
例如,A节点和B节点被加入到相同的组播组进行数据批量同步,实时监控A节点和B节点的同步速度,可以启动一个定时器,定时器结束时,B节点同步的数据量低于预设值,则将B节点从该组播组中删除。当B节点的同步的数据量高于预设值时,则将B节点重新加入到组播组中进行数据的批量同步。
在步骤315中,目标节点向请求节点发送批量同步应答消息。
目标节点根据该目标节点生产的数据和该故障节点生产的数据生成批量同步应答消息之后,向请求节点发送该批量同步应答消息。
在批量同步完目标节点生产的所有数据和故障节点生产的所有数据之后,目标节点会向请求节点发送批量同步结束消息,该批量同步结束消息中会携带本地数据库的版本信息。
在步骤316中,请求节点存储目标节点生产的数据和故障节点生产的数据。
请求节点接收到目标节点发送的批量同步应答消息之后,请求节点获取该批量同步应答消息中目标节点生产的数据和故障节点生产的数据,并将该目标节点生产的数据和故障节点生产的数据存储到数据库中。
在步骤317中,请求节点向目标节点发送实时同步请求消息。
在步骤318中,目标节点向请求节点发送批量同步应答消息之后目标节点生产的数据。
本实施例中的步骤317和步骤318与前述图2所述实施例中的步骤215和步骤216类似,此处不再赘述。
需要说明的是,本实施例中当故障替代节点和目标节点不同时,则请求节点向故障替代节点发送批量同步请求消息,用于向故障替代节点同步故障节点生产的数据,相应的,故障替代节点接收到该批量同步请求消息之后,会根据该批量同步请求消息生成批量同步应答消息,并向该请求节点发送该批量同步应答消息。
可以理解的是,本实施例中的故障节点可以是一个,也可以是多个,相应的,故障替代节点也可以是一个或者多个,具体此处不做限定。
本实施例中,当存在故障节点时,请求节点通过查询应答消息确定该故障节点和该故障节点的故障替代节点,且通过故障替代节点同步该故障节点生产的数据,而不需要重新生产这些数据,缩短了业务恢复的时间。
上面对本申请实施例中的数据处理方法进行了描述,下面对本申请实施例中的节点装置进行描述,请参阅图5,为本申请提供的节点装置的一个实施例的结构示意图。
发送单元501,用于向N个业务节点发送数据查询消息,数据查询消息中携带请求节点的节点类型的标识,N为正整数;
接收单元502,用于接收业务节点发送的M个查询应答消息,M个查询应答消息是由N个业务节点根据请求节点的节点类型的标识生成,查询应答消息包括生产业务节点中的数据的节点信息,M为小于等于N的正整数;
确定单元503,用于根据M个查询应答消息确定目标节点,M个业务节点包括目标节点;
发送单元501还用于向目标节点发送批量同步请求消息,批量同步请求消息用于请求同步目标节点中的数据;
接收单元502还用于接收目标节点发送的批量同步应答消息,批量同步应答消息包括目标节点中的数据;
存储单元504,用于存储目标节点中的数据。
本实施例中,节点装置各单元所执行的操作与前述图2所示实施例描述的类似,此处不再赘述。
请参阅图6,为本申请提供的节点装置的另一实施例的结构示意图。
发送单元603,用于向N个业务节点发送数据查询消息,数据查询消息中携带请求节点的节点类型的标识,N为正整数;
接收单元604,用于接收业务节点发送的M个查询应答消息,M个查询应答消息是由N个业务节点根据请求节点的节点类型的标识生成,查询应答消息包括生产业务节点中的数据的节点信息,M为小于等于N的正整数;
确定单元605,用于根据M个查询应答消息确定目标节点,M个业务节点包括目标节点;
发送单元603还用于向目标节点发送批量同步请求消息,批量同步请求消息用于请求同步目标节点中的数据;
接收单元604还用于接收目标节点发送的批量同步应答消息,批量同步应答消息包括目标节点中的数据;
存储单元606,用于存储目标节点中的数据。
可选地,节点装置还包括:
获取单元601,用于获取请求节点的配置信息,请求节点的配置信息包括请求节点生产的数据的类型、请求节点消费的数据的类型以及每种类型的数据的同步方式。
可选地,发送单元603还用于向控制节点发送节点查询消息,节点查询消息用于查询数据服务节点信息,数据服务节点信息包括与控制节点关联的节点的信息;
接收单元604还用于接收控制节点发送的数据服务节点信息;
节点装置还包括:
生成单元602,用于根据数据服务节点信息生成数据查询消息。
可选地,每个查询应答消息还包括发送查询应答消息的业务节点获取的、请求节点需要的数据的生产节点的信息;
确定单元605具体用于根据M个查询应答消息以及请求节点需要的数据将生产或消费请求节点需要的数据的节点确定为目标节点。
可选地,N个业务节点还包括P个业务节点,P为小于N的正整数;
确定单元605还用于,若M个查询应答消息中不包括P个业务节点发送的查询应答消息,则确定单元确定P个业务节点为故障节点;
确定单元605还用于根据M个查询应答消息将消费P个业务节点生产的数据的节点确定为故障替代节点;
发送单元603还用于向故障替代节点发送批量同步请求消息。
可选地,N个业务节点不包括P个业务节点,P为小于N的正整数;
确定单元605还用于,若M个数据查询应答消息中包括P个业务节点的信息,且请求节点使用P个业务节点生产的数据,则确定单元确定P个业务节点为故障状态;
确定单元605还用于根据M个查询应答消息将消费P个业务节点生产的数据的节点确定为故障替代节点;
发送单元603还用于向故障替代节点发送批量同步请求消息。
可选地,故障替代节点是目标节点中的一个或多个。
可选地,发送单元603还用于向目标节点发送实时同步请求消息;
接收单元604还用于接收目标节点发送的批量同步应答消息之后目标节点生产的数据。
本实施例中,节点装置各单元所执行的操作与前述图3所示实施例描述的类似,此处不再赘述。
请参阅图7,为本申请提供的节点装置的另一实施例的结构示意图。
接收单元701,用于接收请求节点发送的数据查询消息,数据查询消息中携带请求节点的节点类型的标识;
发送单元702,用于向请求节点发送数据查询应答消息,数据查询应答消息由目标节点根据请求节点的节点类型的标识生成,数据查询应答消息包括生产所述业务节点中的所述请求节点需要消费的数据的节点的信息;
接收单元701还用于接收请求节点发送的批量同步请求消息,批量同步请求消息用于请求同步目标节点中的数据;
生成单元703,用于根据批量同步请求消息生成同步应答消息,同步应答消息包括目标节点中的数据;
发送单元702还用于向请求节点发送同步应答消息,以使得请求节点存储目标节点中的数据。
本实施例中,节点装置各单元所执行的操作与前述图2所示实施例描述的类似,此处不再赘述。
请参阅图8,为本申请提供的节点装置的另一实施例的结构示意图。
接收单元802,用于接收请求节点发送的数据查询消息,数据查询消息中携带请求节点的节点类型的标识;
发送单元804,用于向请求节点发送数据查询应答消息,数据查询应答消息由目标节点根据请求节点的节点类型的标识生成,数据查询应答消息包括生产所述业务节点中的所述请求节点需要消费的数据的节点的信息;
接收单元802还用于接收请求节点发送的批量同步请求消息,批量同步请求消息用于请求同步目标节点中的数据;
生成单元805,用于根据批量同步请求消息生成同步应答消息,同步应答消息包括目标节点中的数据;
发送单元804还用于向请求节点发送同步应答消息,以使得请求节点存储目标节点中的数据。
可选地,发送单元804还用于向控制节点发送注册信息,注册信息包括目标节点的信息。
可选地,节点装置还包括:
获取单元801,用于获取目标配置信息,目标配置信息指示目标节点生产的的数据的类型、目标节点消费的数据的类型以及每种类型的数据的同步方式。
可选地,获取单元801还用于获取目标节点的优先级映射关系,目标节点的优先级映射关系包括目标节点的每种数据的类型在数据同步时对应的优先级。
可选地,生成单元805还用于生成目标版本信息,目标版本信息表示目标节点生产的数据的版本信息;
节点装置还包括:
更改单元806,用于当目标节点更改目标节点生产的数据时,目标节点更新目标版本信息。
可选地,接收单元802还用于接收P个业务节点发送的P个业务节点生产的数据,P为正整数;
若批量同步请求消息包括故障节点标识,同步应答消息还包括P个业务节点生产的数据。
可选地,节点装置还包括:
确定单元810,用于通过批量同步请求消息确定待同步的目标节点中的数据;
生成单元805还用于根据目标节点的优先级映射关系以及目标节点生产的数据生成同步应答消息。
可选地,生成单元805具体用于根据目标节点的优先级映射关系、P个业务节点生产的数据以及目标节点生产的数据生成同步应答消息。
可选地,节点装置还包括:
判断单元803,用于当目标节点生产的数据发生变化时,判断单元判断目标节点生产的数据是否已经批量同步;
同步单元809,用于若目标节点生产的数据已经批量同步,则同步单元批量同步目标节点生产的数据中发生变化的数据。
可选地,接收单元802还用于接收请求节点的实时同步请求;
发送单元还用于根据实时同步请求向请求节点发送实时同步数据,实时同步数据包括目标节点向请求节点发送批量同步应答消息之后目标节点生产的数据。
可选地,节点装置还包括:
启动单元807,用于启动定时器;
加入单元808,用于在定时器到时之前,若目标节点接收到第二请求节点发送的第二批量同步请求消息,第二批量同步请求消息用于请求同步目标节点中的数据,则加入单元将第二请求节点和请求节点加入到相同的组播组,组播组用于向请求节点和第二请求节点传送相同的批量同步应答消息。
本实施例中,节点装置各单元所执行的操作与前述图3所示实施例描述的类似,此处不再赘述。
请参阅图9,本申请实施例中节点装置另一实施例包括:处理器901、存储器902、总线905、接口904,处理器901与存储器902、接口904相连,总线905分别连接处理器901、存储器902以及接口904,接口904用于接收或者发送数据,处理器901是单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。存储器902可以为随机存取存储器(random access memory,RAM),也可以为非易失性存储器(non-volatile memory),例如至少一个硬盘存储器。存储器902用于存储计算机执行指令。具体的,计算机执行指令中可以包括程序903。
本实施例中,该处理器901调用程序903时,可以使图9中的节点装置执行前述图2、或图3所示实施例中节点装置所执行的操作,具体此处不再赘述。
应理解,本申请以上实施例中的节点装置或存储系统中提及的处理器,或者本申请上述实施例提供的处理器,可以是中央处理单元(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请中以上实施例中的节点装置或存储系统等中的处理器的数量可以是一个,也可以是多个,可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。本申请实施例中的存储器的数量可以是一个,也可以是多个,可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。
还需要说明的是,当节点装置包括处理器(或处理单元)与存储器时,本申请中的处理器可以是与存储器集成在一起的,也可以是处理器与存储器通过接口连接,可以根据实际应用场景调整,并不作限定。
本申请实施例还提供了一种计算机程序或包括计算机程序的一种计算机程序产品,该计算机程序在某一计算机上执行时,将会使所述计算机实现上述任一方法实施例中与节点装置的方法流程。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述任一方法实施例中与节点装置相关的方法流程。
在上述图2-图3中各个实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本申请各实施例中提供的消息/帧/信息、模块或单元等的名称仅为示例,可以使用其他名称,只要消息/帧/信息、模块或单元等的作用相同即可。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本申请实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。
取决于语境,如在此所使用的词语“如果”或“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (38)
1.一种数据处理方法,其特征在于,包括:
请求节点向N个业务节点发送数据查询消息,所述数据查询消息中携带所述请求节点的节点类型的标识,所述N为正整数;
所述请求节点接收所述业务节点发送的M个查询应答消息,所述M个查询应答消息是由所述N个业务节点中的M个业务节点根据所述请求节点的节点类型的标识生成,所述查询应答消息包括生产所述业务节点中的数据的节点信息,所述M为小于等于所述N的正整数;
所述请求节点根据所述M个查询应答消息确定目标节点,所述M个业务节点包括所述目标节点;
所述请求节点向所述目标节点发送批量同步请求消息,所述批量同步请求消息用于请求同步所述目标节点中的数据;
所述请求节点接收所述目标节点发送的批量同步应答消息,所述批量同步应答消息包括所述目标节点中的数据;
所述请求节点存储所述目标节点中的数据。
2.根据权利要求1所述的方法,其特征在于,请求节点向N个业务节点发送数据查询消息之前,所述方法还包括:
所述请求节点获取请求节点的配置信息,所述请求节点的配置信息包括所述请求节点生产的数据的类型、所述请求节点消费的数据的类型以及每种类型的数据的同步方式。
3.根据权利要求1或2所述的方法,其特征在于,所述请求节点向N个业务节点发送数据查询消息之前,所述方法还包括:
所述请求节点向控制节点发送节点查询消息,所述节点查询消息用于查询数据服务节点信息,所述数据服务节点信息包括与所述控制节点关联的节点的信息;
所述请求节点接收所述控制节点发送的所述数据服务节点信息;
所述请求节点根据所述数据服务节点信息生成所述数据查询消息。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述每个查询应答消息还包括发送所述查询应答消息的业务节点获取的、所述请求节点需要的数据的生产节点的信息;所述请求节点根据所述M个查询应答消息确定目标节点包括:
所述请求节点根据所述M个查询应答消息以及所述请求节点需要的数据将生产或消费所述请求节点需要的数据的节点确定为所述目标节点。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述N个业务节点还包括P个业务节点,所述P为小于N的正整数;
所述请求节点接收M个查询应答消息之后,所述请求节点向所述目标节点发送批量同步请求消息之前,所述方法还包括:
若所述M个查询应答消息中不包括所述P个业务节点发送的查询应答消息,则所述请求节点确定所述P个业务节点为故障节点;
所述请求节点根据所述M个查询应答消息将消费所述P个业务节点生产的数据的节点确定为故障替代节点;
所述请求节点向所述故障替代节点发送批量同步请求消息。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述N个业务节点不包括K个业务节点,所述K和所述N为正整数;
所述请求节点接收M个查询应答消息之后,所述请求节点向所述目标节点发送批量同步请求消息之前,所述方法还包括:
若所述M个数据查询应答消息中包括所述K个业务节点的信息,且所述请求节点使用所述K个业务节点生产的数据,则所述请求节点确定所述K个业务节点为故障节点;
所述请求节点根据所述M个查询应答消息将消费所述K个业务节点生产的数据的节点确定为故障替代节点;
所述请求节点向故障替代节点发送批量同步请求消息。
7.根据权利要求5或6所述的方法,其特征在于,所述故障替代节点是所述目标节点中的一个或多个。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述请求节点存储所述目标节点中的数据之后,所述方法还包括:
所述请求节点向所述目标节点发送实时同步请求消息;
所述请求节点接收所述目标节点发送的批量同步应答消息之后所述目标节点生产的数据。
9.一种数据处理方法,其特征在于,包括:
目标节点接收请求节点发送的数据查询消息,所述数据查询消息中携带所述请求节点的节点类型的标识;
所述目标节点向所述请求节点发送数据查询应答消息,所述数据查询应答消息由所述目标节点根据所述请求节点的节点类型的标识生成,所述数据查询应答消息包括生产所述业务节点中的所述请求节点需要消费的数据的节点的信息;
所述目标节点接收所述请求节点发送的批量同步请求消息,所述批量同步请求消息用于请求同步所述目标节点中的数据;
所述目标节点根据所述批量同步请求消息生成同步应答消息,所述批量同步应答消息包括所述目标节点中的数据;
所述目标节点向所述请求节点发送所述同步应答消息,以使得所述请求节点存储所述目标节点中的数据。
10.根据权利要求9所述的方法,其特征在于,所述目标节点接收请求节点发送的数据查询消息之前,所述方法还包括:
所述目标节点向控制节点发送注册信息,所述注册信息包括所述目标节点的信息。
11.根据权利要求10所述的方法,其特征在于,所述目标节点向控制节点发送注册信息之前,所述方法还包括:
所述目标节点获取目标配置信息,所述目标配置信息指示所述目标节点生产的数据的类型、所述目标节点消费的数据的类型以及每种类型的数据的同步方式。
12.根据权利要求9至11中任一项所述的方法,其特征在于,目标节点接收请求节点发送的数据查询消息之前,所述方法还包括:
所述目标节点获取目标节点的优先级映射关系,所述目标节点的优先级映射关系包括所述目标节点的每种数据的类型在数据同步时对应的优先级。
13.根据权利要求9至12中任一项所述的方法,其特征在于,所述目标节点接收请求节点发送的数据查询消息之前,所述方法还包括:
所述目标节点生成目标版本信息,所述目标版本信息表示所述目标节点生产的数据的版本信息;
当所述目标节点更改所述目标节点生产的数据时,所述目标节点更新所述目标版本信息。
14.根据权利要求9至13中任一项所述的方法,其特征在于,所述目标节点接收请求节点发送的数据查询消息之前,所述方法还包括:
所述目标节点接收P个业务节点发送的所述P个业务节点生产的数据,所述P为正整数;
若所述批量同步请求消息包括故障节点标识,则所述同步应答消息还包括所述P个业务节点生产的数据。
15.根据权利要求9至14中任一项所述的方法,其特征在于,所述目标节点根据所述批量同步请求消息生成同步应答消息包括:
所述目标节点通过所述批量同步请求消息确定待同步的所述目标节点中的数据;
所述目标节点根据所述目标节点的优先级映射关系以及所述目标节点生产的数据生成所述同步应答消息。
16.根据权利要求15所述的方法,其特征在于,所述目标节点根据所述批量同步请求消息生成同步应答消息包括:
所述目标节点根据所述目标节点的优先级映射关系、所述P个业务节点生产的数据以及所述目标节点中的数据生成所述同步应答消息。
17.根据权利要求15或16所述的方法,其特征在于,所述方法还包括:
若所述目标节点生产的数据发生变化,则所述目标节点判断所述目标节点生产的数据是否已经批量同步;
若是,则所述目标节点批量同步所述目标节点生产的数据中发生变化的数据。
18.根据权利要求9至17中任一项所述的方法,其特征在于,所述目标节点向所述请求节点发送所述同步应答消息之后,所述方法还包括:
所述目标节点接收所述请求节点的实时同步请求;
所述目标节点根据所述实时同步请求向所述请求节点发送实时同步数据,所述实时同步数据包括所述目标节点向所述请求节点发送批量同步应答消息之后所述目标节点生产的数据。
19.根据权利要求9至18中任一项所述的方法,其特征在于,所述目标节点接收所述请求节点发送的批量同步请求消息之后,所述方法还包括:
所述目标节点启动定时器;
在所述定时器到时之前,若所述目标节点接收到第二请求节点发送的第二批量同步请求消息,所述第二批量同步请求消息用于请求同步所述目标节点中的数据,则所述目标节点将所述第二请求节点和所述请求节点加入到相同的组播组,所述组播组向请求节点和第二请求节点传送相同的生成批量同步应答消息。
20.一种节点装置,其特征在于,包括:
发送单元,用于向N个业务节点发送数据查询消息,所述数据查询消息中携带所述请求节点的节点类型的标识,所述N为正整数;
接收单元,用于接收所述业务节点发送的M个查询应答消息,所述M个查询应答消息是由所述N个业务节点根据所述请求节点的节点类型的标识生成,所述查询应答消息包括生产所述业务节点中的数据的节点信息,所述M为小于等于所述N的正整数;
确定单元,用于根据所述M个查询应答消息确定目标节点,所述M个业务节点包括所述目标节点;
所述发送单元还用于向所述目标节点发送批量同步请求消息,所述批量同步请求消息用于请求同步所述目标节点中的数据;
所述接收单元还用于接收所述目标节点发送的批量同步应答消息,所述批量同步应答消息包括所述目标节点中的数据;
存储单元,用于存储所述目标节点中的数据。
21.根据权利要求20所述的节点装置,其特征在于,所述节点装置还包括:
获取单元,用于获取请求节点的配置信息,所述请求节点的配置信息包括所述请求节点生产的数据的类型、所述请求节点消费的数据的类型以及每种类型的数据的同步方式。
22.根据权利要求20或21所述的节点装置,其特征在于,所述发送单元还用于向控制节点发送节点查询消息,所述节点查询消息用于查询数据服务节点信息,所述数据服务节点信息包括与所述控制节点关联的节点的信息;
所述接收单元还用于接收所述控制节点发送的所述数据服务节点信息;
所述节点装置还包括:
生成单元,用于根据所述数据服务节点信息生成所述数据查询消息。
23.根据权利要求20至22中任一项所述的节点装置,其特征在于,所述每个查询应答消息还包括发送所述查询应答消息的业务节点获取的、所述请求节点需要的数据的生产节点的信息;
所述确定单元具体用于根据所述M个查询应答消息以及所述请求节点需要的数据将生产或消费所述请求节点需要的数据的节点确定为所述目标节点。
24.根据权利要求20至23中任一项所述的节点装置,其特征在于,所述N个业务节点还包括P个业务节点,所述P为小于N的正整数;
所述确定单元还用于,若所述M个查询应答消息中不包括所述P个业务节点发送的查询应答消息,则所述确定单元确定所述P个业务节点为故障节点;
所述确定单元还用于根据所述M个查询应答消息将消费所述P个业务节点生产的数据的节点确定为故障替代节点;
所述发送单元还用于向所述故障替代节点发送批量同步请求消息。
25.根据权利要求20至23中任一项所述的节点装置,其特征在于,所述N个业务节点不包括K个业务节点,所述K和所述N为正整数;
所述确定单元还用于,若所述M个数据查询应答消息中包括所述K个业务节点的信息,且所述请求节点使用所述K个业务节点生产的数据,则所述确定单元确定所述K个业务节点为故障节点;
所述确定单元还用于根据所述M个查询应答消息将消费所述K个业务节点生产的数据的节点确定为故障替代节点;
所述发送单元还用于向故障替代节点发送批量同步请求消息。
26.根据权利要求24或25所述的节点装置,其特征在于,所述故障替代节点是所述目标节点中的一个或多个。
27.根据权利要求20至26中任一项所述的节点装置,其特征在于,所述发送单元还用于向所述目标节点发送实时同步请求消息;
所述接收单元还用于接收所述目标节点发送的批量同步应答消息之后所述目标节点生产的数据。
28.一种节点装置,其特征在于,包括:
接收单元,用于接收请求节点发送的数据查询消息,所述数据查询消息中携带所述请求节点的节点类型的标识;
发送单元,用于向所述请求节点发送数据查询应答消息,所述数据查询应答消息由所述目标节点根据所述请求节点的节点类型的标识生成,所述数据查询应答消息包括生产所述业务节点中的所述请求节点需要消费的数据的节点的信息;
所述接收单元还用于接收所述请求节点发送的批量同步请求消息,所述批量同步请求消息用于请求同步所述目标节点中的数据;
生成单元,用于根据所述批量同步请求消息生成同步应答消息,所述同步应答消息包括所述目标节点中的数据;
所述发送单元还用于向所述请求节点发送所述同步应答消息,以使得所述请求节点存储所述目标节点中的数据。
29.根据权利要求28所述的节点装置,其特征在于,所述发送单元还用于向控制节点发送注册信息,所述注册信息包括所述目标节点的信息。
30.根据权利要求29所述的节点装置,其特征在于,所述节点装置还包括:
获取单元,用于获取目标配置信息,所述目标配置信息指示所述目标节点生产的的数据的类型、所述目标节点消费的数据的类型以及每种类型的数据的同步方式。
31.根据权利要求28至30中任一项所述的节点装置,其特征在于,所述获取单元还用于获取目标节点的优先级映射关系,所述目标节点的优先级映射关系包括所述目标节点的每种数据的类型在数据同步时对应的优先级。
32.根据权利要求28至31中任一项所述的节点装置,其特征在于,所述生成单元还用于生成目标版本信息,所述目标版本信息表示所述目标节点生产的数据的版本信息;
所述节点装置还包括:
更改单元,用于当所述目标节点更改所述目标节点生产的数据时,所述目标节点更新所述目标版本信息。
33.根据权利要求28至32中任一项所述的节点装置,其特征在于,所述接收单元还用于接收P个业务节点发送的所述P个业务节点生产的数据,所述P为正整数;
若所述批量同步请求消息包括故障节点标识,所述同步应答消息还包括所述P个业务节点生产的数据。
34.根据权利要求28至33中任一项所述的节点装置,其特征在于,所述节点装置还包括:
确定单元,用于通过所述批量同步请求消息确定待同步的所述目标节点中的数据;
所述生成单元还用于根据所述目标节点的优先级映射关系以及所述目标节点生产的数据生成所述同步应答消息。
35.根据权利要求34所述的节点装置,其特征在于,所述生成单元具体用于根据所述目标节点的优先级映射关系、所述P个业务节点生产的数据以及所述目标节点中的数据生成所述同步应答消息。
36.根据权利要求34或35所述的节点装置,其特征在于,所述节点装置还包括:
判断单元,用于当所述目标节点生产的数据发生变化时,所述判断单元判断所述目标节点生产的数据是否已经批量同步;
同步单元,用于若所述目标节点生产的数据已经批量同步,则所述同步单元批量同步所述目标节点生产的数据中发生变化的数据。
37.根据权利要求28至36中任一项所述的节点装置,其特征在于,所述接收单元还用于接收所述请求节点的实时同步请求;
所述发送单元还用于根据所述实时同步请求向所述请求节点发送实时同步数据,所述实时同步数据包括所述目标节点向所述请求节点发送批量同步应答消息之后所述目标节点生产的数据。
38.根据权利要求28至36中任一项所述的节点装置,其特征在于,所述节点装置还包括:
启动单元,用于启动定时器;
加入单元,用于在所述定时器到时之前,若所述目标节点接收到第二请求节点发送的第二批量同步请求消息,所述第二批量同步请求消息用于请求同步所述目标节点中的数据,则所述加入单元将所述第二请求节点和所述请求节点加入到相同的组播组,所述组播组用于向请求节点和第二请求节点传送相同的批量同步应答消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911359364.8A CN113037797A (zh) | 2019-12-25 | 2019-12-25 | 数据处理方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911359364.8A CN113037797A (zh) | 2019-12-25 | 2019-12-25 | 数据处理方法及其装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113037797A true CN113037797A (zh) | 2021-06-25 |
Family
ID=76458687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911359364.8A Pending CN113037797A (zh) | 2019-12-25 | 2019-12-25 | 数据处理方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113037797A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115955319A (zh) * | 2023-03-14 | 2023-04-11 | 季华实验室 | 数据集生成系统 |
-
2019
- 2019-12-25 CN CN201911359364.8A patent/CN113037797A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115955319A (zh) * | 2023-03-14 | 2023-04-11 | 季华实验室 | 数据集生成系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10764369B2 (en) | Data storage method and server applicable to distributed server cluster | |
US20210176310A1 (en) | Data synchronization method and system | |
CN111143382B (zh) | 数据处理方法、系统和计算机可读存储介质 | |
US8095495B2 (en) | Exchange of syncronization data and metadata | |
US9367261B2 (en) | Computer system, data management method and data management program | |
CN112445626B (zh) | 一种基于消息中间件的数据处理方法和装置 | |
US10148739B2 (en) | M2M data querying and invoking methods, querying and invoking devices, and system | |
TW201629792A (zh) | 配置變更方法及設備 | |
CN110971702A (zh) | 服务调用方法、装置、计算机设备及存储介质 | |
CN111212135A (zh) | 消息订阅方法、装置、系统、电子设备及存储介质 | |
CN110417882B (zh) | 主节点的确定方法、装置和存储介质 | |
CN107025257B (zh) | 一种事务处理方法及装置 | |
WO2021087892A1 (zh) | 资源的订阅方法、设备及存储介质 | |
CN109189403B (zh) | 操作系统os批量安装方法、装置和网络设备 | |
CN113037797A (zh) | 数据处理方法及其装置 | |
CN110798358B (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
CN110955460B (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN112328560A (zh) | 一种文件调度方法和系统 | |
CN110071778B (zh) | 一种对时方法、装置、设备及介质 | |
CN112000850A (zh) | 进行数据处理的方法、装置、系统及设备 | |
CN108881452B (zh) | 一种数据同步的方法、装置及存储介质 | |
CN111404978A (zh) | 一种数据存储方法及云存储系统 | |
CN111629054B (zh) | 消息处理方法、装置、系统、电子设备及可读存储介质 | |
CN110071949B (zh) | 一种跨地理区域管理计算应用的系统、方法和装置 | |
CN114706923A (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 |