本发明涉及数联网领域,特别是一种数联网数据语用内存状态数据的恢复方法、恢复系统及数联网系统。
背景技术:
1、随着大数据时代的到来,数据的价值逐渐凸显。通过对大数据的分析,可以产生许多附加的价值。例如,在疫情期间,通过大数据分析,可以准确、快速地查询一个人去过哪些城市、搭乘了哪些列车、是否去过高风险地区等等。要使用数据进行分析,就需要数据的交换及处理。在数据共享交换场景中,存在对大规模共享数据的监管问题,即严重的信任问题。需方需要使用供方的数据,通过对该数据进行操作产生有价值的结果,但是供方往往不信任需方。一旦数据从供方传到需方,那么需方可以做任何操作,例如对数据做一些与先前声明的操作不同的操作,甚至对原始数据二次贩卖。
2、基于上述大数据应用需求,目前已有基于内存运行数据语用大数据数联网系统(所谓数据语用是指一种数字对象,数据语用分为一般数据语用和集群式数据语用,一般数据语用需要在一个数据语用仓库中创建、执行;集群式数据语用需要在多个数据语用仓库中创建、执行)。针对大数据应用的场景,提供相应的服务。在数据语用采用内存计算模式的大数据数联网系统中,依靠数据语用的形式实现大数据的共享交换,而数据语用采用内存计算模式的大数据数联网系统中,数据语用采用基于内存的计算模式和随机多点执行模式。
3、基于内存的计算模式可以很好的满足数据语用执行时间的要求,提升数据语用执行的吞吐率,整体性能较好,并且无额外开销。但是基于内存的计算模式,由于数据语用在内存中计算、运行、存储,当出现不可抗力,导致运行数据语用的设备出现数瑞(指北大数瑞,其是北京大学系统软件团队面向人机物融合计算场景研发的泛在互操作平台,支持云、网、边、端等泛在设备数据资源的按需互操作及可信管控)数字对象崩溃、宕机、掉电等问题,则整个数据语用的内存状态数据会全部丢失,并且无法恢复。因此,基于内存的计算模式下,如何在保障数据语用执行时间要求,以及数据语用执行吞吐率的基础上,同时保证数据语用内存状态数据在相关设备出现数瑞数字对象崩溃、宕机、掉电等问题并恢复正常后,数据语用内存状态数据也可以自动恢复,是一个亟需解决的问题。
技术实现思路
1、鉴于上述问题,本发明提供一种数据语用内存状态数据的恢复方法、装置及数联网系统,在保障了数据语用执行时间要求,以及数据语用执行吞吐率的基础上,同时还保证了数据语用内存状态数据在相关设备出现数瑞数字对象崩溃、宕机、掉电等问题并恢复正常后,可以自动恢复数据语用内存状态数据。
2、本发明实施例提供了一种数据语用内存状态数据的恢复方法,所述恢复方法应用于数联网中的多个数瑞算子数字对象仓库节点,所述多个数瑞算子数字对象仓库节点中每个数瑞算子数字对象仓库节点上均运行数据语用,所述数据语用为多点数据语用,所述多个数瑞算子数字对象仓库节点组成数据语用集群,所述恢复方法包括:
3、所述数据语用集群中的主数瑞算子数字对象仓库节点接收调用请求并执行,同时所述主数瑞算子数字对象仓库节点向所述数据语用集群中的所有从数瑞算子数字对象仓库节点广播所述调用请求;
4、所述主数瑞算子数字对象仓库节点接收所有从数瑞算子数字对象仓库节点反馈的调用结果;
5、在所有从数瑞算子数字对象仓库节点中第一从数瑞算子数字对象仓库节点反馈的调用结果错误的情况下,所述主数瑞算子数字对象仓库节点将自身运行的多点数据语用的全量状态数据发送至所述第一从数瑞算子数字对象仓库节点;
6、在所述主数瑞算子数字对象仓库节点执行所述调用请求,且确定自身的调用结果错误的情况下,所述主数瑞算子数字对象仓库节点向所有从数瑞算子数字对象仓库节点中第二从数瑞算子数字对象仓库节点发送状态数据请求,所述第二从数瑞算子数字对象仓库节点是调用结果正确的所有从数瑞算子数字对象仓库节点中的任一从数瑞算子数字对象仓库节点;
7、所述主数瑞算子数字对象仓库节点接收所述第二从数瑞算子数字对象仓库节点发送的在所述第二从数瑞算子数字对象仓库节点上运行的多点数据语用的全量状态数据;
8、在所述第一从数瑞算子数字对象仓库节点下线并重新上线的情况下,所述第一从数瑞算子数字对象仓库节点向所述主数瑞算子数字对象仓库节点发送恢复信息,所述主数瑞算子数字对象仓库节点根据所述恢复信息和所述数据语用集群的当前运行模式,将自身运行的多点数据语用的全量状态数据发送至所述第一从数瑞算子数字对象仓库节点,或者将自身运行的多点数据语用的增量状态数据发送至所述第一从数瑞算子数字对象仓库节点,或者不向所述第一从数瑞算子数字对象仓库节点发送任何数据;
9、在所述主数瑞算子数字对象仓库节点下线并重新上线,且所述主数瑞算子数字对象仓库节点变为从数瑞算子数字对象仓库节点,所述第二从数瑞算子数字对象仓库节点变为新主数瑞算子数字对象仓库节点的情况下,所述主数瑞算子数字对象仓库节点向所述第二从数瑞算子数字对象仓库节点发送所述恢复信息,所述第二从数瑞算子数字对象仓库节点根据所述恢复信息和所述数据语用集群的当前运行模式,将自身运行的多点数据语用的全量状态数据发送至所述主数瑞算子数字对象仓库节点,或者将自身运行的多点数据语用的增量状态数据发送至所述主数瑞算子数字对象仓库节点,或者不向所述主数瑞算子数字对象仓库节点发送任何数据;
10、在所述主数瑞算子数字对象仓库节点下线并重新上线,且所述主数瑞算子数字对象仓库节点仍然为主数瑞算子数字对象仓库节点的情况下,所述主数瑞算子数字对象仓库节点执行所述:接收调用请求并执行,同时所述主数瑞算子数字对象仓库节点向所述数据语用集群中的所有从数瑞算子数字对象仓库节点广播所述调用请求的步骤。
11、可选的,在所述数据语用集群中的主数瑞算子数字对象仓库节点接收调用请求并执行之前,还包括:
12、所述主数瑞算子数字对象仓库节点在所述多点数据语用的分类为无状态数据语用的情况下,所述主数瑞算子数字对象仓库节点确定所述运行模式为普通运行模式;
13、所述主数瑞算子数字对象仓库节点在所述多点数据语用的分类为有状态数据语用,且所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,满足第一预设条件的情况下,所述主数瑞算子数字对象仓库节点确定所述运行模式为所述普通运行模式;
14、所述主数瑞算子数字对象仓库节点在所述多点数据语用的分类为有状态数据语用,且所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,满足第二预设条件的情况下,所述主数瑞算子数字对象仓库节点确定所述运行模式为所述稳定运行模式;
15、在所述普通运行模式的情况下,所述数据语用集群中的每个数瑞算子数字对象仓库节点以内存持久化方式运行;
16、在所述稳定运行模式的情况下,所述每个数瑞算子数字对象仓库节点将所述多点数据语用的全量状态数据和增量状态数据各自记录至自身硬盘中;
17、当所述多点数据语用的增量状态数据的记录数量达到预设数量时,所述每个数瑞算子数字对象仓库节点各自更新所述多点数据语用的全量状态数据并记录,同时各自删除所述多点数据语用的增量状态数据记录;
18、其中,所述第一预设条件为:所述当前正常运行的数瑞算子数字对象仓库节点总数,大于对所述数据语用集群中的数瑞算子数字对象仓库节点总数进行预设运算后的总数,所述预设运算为:对所述数据语用集群中的数瑞算子数字对象仓库节点总数取半,得到第一结果,对所述第一结果向上取整;
19、所述第二预设条件为:所述当前正常运行的数瑞算子数字对象仓库节点总数,不大于对所述数据语用集群中的数瑞算子数字对象仓库节点总数进行预设运算后的总数。
20、可选的,所述恢复信息包括:所述第一从数瑞算子数字对象仓库节点下线前所述数据语用集群的运行模式、所述第一从数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号;
21、在所述第一从数瑞算子数字对象仓库节点下线并重新上线的情况下,所述第一从数瑞算子数字对象仓库节点向所述主数瑞算子数字对象仓库节点发送恢复信息,所述主数瑞算子数字对象仓库节点根据所述恢复信息和所述数据语用集群的当前运行模式,将自身运行的多点数据语用的全量状态数据发送至所述第一从数瑞算子数字对象仓库节点,或者将自身运行的多点数据语用的增量状态数据发送至所述第一从数瑞算子数字对象仓库节点,或者不向所述第一从数瑞算子数字对象仓库节点发送任何数据,包括:
22、在所述第一从数瑞算子数字对象仓库节点下线前所述数据语用集群为所述普通运行模式,且所述第一从数瑞算子数字对象仓库节点重新上线后所述数据语用集群当前为任一运行模式的情况下,所述主数瑞算子数字对象仓库节点确定所述第一从数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号是否与所述数据语用集群的当前状态版本号相同,相同则所述主数瑞算子数字对象仓库节点不向所述第一从数瑞算子数字对象仓库节点发送任何数据,不相同则所述主数瑞算子数字对象仓库节点将自身运行的多点数据语用的全量状态数据发送至所述第一从数瑞算子数字对象仓库节点,以使得所述第一从数瑞算子数字对象仓库节点基于接收到的全量状态数据,运行自身的多点数据语用;
23、在所述第一从数瑞算子数字对象仓库节点下线前所述数据语用集群为所述稳定运行模式,且所述第一从数瑞算子数字对象仓库节点重新上线后所述数据语用集群为所述普通运行模式的情况下,所述主数瑞算子数字对象仓库节点将自身运行的多点数据语用的全量状态数据发送至所述第一从数瑞算子数字对象仓库节点,以使得所述第一从数瑞算子数字对象仓库节点基于接收到的全量状态数据,运行自身的多点数据语用;
24、在所述第一从数瑞算子数字对象仓库节点下线前所述数据语用集群为所述稳定运行模式,且所述第一从数瑞算子数字对象仓库节点重新上线后所述数据语用集群为所述稳定运行模式的情况下,所述第一从数瑞算子数字对象仓库节点从自身的硬盘中获取多点数据语用的全量状态数据和增量状态数据,同时,所述主数瑞算子数字对象仓库节点确定所述第一从数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号是否与所述数据语用集群的当前状态版本号相同,相同则所述主数瑞算子数字对象仓库节点不向所述第一从数瑞算子数字对象仓库节点发送任何数据,不相同则所述主数瑞算子数字对象仓库节点将自身运行的多点数据语用的新增增量状态数据发送至所述第一从数瑞算子数字对象仓库节点,以使得所述第一从数瑞算子数字对象仓库节点基于接收到的新增增量状态数据以及从自身硬盘中获取的全量状态数据和增量状态数据,运行自身的多点数据语用,所述新增增量状态数据是所述第一从数瑞算子数字对象仓库节点因下线导致的自身硬盘中没有的增量状态数据。
25、可选的,所述恢复信息还包括:所述主数瑞算子数字对象仓库节点下线前所述数据语用集群的运行模式、所述主数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号;
26、在所述主数瑞算子数字对象仓库节点下线并重新上线,且所述主数瑞算子数字对象仓库节点变为从数瑞算子数字对象仓库节点,所述第二从数瑞算子数字对象仓库节点变为新主数瑞算子数字对象仓库节点的情况下,所述主数瑞算子数字对象仓库节点向所述第二从数瑞算子数字对象仓库节点发送所述恢复信息,所述第二从数瑞算子数字对象仓库节点根据所述恢复信息和所述数据语用集群的当前运行模式,将自身运行的多点数据语用的全量状态数据发送至所述主数瑞算子数字对象仓库节点,或者将自身运行的多点数据语用的增量状态数据发送至所述主数瑞算子数字对象仓库节点,或者不向所述主数瑞算子数字对象仓库节点发送任何数据,包括:
27、在所述主数瑞算子数字对象仓库节点下线前所述数据语用集群为普通所述运行模式,且所述主数瑞算子数字对象仓库节点重新上线后所述数据语用集群当前为任一运行模式的情况下,所述第二从数瑞算子数字对象仓库节点确定所述主数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号是否与所述数据语用集群的当前状态版本号相同,相同则所述第二从数瑞算子数字对象仓库节点不向所述主数瑞算子数字对象仓库节点发送任何数据,不相同则所述第二从数瑞算子数字对象仓库节点将自身运行的多点数据语用的全量状态数据发送至所述主数瑞算子数字对象仓库节点,以使得所述主数瑞算子数字对象仓库节点基于接收到的全量状态数据,运行自身的多点数据语用;
28、在所述主数瑞算子数字对象仓库节点下线前所述数据语用集群为所述稳定运行模式,且所述主数瑞算子数字对象仓库节点重新上线后所述数据语用集群为所述普通运行模式的情况下,所述第二从数瑞算子数字对象仓库节点将自身运行的多点数据语用的全量状态数据发送至所述主数瑞算子数字对象仓库节点,以使得所述主数瑞算子数字对象仓库节点基于接收到的全量状态数据,运行自身的多点数据语用;
29、在所述主数瑞算子数字对象仓库节点下线前所述数据语用集群为所述稳定运行模式,且所述主数瑞算子数字对象仓库节点重新上线后所述数据语用集群为所述稳定运行模式的情况下,所述主数瑞算子数字对象仓库节点从自身的硬盘中获取多点数据语用的全量状态数据和增量状态数据,同时,所述第二从数瑞算子数字对象仓库节点确定所述主数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号是否与所述数据语用集群的当前状态版本号相同,相同则所述第二从数瑞算子数字对象仓库节点不向所述主数瑞算子数字对象仓库节点发送任何数据,不相同则所述第二从数瑞算子数字对象仓库节点将自身运行的多点数据语用的新增增量状态数据发送至所述主数瑞算子数字对象仓库节点,以使得所述主数瑞算子数字对象仓库节点基于接收到的新增增量状态数据以及从自身硬盘中获取的全量状态数据和增量状态数据,运行自身的多点数据语用。
30、可选的,所述主数瑞算子数字对象仓库节点确定所述第一从数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号是否与所述数据语用集群的当前状态版本号相同,包括:
31、在所述第一从数瑞算子数字对象仓库节点上多点数据语用的数瑞数字对象未崩溃的情况下,所述第一从数瑞算子数字对象仓库节点发送至所述主数瑞算子数字对象仓库节点的恢复信息中携带所述第一从数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号;
32、所述主数瑞算子数字对象仓库节点基于接收的所述第一从数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号,确定所述第一从数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号是否与所述数据语用集群的当前状态版本号相同;
33、在所述第一从数瑞算子数字对象仓库节点上多点数据语用的数瑞数字对象崩溃的情况下,所述第一从数瑞算子数字对象仓库节点发送至所述主数瑞算子数字对象仓库节点的恢复信息中不携带所述第一从数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号;
34、所述主数瑞算子数字对象仓库节点未接收到所述第一从数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号,确定所述第一从数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号与所述数据语用集群的当前状态版本号不相同。
35、可选的,所述恢复方法还包括:
36、在所述第一从数瑞算子数字对象仓库节点下线前,若所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,满足所述第一预设条件,则所述主数瑞算子数字对象仓库节点确定所述运行模式为所述普通运行模式;
37、在所述第一从数瑞算子数字对象仓库节点下线后,且当所述第一从数瑞算子数字对象仓库节点还未重新上线时,若所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,仍然满足所述第一预设条件,则所述主数瑞算子数字对象仓库节点保持所述运行模式仍然为所述普通运行模式;或者
38、若所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,满足所述第二预设条件,则所述主数瑞算子数字对象仓库节点将所述运行模式切换为所述稳定运行模式;
39、在所述第一从数瑞算子数字对象仓库节点下线并还未重新上线,且所述运行模式当前为所述普通运行模式时,当所述第一从数瑞算子数字对象仓库节点重新上线后,若所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,仍然满足所述第一预设条件,则所述主数瑞算子数字对象仓库节点保持所述运行模式仍然为所述普通运行模式;或者
40、若所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,满足所述第二预设条件,则所述主数瑞算子数字对象仓库节点将所述运行模式切换为所述稳定运行模式;
41、在所述第一从数瑞算子数字对象仓库节点下线并还未重新上线,且所述运行模式当前为所述稳定运行模式时,当所述第一从数瑞算子数字对象仓库节点重新上线后,若所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,满足所述第一预设条件,则所述主数瑞算子数字对象仓库节点将所述运行模式切换为所述普通运行模式;或者
42、若所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,仍然满足所述第二预设条件,则所述主数瑞算子数字对象仓库节点保持所述运行模式仍然为所述稳定运行模式;在所述主数瑞算子数字对象仓库节点将所述运行模式从所述稳定运行模式切换为所述普通运行模式后,所述数据语用集群中所有数瑞算子数字对象仓库节点删除在所述稳定运行模式期间,记录至硬盘中的全量状态数据和增量状态数据。
43、可选的,所述主数瑞算子数字对象仓库节点下线并重新上线,且所述主数瑞算子数字对象仓库节点变为从数瑞算子数字对象仓库节点,所述第二从数瑞算子数字对象仓库节点变为主数瑞算子数字对象仓库节点,包括:
44、在所述主数瑞算子数字对象仓库节点下线,且下线时长超过预设时长还未重新上线的情况下,所述数据语用集群中其他数瑞算子数字对象仓库节点均断开与所述主数瑞算子数字对象仓库节点的连接,并向所述数联网中的数瑞数联网标识解析系统发送重新选举请求;
45、所述数瑞数联网标识解析系统在接收到除所述主数瑞算子数字对象仓库节点以外的所有数瑞算子数字对象仓库节点发送的重新选举请求后,从除所述主数瑞算子数字对象仓库节点以外的所有数瑞算子数字对象仓库节点中选举所述第二从数瑞算子数字对象仓库节点作为所述新主数瑞算子数字对象仓库节点;
46、所述第二从数瑞算子数字对象仓库节点变为所述新主数瑞算子数字对象仓库节点后,向除所述主数瑞算子数字对象仓库节点以外的所有数瑞算子数字对象仓库节点发送连接请求,以使得除所述主数瑞算子数字对象仓库节点以外的所有数瑞算子数字对象仓库节点连接所述第二从数瑞算子数字对象仓库节点;
47、当所述主数瑞算子数字对象仓库节点重新上线后,所述第二从数瑞算子数字对象仓库节点向所述主数瑞算子数字对象仓库节点发送所述连接请求,以使得所述主数瑞算子数字对象仓库节点以从数瑞算子数字对象仓库节点的身份连接所述第二从数瑞算子数字对象仓库节点。
48、可选的,所述主数瑞算子数字对象仓库节点下线并重新上线,且所述主数瑞算子数字对象仓库节点仍然为主数瑞算子数字对象仓库节点,包括:
49、在所述主数瑞算子数字对象仓库节点下线,且下线时长未超过所述预设时长就重新上线的情况下,所述数据语用集群中其他数瑞算子数字对象仓库节点不会感知到所述主数瑞算子数字对象仓库节点下线,依旧保持与所述主数瑞算子数字对象仓库节点的连接;
50、所述主数瑞算子数字对象仓库节点重新上线后执行所述:接收调用请求并执行,同时所述主数瑞算子数字对象仓库节点向所述数据语用集群中的所有从数瑞算子数字对象仓库节点广播所述调用请求的步骤。
51、本发明实施例还提供了一种数据语用内存状态数据的恢复系统,所述恢复系统包括:数联网中的多个数瑞算子数字对象仓库节点,所述多个数瑞算子数字对象仓库节点中包括:主数瑞算子数字对象仓库节点、从数瑞算子数字对象仓库节点;所述多个数瑞算子数字对象仓库节点中每个数瑞算子数字对象仓库节点上均运行数据语用,所述数据语用为多点数据语用,所述多个数瑞算子数字对象仓库节点组成数据语用集群,所述主数瑞算子数字对象仓库节点包括:
52、接收执行广播模块,用于接收调用请求并执行,同时向所述数据语用集群中的所有从数瑞算子数字对象仓库节点广播所述调用请求;
53、接收结果模块,用于接收所有从数瑞算子数字对象仓库节点反馈的调用结果;
54、第一发送模块,用于在所有从数瑞算子数字对象仓库节点中第一从数瑞算子数字对象仓库节点反馈的调用结果错误的情况下,将自身运行的多点数据语用的全量状态数据发送至所述第一从数瑞算子数字对象仓库节点;
55、数据请求模块,用于在执行所述调用请求,且确定自身的调用结果错误的情况下,向所有从数瑞算子数字对象仓库节点中第二从数瑞算子数字对象仓库节点发送状态数据请求,所述第二从数瑞算子数字对象仓库节点是调用结果正确的所有从数瑞算子数字对象仓库节点中的任一从数瑞算子数字对象仓库节点;
56、接收数据模块,用于接收所述第二从数瑞算子数字对象仓库节点发送的在所述第二从数瑞算子数字对象仓库节点上运行的多点数据语用的全量状态数据;
57、接收信息发送数据模块,用于在所述第一从数瑞算子数字对象仓库节点下线并重新上线的情况下,接收所述第一从数瑞算子数字对象仓库节点发送的恢复信息,根据所述恢复信息和所述数据语用集群的当前运行模式,将自身运行的多点数据语用的全量状态数据发送至所述第一从数瑞算子数字对象仓库节点,或者将自身运行的多点数据语用的增量状态数据发送至所述第一从数瑞算子数字对象仓库节点,或者不向所述第一从数瑞算子数字对象仓库节点发送任何数据;
58、发送信息接收数据模块,用于在自身下线并重新上线,且自身变为从数瑞算子数字对象仓库节点,所述第二从数瑞算子数字对象仓库节点变为新主数瑞算子数字对象仓库节点的情况下,向所述第二从数瑞算子数字对象仓库节点发送所述恢复信息,接收所述第二从数瑞算子数字对象仓库节点根据所述恢复信息和所述运行模式,发送的所述第二从数瑞算子数字对象仓库节点运行的多点数据语用的全量状态数据,或者增量状态数据;
59、执行模块,用于在自身下线并重新上线,且自身仍然为主数瑞算子数字对象仓库节点的情况下,执行步骤:接收调用请求并执行,同时向所述数据语用集群中的所有从数瑞算子数字对象仓库节点广播所述调用请求。
60、可选的,所述主数瑞算子数字对象仓库节点还包括:确定运行模式模块,所述确定运行模式模块用于:
61、在所述多点数据语用的分类为无状态数据语用的情况下,确定所述运行模式为普通运行模式;
62、在所述多点数据语用的分类为有状态数据语用,且所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,满足第一预设条件的情况下,确定所述运行模式为所述普通运行模式;
63、在所述多点数据语用的分类为有状态数据语用,且所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,满足第二预设条件的情况下,确定所述运行模式为所述稳定运行模式;
64、所述主数瑞算子数字对象仓库节点和所述从数瑞算子数字对象仓库节点均包括:运行记录模块,所述运行记录模块用于:
65、在所述普通运行模式的情况下,以内存持久化方式运行;
66、在所述稳定运行模式的情况下,将所述多点数据语用的全量状态数据和增量状态数据各自记录至自身硬盘中;
67、当所述多点数据语用的增量状态数据的记录数量达到预设数量时,各自更新所述多点数据语用的全量状态数据并记录,同时各自删除所述多点数据语用的增量状态数据记录;
68、其中,所述第一预设条件为:所述当前正常运行的数瑞算子数字对象仓库节点总数,大于对所述数据语用集群中的数瑞算子数字对象仓库节点总数进行预设运算后的总数,所述预设运算为:对所述数据语用集群中的数瑞算子数字对象仓库节点总数取半,得到第一结果,对所述第一结果向上取整;
69、所述第二预设条件为:所述当前正常运行的数瑞算子数字对象仓库节点总数,不大于对所述数据语用集群中的数瑞算子数字对象仓库节点总数进行预设运算后的总数。
70、可选的,所述恢复信息包括:所述第一从数瑞算子数字对象仓库节点下线前所述数据语用集群的运行模式、所述第一从数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号;
71、所述接收信息发送数据模块具体用于:
72、在所述第一从数瑞算子数字对象仓库节点下线前所述数据语用集群为所述普通运行模式,且所述第一从数瑞算子数字对象仓库节点重新上线后所述数据语用集群当前为任一运行模式的情况下,确定所述第一从数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号是否与所述数据语用集群的当前状态版本号相同,相同则不向所述第一从数瑞算子数字对象仓库节点发送任何数据,不相同则将自身运行的多点数据语用的全量状态数据发送至所述第一从数瑞算子数字对象仓库节点,以使得所述第一从数瑞算子数字对象仓库节点基于接收到的全量状态数据,运行自身的多点数据语用;
73、在所述第一从数瑞算子数字对象仓库节点下线前所述数据语用集群为所述稳定运行模式,且所述第一从数瑞算子数字对象仓库节点重新上线后所述数据语用集群为所述普通运行模式的情况下,将自身运行的多点数据语用的全量状态数据发送至所述第一从数瑞算子数字对象仓库节点,以使得所述第一从数瑞算子数字对象仓库节点基于接收到的全量状态数据,运行自身的多点数据语用;
74、在所述第一从数瑞算子数字对象仓库节点下线前所述数据语用集群为所述稳定运行模式,且所述第一从数瑞算子数字对象仓库节点重新上线后所述数据语用集群为所述稳定运行模式的情况下,所述第一从数瑞算子数字对象仓库节点从自身的硬盘中获取多点数据语用的全量状态数据和增量状态数据,同时,确定所述第一从数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号是否与所述数据语用集群的当前状态版本号相同,相同则不向所述第一从数瑞算子数字对象仓库节点发送任何数据,不相同则将自身运行的多点数据语用的新增增量状态数据发送至所述第一从数瑞算子数字对象仓库节点,以使得所述第一从数瑞算子数字对象仓库节点基于接收到的新增增量状态数据以及从自身硬盘中获取的全量状态数据和增量状态数据,运行自身的多点数据语用,所述新增增量状态数据是所述第一从数瑞算子数字对象仓库节点因下线导致的自身硬盘中没有的增量状态数据。
75、可选的,所述恢复信息还包括:所述主数瑞算子数字对象仓库节点下线前所述数据语用集群的运行模式、所述主数瑞算子数字对象仓库节点重新上线后运行的多点数据语用的版本号;
76、所述发送信息接收数据模块具体用于:
77、向所述第二从数瑞算子数字对象仓库节点发送所述恢复信息;
78、接收所述第二从数瑞算子数字对象仓库节点发送的多点数据语用的全量状态数据,基于接收到的全量状态数据,运行自身的多点数据语用;
79、或者,从自身的硬盘中获取多点数据语用的全量状态数据和增量状态数据,同时,接收所述第二从数瑞算子数字对象仓库节点发送的多点数据语用的新增增量状态数据,基于接收到的新增增量状态数据以及从自身硬盘中获取的全量状态数据和增量状态数据,运行自身的多点数据语用。
80、本发明实施例还提供了一种数联网系统,所述数联网系统包括:数瑞数联网标识解析系统、多个数瑞存储数字对象仓库节点、多个数瑞算子数字对象仓库节点;
81、所述数瑞数联网标识解析系统用于管理所述数瑞算子数字对象仓库节点和所述数瑞存储数字对象仓库节点是否加入所述数联网系统;
82、所述多个数瑞算子数字对象仓库节点用于执行如上任一所述的数据语用内存状态数据的恢复方法;
83、所述多个数瑞存储数字对象仓库节点用于存储包括以下信息中的至少一类:
84、所述多点数据语用的运行结果;
85、所述多点数据语用的状态数据;
86、所述多点数据语用的执行分支信息。
87、本发明提供的一种数据语用内存状态数据的恢复方法,主数瑞算子数字对象仓库节点接收调用请求并执行,同时还向所有从数瑞算子数字对象仓库节点广播调用请求;之后接收所有从数瑞算子数字对象仓库节点反馈的调用结果;在第一从数瑞算子数字对象仓库节点反馈的调用结果错误的情况下,即,第一从数瑞算子数字对象仓库节点上运行的多点数据语用的数据语用崩溃,或者跨数据语用调用的序号与其他数瑞算子数字对象仓库节点的不一致,或者多点数据语用的当前状态版本号与其他数瑞算子数字对象仓库节点的不一致时,主数瑞算子数字对象仓库节点将自身运行的多点数据语用的全量状态数据发送至第一从数瑞算子数字对象仓库节点,这样就恢复了第一从数瑞算子数字对象仓库节点上运行的多点数据语用内存状态数据。
88、而在主数瑞算子数字对象仓库节点执行调用请求,且确定自身的调用结果错误的情况下,即,主数瑞算子数字对象仓库节点上运行的多点数据语用的数据语用崩溃,或者跨数据语用调用的序号与其他数瑞算子数字对象仓库节点的不一致,或者多点数据语用的当前状态版本号与其他数瑞算子数字对象仓库节点的不一致时,主数瑞算子数字对象仓库节点向调用结果正确的所有从数瑞算子数字对象仓库节点中的任一从数瑞算子数字对象仓库节点,例如:第二从数瑞算子数字对象仓库节点,发送状态数据请求,主数瑞算子数字对象仓库节点接收第二从数瑞算子数字对象仓库节点发送的在第二从数瑞算子数字对象仓库节点上运行的多点数据语用的全量状态数据,这样就恢复了主数瑞算子数字对象仓库节点上运行的多点数据语用内存状态数据。
89、对于数瑞算子数字对象仓库节点因各方面因素下线并重新上线的情况:在第一从数瑞算子数字对象仓库节点下线并重新上线的情况下,第一从数瑞算子数字对象仓库节点向主数瑞算子数字对象仓库节点发送恢复信息,主数瑞算子数字对象仓库节点根据恢复信息和数据语用集群的当前运行模式,将自身运行的多点数据语用的全量状态数据发送至第一从数瑞算子数字对象仓库节点,或者将自身运行的多点数据语用的增量状态数据发送至第一从数瑞算子数字对象仓库节点,或者不向第一从数瑞算子数字对象仓库节点发送任何数据;从而恢复了第一从数瑞算子数字对象仓库节点上运行的多点数据语用内存状态数据。
90、在主数瑞算子数字对象仓库节点下线并重新上线,且主数瑞算子数字对象仓库节点变为从数瑞算子数字对象仓库节点,第二从数瑞算子数字对象仓库节点变为新主数瑞算子数字对象仓库节点的情况下,主数瑞算子数字对象仓库节点向第二从数瑞算子数字对象仓库节点发送恢复信息,第二从数瑞算子数字对象仓库节点根据恢复信息和数据语用集群的当前运行模式,将自身运行的多点数据语用的全量状态数据发送至主数瑞算子数字对象仓库节点,或者将自身运行的多点数据语用的增量状态数据发送至主数瑞算子数字对象仓库节点,或者不向主数瑞算子数字对象仓库节点发送任何数据;从而恢复了主数瑞算子数字对象仓库节点上运行的多点数据语用内存状态数据。
91、在主数瑞算子数字对象仓库节点下线并重新上线,且主数瑞算子数字对象仓库节点仍然为主数瑞算子数字对象仓库节点的情况下,主数瑞算子数字对象仓库节点只需执行步骤:接收调用请求并执行。
92、通过上述多种恢复方法,保证了在多点数据语用运行生命周期内,相关设备出现数瑞数字对象崩溃、宕机、掉电等问题并恢复正常后,可以自动恢复数据语用内存状态数据,本发明的恢复方法具有较高的实用性。