掌桥专利:专业的专利平台
掌桥专利
首页

数据语用内存状态数据的存储方法、系统及数联网系统

文献发布时间:2024-04-18 19:56:50


数据语用内存状态数据的存储方法、系统及数联网系统

技术领域

本发明涉及数联网领域,特别是一种数据语用内存状态数据的存储方法、存储系统及数联网系统。

背景技术

随着大数据时代的到来,大数据的价值逐渐凸显。要使用大数据进行分析,就需要数据的交换及处理。在数据共享交换场景中,存在对大规模共享数据的监管问题,即严重的信任问题。需方需要使用供方的数据,通过对该数据进行操作产生有价值的结果,但是供方往往不信任需方。一旦数据从供方传到需方,那么需方可以做任何操作,例如对数据做一些与先前声明的操作不同的操作,甚至对原始数据二次贩卖。

基于上述大数据应用需求,目前已有基于内存运行数据语用大数据数联网系统,针对大数据应用的场景,提供相应的服务。在数据语用采用内存计算模式的大数据数联网系统中,依靠数据语用的形式实现大数据的共享交换,而数据语用采用内存计算模式的大数据数联网系统中,数据语用采用基于内存的计算模式和随机多点执行模式。

基于内存的计算模式可以很好的满足数据语用执行时间的要求,提升数据语用执行的吞吐率,整体性能较好,并且无额外开销。但是目前基于内存运行数据语用大数据数联网系统这种基于内存的计算模式,存在运行模式单一,数据语用的内存状态数据会因数瑞算子数字对象仓库节点宕机、掉电等原因全部丢失的问题。因此,基于内存的计算模式下,如何在保障数据语用执行时间要求,以及数据语用执行吞吐率的基础上,根据实际运行情况,使用不同运行模式,保证数据语用内存状态数据不会丢失,是一个亟需解决的问题。

发明内容

鉴于上述问题,本发明提供一种数据语用内存状态数据的存储方法、存储系统及数联网系统,在保障了数据语用执行时间要求,以及数据语用执行吞吐率的基础上,同时根据实际运行情况,使用不同运行模式,保证数据语用内存状态数据不会丢失。

本发明实施例提供了一种数据语用内存状态数据的存储方法,所述存储方法应用于数联网中的多个数瑞算子数字对象仓库节点,所述多个数瑞算子数字对象仓库节点中每个数瑞算子数字对象仓库节点上均运行数据语用,所述数据语用为多点数据语用,所述多个数瑞算子数字对象仓库节点组成数据语用集群,所述存储方法包括:

所述数据语用集群中的主数瑞算子数字对象仓库节点,根据所述多点数据语用的分类,确定所述数据语用集群的运行模式,所述分类包括:无状态数据语用和有状态数据语用;

在所述分类为所述无状态数据语用的情况下,所述主数瑞算子数字对象仓库节点确定所述运行模式为普通运行模式;

在所述分类为所述有状态数据语用的情况下,所述主数瑞算子数字对象仓库节点根据所述数据语用集群中的数瑞算子数字对象仓库节点总数和当前正常运行的数瑞算子数字对象仓库节点总数,确定所述运行模式为稳定运行模式,或者为所述普通运行模式;

所述数据语用集群中的每个数瑞算子数字对象仓库节点根据所述运行模式,各自对所述多点数据语用的内存状态数据进行存储。

可选的,在所述分类为所述有状态数据语用的情况下,所述主数瑞算子数字对象仓库节点根据所述数据语用集群中的数瑞算子数字对象仓库节点总数和当前正常运行的数瑞算子数字对象仓库节点总数,确定所述运行模式为稳定运行模式,或者为所述普通运行模式,包括:

在所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,满足第一预设条件的情况下,所述主数瑞算子数字对象仓库节点确定所述运行模式为所述普通运行模式;

在所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,满足第二预设条件的情况下,所述主数瑞算子数字对象仓库节点确定所述运行模式为所述稳定运行模式。

可选的,所述数据语用集群中的每个数瑞算子数字对象仓库节点根据所述运行模式,各自对所述多点数据语用的内存状态数据进行存储,包括:

