一种数据同步方法、装置、设备及可读存储介质与流程

文档序号:18164325发布日期:2019-07-13 09:30阅读:199来源:国知局
一种数据同步方法、装置、设备及可读存储介质与流程

本发明涉及计算机应用技术领域,特别是涉及一种数据同步方法、装置、设备及可读存储介质。



背景技术:

在双控制器存储系统中,双控制器之间需要进行大量的数据通信和信息同步。

现有的,为保障数据一致性,在双板(双控制器)中的本板(双控制器中的其中一个控制器)想要获取信息时,需发送索要请求给对板(双控制器中的另外一个控制器),对板收到索要请求后,再将内容发送给本板,然后本板在基于收到的内容对外提供服务。也就是说,在接收到用户的访问请求之后,发现访问请求的对象不在本板内时,则向对板索要。如此,会导致访问请求的响应时间过长,另外,双板之间的通信交互较多,导致占用系统资源。

综上所述,如何有效地减少板间通信时间等问题,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种数据同步方法、装置、设备及可读存储介质,通过同步板间数据,降低板间通信时间。

为解决上述技术问题,本发明提供如下技术方案:

一种数据同步方法,包括:

对传感器进行轮询,得到硬件数据,并判断所述硬件数据与历史硬件数据是否一致;

如果否,则利用所述硬件数据更新所述历史硬件数据,并记录数据修改信息;

将所述数据修改信息发送给目标板卡,以便所述目标板卡利用所述数据修改信息进行硬件数据同步。

优选地,对传感器进行轮询,得到硬件数据,包括:

按照所述传感器检测对象的改动频率对所述传感器进行轮询,得到所述硬件数据。

优选地,判断所述硬件数据与历史硬件数据是否一致,包括:

计算所述硬件数据的循环冗余校验码,并判断所述循环冗余校验码与所述历史硬件数据的循环冗余校验码是否相同;

若相同,则确定所述硬件数据与所述历史硬件数据一致;

若不同,则确定所述硬件数据与所述历史硬件数据不一致。

优选地,所述记录数据修改信息,包括:

记录数据修改的起始地址、偏移量、修改长度和所述测量标数据。

优选地,将所述数据修改信息发送给目标板卡,包括:

调用板间传输信息接口,将所述数据修改信息发送给所述目标板卡。

优选地,还包括:

在写入接口被调用时,将新写入的用户数据发送至所述目标板卡。

优选地,还包括:

按照定时周期,将指定同步信息发送至所述目标板卡,以便所述目标板卡利用所述同步数据进行数据同步,其中,所述同步信息包括所述用户数据和所述硬件数据。

一种数据同步装置,包括:

硬件数据获取模块,用于对传感器进行轮询,得到硬件数据,并判断所述硬件数据与历史硬件数据是否一致;

数据修改模块,用于在所述硬件数据与历史硬件数据不一致时,利用所述硬件数据更新所述历史硬件数据,并记录数据修改信息;

数据同步模块,用于将所述数据修改信息发送给目标板卡,以便所述目标板卡利用所述数据修改信息进行硬件数据同步。

一种数据同步设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述数据同步方法的步骤。

一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据同步方法的步骤。

应用本发明实施例所提供的方法,对传感器进行轮询,得到硬件数据,并判断硬件数据与历史硬件数据是否一致;如果否,则利用硬件数据更新历史硬件数据,并记录数据修改信息;将数据修改信息发送给目标板卡,以便目标板卡利用数据修改信息进行硬件数据同步。

本板通过轮询的方式,获得硬件数据。并在硬件数据发生变化时,利用硬件数据更新历史硬件数据,并记录更新过程中的数据修改信息。然后,将数据修改信息发送给目标板卡。目标板卡接收到数据修改信息时,基于该数据修改信息进行硬件数据同步。也就是说,该方法在数据发生变化时,便进行板间数据同步,如此,在接收到用户的访问请求时,便可直接从本板中读取相应数据,而无需与对板进行通信,如此,便可减少板间通信时间,减少占用板间资源,进一步还提高了访问请求的响应速度,提升用户体验。

相应地,本发明实施例还提供了与上述数据同步方法相对应的数据同步装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种数据同步方法的实施流程图;

图2为本发明实施例中一种数据同步装置的结构示意图;

图3为本发明实施例中一种数据同步设备的结构示意图;

图4为本发明实施例中一种数据同步设备的具体结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一:

请参考图1,图1为本发明实施例中一种数据同步方法的流程图,该方法可应用于双控存储系统中的板卡中,其中,目标板卡至双控存储系统中另外一个板卡。该方法包括以下步骤:

s101、对传感器进行轮询,得到硬件数据。

其中,硬件数据可包括:电压、温度、硬盘的在位状态、硬盘每条链路的连接情况、电源的在位情况和工作状态是否正常。其中,轮询方式可以为单播轮询或多播轮询,具体的轮询过程可参见常见的轮询机制,在此不再赘述。相应地,传感器即为可感知相应硬件数据的传感器,例如感知电压的电压表,感知温度的温度计。

