发明内容
本发明提供了数据平滑方法和装置,以减低主备切换后数据平滑的时间。
本发明提供的技术方案包括:
一种数据平滑方法,包括:
A,主用板分别为备用板中上层模块的表项、以及下层模块的表项分配版本号,其中,上层模块和下层模块中内容相同的表项具有相同的版本号;
B,当发生主备切换时备用板切换为新的主用板,该新的主用板执行数据平滑处理,具体包括以下步骤C至步骤E:
步骤C,针对该新的主用板中上层模块的每一表项,根据该表项的关键字在该新的主用板的下层模块查找具有该关键字的表项,如果查找到,则执行步骤D;如果未查找到,则执行步骤E;
D,比较该表项和查找到的表项是否具有相同的版本号,如果否,则用该表项和该表项的版本号更新从新的主用板的下层模块查找到的表项和对应的版本号,如果是,则结束对该表项的处理流程;
E,将该表项和该表项的版本号下传至该新的主用板的下层模块。
一种数据平滑装置,该装置包括:
分配单元,用于在所述装置位于主用板时,分别为备用板中上层模块的表项、以及下层模块的表项分配版本号,其中,上层模块和下层模块中内容相同的表项具有相同的版本号;
数据平滑单元,用于在主备切换后所述装置位于新的主用板时执行数据平滑处理,其包括:查找模块、比较模块和下传模块;其中,
查找模块,用于针对该新的主用板中上层模块的每一表项,根据该表项的关键字在该新的主用板的下层模块查找具有该关键字的表项,如果查找到,发送比较通知给比较模块,如果未查找到,则发送下传通知给下传模块;
比较模块,用于接收所述比较通知后,比较该表项和查找到的表项是否具有相同的版本号,如果否,则用该表项和该表项的版本号更新从新的主用板的下层模块查找到的表项和对应的版本号,如果是,则结束对该表项的处理流程;
下传模块,用于接收所述下传通知后,将该表项和该表项的版本号下传至该新的主用板的下层模块。
由以上技术方案可以看出,本发明中,在主备切换后新的主用板进行数据平滑时,不需要比较上层模块和下层模块中某个表项的内容是否完全相同,而是通过比较该表项的版本号,如果版本号相同,则认为上层模块和下层模块的表项内容相同,否则,认为上层模块和下层模块的表项内容不相同。这样,能够降低数据平滑时间,并进一步减少了数据量的比较,提高数据平滑效率。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
参见图4,图4为本发明实施例提供的方法流程图。如图4所示,该流程可包括以下步骤:
步骤401,主用板分别为备用板中上层模块的表项、以及下层模块的表项分配版本号,其中,上层模块和下层模块中内容相同的表项具有相同的版本号。
也就是说,对于备用板中上层模块的表项和下层模块的表项,如果两者内容相同,则两者的版本号也相同,否则,版本号不同。其中,版本号为整数。
至于主用板如何为备用板中上层模块和下层模块的表项分配版本号,在下文图5至图8进行了详细描述。
步骤402,当发生主备切换时备用板切换为新的主用板,该新的主用板执行数据平滑处理,具体包括以下步骤403至步骤405。
步骤403,针对该新的主用板中上层模块的每一表项,根据该表项的关键字在该新的主用板的下层模块查找具有该关键字的表项,如果查找到,则执行步骤404,否则,执行步骤405。
该主备切换发生的时间点不进行限定,即其可在任何时间点发生。
其中,表项对应的关键字可为表项的名称等,本发明并不具体限定。
步骤404,比较该表项和该查找到的表项是否具有相同的版本号,如果否,则利用该表项和该表项的版本号更新从该新的主用板的下层模块查找到的表项和对应的版本号,如果是,则结束该表项的处理流程。
步骤405,将该表项和该表项的版本号下传至该新的主用板的下层模块。
至此,完成图4所示的流程。
通过图4所示的流程可以看出,在主备切换后,新的主用板在执行数据平滑处理时,不需要比较上层模块和下层模块中某个表项的内容是否完全相同,而是通过比较该表项的版本号,如果版本号相同,则认为上层模块和下层模块的表项内容相同,否则,认为上层模块和下层模块的表项内容不相同。这样,能够避免由于比较上层模块和下层模块中某个表项的内容是否完全相同而带来的数据平滑时间加长等问题。
另外,步骤401具体实现时可包括图5所示的流程。
参见图5,图5为本发明实施例提供的步骤401实现流程图。如图4所示,该流程可包括以下步骤:
步骤501,主用板为备用板的上层模块和下层模块创建表项,并按照内容相同的表项具有相同版本号的原则为上层模块和下层模块中的表项分配版本号。
需要说明的是,本发明中表项的字段信息并非固定不变的,其会根据实际情况进行更新,当需要更新某一表项的字段信息时,该表项的版本号也会相应更新,具体如步骤502所示。
步骤502,主用板更新备用板中上层模块和下层模块的表项,并按照内容相同的表项具有相同版本号的原则更新上层模块和下层模块中发生更新的表项的版本号。
至此,完成图5所示的流程。
需要说明的是,上述的主用板可为主用主控板,备用板可为备用主控板。或者,所述主用板为主用线板,所述备用板为备用线板。
下面以主用板为主用主控板,备用板为备用主控板为例对上述步骤501和步骤502进行描述:
参见图6,图6为本发明实施例提供的步骤501实现流程图。在该图6中,假如主用主控板和备用主控板的结构如图1所示,则如图6所示,该流程可包括以下步骤:
步骤601,上层模块A(即主用主控板的上层模块)为待创建的表项(记为表项1)分配一个版本号,并调用下层模块B(即主用主控板的下层模块)的创建API函数。
优选地,本步骤601为待创建表项分配的版本号可为设定的初始值,比如0等。
还有,所述创建API函数至少包含以下参数:分配的版本号。可以看出,通过步骤601能够将上层模块A分配的版本号传递给下层模块B。
需要说明的是,为便于下层模块B创建表项1,所述创建API函数还进一步包括:表项1的字段信息,以便下层模块B根据该字段信息创建表项1。
步骤602,下层模块B响应该调用并创建表项1,为表项1分配所述版本号。
由于创建API函数还进一步包括:表项1的字段信息,因此,执行到本步骤602时,下层模块B可根据该字段信息创建表项1。
通过步骤602,下层模块B中就包含了表项1和版本号之间的对应关系,具体如图7所示。
步骤603,下层模块B与下层模块B’(即备用板的下层模块)执行表项创建操作主备同步。
具体地,本步骤603可为:下层模块B也为下层模块B’创建表项1,为表项1分配上述的版本号。如此,下层模块B’就包含了表项1和版本号之间的对应关系,具体如图7所示。
步骤604,上层模块A在成功调用下层模块B后创建所述表项1,将所述版本号分配给自身创建的表项。
如此,上层模块A就包含了表项1和版本号之间的对应关系,具体如图7所示。
需要说明的是,上层模块A成功调用下层模块B具体为:下层模块B在步骤602中成功创建表项。
步骤605,上层模块A与上层模块A’(即备用板的上层模块)执行表项创建操作主备同步。
具体地,本步骤605可为:上层模块A也为上层模块A’创建表项1,并为创建的表项1分配上述的版本号。如此,上层模块A’就包含了表项1和版本号之间的对应关系,具体如图7所示。
至此,通过图6所示的流程即可实现步骤501。
参见图8,图8为本发明实施例提供的步骤502实现流程图。在该图8中,假如主用主控板和备用主控板的结构如图1所示,则如图8所示,该流程可包括以下步骤:
步骤801,上层模块A在更新表项(记为表项1)时,先更新表项1的版本号,得到一个新的版本号,并调用下层模块B的更新API函数。
本步骤801中,更新版本号具体可为:在原来版本号的基础上加1。
另外,所述更新API函数包含以下参数:新的版本号和表项1中待更新的字段信息。
步骤802,下层模块B响应该调用,根据所述待更新字段信息更新表项1的相应字段,将更新后的版本号分配给更新后的表项1。
步骤803,下层模块B与下层模块B’执行表项更新操作主备同步。
本步骤803具体为:下层模块B根据待更新字段信息更新下层模块B’中的表项1,并将更新后的版本号分配给下层模块B’中更新后的表项1。
步骤804,上层模块A在成功调用下层模块B后根据所述待更新字段信息更新表项1,将更新后的版本号分配给更新后的表项1。
步骤805,上层模块A与上层模块A’(即备用主控板的上层模块)执行表项更新操作主备同步。
具体地,步骤805可为:上层模块A根据待更新字段信息更新上层模块A’中的表项1,并将更新后的版本号分配给上层模块A’中更新后的表项1。
至此,完成图8所示的流程。
以上对本发明提供的方法进行了描述,下面对本发明提供的装置进行描述:
参见图9,图9为本发明实施例提供的装置结构图。如图9所示,该装置可包括:
分配单元,用于在所述装置位于主用板时,分别为备用板中上层模块的表项、以及下层模块的表项分配版本号,其中,上层模块和下层模块中内容相同的表项具有相同的版本号;
数据平滑单元,用于在主备切换后所述装置位于新的主用板时执行数据平滑处理,其包括:查找模块、比较模块和下传模块;其中,
查找模块,用于针对该新的主用板中上层模块的每一表项,根据该表项的关键字在该新的主用板的下层模块查找具有该关键字的表项,如果查找到,发送比较通知给比较模块,如果未查找到,则发送下传通知给下传模块;
比较模块,用于接收所述比较通知后,比较该表项和查找到的表项是否具有相同的版本号,如果否,则用该表项和该表项的版本号更新从新的主用板的下层模块查找到的表项和对应的版本号,如果是,则结束对该表项的处理流程;
下传模块,用于接收所述下传通知后,将该表项和该表项的版本号下传至该新的主用板的下层模块。
优选地,如图9所示,所述分配单元包括:
创建模块,用于为备用板的上层模块和下层模块创建表项,并按照内容相同的表项具有相同版本号的原则为上层模块和下层模块中的表项分配版本号;
更新模块,用于更新备用板中上层模块和下层模块的表项,并按照内容相同的表项具有相同版本号的原则更新上层模块和下层模块中发生更新的表项的版本号。
其中,所述创建模块具体实现时可包括:
第一调用子模块,其位于主用板的上层模块,用于为待创建的表项分配一个版本号,并调用主用板中下层模块的创建应用程序编程接口API函数,所述创建API函数至少包含以下参数:分配的版本号;以及在成功调用主用板的下层模块后创建表项,将所述版本号分配给自身创建的表项,并与备用板的上层模块执行表项创建操作主备同步;
第一响应子模块,其位于主用板的下层模块,用于响应该调用并创建表项,将所述版本号分配给自身创建的表项,并与备用板的下层模块执行表项创建操作主备同步。
所述更新模块具体实现时可包括:
第二调用子模块,其位于主用板的上层模块,用于先对待更新表项的版本号进行更新,并调用主用板中下层模块的更新API函数,所述更新API函数包含以下参数:更新后的版本号和表项中待更新的字段信息,以及在成功调用主用板的下层模块后根据所述待更新字段信息更新所述待更新表项,将更新后的版本号分配给更新后的表项,并与备用板的上层模块执行表项更新操作主备同步;
第二响应子模块,用于响应该调用,根据所述待更新字段信息更新所述待更新表项,将更新后的版本号分配给更新后的表项,并与备用板的下层模块执行表项更新操作主备同步。
需要说明的是,所述主用板为主用主控板,所述备用板为备用主控板;或者,所述主用板为主用线板,所述备用板为备用线板。
至此,完成本发明提供的装置描述。
由以上技术方案可以看出,本发明中,在主备切换后新的主用板进行数据平滑时,不需要比较上层模块和下层模块中某个表项的内容是否完全相同,而是通过比较该表项的版本号,如果版本号相同,则认为上层模块和下层模块的表项内容相同,否则,认为上层模块和下层模块的表项内容不相同。这样,能够降低数据平滑时间,并进一步减少了数据量的比较,提高数据平滑效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。