在所述运行模式为所述普通运行模式的情况下,所述每个数瑞算子数字对象仓库节点以内存持久化方式运行;

在所述运行模式为所述稳定运行模式的情况下,所述每个数瑞算子数字对象仓库节点以硬盘持久化方式对各自的内存状态数据进行记录;

在所述运行模式为所述普通运行模式,或者所述稳定运行模式的情况下,当所述多点数据语用的交易数量达到第一预设数量时,所述每个数瑞算子数字对象仓库节点中的任一数瑞算子数字对象仓库节点以数瑞存储数字对象仓库持久化方式对所述多点数据语用的内存状态数据进行存储。

可选的,所述多点数据语用的内存状态数据包括全量状态数据;

所述每个数瑞算子数字对象仓库节点以内存持久化方式运行时,均执行以下方法:

所述全量状态数据根据所述多点数据语用执行过程中交易请求的变化而动态变化。

可选的,所述多点数据语用的内存状态数据还包括:增量状态数据;所述每个数瑞算子数字对象仓库节点以硬盘持久化方式对各自的内存状态数据进行记录,包括:

所述每个节点均执行以下方法:

将所述多点数据语用的全量状态数据或增量状态数据记录至自身硬盘中;

当所述多点数据语用的增量状态数据的记录数量达到第二预设数量时,更新所述多点数据语用的全量状态数据并记录,同时删除所述多点数据语用的增量状态数据记录。

可选的,在所述运行模式为所述普通运行模式,或者所述稳定运行模式的情况下,当所述多点数据语用的交易数量达到第一预设数量时,所述每个数瑞算子数字对象仓库节点中的任一数瑞算子数字对象仓库节点以数瑞存储数字对象仓库持久化方式对所述多点数据语用的内存状态数据进行存储,包括:

将所述多点数据语用的当前全量状态数据,与上一个检查点在数瑞存储数字对象仓库中产生的哈希值一起作为当前检查点的数据在数瑞存储数字对象仓库中存储。

可选的,将所述多点数据语用的当前全量状态数据,与上一个检查点在数瑞存储数字对象仓库中产生的哈希值一起作为当前检查点的数据在数瑞存储数字对象仓库中存储之后,还包括:

所述任一数瑞算子数字对象仓库节点产生新的哈希值并广播给其余所有数瑞算子数字对象仓库节点;

所述其余所有数瑞算子数字对象仓库节点接收所述新的哈希值后,更新各自记录的检查点哈希值。

可选的,所述第一预设条件为:所述当前正常运行的数瑞算子数字对象仓库节点总数,大于对所述数据语用集群中的数瑞算子数字对象仓库节点总数进行预设运算后的总数;

所述第二预设条件为:所述当前正常运行的数瑞算子数字对象仓库节点总数,不大于对所述数据语用集群中的数瑞算子数字对象仓库节点总数进行预设运算后的总数;

其中,所述预设运算为:对所述数据语用集群中的数瑞算子数字对象仓库节点总数取半,得到第一结果,对所述第一结果向上取整。

本发明实施例还提供了一种数据语用内存状态数据的存储系统,所述存储系统包括:数联网中的多个数瑞算子数字对象仓库节点,所述多个数瑞算子数字对象仓库节点中包括:主数瑞算子数字对象仓库节点、从数瑞算子数字对象仓库节点;所述多个数瑞算子数字对象仓库节点中每个数瑞算子数字对象仓库节点上均运行数据语用,所述数据语用为多点数据语用,所述多个数瑞算子数字对象仓库节点组成数据语用集群,所述主数瑞算子数字对象仓库节点包括:

确定运行模式模块,用于根据所述多点数据语用的分类,确定所述数据语用集群的运行模式,所述分类包括:无状态数据语用和有状态数据语用;

所述确定运行模式模块,具体包括:

第一单元,用于在所述分类为所述无状态数据语用的情况下,确定所述运行模式为普通运行模式;

