本发明专利技术涉及一种数据对象的处理方法及处理系统。该方法包括以下步骤:创建的与数据对象相关联的事务对象以及中间对象,并关联所述中间对象与所述事务对象;将对所述数据对象的操作转移到对所述中间对象,并记录对所述中间对象进行所述操作所产生的变更数据;调用所述事务对象的提交操作,将所述变更数据于所述数据对象。上述数据对象的处理方法及系统,将对数据对象的操作转移到中间对象,然后再调用事务对象的提交操作,将记录的变更数据更新到数据对象中,如此,对数据对象仅将变更数据进行更新,减小了数据量,操作简单,通过使用中间对象来缓冲对数据对象的操作,保证了对数据对象进行的事务操作具备了原子性、一致性、隔离性和持续性。
【技术实现步骤摘要】
数据对象的处理方法及系统
本专利技术涉及数据处理领域,特别涉及一种数据对象的处理方法及系统。
技术介绍
事务是指一组指令的集合,如果其中任意一条指令执行失败,所有操作都会回退到事务开始之前的状态。事务是并发控制和恢复的基本单位。事务具有四个属性:原子性、一致性、隔离性和持续性。原子性(atomicity)是指一个事务是一个不可分割的工作单位,事务中包括的指令和操作要么都做,要么都不做。一致性(consistency)是指事务必须是使数据库从一个一致性状态变到另一个一致性状态。其中,一致性与原子性是密切相关的,也即意味着不存在中间状态。隔离性(isolation)是指一个事务的执行不能被其他事务干扰,即一个事务内部的·操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰,也就是说在事务内部修改的数据,在事务正常结束之前,外部是觉察不到数据的改变的。持久性(durability)也称永久性(permanence),是指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的,接下来的其他操作或故障不应该对其有任何影响。为了实现数据对象的事务操作,传统的操作方法是有保存-恢复法、修改-抛弃法和交换法。其中,保存-恢复法是指使用额外的变量保存所需保护的数据,当发生异常时,将这些保存的数据重新恢复;修改-抛弃法是指把一个数据对象修改后,若发生异常,则直接抛弃;交换法是指在修改数据对象时,将数据对象复制出副本,并对副本进行各种操作,正常结束时,将副本直接和数据对象的位置交换,若发生异常,则将副本抛弃。然而,前两种方法中实现事务操作不具备事务的四个属性,交换法需要维护复杂的数据关系,操作复杂。
技术实现思路
基于此,有必要提供一种操作简单的数据对象的处理方法。一种数据对象的处理方法,包括以下步骤:创建的与数据对象相关联的事务对象以及中间对象,并关联所述中间对象与所述事务对象;·将对所述数据对象的操作转移到所述中间对象,并记录对所述中间对象进行所述操作所产生的变更数据;调用所述事务对象的提交操作,将所述变更数据赋于所述数据对象。优选地,所述关联中间对象与所述事务对象的步骤为:将所述中间对象注册到所述事务对象中。优选地,还包括步骤:获取对所述数据对象的读操作,直接读取所述数据对象。优选地,所述将对所述数据对象的操作转移到所述中间对象,并记录对所述中间对象进行所述操作所产生的变更数据的步骤包括:将对所述数据对象的写操作转移到所述中间对象,并记录对所述中间对象进行写操作所产生的变更数据。优选地,还包括步骤:当将所述变更数据赋于所述数据对象后,销毁所述中间对象;当对所述中间对象操作异常时,则销毁所述事务对象及与所述事务对象关联的中间对象。此外,还有必要提供一种操作简单的数据对象的处理方法。一种数据对象的处理系统,包括:构建模块,用于创建的与数据对象相关联的事务对象以及中间对象,并关联所述中间对象与所述事务对象;处理模块,用于将对所述数据对象的操作转移到所述中间对象,并记录对所述中间对象进行所述操作所产生的变更数据;更新模块,用于调用所述事务对象的提交操作,将所述变更数据赋于所述数据对象。优选地,所述构建模块还用于将所述中间对象注册到所述事务对象中。优选地,所述处理模块还用于获取对所述数据对象的读操作,直接读取所述数据对象。优选地,所述处理模块还用于将对所述数据对象的写操作转移到所述中间对象,并记录对所述中间对象进行写操作所产生的变更数据。优选地,还包括销毁模块,所述销毁模块用于当将所述变更数据赋于所述数据对象后,销毁所述中间对象,以及还用于当对所述中间对象操作异常时,则销毁所述事务对象及与所述事务对象关联的中间对象。上述数据对象的处理方法及系统,采用创建与数据对象相关联的事务对象及中间对象,将中间对象与事务对象关联,将对数据对象的操作转移到中间对象,然后再调用事务对象的提交操作,将记录的变更数据更新到数据对象中,如此,对数据对象仅将变更数据进行更新,减小了数据量,操作简单,且通过使用中间对象来缓冲对数据对象的操作,保证了对数据对象进行的事务操作具备了原子性、一致性、隔离性和持续性。附图说明图1为一个实施例中数据对象的处理方法的流程图;图2为一个实施例中数据对象的处理系统的结构示意图;图3为另一个实施例中数据对象的处理系统的结构示意图。具体实施方式下面结合具体的实施例及附图对数据对象的处理方法及系统进行详细的描述,以使其目的和技术方案更加清楚。如图1所示,在一个实施例中,一种数据对象的处理方法,包括以下步骤:步骤S10,创建与数据对象相关联的事务对象及中间对象,并关联中间对象与事务对象。 本实施例中,数据对象可为内存中的内部数据。事务为对数据对象的操作,获取对数据对象的事务操作,即创建一个事务对象(Transaction),同时,获取为所需操作的数据对象(TransObject实例)创建关联的中间对象(Modifier。然后,将该中间对象与该事务对象关联。其中,事务对象用于控制和管理事务的生命周期,可保存所有关联中间对象的接口引用,且事务对象支持相互之间的嵌套关系。中间对象与数据对象的对外接口相同,数据内容相同,且中间对象负责拦截并代理所有对数据对象的读写操作。在一个实施例中,将中间对象与事务对象关联的步骤为:将中间对象注册到该事务对象中。步骤S20,将对数据对象的操作转移到中间对象,并记录对中间对象进行该操作所产生的变更数据。本实施例中,可将所有对数据对象的操作,转移到与该数据对象关联的中间对象进行操作,中间对象对所有的操作进行缓冲,记录因操作产生的变更数据。此外,重复执行步骤S20直到所有的对数据对象的操作都完成为止。进一步的,在一个实施例中,获取对数据对象的读操作,则直接读取该数据对象。此外,也可读取中间对象。进一步的,在一个实施例中,将对数据对象的写操作转移到该中间对象,并记录对该中间对象进行写操作所产生的变更数据。该写操作为对数据对象的修改操作、增加操作或删除操作等。步骤S30,调用该事务对象的提交操作,将该变更数据赋于数据对象。本实施例中,调用事务对象的提交操作,即事务对象将所有关联的中间对象依次调用应用(doApply)操作,将记录的对中间对象操作产生的变更数据赋给关联的数据对象。调用完成后,将中间对象销毁。进一步的,在一个实施例中,上述数据对象的处理方法还包括步骤:当对该中间对象操作异常时,则销毁该事务对象及与该事务对象关联的中间对象。当对中间对象操作异常,即出现错误,则销毁事务对象及其关联的中间对象。请参图2所示,在一个实施例中,一种数据对象的处理系统,包括构建模块10、处理模块20和更新模块30。构建模块10用于创建与数据对象相关联的事务对象以及中间对象,并将该中间对象与该事务对象关联。本实施例中,数据对象可为内存中的内部数据。事务为对数据对象的操作,构建模块10获取对数据对象的事务操作,即创建一个事务对象(Transaction),同时,获取为所需操作的数据对象(TransObject实例)创建关联的中间对象(Modifier)。然后,将该中间对象与该事务对象关联。其中,事务对象用于控制和管理事务的生命周期,可保存所有关联中间对象的接口引用,且事务对象支持相互之间的嵌套关系。本文档来自技高网...
【技术保护点】
一种数据对象的处理方法,包括以下步骤:创建的与数据对象相关联的事务对象以及中间对象,并关联所述中间对象与所述事务对象;将对所述数据对象的操作转移到所述中间对象,并记录对所述中间对象进行所述操作所产生的变更数据;调用所述事务对象的提交操作,将所述变更数据赋于所述数据对象。
【技术特征摘要】
【专利技术属性】
技术研发人员:蒋建波,
申请(专利权)人:深圳市金蝶中间件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。