优选地,考虑到有些硬件(如电源的在位情况)的改动频率相对较低,而有些硬件的改动频率相对较高(如硬盘每条链路的链接情况),若采用同样的轮询周期,当周期较长时,可能会出现无法平衡不同的改动频率,导致无法及时更新硬件数据;当周期较短时,获得硬件数据的频率过高,而导致进行无效数据一致性判断,导致浪费系统资源。为了避免出现上述问题,可按照传感器检测对象的改动频率,对传感器进行轮询,得到硬件数据。具体的,对于改动频率较低的检测对象,则可采用较长周期进行轮询;而对于改动频率较高的检测对象,则可采用较短周期进行轮询。

s102、判断硬件数据与历史硬件数据是否一致。

本板得到硬件数据之后,可判断该硬件数据与存储在本板的历史硬件数据是否一致,进而确定是否进行数据修改和同步操作。其中,判断硬件数据和历史硬件数据是否一致的方式可具体为基于循环冗余校验码进行判断,也可基于文档指纹进行判断,当然还有其他常规判断方式可选,例如逐字节比较。

具体的,若采用循环冗余校验码进行判断,则判断过程,包括:

步骤一、计算硬件数据的循环冗余校验码,并判断循环冗余校验码与历史硬件数据的循环冗余校验码是否相同;

步骤二、若相同,则确定硬件数据与历史硬件数据一致;

步骤三、若不同,则确定硬件数据与历史硬件数据不一致。

为便于描述,下面将上述三个步骤结合起来进行说明。

其中,循环冗余校验码(crc,cyclicredundancycheck)是数据通信领域中最常用的一种差错校验码,可检测出数据是否发生变化。具体的,在硬件数据的循环冗余校验码与历史硬件数据的循环冗余校验码不相同时,则可认定硬件数据与历史硬件数据不一致,即硬件数据发生了变化。

文档指纹(md5)对于数据差异较小的不同数据,通过md5运算后,结果都会有很大的改变。所以,如果硬件数据的md5值与历史硬件数据的md5值不相同时,则可直接认定硬件数据与历史硬件数据不一致。即,若采用文档指纹进行判断,则判断硬件数据与历史硬件数据是否一致的过程,与采用循环冗余验证码的方式相似,仅将计算循环冗余验证码替换为计算文档指纹即可,在此不再赘述。

得到判断结果之后,可根据具体的判断结果确定是否进行数据更改和数据同步操作。具体的,如果判断结果为不一致,则执行步骤s103的操作;如果判断结果为一致,则可无操作。

s103、利用硬件数据更新历史硬件数据,并记录数据修改信息。

当发现硬件数据和已存储的历史硬件数据不一致时,可利用该硬件数据对历史硬件数据进行更新。具体的,可通过覆盖写的方式,将硬件数据写入历史硬件数据的存储空间内,当然,还可通过修改的方式,对历史硬件数据进行修改,使其与硬件数据保存一致。在进行硬件数据更新时,可记录数据修改信息。其中,数据修改信息包括:记录数据修改的起始地址、偏移量、修改长度和测量标数据。具体的,数据修改信息具体可以为修改日志,且该修改日志中包括本次修改的具体详情,如数据修改的起始地址、偏移量、修改长度、测量标数据、修改时间和修改版本。

s104、将数据修改信息发送给目标板卡,以便目标板卡利用数据修改信息进行硬件数据同步。

完成硬件数据更新之后,将数据修改信息发送给目标板卡。其中,目标板卡可为与本板相对应的对板。目标板卡接收到数据修改信息之后,利用该数据修改信息进行硬件数据同步,即保证本板与对板的数据一致性。具体的,本板发送数据修改信息的方式可具体为调用板间传输信息接口,将数据修改信息发送给目标板卡。

例如,本板定期轮询读取需要的信息,将其填入的固定的位置(比如一个数组或者结构体中),轮询填充完成后做crc校验,跟上次crc校验值对比,发生变化则将这块信息内容通过串口发送对板;对板收到该块信息后,以覆盖写的方式,更新上次对板(发送同步内容的板)同步过来的内容。

应用本发明实施例所提供的方法,对传感器进行轮询,得到硬件数据,并判断硬件数据与历史硬件数据是否一致;如果否,则利用硬件数据更新历史硬件数据,并记录数据修改信息;将数据修改信息发送给目标板卡,以便目标板卡利用数据修改信息进行硬件数据同步。

本板通过轮询的方式,获得硬件数据。并在硬件数据发生变化时,利用硬件数据更新历史硬件数据,并记录更新过程中的数据修改信息。然后,将数据修改信息发送给目标板卡。目标板卡接收到数据修改信息时,基于该数据修改信息进行硬件数据同步。也就是说,该方法在数据发生变化时,便进行板间数据同步,如此,在接收到用户的访问请求时,便可直接从本板中读取相应数据,而无需与对板进行通信,如此,便可减少板间通信时间,减少占用板间资源,进一步还提高了访问请求的响应速度,提升用户体验。