第二单元,用于在所述分类为所述有状态数据语用的情况下,根据所述数据语用集群中的节点总数和当前正常运行的节点总数,确定所述运行模式为稳定运行模式,或者为所述普通运行模式;

主数瑞算子数字对象仓库节点存储模块,用于根据所述运行模式,对所述多点数据语用的内存状态数据进行存储;

所述从数瑞算子数字对象仓库节点包括:从数瑞算子数字对象仓库节点存储模块,所述从数瑞算子数字对象仓库节点存储模块用于根据所述运行模式,对所述多点数据语用的内存状态数据进行存储。

可选的,所述第二单元具体用于:

在所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,满足第一预设条件的情况下,确定所述运行模式为所述普通运行模式;

在所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,满足第二预设条件的情况下,确定所述运行模式为所述稳定运行模式。

可选的,所述主数瑞算子数字对象仓库节点存储模块和所述从数瑞算子数字对象仓库节点存储模块,均具体用于:

在所述运行模式为所述普通运行模式的情况下,以内存持久化方式运行;

在所述运行模式为所述稳定运行模式的情况下,以硬盘持久化方式对各自的内存状态数据进行记录;

在所述运行模式为所述普通运行模式,或者所述稳定运行模式的情况下,当所述多点数据语用的交易数量达到第一预设数量时,以数瑞存储数字对象仓库持久化方式对所述多点数据语用的内存状态数据进行存储。

可选的,所述多点数据语用的内存状态数据还包括:增量状态数据;所述主数瑞算子数字对象仓库节点存储模块和所述从数瑞算子数字对象仓库节点存储模块,还具体用于:

将所述多点数据语用的全量状态数据或增量状态数据记录至自身硬盘中;

当所述多点数据语用的增量状态数据的记录数量达到第二预设数量时,更新所述多点数据语用的全量状态数据并记录,同时删除所述多点数据语用的增量状态数据记录。

本发明实施例还提供了一种数联网系统,所述数联网系统包括:数瑞数联网标识解析系统、多个数瑞存储数字对象仓库节点、多个数瑞算子数字对象仓库节点;

所述数瑞数联网标识解析系统用于管理所述数瑞算子数字对象仓库节点和所述数瑞存储数字对象仓库节点是否加入所述数联网系统;

所述多个数瑞算子数字对象仓库节点用于执行如上任一所述的数据语用内存状态数据的存储方法;

所述多个数瑞存储数字对象仓库节点用于存储包括以下信息中的至少一类:

所述多点数据语用的运行结果;

所述多点数据语用的状态数据;

所述多点数据语用的执行分支信息。

本发明提供的一种数据语用内存状态数据的存储方法,在多点数据语用运行时,按照多点数据语用的分类,是无状态数据语用还是有状态数据语用,来确定数据语用集群的运行模式。若是无状态数据语用,则主数瑞算子数字对象仓库节点确定运行模式为普通运行模式;若是有状态数据语用,则主数瑞算子数字对象仓库节点根据再数据语用集群中的数瑞算子数字对象仓库节点总数和当前正常运行的数瑞算子数字对象仓库节点总数,具体确定运行模式为稳定运行模式,或者为普通运行模式。运行模式确定后,数据语用集群中的每个数瑞算子数字对象仓库节点即可根据运行模式,在普通运行模式下,以内存持久化方式对各自的内存状态数据进行存储;在稳定运行模式下,以硬盘持久化方式对各自的内存状态数据进行存储。

通过上述存储方法,在保障了数据语用执行时间要求,以及数据语用执行吞吐率的基础上,保证了在多点数据语用运行生命周期内,基于数瑞算子数字对象仓库节点的具体情况,使用不同运行模式,并基于不同运行模式使用不同内存状态数据存储方法,使得多点数据语用的内存状态数据不会因数瑞算子数字对象仓库节点出现宕机、掉电等问题而丢失,以利于后期内存状态数据的恢复,本发明的存储方法具有较高的实用性。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本发明实施例一种数据语用内存状态数据的存储方法的流程图;

