CN116455753B - 一种数据平滑方法及装置 - Google Patents
一种数据平滑方法及装置 Download PDFInfo
- Publication number
- CN116455753B CN116455753B CN202310710938.1A CN202310710938A CN116455753B CN 116455753 B CN116455753 B CN 116455753B CN 202310710938 A CN202310710938 A CN 202310710938A CN 116455753 B CN116455753 B CN 116455753B
- Authority
- CN
- China
- Prior art keywords
- data
- data structure
- smoothed
- board
- array
- 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
- 238000009499 grossing Methods 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012795 verification Methods 0.000 claims abstract description 113
- 238000003491 array Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 9
- 238000004891 communication Methods 0.000 description 14
- 102100032919 Chromobox protein homolog 1 Human genes 0.000 description 10
- 101000797584 Homo sapiens Chromobox protein homolog 1 Proteins 0.000 description 10
- 238000004590 computer program Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 229910004444 SUB1 Inorganic materials 0.000 description 2
- 229910004438 SUB2 Inorganic materials 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- 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/08—Configuration management of networks or network elements
- H04L41/0866—Checking the configuration
-
- 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/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- 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
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请实施例提供了一种数据平滑方法及装置,涉及数据处理技术领域,该方法应用于主板,主板的待平滑数据模块中包括层级数据结构,层级数据结构中除末尾级以外的每级数据结构中存储有该级数据结构下一层级的各成员数据结构的数量对应的校验值;该方法包括:向待平滑板发送当前待校验层级包括的至少一个数据结构的校验值;接收待平滑板发送的校验结果,若校验结果指示至少一个数据结构中的指定数据结构校验未通过,则判断层级数据结构中是否包括指定数据结构的下一层级的成员数据结构;若是,则将指定数据结构的下一层级作为当前待校验层级,重复执行上述步骤,直至向待平滑板发送指定数据结构中的数据为止。能够减少数据平滑操作的耗时。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据平滑方法及装置。
背景技术
交换机或路由器等设备中包括主板和其他板,其他板可以为:备用板和接口板等各种不同角色的板,交换机或路由器等设备工作时,可能会出现主板和其他板中的数据不一致的情况,需要对其他板中的待平滑数据进行平滑操作,以使得主板中的标准数据和其他板中的待平滑数据保持一致。
以主板和备用板之间的数据平滑操作为例,目前的平滑方法是将主板中的数据逐条发送到备用板中,备用板根据主板发送的数据对自身存储的数据进行更新,以使得自身存储的数据与主板中的数据一致。当主板中的数据量较大时,主板和备用板之间需要传输大量 数据,导致数据平滑操作耗时较长。
发明内容
本申请实施例的目的在于提供一种数据平滑方法及装置,以减少数据平滑操作的耗时。具体技术方案如下:
第一方面,本申请实施例提供一种数据平滑方法,应用于主板,所述主板的待平滑数据模块中包括层级数据结构,所述层级数据结构中除末尾级以外的每级数据结构中存储有该级数据结构下一层级的各成员数据结构的数量对应的校验值;所述方法包括:
确定所述层级数据结构中的当前待校验层级;
向待平滑板发送所述当前待校验层级包括的至少一个数据结构的校验值;
接收所述待平滑板发送的校验结果,若所述校验结果指示所述至少一个数据结构中的指定数据结构校验未通过,则判断所述层级数据结构中是否包括所述指定数据结构的下一层级的成员数据结构;
若是,则将所述指定数据结构的下一层级作为当前待校验层级,重复执行所述向待平滑板发送所述当前待校验层级包括的至少一个数据结构的校验值、接收所述待平滑板发送的校验结果,若所述校验结果指示所述至少一个数据结构中的指定数据结构校验未通过,则判断所述层级数据结构中是否包括所述指定数据结构的下一层级的成员数据结构的步骤,直至所述层级数据结构中不包括所述指定数据结构的下一层级的成员数据结构,向所述待平滑板发送所述指定数据结构中的数据为止;
若否,则向所述待平滑板发送所述指定数据结构中的数据。
在一种可能的实现方式中,所述待平滑数据模块包括至少一个数组元素,每个数组元素包括一个层级数据结构;在所述确定所述层级数据结构中的当前待校验层级之前,所述方法还包括:
获取所述至少一个数组元素中每个数组元素的校验值;
向所述待平滑板发送所述至少一个数组元素的校验值;
接收所述待平滑板发送的数组元素校验结果;
若所述数组元素校验结果指示所述至少一个数组元素校验通过,则将所述待平滑板置为有效状态;
所述确定所述层级数据结构中的当前待校验层级,包括:
若所述数组元素校验结果指示所述至少一个数组元素中的指定数组元素校验未通过,则从所述指定数组元素包括的层级数据结构中确定当前待校验层级。
在一种可能的实现方式中,所述待平滑数据模块包括至少一类数据,每类数据对应的数组中包括至少一个数组元素;在所述获取多个数组元素的校验值之前,所述方法还包括:
针对每类数据,获取该类数据对应的数组的校验值,向所述待平滑板发送该类数据对应的数组的校验值,并接收所述待平滑板发送的该类数据的数组校验结果;
若所述至少一类数据中每类数据的数组校验结果均指示数组校验通过,则将所述待平滑板置为有效状态;
所述获取所述至少一个数组元素中每个数组元素的校验值,包括:
若接收到的数组校验结果中包括用于指示指定数组校验未通过的数组校验结果,则获取所述指定数组包括的至少一个数组元素中每个数组元素的校验值。
在一种可能的实现方式中,在所述针对每类数据,获取该类数据对应的数组的校验值之前,所述方法还包括:
获取所述待平滑数据模块的总校验值,所述总校验值是基于所述待平滑数据模块中各类数据对应的数组的校验值得到的;
向所述待平滑板发送所述总校验值;
接收所述待平滑板发送的总校验值校验结果;
若所述总校验值校验结果指示所述主板中所述待平滑数据模块的总校验值与所述待平滑板中所述待平滑数据模块的总校验值相同,则将所述待平滑板置为有效状态。
在一种可能的实现方式中,每一数据结构的校验值为该数据结构中存储的第一信息和第二信息的校验值,所述第一信息为该数据结构中的数据,所述第二信息为该数据结构下属的各成员数据结构的校验值。
在一种可能的实现方式中,所述层级数据结构包括指针型数据结构,所述指针型数据结构的校验值为第三信息和第四信息的校验值,所述第三信息为所述指针型数据结构中除指针的值之外的数据,所述第四信息为所述指针指向的数据的校验值。
第二方面,本申请实施例提供一种数据平滑装置,应用于主板,所述主板的待平滑数据模块中包括层级数据结构,所述层级数据结构中除末尾级以外的每级数据结构中存储有该级数据结构下一层级的各成员数据结构的数量对应的校验值;所述装置包括:
确定模块,用于确定所述层级数据结构中的当前待校验层级;
发送模块,用于向待平滑板发送所述当前待校验层级包括的至少一个数据结构的校验值;
接收模块,用于接收所述待平滑板发送的校验结果;
判断模块,用于若所述校验结果指示所述至少一个数据结构中的指定数据结构校验未通过,则判断所述层级数据结构中是否包括所述指定数据结构的下一层级的成员数据结构;若判断结果为是,则将所述指定数据结构的下一层级作为当前待校验层级,并触发所述发送模块、所述接收模块和所述判断模块重复执行所述向待平滑板发送所述当前待校验层级包括的至少一个数据结构的校验值、接收所述待平滑板发送的校验结果,若所述校验结果指示所述至少一个数据结构中的指定数据结构校验未通过,则判断所述层级数据结构中是否包括所述指定数据结构的下一层级的成员数据结构的步骤,直至所述层级数据结构中不包括所述指定数据结构的下一层级的成员数据结构,触发所述发送模块向所述待平滑板发送所述指定数据结构中的数据为止;
所述发送模块,用于若所述判断模块的判断结果为否,则向所述待平滑板发送所述指定数据结构中的数据。
在一种可能的实现方式中,所述待平滑数据模块包括至少一个数组元素,每个数组元素包括一个层级数据结构;所述装置还包括:
获取模块,用于获取所述至少一个数组元素中每个数组元素的校验值;
所述发送模块,还用于向所述待平滑板发送所述至少一个数组元素的校验值;
所述接收模块,还用于接收所述待平滑板发送的数组元素校验结果;
状态管理模块,用于若所述数组元素校验结果指示所述至少一个数组元素校验通过,则将所述待平滑板置为有效状态;
所述确定模块,具体用于若所述数组元素校验结果指示所述至少一个数组元素中的指定数组元素校验未通过,则从所述指定数组元素包括的层级数据结构中确定当前待校验层级。
在一种可能的实现方式中,所述待平滑数据模块包括至少一类数据,每类数据对应的数组中包括至少一个数组元素;
所述获取模块,还用于针对每类数据,获取该类数据对应的数组的校验值;
所述发送模块,还用于向所述待平滑板发送该类数据对应的数组的校验值;
所述接收模块,还用于接收所述待平滑板发送的该类数据的数组校验结果;
所述状态管理模块,还用于若所述至少一类数据中每类数据的数组校验结果均指示数组校验通过,则将所述待平滑板置为有效状态;
所述获取模块,具体用于若接收到的数组校验结果中包括用于指示指定数组校验未通过的数组校验结果,则获取所述指定数组包括的至少一个数组元素中每个数组元素的校验值。
在一种可能的实现方式中,所述获取模块,还用于获取所述待平滑数据模块的总校验值,所述总校验值是基于所述待平滑数据模块中各类数据对应的数组的校验值得到的;
所述发送模块,还用于向所述待平滑板发送所述总校验值;
所述接收模块,还用于接收所述待平滑板发送的总校验值校验结果;
所述状态管理模块,还用于若所述总校验值校验结果指示所述主板中所述待平滑数据模块的总校验值与所述待平滑板中所述待平滑数据模块的总校验值相同,则将所述待平滑板置为有效状态。
在一种可能的实现方式中,每一数据结构的校验值为该数据结构中存储的第一信息和第二信息的校验值,所述第一信息为该数据结构中的数据,所述第二信息为该数据结构下属的各成员数据结构的校验值。
在一种可能的实现方式中,所述层级数据结构包括指针型数据结构,所述指针型数据结构的校验值为第三信息和第四信息的校验值,所述第三信息为所述指针型数据结构中除指针的值之外的数据,所述第四信息为所述指针指向的数据的校验值。
第三方面,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包含可执行指令,当所述可执行指令在计算机上执行时,使得计算机执行时实现第一方面所述的方法。
应用本申请实施例,主板可以向待平滑板发送当前待校验层级包括的至少一个数据结构的校验值,若待平滑板发送的校验结果指示指定数据结构校验未通过,则说明可能是主板的指定数据结构中的数据与待平滑板的指定数据结构中的数据不一致,也可能是主板的指定数据结构中下一层级的成员数据结构中的数据与待平滑板中指定数据结构中下一层级的成员数据结构中的数据不一致。为此,继续判断是否包括指定数据结构的下一层级的成员数据结构,若不存在,则说明主板的指定数据结构中的数据与待平滑板的指定数据结构中的数据不一致,然后向待平滑板发送指定数据结构中的数据。若存在,则将指定数据二结构的下一层级作为当前待校验层级,继续按照上述方式进行判断,直至判断结果为指定数据结构校验未通过,且层级数据结构中不包括指定数据结构的下一层级的成员数据结构,向待平滑板发送指定数据结构中的数据为止。通过这种逐级比较校验值的方式,能够准确地确定主板与待平滑板之间存在差异的数据,并将这些数据发送至待平滑板,而不需要向待平滑板传输主板中的所有数据,即主板只将少量的数据发送至待平滑板进行数据平滑,可以减少数据平滑操作的耗时。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的一种数据平滑方法的流程示意图;
图2为本申请实施例提供的一种层级数据结构的示意图;
图3为本申请实施例提供的另一种层级数据结构的示意图;
图4为本申请实施例提供的又一种层级数据结构的示意图;
图5为本申请实施例提供的一种数据平滑装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
交换机和路由器等电子设备包括主板和其他板,其他板包括备用板或接口板等各种不同角色的板。例如,集中式设备中包括主板和备用板,业务报文可以从集中式设备中的主板或备用板进入集中式设备。分布式设备中包括主板、备用板和接口板,业务报文会从分布式设备中的接口板进入分布式设备。电子设备中在工作的过程中,可能会出现主板和其他板中的数据不一致的问题,可能会导致业务出现问题。
目前导致其他板中的数据与主板中的数据不一致的原因主要如下:
1、主板出现异常,备用板作为新的主板代替旧的主板工作,因为主板发生了变化,所以其他板(例如接口板)中的数据可能会与新的主板不一致。
2、主板或其他板进程重启,导致主板和其他板中的数据不一致。
3、由于主板和其它板之间断开连接,导致主板和其他板中的数据不一致。
当主板与其他板中的数据不一致后,主板需要对其他板中的数据进行平滑,以使得主板和其他板中的数据保持一致,进而使得电子设备可以正常处理业务。
下面举例说明相关技术对其他板中的数据进行平滑的方法。
需要说明的是,主板和其他板中可以包括多个数据模块,主板和其他板中的数据存储于各个数据模块中,对数据模块中的数据进行平滑的操作由数据模块自身响应平滑事件,并进行平滑操作。
例如,主板和备用板中包括数据模块A。主板中的数据模块A中包括数据A、数据B和数据C。备用板的数据模块A中包括数据B、数据C1和数据D。
若当主板进程重启后,主板的数据模块A可以向备用板的数据模块A发送平滑开始指令,备用板的数据模块A接收到平滑开始指令后,为数据模块A内的所有数据添加flag(标志),作为示例,flag可以设置为nosmooth,nosmooth用于表示数据还未被平滑。
然后主板的数据模块A把自身的数据逐条推送到备用板的数据模块A中,即将数据A、数据B和数据C推送到备用板的数据模块A中。
当备用板的数据模块A接收到主板的数据A后,发现自身没有数据A,备用板的数据模块A新增数据A,并为新增的数据A的flag设置为smooth,表示数据A已经被平滑。
当备用板的数据模块A接收到主板的数据B后,发现自身的数据B与主板中的数据B相同,为数据B的flag设置为smooth,表示数据B已经被平滑。
当备用板的数据模块A接收到主板的数据C后,发现自身的数据C1与主板中的数据C不同,因此将给自身的数据C1更改为数据C,然后将自身的数据C的flag设置为smooth,表示数据C已经被平滑。
主板的数据模块A把自身的数据全部推送到备用板的数据模块A中之后,主板的数据模块A会向备用板的数据模块A发送平滑结束指令,备用板的数据模块A接收到平滑结束指令后,遍历自身中flag为nosmooth的数据,此时可以遍历到数据D,说明主板的数据模块A中不存在数据D,因此备用板的数据模块删除数据D,然后平滑结束。
虽然相关技术可以使得主板和备用板中的数据保持一致,但是在进行数据平滑的过程中,需要将主板的数据模块A中的所有数据发送到备用板中的数据模块A中。而在实际情况中,主板或备用板的数据发生变化持续时长较短,不会导致很多数据不一致,也就是说相关技术的数据平滑操作会浪费许多CPU资源,增大的CPU的使用负担,并且在板间传递大量数据时,涉及内存分配以及协议栈的处理和网络时延,还会使得平滑时间较长。
另外,本申请实施例中的电子设备可以为虚拟化设备,虚拟化设备中的主板和接口板之间传输数据需要通过交换机,若交换机的MTU(Maximum Transmission Unit,最大传输单元)设置的较小,比如1000,将导致主板和接口板之间需要多次传递报文才能完成数据平滑操作,耗时较长。
为解决上述问题,本申请实施例提供了一种数据平滑方法,应用于主板,其中,主板位于电子设备中,该电子设备可以为实体设备,也可以为虚拟设备。本申请实施例中的电子设备可以为路由器、交换机等设备。
主板的每个数据模块中包括层级数据结构,层级数据结构为:通过数组、指针、链表或HASH(哈希)等数据结构进行一级一级嵌套得到的数据结构。
相应地,待平滑数据模块中包括层级数据结构,层级数据结构中除末尾级以外的每级数据结构中存储有该级数据结构下属的各成员数据结构的数量对应的校验值,例如,若层级数据结构中的某一级数据结构包括两个成员数据结构,则该级数据结构中包括两个校验值,分别为这两个成员数据结构的校验值。
如图1所示,该方法包括以下步骤:
S101、确定层级数据结构中的当前待校验层级。
其中,对于一个层级数据结构,初始时确定层级数据结构中的最高层级作为当前待校验层级。
S102、向待平滑板发送当前待校验层级包括的至少一个数据结构的校验值。
其中,待平滑板为可能与主板存在数据不一致的板,例如可以为备板或接口板。
当前待校验层级可以包括一个或多个数据结构,在当前待校验层级包括多个数据结构的情况下,主板可向待平滑板发送每个数据结构的校验值。一个数据结构的校验值是基于该数据结构包括的数据得到的校验值。
S103、接收待平滑板发送的校验结果,若校验结果指示至少一个数据结构中的指定数据结构校验未通过,则判断层级数据结构中是否包括指定数据结构的下一层级的数据结构。
其中,若主板接收到的校验结果指示指定数据结构校验未通过,则主板的指定数据结构的校验值与待平滑板中指定数据结构的校验值不同,则说明主板的指定数据结构中的数据可能与待平滑板的指定数据结构中的数据不一致,或者主板的指定数据结构中的下一层级的成员数据结构中的数据与待平滑板的指定数据结构中的下一层级的成员数据结构中的数据不一致。
为此,需要判断指定数据结构中是否存在下一层级成员数据结构。判断方法可以为:判断指定数据结构中是否存储有下一层级成员数据结构的校验值。若是,则说明指定数据结构中包括下一层级的成员数据结构,然后执行S104,若否,则说明指定数据结构中不包括下一层级的成员数据结构,然后执行S105。
S104、将指定数据结构的下一层级作为当前待校验层级,跳转执行S102。
若指定数据结构中包括下一层级的成员数据结构,则说明主板的指定数据结构中下一层级的成员数据结构中的数据可能与待平滑板中的指定数据结构中的下一层级成员数据结构中的数据不一致,因此将指定数据结构的下一层级作为当前待校验层级,继续向待平滑板发送下一层级的成员数据结构的校验值。
S105、向待平滑板发送指定数据结构中的数据。
若指定数据结构中不包括下一层级的成员数据结构,则说明由于主板的指定数据结构中的数据与待平滑板的指定数据结构中的数据不一致,进而导致主板的指定数据结构的校验值与待平滑板中指定数据结构的校验值不同,因此向待平滑板发送指定数据结构中的数据,以对待平滑板中指定数据结构中的数据进行平滑。
采用上述技术方案,主板可以向待平滑板发送当前待校验层级包括的至少一个数据结构的校验值,若待平滑板发送的校验结果指示指定数据结构校验未通过,则说明可能是主板的指定数据结构中的数据与待平滑板的指定数据结构中的数据不一致,也可能是主板的指定数据结构中下一层级的成员数据结构中的数据与待平滑板中指定数据结构中下一层级的成员数据结构中的数据不一致。为此,继续判断是否包括指定数据结构的下一层级的成员数据结构,若不存在,则说明主板的指定数据结构中的数据与待平滑板的指定数据结构中的数据不一致,然后向待平滑板发送指定数据结构中的数据。若存在,则将指定数据二结构的下一层级作为当前待校验层级,继续按照上述方式进行判断,直至判断结果为指定数据结构校验未通过,且层级数据结构中不包括指定数据结构的下一层级的成员数据结构,向待平滑板发送指定数据结构中的数据为止。通过这种逐级比较校验值的方式,能够准确地确定主板与待平滑板之间存在差异的数据,并将这些数据发送至待平滑板,而不需要向待平滑板传输主板中的所有数据,即主板只将少量的数据发送至待平滑板进行数据平滑,可以减少数据平滑操作的耗时。
层级数据结构中,可能存在有些层级下嵌套有多个并列的数据结构,所以层级数据结构中可以存在多个数据分支。
在上述实施例的基础上,若主板接收到的校验结果指示层级数据结构中的一个数据结构校验通过,且该数据结构中未存储校验值,则说明该数据结构所属的数据分支中的数据未发生更新,对该数据结构所属的数据分支的平滑已结束。可选地,主板可以将该数据分支记录为平滑结束状态。
其中,若该数据结构中未存储校验值,则说明该数据结构属于一个数据分支中的最低级数据结构,若主板的该数据结构中的数据与待平滑板的该数据结构中的数据相同,则说明该数据结构所属的数据分支中的所有数据都相同,则说明已完成对该数据分支的平滑。
在这种情况下,层级数据结构中还存在与该数据结构属于同一层级的另一数据结构,即同一层级的两个数据结构属于不同的数据分支。并且,主板中该层级的另一数据结构的校验值与待平滑板中该层级的另一数据结构的校验值不同。
例如,数据结构A的下一层级的数据结构包括数据结构B和数据结构C,数据结构A中存储有数据结构B的校验值和数据结构C的校验值,主板将数据结构B的校验值和数据结构C的校验值发送给待平滑板之后,接收待平滑板反馈的校验结果。
假设接收到的校验结果指示主板中的数据结构B的校验值与待平滑板中数据结构B的校验值相同,主板中的数据结构C的校验值与待平滑板中数据结构C的校验值不同。
此时,若确定层级数据结构中不包括数据结构B的下一层级的成员数据结构,则说明主板和待平滑板中的数据结构B中的数据一致,此时对数据结构B所在的数据分支平滑结束。
若确定层级数据结构中包括数据结构C的下一层级的成员数据结构,则说明主板和待平滑板中数据结构C中的数据不同,进而主板向待平滑板发送数据结构C中的数据。或者,若确定层级数据结构中包括数据结构C的下一层级的成员数据结构,则可进一步对数据结构C所属数据分支中的后续层级的数据结构进行平滑操作。
采用该方法,可以基于校验值确定出实际存在数据不一致的数据结构,对于主板和待平滑板中数据一致的数据结构,主板无需向待平滑板传输这些数据结构中的数据,可以减少数据平滑操作的耗时。
在本申请的一些实施例中,待平滑数据模块包括至少一个数组元素,每个数组元素包括一个层级数据结构。针对每个数组元素,该数组元素的校验值为基于该数据元素包括的层级数据结构得到的,且该数组元素的校验值可以存储于该数组元素中。
在此基础上,在执行图1所示的方法流程之前,主板可以获取至少一个数组元素中每个数组元素的校验值,并向待平滑板发送至少一个数组元素的校验值,然后接收待平滑板发送的数组元素校验结果。
若数组元素校验结果指示上述至少一个数组元素校验通过,则将待平滑板置为有效状态。
可以理解的是,若数组元素校验结果指示上述至少一个数组元素校验通过,则说明主板包括的数组元素的校验值与待平滑板包括的数组元素的校验值均相同,进一步说明主板包括的数组元素中的数据与待平滑板包括的数组元素中的数据相同,此时平滑结束。可选地,主板还可以记录该待平滑板平滑结束状态。
另外,上述S101具体可以实现为:若数组元素校验结果指示上述至少一个数组元素中的指定数组元素校验未通过,则从指定数组元素包括的层级数据结构中确定当前待校验层级。
也就是说,在指定数组元素校验未通过的情况下,则需要进一步对指定数组元素包括的层级数据结构进行平滑处理;若主板包括的数组元素均校验通过,说明主板和待平滑板中的数据一致,则可结束数据平滑,无需进行后续的平滑处理。如此,可以准确地判断出主板和待平滑板中数据不一致的数组元素,无需将主板中的所有数据发送给待平滑板,也无需由待平滑板逐条比较数据是否发生变化,可以减少数据平滑操作的耗时,且可减少传输开销。对于硬件电子设备而言,可以减少数据平滑操作对CPU资源的占用,对于虚拟电子设备而言,可以减少利用交换机传输数据造成的链路资源消耗。
在本申请的一些实施例中,待平滑数据模块包括至少一类数据,每类数据对应的数组中包括至少一个数组元素。每个数组的校验值是基于该数组包括的所有数组元素得到的。
例如,待平滑数据模块中可以包括:A类数据、B类数据和C类数据。A类数据对应数组A,B类数据对应数组B,C类数据对应数组C。数组A中可以包括数组元素A0、A1和A2,数组元素A0包括一个层级数据结构,数组元素A1包括一个层级数据结构,且数组元素A2包括一个层级数据结构。数组A的校验值是基于数组元素A0、A1和A2得到的校验值。
在此基础上,主板在获取多个数组元素的校验值之前,可以针对每类数据,获取该类数据对应的数组的校验值,向待平滑板发送该类数据对应数组的校验值,并接收待平滑板发送的该类数据的数组校验结构。若上述至少一类数据中每类数据的数组校验结果均指示数组校验通过,则将待平滑板置为有效状态。
例如,若数组A、数组B和数组C的数组校验结果均指示校验成功,则说明主板中数组A、数组B和数组C和待平滑板中的数组A、数组B和数组C均相同,此时数据平滑结束。
另外,上述实施例中获取至少一个数组元素中每个数组元素的校验值,具体可以实现为:若接收到的数组校验结果中包括用于指示指定数字与校验未通过的数组校验结果,则获取指定数组包括的至少一个数组元素中每个数组元素的校验值。
也就是说,在指定数组校验未通过的情况下,则需要进一步对指定数组包括的数组元素进行平滑处理。例如若数组A校验未通过,数组B和数组C校验通过,则无需对数组B和数组C包括的数组元素进行平滑处理,只需对数组A包括的数组元素进行平滑处理。如此,可以及时定位到数据发生变化的数组,并对数据发生变化的数组包括的数组元祖进行平滑处理,无需对数据未发生变化的数组进行平滑处理,可以减少数据平滑操作的耗时,且可减少数据传输开销。
在本申请的一些实施例中,在针对每类数据,获取该类数据对应的数组的校验值之前,该方法还可以包括以下步骤:
步骤A、获取待平滑数据模块的总校验值,总校验值是基于待平滑数据模块中各类数据对应的数组的校验值得到的。
例如,待平滑数据模块中可以包括:A类数据、B类数据和C类数据,A类数据对应数组A,B类数据对应数组B,C类数据对应数组C。待平滑数据模块的总校验值是基于数组A、数组B和数组C的校验值得到的。
步骤B、向待平滑板发送上述总校验值。
步骤C、若总校验值校验结果指示主板中待平滑数据模块的总校验值与待平滑板中待平滑数据模块的总校验值相同,则将待平滑板置为有效状态。
可以理解的是,若总校验值校验结果指示主板中待平滑数据模块的总校验值与待平滑板中待平滑数据模块的总校验值相同,则对待平滑数据模块的数据平滑结束。
因为总校验值是基于待平滑数据模块中各类数据对应的数组的校验值得到的,若主板中待平滑数据模块的总校验值与待平滑板中待平滑数据模块的总校验值相同,则说明主板中各类数据对应的数组的校验值与待平滑板中各类数据对应的的校验值相同。
例如,总校验值是基于数组A、数组B和数组C的校验值生成的。若主板的总校验值与待平滑板的总校验值相同,则说明:主板的数组A的校验值与待平滑板的数组A的校验值相同、主板的数组B的校验值与待平滑板的数组B的校验值相同以及主板的数组C的校验值与待平滑板的数组C的校验值相同。
若主板中各类数据的校验值与待平滑板中各类数据的校验值均相同,则说明:针对每一类数据,主板中待平滑模块中的该类数据与待平滑板中待平滑模块中的该类数据相同。进而说明主板中待平滑模块中的所有数据与待平滑板中待平滑模块中的所有数据都相同,则可将待平滑板置为有效状态,即结束对待平滑数据模块的平滑处理,避免了对主板与待平滑板之间数据相同的待平滑模块进行数据平滑,可以减少数据平滑操作的消耗时长。
本申请的一个实施例中,每一数据结构的校验值为该数据结构中存储的第一信息和第二信息的校验值。
其中,第一信息为该数据结构中的数据,第二信息为该数据结构下属的各成员数据结构的校验值,也就是说计算该数据结构的校验值时,不仅要考虑到该数据结构中的数据,还要考虑到该数据结构中存储的下一层级的成员数据结构的校验值。
本申请实施例中,数据结构的校验值可以为MD5(Message-Digest Algorithm 5,信息-摘要算法5)值。还可以采用其他能够对全量数据计算加密值的算法计算校验值,比如还可以采用SHA-1(Secure Hash Algorithm1,安全散列算法1)计算校验值,本申请实施例对此不作限定。
下面以数据结构的校验值为MD5为例,结合图2和图3对本申请实施例中的层级数据结构和每级数据结构中存储的校验值进行说明。
其中,图2是本申请实施例提供的一种数组元素中包括的层级数据结构的示意图,图3是在图2的层级数据结构中添加校验值之后得到的层级数据结构的示意图。
在图2中,以待平滑模块中的A类数据为例,A类数据对应的数组A中包括数组元素A0至An。
其中,数组A包括的数组元素A0为:
typedef struct MOD1_A
{
MOD1_A stMod1A;
}MOD1_A ;
其中,typedef struct MOD1_A 中嵌套有变量:MOD1_A stMod1A。MOD1_A stMod1A的具体数据通过层级数据结构存储。
图2仅示例性的示出数组A包括的数组元素A0的具体表示方式,A1、…An都是数组A包括的数组元素,具体表示方式与A0相似。
数组元素A0包括的层级数据结构中的最高层级数据结构为:
typedef struct MOD1_A
{
MOD1_A_SUB1 Var1;
MOD1_A_SUB2 Var2
}MOD1_A _S;
其中,MOD1_A_SUB1和MOD1_A_SUB2为数组元素A0包括的两个变量,其中,MOD1_A_SUB1的成员Var1对应的数据结构为下一层级的成员数据结构,且MOD1_A_SUB2的成员Var2对应的数据结构也为下一层级的成员数据结构。
其中,MOD1_A_SUB1的成员Var1对应的成员数据结构为:
typedef struct MOD1_A_SUB1
{
unsigned int uiSubVar1;
unsigned int uiSubVar2;
…
unsigned char ucSubVarn;
}MOD1_A _ SUB1_S;
MOD1_A_SUB2的成员Var2对应的成员数据结构为:
typedef struct MOD1_A_SUB2
{
unsigned int uiSubVar1;
unsigned char ucVar2;
…
char acSublnfo[10];
}MOD1_A _ SUB2_S;
可以理解的是,typedef struct MOD1_A_SUB1和 typedef struct MOD1_A_SUB2是数组元素A0包括的层级数据结构中的最低级数据结构,typedef struct MOD1_A_SUB1和typedef struct MOD1_A_SUB2中均不存在下一层级的成员数据结构。
在图2所示的层级数据结构的基础上,可以为层级数据结构中的各级数据结构计算校验值,如图3所示,图3中各级数据结构的校验值为MD5。
首先,typedef struct MOD1_A_SUB1和typedef struct MOD1_A_SUB2作为数组元素A0包括的层级数据结构中最低层级的数据结构,typedef struct MOD1_A_SUB1和typedef struct MOD1_A_SUB2中的数据都不存在下一层级的成员数据结构,即包括的数据都属于零散数据,不需要为每条零散数据单独计算DM5。
另外,可以基于数据结构的大小,确定是否需要为该数据结构单独计算MD5值,比如,对于占用内存空间超过16字节的数据结构,则需要单独计算MD5值,对于占用内存空间不超过16字节的数据结构,则不需要单独计算MD5值。可以预先在主板中配置需要单独计算MD5值的数据结构,进而主板可以基于配置信息为各数据结构计算MD5值。
例如,若主板基于配置信息确定需要为typedef struct MOD1_A_SUB1计算MD5值,则可以基于typedef struct MOD1_A_SUB1中的数据为typedef struct MOD1_A_SUB1计算MD5值,并在变量MOD1_A_SUB1所在的数据结构中新增一个成员unsigned char ucSub1Md5[16],用于存放typedef struct MOD1_A_SUB1的MD5值。
同理,若主板基于配置信息确定需要为typedef struct MOD1_A_SUB2计算MD5值,则可以基于typedef struct MOD1_A_SUB2中的数据为typedef struct MOD1_A_SUB2计算MD5值,并在变量MOD1_A_SUB2所在的数据结构中新增一个成员unsigned char ucSub2Md5[16],用于存放typedef struct MOD1_A_SUB2的MD5值。
typedef struct MOD1_A为typedef struct MOD1_A_SUB1和typedef structMOD1_A_SUB2的上一层级的数据结构,主板基于配置信息确定需要为typedef structMOD1_A计算MD5值,则可以基于typedef struct MOD1_A中的MOD1_A_SUB1的成员Var1、MOD1_A_SUB2的成员Var2、unsigned char ucSub1Md5[16]以及unsigned char ucSub2Md5[16]计算typedef struct MOD1_A的MD5值。并在数组元素A0中新增一个成员unsignedchar ucMod1Md5[16],用于存放层级数据结构typedef struct MOD1_A的MD5值,图2中被添加MD5值的数组元素A0被表示为typedef struct MOD1_A_AddMD5。
另外,层级数据结构中还可以包括指针型数据结构。指针型数据结构的校验值为第三信息和第四信息的校验值,第三信息为指针型数据结构中除指针的值之外的数据,第四信息为指针指向的数据的校验值。
指针型数据结构为该数据结构中包括指针结构的数据。例如,指针数据结构中包括96个字节的数据以及指针指向的占用100个字节的内存空间中的数据,该内存空间中的数据的校验值属于第四信息,96个字节的数据属于第三信息,即可以基于该内存空间中的数据的校验值和96个字节的数据计算指针型数据结构的校验值。
可以理解的是,在不同的板上,同一指针的值可能不同,因此在计算指针型数据结构的校验值之前,先将指针的值存入一个临时变量中,并将该指针指向空,然后基于第三信息和第四信息计算指针型数据结构的校验值,在计算出指针型数据结构的校验值之后,将临时变量的值重新赋回给该指针。
下面结合图4所示的层级数据结构对本申请实施例提供的数据平滑方法进行举例说明。
主板中的数据模块1中包括A类数据、B类数据和C类数据,存储A类数据的变量为数组A:MOD1_A_ADDMD5_S g_astMod1A,存储B类数据的变量为数组B:MOD1_B_ADDMD5_S g_astMod1B,存储C类数据的变量为数组C:MOD1_C_ADDMD5_S g_astMod1C。数组A的MD5值为MD5A,数组B的MD5值为DM5B,数组C的MD5值为MD5C,可以基于MD5A、MD5B和MD5C计算总的MD5值:Mod1SumMd5。
数组A中包括多个数组元素,图4中示例性地示出了数组A包括的一个数组元素:typedef struct MOD1_A_AddMD5,该数组元素包括一个层级数据结构,该层级数据结构的第一层级的数据结构为:typedef struct MOD1_A,第二层级的数据结构为:typedefstruct MOD1_A_SUB1和typedef struct MOD1_A_SUB2。
数组A的MD5A是基于数组A包括的各数组元素生成的,以图4为例,MD5A是基于数组元素typedef struct MOD1_A_AddMD5包括的层级数据结构typedef struct MOD1_A和unsigned char ucMod1Md5[16]生成的。
步骤1、主板将Mod1SumMd5发送到待平滑板中。
主板将Mod1SumMd5发送到待平滑板后,接收待平滑板发送的校验结果。
若校验结果指示:主板的Mod1SumMd5与待平滑板的Mod1SumMd5相同,则说明主板中的各类数据与待平滑板中的各类数据都相同,则对数据模块1数据平滑结束。若主板接收的校验结果指示:主板的Mod1SumMd5与待平滑板的Mod1SumMd5不同,则说明主板中的数据模块1与待平滑板的数据模块1中有不一致的数据,然后执行步骤2。
步骤2、主板向待平滑板发送MD5A。
主板可以根据A类数据、B类数据和C类数据之间预先规定好的依赖顺序,先对被依赖的A类数据进行平滑操作。
主板向待平滑板发送MD5A后,主板接收待平滑板发送的校验结果
若校验结果指示:主板的MD5A与待平滑板的MD5A不同,则执行步骤3,若校验结果指示:主板的MD5A与待平滑板的MD5A相同,则对A类数据平滑结束。
步骤3、主板将unsigned char ucMod1Md5[16]发送至待平滑板。
其中,unsigned char ucMod1Md5[16]是数组元素typedef struct MOD1_A的MD5值。
主板将unsigned char ucMod1Md5[16]发送至待平滑板后,接收待平滑板发送校验结果。
若校验结果指示:主板的unsigned char ucMod1Md5[16]与待平滑板的unsignedchar ucMod1Md5[16]不同,则执行步骤4。
步骤4、主板将 unsigned char ucSub1Md5[16]和 unsigned char ucSub2Md5[16]发送至待平滑板。
其中,unsigned char ucSub1Md5[16]是typedef struct MOD1_A_SUB1的MD5值,unsigned char ucSub2Md5[16]是typedef struct MOD1_A_SUB2的MD5值。
待平滑板接收主板发送的unsigned char ucSub1Md5[16]和 unsigned charucSub2Md5[16]后,待平滑板判断主板的unsigned char ucSub1Md5[16]和待平滑板的unsigned char ucSub1Md5[16]是否相同,以及判断主板的unsigned char ucSub2Md5[16]与待平滑板unsigned char ucSub2Md5[16]是否相同。若仅unsigned char ucSub1Md5[16]不相同,则向主板发送unsigned char ucSub1Md5[16]不相同的校验结果;若仅unsignedchar ucSub2Md5[16]不相同,则向主板发送unsigned char ucSub2Md5[16]不相同的校验结果;若unsigned char ucSub1Md5[16]和 unsigned char ucSub2Md5[16]都不相同,则向主板发送unsigned char ucSub1Md5[16]和 unsigned char ucSub2Md5[16]都不相同的校验结果。然后执行步骤5。
步骤5、主板基于接收到校验结果向待平滑板发送待平滑的数据。
若主板接收到的校验结果为unsigned char ucSub1Md5[16]不相同,则主板将MOD1_A_SUB1的成员Var1发送至待平滑板;若主板接收到的校验结果为unsigned charucSub2Md5[16]不相同,则主板将MOD1_A_SUB2的成员Var2发送至待平滑板;若主板接收到的校验结果为unsigned char ucSub1Md5[16]和 unsigned char ucSub2Md5[16]不相同,则主板将MOD1_A_SUB1的成员Var1和MOD1_A_SUB2的成员Var2发送至待平滑板。至此,对A类数据平滑结束。
主板对A类数据平滑结束之后,还需要对B类数据和C类数据进行数据平滑,对B类数据和C类数据进行数据平滑与上述步骤2-步骤5的流程类似,这里不再赘述。主板对A类数据、B类数据和C类数据平滑结束之后,则对数据模块1数据平滑结束。
基于相同的发明构思,本申请实施例还提供了一种数据平滑装置,应用于主板,主板的待平滑数据模块中包括层级数据结构,层级数据结构中除末尾级以外的每级数据结构中存储有该级数据结构下一层级的各成员数据结构的数量对应的校验值;如图5所示,该装置包括:
确定模块501,用于确定所述层级数据结构中的当前待校验层级;
发送模块502,用于向待平滑板发送所述当前待校验层级包括的至少一个数据结构的校验值;
接收模块503,用于接收所述待平滑板发送的校验结果;
判断模块504,用于若所述校验结果指示所述至少一个数据结构中的指定数据结构校验未通过,则判断所述层级数据结构中是否包括所述指定数据结构的下一层级的成员数据结构;若判断结果为是,则将所述指定数据结构的下一层级作为当前待校验层级,并触发发送模块502、接收模块503和判断模块504重复执行所述向待平滑板发送所述当前待校验层级包括的至少一个数据结构的校验值、接收所述待平滑板发送的校验结果,若所述校验结果指示所述至少一个数据结构中的指定数据结构校验未通过,则判断所述层级数据结构中是否包括所述指定数据结构的下一层级的成员数据结构的步骤,直至所述层级数据结构中不包括所述指定数据结构的下一层级的成员数据结构,触发发送模块502向所述待平滑板发送所述指定数据结构中的数据为止;
发送模块502,用于若判断模块504的判断结果为否,则向所述待平滑板发送所述指定数据结构中的数据。
可选地,所述待平滑数据模块包括至少一个数组元素,每个数组元素包括一个层级数据结构;所述装置还包括:
获取模块,用于获取所述至少一个数组元素中每个数组元素的校验值;
发送模块502,还用于向所述待平滑板发送所述至少一个数组元素的校验值;
接收模块503,还用于接收所述待平滑板发送的数组元素校验结果;
状态管理模块,用于若所述数组元素校验结果指示所述至少一个数组元素校验通过,则将所述待平滑板置为有效状态;
确定模块501,具体用于若所述数组元素校验结果指示所述至少一个数组元素中的指定数组元素校验未通过,则从所述指定数组元素包括的层级数据结构中确定当前待校验层级。
可选地,所述待平滑数据模块包括至少一类数据,每类数据对应的数组中包括至少一个数组元素;
获取模块,还用于针对每类数据,获取该类数据对应的数组的校验值;
发送模块502,还用于向所述待平滑板发送该类数据对应的数组的校验值;
接收模块503,还用于接收所述待平滑板发送的该类数据的数组校验结果;
状态管理模块,还用于若所述至少一类数据中每类数据的数组校验结果均指示数组校验通过,则将所述待平滑板置为有效状态;
获取模块,具体用于若接收到的数组校验结果中包括用于指示指定数组校验未通过的数组校验结果,则获取所述指定数组包括的至少一个数组元素中每个数组元素的校验值。
可选地,获取模块,还用于获取所述待平滑数据模块的总校验值,所述总校验值是基于所述待平滑数据模块中各类数据对应的数组的校验值得到的;
发送模块502,还用于向所述待平滑板发送所述总校验值;
接收模块503,还用于接收所述待平滑板发送的总校验值校验结果;
状态管理模块,还用于若所述总校验值校验结果指示所述主板中所述待平滑数据模块的总校验值与所述待平滑板中所述待平滑数据模块的总校验值相同,则将所述待平滑板置为有效状态。
可选地,每一数据结构的校验值为该数据结构中存储的第一信息和第二信息的校验值,所述第一信息为该数据结构中的数据,所述第二信息为该数据结构下属的各成员数据结构的校验值。
可选地,所述层级数据结构包括指针型数据结构,所述指针型数据结构的校验值为第三信息和第四信息的校验值,所述第三信息为所述指针型数据结构中除指针的值之外的数据,所述第四信息为所述指针指向的数据的校验值。
本申请实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现上述方法实施例中任一数据平滑方法的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述方法实施例中任一数据平滑方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行时实现上述方法实施例中任一数据平滑方法的步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (12)
1.一种数据平滑方法,其特征在于,应用于主板,所述主板的待平滑数据模块中包括层级数据结构,所述层级数据结构中除末尾级以外的每级数据结构中存储有该级数据结构下一层级的各成员数据结构的数量对应的校验值;所述方法包括:
确定所述层级数据结构中的当前待校验层级;
向待平滑板发送所述当前待校验层级包括的至少一个数据结构的校验值;
接收所述待平滑板发送的校验结果,若所述校验结果指示所述至少一个数据结构中的指定数据结构校验未通过,则判断所述层级数据结构中是否包括所述指定数据结构的下一层级的成员数据结构;
若是,则将所述指定数据结构的下一层级作为当前待校验层级,重复执行所述向待平滑板发送所述当前待校验层级包括的至少一个数据结构的校验值、接收所述待平滑板发送的校验结果,若所述校验结果指示所述至少一个数据结构中的指定数据结构校验未通过,则判断所述层级数据结构中是否包括所述指定数据结构的下一层级的成员数据结构的步骤,直至所述层级数据结构中不包括所述指定数据结构的下一层级的成员数据结构,向所述待平滑板发送所述指定数据结构中的数据为止;
若否,则向所述待平滑板发送所述指定数据结构中的数据。
2.根据权利要求1所述的方法,其特征在于,所述待平滑数据模块包括至少一个数组元素,每个数组元素包括一个层级数据结构;在所述确定所述层级数据结构中的当前待校验层级之前,所述方法还包括:
获取所述至少一个数组元素中每个数组元素的校验值;
向所述待平滑板发送所述至少一个数组元素的校验值;
接收所述待平滑板发送的数组元素校验结果;
若所述数组元素校验结果指示所述至少一个数组元素校验通过,则将所述待平滑板置为有效状态;
所述确定所述层级数据结构中的当前待校验层级,包括:
若所述数组元素校验结果指示所述至少一个数组元素中的指定数组元素校验未通过,则从所述指定数组元素包括的层级数据结构中确定当前待校验层级。
3.根据权利要求2所述的方法,其特征在于,所述待平滑数据模块包括至少一类数据,每类数据对应的数组中包括至少一个数组元素;在所述获取多个数组元素的校验值之前,所述方法还包括:
针对每类数据,获取该类数据对应的数组的校验值,向所述待平滑板发送该类数据对应的数组的校验值,并接收所述待平滑板发送的该类数据的数组校验结果;
若所述至少一类数据中每类数据的数组校验结果均指示数组校验通过,则将所述待平滑板置为有效状态;
所述获取所述至少一个数组元素中每个数组元素的校验值,包括:
若接收到的数组校验结果中包括用于指示指定数组校验未通过的数组校验结果,则获取所述指定数组包括的至少一个数组元素中每个数组元素的校验值。
4.根据权利要求3所述的方法,其特征在于,在所述针对每类数据,获取该类数据对应的数组的校验值之前,所述方法还包括:
获取所述待平滑数据模块的总校验值,所述总校验值是基于所述待平滑数据模块中各类数据对应的数组的校验值得到的;
向所述待平滑板发送所述总校验值;
接收所述待平滑板发送的总校验值校验结果;
若所述总校验值校验结果指示所述主板中所述待平滑数据模块的总校验值与所述待平滑板中所述待平滑数据模块的总校验值相同,则将所述待平滑板置为有效状态。
5.根据权利要求1所述的方法,其特征在于,每一数据结构的校验值为该数据结构中存储的第一信息和第二信息的校验值,所述第一信息为该数据结构中的数据,所述第二信息为该数据结构下属的各成员数据结构的校验值。
6.根据权利要求1所述的方法,其特征在于,所述层级数据结构包括指针型数据结构,所述指针型数据结构的校验值为第三信息和第四信息的校验值,所述第三信息为所述指针型数据结构中除指针的值之外的数据,所述第四信息为所述指针指向的数据的校验值。
7.一种数据平滑装置,其特征在于,应用于主板,所述主板的待平滑数据模块中包括层级数据结构,所述层级数据结构中除末尾级以外的每级数据结构中存储有该级数据结构下一层级的各成员数据结构的数量对应的校验值;所述装置包括:
确定模块,用于确定所述层级数据结构中的当前待校验层级;
发送模块,用于向待平滑板发送所述当前待校验层级包括的至少一个数据结构的校验值;
接收模块,用于接收所述待平滑板发送的校验结果;
判断模块,用于若所述校验结果指示所述至少一个数据结构中的指定数据结构校验未通过,则判断所述层级数据结构中是否包括所述指定数据结构的下一层级的成员数据结构;若判断结果为是,则将所述指定数据结构的下一层级作为当前待校验层级,并触发所述发送模块、所述接收模块和所述判断模块重复执行所述向待平滑板发送所述当前待校验层级包括的至少一个数据结构的校验值、接收所述待平滑板发送的校验结果,若所述校验结果指示所述至少一个数据结构中的指定数据结构校验未通过,则判断所述层级数据结构中是否包括所述指定数据结构的下一层级的成员数据结构的步骤,直至所述层级数据结构中不包括所述指定数据结构的下一层级的成员数据结构,触发所述发送模块向所述待平滑板发送所述指定数据结构中的数据为止;
所述发送模块,用于若所述判断模块的判断结果为否,则向所述待平滑板发送所述指定数据结构中的数据。
8.根据权利要求7所述的装置,其特征在于,所述待平滑数据模块包括至少一个数组元素,每个数组元素包括一个层级数据结构;所述装置还包括:
获取模块,用于获取所述至少一个数组元素中每个数组元素的校验值;
所述发送模块,还用于向所述待平滑板发送所述至少一个数组元素的校验值;
所述接收模块,还用于接收所述待平滑板发送的数组元素校验结果;
状态管理模块,用于若所述数组元素校验结果指示所述至少一个数组元素校验通过,则将所述待平滑板置为有效状态;
所述确定模块,具体用于若所述数组元素校验结果指示所述至少一个数组元素中的指定数组元素校验未通过,则从所述指定数组元素包括的层级数据结构中确定当前待校验层级。
9.根据权利要求8所述的装置,其特征在于,所述待平滑数据模块包括至少一类数据,每类数据对应的数组中包括至少一个数组元素;
所述获取模块,还用于针对每类数据,获取该类数据对应的数组的校验值;
所述发送模块,还用于向所述待平滑板发送该类数据对应的数组的校验值;
所述接收模块,还用于接收所述待平滑板发送的该类数据的数组校验结果;
所述状态管理模块,还用于若所述至少一类数据中每类数据的数组校验结果均指示数组校验通过,则将所述待平滑板置为有效状态;
所述获取模块,具体用于若接收到的数组校验结果中包括用于指示指定数组校验未通过的数组校验结果,则获取所述指定数组包括的至少一个数组元素中每个数组元素的校验值。
10.根据权利要求9所述的装置,其特征在于,
所述获取模块,还用于获取所述待平滑数据模块的总校验值,所述总校验值是基于所述待平滑数据模块中各类数据对应的数组的校验值得到的;
所述发送模块,还用于向所述待平滑板发送所述总校验值;
所述接收模块,还用于接收所述待平滑板发送的总校验值校验结果;
所述状态管理模块,还用于若所述总校验值校验结果指示所述主板中所述待平滑数据模块的总校验值与所述待平滑板中所述待平滑数据模块的总校验值相同,则将所述待平滑板置为有效状态。
11.根据权利要求7所述的装置,其特征在于,每一数据结构的校验值为该数据结构中存储的第一信息和第二信息的校验值,所述第一信息为该数据结构中的数据,所述第二信息为该数据结构下属的各成员数据结构的校验值。
12.根据权利要求7所述的装置,其特征在于,所述层级数据结构包括指针型数据结构,所述指针型数据结构的校验值为第三信息和第四信息的校验值,所述第三信息为所述指针型数据结构中除指针的值之外的数据,所述第四信息为所述指针指向的数据的校验值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310710938.1A CN116455753B (zh) | 2023-06-14 | 2023-06-14 | 一种数据平滑方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310710938.1A CN116455753B (zh) | 2023-06-14 | 2023-06-14 | 一种数据平滑方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116455753A CN116455753A (zh) | 2023-07-18 |
CN116455753B true CN116455753B (zh) | 2023-08-18 |
Family
ID=87132417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310710938.1A Active CN116455753B (zh) | 2023-06-14 | 2023-06-14 | 一种数据平滑方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116455753B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7653712B1 (en) * | 2004-09-30 | 2010-01-26 | Emc Corporation | Methods and apparatus for processing configuration data |
CN102473462A (zh) * | 2009-07-02 | 2012-05-23 | 晶像股份有限公司 | 计算机存储器测试结构 |
US9432298B1 (en) * | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
CN109062936A (zh) * | 2018-06-15 | 2018-12-21 | 中国平安人寿保险股份有限公司 | 一种数据查询方法、计算机可读存储介质及终端设备 |
CN110073301A (zh) * | 2017-08-02 | 2019-07-30 | 强力物联网投资组合2016有限公司 | 工业物联网中具有大数据集的数据收集环境下的检测方法和系统 |
CN112199421A (zh) * | 2020-12-04 | 2021-01-08 | 中国电力科学研究院有限公司 | 一种多源异构数据融合和量测数据多源互校验方法及系统 |
CN112685397A (zh) * | 2020-12-30 | 2021-04-20 | 平安普惠企业管理有限公司 | 用于校验数据清洗结果的方法、装置、设备及存储介质 |
WO2021174828A1 (zh) * | 2020-07-29 | 2021-09-10 | 平安科技(深圳)有限公司 | 数据处理方法、装置、计算机系统及可读存储介质 |
CN115079226B (zh) * | 2022-08-16 | 2022-11-11 | 中航信移动科技有限公司 | 一种基于多源位置数据的显示数据确定方法、介质及设备 |
CN115686597A (zh) * | 2021-07-23 | 2023-02-03 | 深信服科技股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210141692A1 (en) * | 2021-01-22 | 2021-05-13 | Intel Corporation | Distribution of error checking and correction (ecc) bits to allocate ecc bits for metadata |
-
2023
- 2023-06-14 CN CN202310710938.1A patent/CN116455753B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7653712B1 (en) * | 2004-09-30 | 2010-01-26 | Emc Corporation | Methods and apparatus for processing configuration data |
CN102473462A (zh) * | 2009-07-02 | 2012-05-23 | 晶像股份有限公司 | 计算机存储器测试结构 |
US9432298B1 (en) * | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
CN110073301A (zh) * | 2017-08-02 | 2019-07-30 | 强力物联网投资组合2016有限公司 | 工业物联网中具有大数据集的数据收集环境下的检测方法和系统 |
CN109062936A (zh) * | 2018-06-15 | 2018-12-21 | 中国平安人寿保险股份有限公司 | 一种数据查询方法、计算机可读存储介质及终端设备 |
WO2021174828A1 (zh) * | 2020-07-29 | 2021-09-10 | 平安科技(深圳)有限公司 | 数据处理方法、装置、计算机系统及可读存储介质 |
CN112199421A (zh) * | 2020-12-04 | 2021-01-08 | 中国电力科学研究院有限公司 | 一种多源异构数据融合和量测数据多源互校验方法及系统 |
CN112685397A (zh) * | 2020-12-30 | 2021-04-20 | 平安普惠企业管理有限公司 | 用于校验数据清洗结果的方法、装置、设备及存储介质 |
CN115686597A (zh) * | 2021-07-23 | 2023-02-03 | 深信服科技股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN115079226B (zh) * | 2022-08-16 | 2022-11-11 | 中航信移动科技有限公司 | 一种基于多源位置数据的显示数据确定方法、介质及设备 |
Non-Patent Citations (1)
Title |
---|
PDM中基于cuckoo filter的数据完整性校验算法设计与实现;丛丽晖;何国强;夏秀峰;;计算机应用与软件(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116455753A (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109683826B (zh) | 用于分布式存储系统的扩容方法和装置 | |
US11336451B2 (en) | Cross-blockchain resource transmission | |
CN111190714B (zh) | 一种基于区块链的云计算任务调度系统及方法 | |
CN108897628B (zh) | 一种分布式锁的实现方法、装置及电子设备 | |
CN106909411B (zh) | 一种文件更新方法及装置 | |
CN109995866B (zh) | 分布式文件校验方法、装置、计算机装置及存储介质 | |
US10430172B2 (en) | Re-configuration in cloud computing environments | |
CN108023939B (zh) | 分布式系统中锁服务器故障的处理方法及其系统 | |
US20160036665A1 (en) | Data verification based upgrades in time series system | |
CN111049928A (zh) | 数据同步方法、系统、电子设备及计算机可读存储介质 | |
CN112202879B (zh) | 中间件管理方法、装置、电子设备和存储介质 | |
CN113742135A (zh) | 数据备份方法、装置及计算机可读存储介质 | |
CN110737548B (zh) | 数据请求方法和服务器 | |
US20170123941A1 (en) | Distributed processing system | |
CN116455753B (zh) | 一种数据平滑方法及装置 | |
US20150095496A1 (en) | System, method and medium for information processing | |
JP5857806B2 (ja) | 分散処理システムのテスト方法および分散処理システム | |
WO2021201827A1 (en) | Method and apparatus maintaining private data with consortium blockchain | |
CN108933681B (zh) | 一种云计算系统配置更新方法、控制中心及云计算节点 | |
WO2020037607A1 (zh) | 一种传输数据的方法和装置 | |
CN113032188B (zh) | 确定主服务器的方法、装置、服务器及存储介质 | |
CN112711466B (zh) | 悬挂事务巡检方法和装置、电子设备和存储介质 | |
US11256575B2 (en) | Methods, electronic devices and computer program products for managing and performing data backup jobs | |
US11483158B2 (en) | Distributed ledger device, distributed ledger system, and distributed ledger management method | |
CN114756527A (zh) | Redis集群的扩容方法、装置、电子设备和存储介质 |
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 |