需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。

优选地,考虑到双板之间还需同步用户数据,可在写入接口被调用时,将新写入的用户数据发送至目标板卡。写入接口被调用时,则表明有用户或上层应用对本板的用户数据进行修改,此时可将新写入的用户数据发送至目标板卡。其中,用户数据可为具体的用户存储数据,例如图片、文字、表格、库文件等存储对象。例如,用户做虚拟产品开发(vpd,virtualproductdevelopment)中sn(序列号)号的修改时,命令会下发到主板上,主板通过iic(inter-integratedcircuit,集成电路总线,是一种多向控制总线)总线去做背板内容的修改,修改成功后,同时修改主板内存中保存的信息,然后再次通过串口发送修改的内容到备板,备板收到修改内容后修改存储在内存中的信息。

优选地,为了保障双板数据的一致性,为避免出现更新不完整或遗漏的情况,还可按照定时周期,将指定同步信息发送至目标板卡,以便目标板卡利用同步数据进行数据同步,其中,同步信息包括用户数据和硬件数据。如此,便可存储对板数据,且可保障对板数据为最新数据,即保障数据的一致性,在此基础上,接收到用户访问请求时,便可直接从本板中读取对板信息,可减少板间通信,快速对用户访问请求进行应答。

实施例二:

相应于上面的方法实施例,本发明实施例还提供了一种数据同步装置,下文描述的数据同步装置与上文描述的数据同步方法可相互对应参照。

参见图2所示,该装置包括以下模块:

硬件数据获取模块101,用于对传感器进行轮询,得到硬件数据,并判断硬件数据与历史硬件数据是否一致;

数据修改模块102,用于在硬件数据与历史硬件数据不一致时,利用硬件数据更新历史硬件数据,并记录数据修改信息;

数据同步模块103,用于将数据修改信息发送给目标板卡,以便目标板卡利用数据修改信息进行硬件数据同步。

应用本发明实施例所提供的装置,对传感器进行轮询,得到硬件数据,并判断硬件数据与历史硬件数据是否一致;如果否,则利用硬件数据更新历史硬件数据,并记录数据修改信息;将数据修改信息发送给目标板卡,以便目标板卡利用数据修改信息进行硬件数据同步。

通过轮询的方式,获得硬件数据。并在硬件数据发生变化时,利用硬件数据更新历史硬件数据,并记录更新过程中的数据修改信息。然后,将数据修改信息发送给目标板卡。目标板卡接收到数据修改信息时,基于该数据修改信息进行硬件数据同步。也就是说,该装置在数据发生变化时,便进行板间数据同步,如此,在接收到用户的访问请求时,便可直接从本板中读取相应数据,而无需与对板进行通信,如此,便可减少板间通信时间,减少占用板间资源,进一步还提高了访问请求的响应速度,提升用户体验。

在本发明的一种具体实施方式中,硬件数据获取模块101,具体用于按照传感器检测对象的改动频率,对传感器进行轮询,得到硬件数据。

在本发明的一种具体实施方式中,硬件数据获取模块101,具体用于计算硬件数据的循环冗余校验码,并判断循环冗余校验码与历史硬件数据的循环冗余校验码是否相同;若相同,则确定硬件数据与历史硬件数据一致;若不同,则确定硬件数据与历史硬件数据不一致。

在本发明的一种具体实施方式中,数据修改模块102,具体用于记录数据修改的起始地址、偏移量、修改长度和测量标数据。

在本发明的一种具体实施方式中,数据同步模块103,具体用于调用板间传输信息接口,将数据修改信息发送给目标板卡。

在本发明的一种具体实施方式中,还包括:

用户数据同步模块,用于在写入接口被调用时,将新写入的用户数据发送至目标板卡。

在本发明的一种具体实施方式中,还包括:

周期同步模块,用于按照定时周期,将指定同步信息发送至目标板卡,以便目标板卡利用同步数据进行数据同步,其中,同步信息包括用户数据和硬件数据。

实施例三:

相应于上面的方法实施例,本发明实施例还提供了一种数据同步设备,下文描述的一种数据同步设备与上文描述的一种数据同步方法可相互对应参照。

参见图3所示,该数据同步设备包括:

存储器d1,用于存储计算机程序;

处理器d2,用于执行计算机程序时实现上述方法实施例的数据同步方法的步骤。

具体的,请参考图4,图4为本实施例提供的一种数据同步设备的具体结构示意图,该数据同步设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在数据同步设备301上执行存储介质330中的一系列指令操作。

数据同步设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等。

上文所描述的数据同步方法中的步骤可以由数据同步设备的结构实现。

实施例四:

相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种数据同步方法可相互对应参照。

一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的数据同步方法的步骤。

该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1