图2是本发明实施例一种数据语用内存状态数据的存储系统的框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。应当理解,此处所描述的具体实施例仅用以解释本发明,仅仅是本发明一部分实施例,而不是全部的实施例,并不用于限定本发明。

本发明实施例提出的数据语用内存状态数据的存储方法,针对目前的基于内存的计算模式,提出了一种存储方法,参照图1,示出了本发明实施例一种数据语用内存状态数据的存储方法的流程图,该存储方法应用于数联网的多个数瑞算子数字对象仓库节点,多个数瑞算子数字对象仓库节点中每个数瑞算子数字对象仓库节点上均运行数据语用,该数据语用为多点数据语用,多个数瑞算子数字对象仓库节点组成数据语用集群,存储方法包括:

步骤101:数据语用集群中的主数瑞算子数字对象仓库节点,根据多点数据语用的分类,确定数据语用集群的运行模式,分类包括:无状态数据语用和有状态数据语用。

本发明实施例中,多点数据语用因其自身的特性,一般在数联网的多个数瑞算子数字对象仓库节点上布置并运行。由于基于内存运行数据语用的大数据数联网系统中,多点数据语用通过以数据语用为粒度分片,来实现执行的可扩展和低成本,因此多点数据语用在启动运行时,可以由用户自行定义需要多少数瑞算子数字对象仓库节点来运行多点数据语用。

作为一个示例:某多点数据语用存储在20个数瑞算子数字对象仓库节点上,用户需要使用该多点数据语用时,可以选择9个数瑞算子数字对象仓库节点运行该多点数据语用,也可以选择20个数瑞算子数字对象仓库节点运行该多点数据语用。

在多点数据语用启动之前,用户需要选择在某个数瑞算子数字对象仓库节点上发起启动该多点数据语用请求,一般以该数瑞算子数字对象仓库节点作为数据语用集群中的主数瑞算子数字对象仓库节点,同时用户还需要选择在多少个数瑞算子数字对象仓库节点上运行该多点数据语用,除了主数瑞算子数字对象仓库节点以外的数瑞算子数字对象仓库节点为数据语用集群中的从数瑞算子数字对象仓库节点。沿用上述示例:假设用户选择在一个数瑞算子数字对象仓库节点上发起启动运行多点数据语用请求,并选择共10个数瑞算子数字对象仓库节点运行该数据语用,那么发起启动运行多点数据语用请求的数瑞算子数字对象仓库节点为主数瑞算子数字对象仓库节点,从剩余19个数瑞算子数字对象仓库节点中任意选择9个数瑞算子数字对象仓库节点作为从数瑞算子数字对象仓库节点。

在多点数据语用启动并运行后,主数瑞算子数字对象仓库节点根据多点数据语用的分类,确定数据语用集群的运行模式,多点数据语用的分类包括:无状态数据语用和有状态数据语用。所谓无状态数据语用是指:数据语用的执行结果仅与该次调用有关,与该数据语用的历史状态无关,例如:四则运算数据语用等;所谓有状态数据语用是指:数据语用的执行结果与其历史执行有关,例如:计数器数据语用、转账数据语用等。

步骤102:在分类为无状态数据语用的情况下,主数瑞算子数字对象仓库节点确定运行模式为普通运行模式。

本发明实施例中,假若多点数据语用的分类为无状态数据语用,则主数瑞算子数字对象仓库节点确定数据语用集群的运行模式为普通运行模式。之所以无状态数据语用采用普通运行模式的原因,在下文说明,在此先不赘述。

普通运行模式和稳定运行模式的具体说明,也在下文陈述,先不赘述。

步骤103:在分类为有状态数据语用的情况下,主数瑞算子数字对象仓库节点根据数据语用集群中的数瑞算子数字对象仓库节点总数和当前正常运行的数瑞算子数字对象仓库节点总数,确定运行模式为稳定运行模式,或者为普通运行模式。

本发明实施例中,假若多点数据语用的分类为有状态数据语用,则主数瑞算子数字对象仓库节点需要根据数据语用集群中的数瑞算子数字对象仓库节点总数和当前正常运行的数瑞算子数字对象仓库节点总数,确定数据语用集群的运行模式为普通运行模式或者稳定运行模式。

具体的:在数据语用集群中的数瑞算子数字对象仓库节点总数与当前正常运行的数瑞算子数字对象仓库节点总数之间,满足第一预设条件的情况下,主数瑞算子数字对象仓库节点确定运行模式为普通运行模式;在数据语用集群中的数瑞算子数字对象仓库节点总数与当前正常运行的数瑞算子数字对象仓库节点总数之间,满足第二预设条件的情况下,主数瑞算子数字对象仓库节点确定运行模式为稳定运行模式。

其中,所谓第一预设条件为:当前正常运行的数瑞算子数字对象仓库节点总数,大于对数据语用集群中的数瑞算子数字对象仓库节点总数进行预设运算后的总数;所谓第二预设条件为:当前正常运行的数瑞算子数字对象仓库节点总数,不大于对数据语用集群中的数瑞算子数字对象仓库节点总数进行预设运算后的总数;所谓预设运算为:对数据语用集群中的数瑞算子数字对象仓库节点总数取半,得到第一结果,对第一结果向上取整。假设:数据语用集群中的数瑞算子数字对象仓库节点总数为N,数据语用集群中的当前正常运行的数瑞算子数字对象仓库节点的总数为M;则预设运算为:⌈N/2⌉,第一预设条件即为:M>⌈N/2⌉,第二预设条件即为:M≤⌈N/2⌉。

即,当M>⌈N/2⌉时,可以确定数据语用集群中当前正常运行的数瑞算子数字对象仓库节点占大多数,所以主数瑞算子数字对象仓库节点确定数据语用集群的运行模式为普通运行模式;当M≤⌈N/2⌉时,可以确定数据语用集群中当前正常运行的数瑞算子数字对象仓库节点不多,所以主数瑞算子数字对象仓库节点确定数据语用集群的运行模式为稳定运行模式。

步骤104:数据语用集群中的每个数瑞算子数字对象仓库节点根据运行模式,各自对多点数据语用的内存状态数据进行存储。

本发明实施例中,在确定了数据语用集群的运行模式之后,数据语用集群中的每个数瑞算子数字对象仓库节点可以根据该运行模式,各自对自身运行的多点数据语用的内存状态数据进行存储。不同的运行模式,对应不同的存储方法。

具体的:在运行模式为普通运行模式的情况下,每个数瑞算子数字对象仓库节点以内存持久化方式对各自的内存状态数据进行存储;在运行模式为稳定运行模式的情况下,每个数瑞算子数字对象仓库节点以硬盘持久化方式对各自的内存状态数据进行存储。

本发明实施例中,多点数据语用的内存状态数据包括:全量状态数据和增量状态数据。全量状态数据包括:数据语用中的所有全局变量及当前值、数据语用ID、数据语用Name、数据语用类型以及数据语用的状态版本号等信息。增量状态数据包括:调用数据语用请求的参数、方法名,如果该次调用中包含了跨数据语用调用,则还包括该数据语用发起的跨数据语用调用的执行结果。

其中,数据语用中的所有全局变量及当前值即为多点数据语用的数据语用状态,在基于内存计算的数据语用中,数据语用状态是指数据语用中全局变量的名称、类型及其值。数据语用状态的改变是由于不同的数据语用调用对数据语用中全局变量的值产生了影响。这些历史状态将会影响后续的数据语用调用结果。

数据语用的状态版本号:对于有状态的数据语用,每次数据语用调用都会造成数据语用状态的改变。因此,每次调用之后,会产生一个新的状态版本号。例如,最初的状态版本号为-1,在执行完第1个调用请求之后,状态版本号变为0;在执行完第2个调用请求之后,状态版本号变为1。通过状态版本号可以知道某一数瑞算子数字对象仓库节点的数据语用状态是否落后于其他节点。并且在执行某次数据语用调用请求时,可以通过当前数据语用版本号和请求序号是否是连续的来判断该数瑞算子数字对象仓库节点是否漏掉了某些调用请求,或者重复收到了某些调用请求。

跨数据语用调用是指数联网中数据语用支持一个数据语用对另一个数据语用的调用,即跨数据语用调用。可以是一个多点数据语用对一个单点数据语用的调用,也可以是一个多点数据语用对另一个多点数据语用的调用。

数据语用元信息包括:数据语用中的数据语用ID、数据语用Name、数据语用项目名称、数据语用状态版本号、支持跨数据语用调用的数据语用中跨数据语用调用随机变量种子、当前跨数据语用调用随机变量的值。无论是有状态数据语用还是无状态数据语用,数据语用元信息都需要保持一致。

相比于全量状态数据,增量状态数据则是对多点数据语用状态的增量式变化的记录,其并不能反映某一时刻某个多点数据语用的全部状态信息。一条增量状态数据仅能记录多点数据语用从一个状态到另一个状态的变化过程。

增量状态数据记录的具体流程如下:

(1)用户发起调用;

(2)在开始数据语用执行的同时开始增量状态记录;

(3)记录数据语用调用方法以及传入参数;

(4)如果该数据语用此次被调用的方法中包含跨数据语用调用,则需要记录跨数据语用调用中调用其他数据语用的结果;

(5)该次数据语用调用完成后将形成一条完整的增量状态数据。

基于上述理论,在普通运行模式下,由于数据语用集群中当前正常运行的数瑞算子数字对象仓库节点占大多数,而所有数瑞算子数字对象仓库节点在同一时刻崩溃造成内存状态数据丢失的情况可以忽略不计,因此需要优先考虑的是多点数据语用调用的性能因素,所以在普通运行模式下,以内存持久化方式进行存储,即,将多点数据语用的当前全量状态数据存储至自身内存中,而不需要存储至硬盘中。即使内存持久化存在内存状态数据易丢失的问题,但是因为数据语用集群中当前正常运行的数瑞算子数字对象仓库节点占大多数,依然可以保证多点数据语用的内存状态数据的正确性。而当前非正常运行的数瑞算子数字对象仓库节点,在恢复正常运行后,可以基于正常运行的数瑞算子数字对象仓库节点,获取到正确的内存状态数据,保证多点数据语用的正常运行。

由于在普通运行模式下,多点数据语用是在数瑞算子数字对象仓库节点的内存中运行,多点数据语用的所有内存状态数据都在内存中。在普通运行模式下,每个数瑞算子数字对象仓库节点不需要做额外的操作,多点数据语用的执行过程中,交易请求的变化会造成内存状态数据的改变,多点数据语用的所有状态数据都在内存中,这种方式就是以内存持久化方式运行下的多点数据语用内存状态数据的记录,相当于多点数据语用内存状态数据的存储。

在稳定运行模式下,由于此时数据语用集群中当前正常运行的数瑞算子数字对象仓库节点并不多,优先考虑到数据语用集群的可用性,因此每个数瑞算子数字对象仓库节点采用硬盘持久化的方式进行存储。一般情况下,数瑞算子数字对象仓库节点进行存储时,需要基于其他程序或者方式对内存状态数据进行记录,实现内存状态数据的硬盘存储。即,在多点数据语用执行的过程中,需要将数据语用的内存状态数据存储硬盘。假若某数瑞算子数字对象仓库节点发生内存状态数据丢失的问题,该数瑞算子数字对象仓库节点首先从硬盘中恢复内存状态数据,当然也可以基于正常运行的数瑞算子数字对象仓库节点,获取到正确的内存状态数据,保证多点数据语用的正常运行。

本发明实施例中,每个数瑞算子数字对象仓库节点采用硬盘持久化的方式进行存储的具体方法为:将多点数据语用的全量状态数据或者增量状态数据记录至自身硬盘中;当多点数据语用的增量状态数据的记录数量达到第二预设数量时,更新多点数据语用的全量状态数据并记录,同时删除多点数据语用的增量状态数据记录。

考虑到数据语用集群的工作效率,一般情况下,全量状态数据的数据大小较大,而增量状态数据的数据大小较小。并且在硬盘中记录全量状态数据还需要调用相应的方法收集数据语用内存中的各个变量及其值。因此数瑞算子数字对象仓库节点,在某一时刻将全量状态数据记录至自身硬盘存储后,后续当出现一条增量状态数据时,只将该条增量状态数据记录至硬盘存储,这就提高了数据语用集群的工作效率。而当增量状态数据的记录数量达到第二预设数量时,将最新的全量状态数据记录至硬盘存储,同时删除前面存储的增量状态数据记录。例如:第二预设数量为20,那么数瑞算子数字对象仓库节点在某一时刻将全量状态数据记录至自身硬盘存储后,后续当出现第一条增量状态数据时,只将第一条增量状态数据记录至硬盘存储,再出现第二条增量状态数据时,再将第二条增量状态数据记录至硬盘存储,以此类推,直至出现第20条增量数据时,将最新的全量状态数据记录至硬盘存储,同时删除前面存储的20条增量状态数据记录以及旧的全量状态数据记录。

还需说明的是,对于无状态数据语用而言,由于每次调用结果与历史状态无关,因此如果数据语用集群在稳定模式下运行,那么无状态数据语用采用全量状态数据加增量状态数据记录至硬盘存储是没有意义的,还会对数据语用集群带来额外开销。所以对于无状态数据语用,数据语用集群一直以普通模式运行,而不会以稳定模式运行。

在上述两种存储方式的基础上,考虑到数据语用的可追溯性,需要将多点数据语用的全量状态数据存储至数瑞存储数字对象仓库上,形成一个检查点。因此,在运行模式为普通运行模式,或者稳定运行模式的情况下,当多点数据语用的交易数量达到第一预设数量时,每个数瑞算子数字对象仓库节点中的任一数瑞算子数字对象仓库节点以数瑞存储数字对象仓库持久化方式对多点数据语用的内存状态数据进行存储。即,将多点数据语用的当前全量状态数据,与上一个检查点在数瑞存储数字对象仓库中产生的哈希值一起作为当前检查点的数据在数瑞存储数字对象仓库中存储。例如:第一预设数量为200,那么当多点数据语用的交易数量达到200个时,每个数瑞算子数字对象仓库节点中的任一数瑞算子数字对象仓库节点,假设该任一数瑞算子数字对象仓库节点是主数瑞算子数字对象仓库节点,则主数瑞算子数字对象仓库节点将多点数据语用的当前全量状态数据,与上一个检查点在数瑞存储数字对象仓库中产生的哈希值一起作为当前检查点的数据在数瑞存储数字对象仓库中存储,同时当前检查点即为最新的检查点。之后,主数瑞算子数字对象仓库节点产生新的哈希值并广播给其余所有数瑞算子数字对象仓库节点;其余所有数瑞算子数字对象仓库节点接收新的哈希值后,更新各自记录的检查点哈希值。

综上所述,通过上述存储方法,在保障了数据语用执行时间要求,以及数据语用执行吞吐率的基础上,保证了在多点数据语用运行生命周期内,基于数瑞算子数字对象仓库节点的具体情况,使得数据语用集群在普通运行模式或者稳定运行模式下运行,并基于普通运行模式或者稳定运行模式使用不同内存状态数据存储方法,使得多点数据语用的内存状态数据不会因数瑞算子数字对象仓库节点出现宕机、掉电等问题而丢失,以利于后期内存状态数据的恢复。同时在多点数据语用运行的整个生命周期内,根据交易数量,对多点数据语用的当前全量状态数据在数瑞存储数字对象仓库中存储,形成检查点,通过多个检查点,组成数联网系统的不可篡改的证据链。本发明的存储方法具有较高的实用性。

基于上述数据语用内存状态数据的存储方法,参照图2,示出了本发明实施例一种数据语用内存状态数据的存储系统的框图,所述存储系统包括:数联网中的多个数瑞算子数字对象仓库节点,所述多个数瑞算子数字对象仓库节点中包括:主数瑞算子数字对象仓库节点、从数瑞算子数字对象仓库节点;所述多个数瑞算子数字对象仓库节点中每个数瑞算子数字对象仓库节点上均运行数据语用,所述数据语用为多点数据语用,所述多个数瑞算子数字对象仓库节点组成数据语用集群,所述主数瑞算子数字对象仓库节点包括:

确定运行模式模块,用于根据所述多点数据语用的分类,确定所述数据语用集群的运行模式,所述分类包括:无状态数据语用和有状态数据语用;

所述确定运行模式模块,具体包括:

第一单元,用于在所述分类为所述无状态数据语用的情况下,确定所述运行模式为普通运行模式;

第二单元,用于在所述分类为所述有状态数据语用的情况下,根据所述数据语用集群中的节点总数和当前正常运行的节点总数,确定所述运行模式为稳定运行模式,或者为所述普通运行模式;

主数瑞算子数字对象仓库节点存储模块,用于根据所述运行模式,对所述多点数据语用的内存状态数据进行存储;

所述从数瑞算子数字对象仓库节点包括:从数瑞算子数字对象仓库节点存储模块,所述从数瑞算子数字对象仓库节点存储模块用于根据所述运行模式,对所述多点数据语用的内存状态数据进行存储。

可选的,所述第二单元具体用于:

在所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,满足第一预设条件的情况下,确定所述运行模式为所述普通运行模式;

在所述数据语用集群中的数瑞算子数字对象仓库节点总数与所述当前正常运行的数瑞算子数字对象仓库节点总数之间,满足第二预设条件的情况下,确定所述运行模式为所述稳定运行模式。

可选的,所述主数瑞算子数字对象仓库节点存储模块和所述从数瑞算子数字对象仓库节点存储模块,均具体用于:

在所述运行模式为所述普通运行模式的情况下,以内存持久化方式运行;

在所述运行模式为所述稳定运行模式的情况下,以硬盘持久化方式对各自的内存状态数据进行记录;

在所述运行模式为所述普通运行模式,或者所述稳定运行模式的情况下,当所述多点数据语用的交易数量达到第一预设数量时,以数瑞存储数字对象仓库持久化方式对所述多点数据语用的内存状态数据进行存储。

可选的,所述多点数据语用的内存状态数据还包括:增量状态数据;所述主数瑞算子数字对象仓库节点存储模块和所述从数瑞算子数字对象仓库节点存储模块,还具体用于:

将所述多点数据语用的全量状态数据或增量状态数据记录至自身硬盘中;

当所述多点数据语用的增量状态数据的记录数量达到第二预设数量时,更新所述多点数据语用的全量状态数据并记录,同时删除所述多点数据语用的增量状态数据记录。

基于上述数据语用内存状态数据的存储方法,本发明实施例还提供了一种数联网系统,所述数联网系统包括:数瑞数联网标识解析系统、多个数瑞存储数字对象仓库节点、多个数瑞算子数字对象仓库节点;所述数瑞数联网标识解析系统用于授权所述多个数瑞算子数字对象仓库节点和所述多个数瑞存储数字对象仓库节点加入数联网网络,例如:批准任意服务器或者用户设备进入数联网系统,作为数瑞算子数字对象仓库节点;所述多个数瑞算子数字对象仓库节点用于执行如步骤101~步骤104任一所述的数据语用内存状态数据的存储方法;所述多个数瑞存储数字对象仓库节点用于存储所述多个数瑞算子数字对象仓库节点发送的所述多点数据语用的运行结果等信息。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

上面结合附图对本发明的实施例进行了描述,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 一种用于确定大数据存储系统的运行状态的方法及系统
  • 一种在大数据存储系统中进行数据混合存储的方法及系统
  • 管理内存数据及在内存中维护数据的方法和系统
  • 数据存储系统、数据存储方法以及制造固态驱动器的方法
  • 一种元数据卷的存储状态记录方法、系统及相关组件
  • 数联网数据语用内存状态数据的持久化方法、装置及系统
  • 堆外直接内存数据存储器,创建和/或管理堆外直接内存数据存储器的方法,和/或包括堆外直接内存数据存储器的系统
技术分类

06120116437348