基于Java的内存事务管理方法与流程

文档序号:34307931发布日期:2023-05-31 19:40阅读:33来源:国知局
基于Java的内存事务管理方法与流程

本发明属于内存数据处理,具体涉及基于java的内存事务管理方法。


背景技术:

1、程序在处理业务逻辑的过程中,在出现程序异常或是特定业务场景下,需要将已修改的内存数据回滚到修改之前的状态,这就需要程序拥有内存级别的数据事务处理能力。但实际的内存数据结构非常复杂,存在着各种嵌套和引用的关系,而且程序代码执行过程也非常复杂,想记录内存修改的数据,并且回滚这些数据的修改,就成为了一个技术难题。


技术实现思路

1、有鉴于此,一些实施例公开了基于java的内存事务管理方法,包括:

2、java类数据结构赋能成为diff类;

3、通过diff对象的唯一标识rootid,获取diff对象的事务上下文实例;

4、事务上下文执行start方法,开始事务;

5、执行原有业务逻辑,修改diff对象的内存数据;

6、业务逻辑执行结束后,

7、若业务逻辑正常,则事务上下文执行commit方法提交事务,事务结束;

8、若业务逻辑有异常,则事务上下文执行rollback方法回滚事务,还原diff对象已修改的数据内容,事务结束。

9、进一步,一些实施例公开的基于java的内存事务管理方法,java类数据结构赋能成为diff类包括:

10、数据结构类继承diffobject;

11、对于数据结构类的成员属性,增加取值方法,执行父类diffobject提供的方法,更新属性节点的数据变化路径;

12、对于数据结构类的成员属性,增加赋值方法,执行父类diffobject的方法,将每次属性数据的变化记录到事务上下文中。

13、一些实施例公开的基于java的内存事务管理方法,java类数据结构赋能成为diff类还包括:

14、对于集合类的成员属性,采用类darraylist替换java list类型和java set类型数据;采用类dhashmap替换java map类型数据。

15、一些实施例公开的基于java的内存事务管理方法,java类数据结构赋能成为diff类包括:

16、在根节点类构造函数中,初始化根节点标识和根节点路径属性,确保每一个根节点类对象实例具有根节点唯一标识,确保每个实例对象对应一个事务上下文。

17、一些实施例公开的基于java的内存事务管理方法,更新属性节点的数据变化路径,其中,属性节点数据包括属性的名称和属性当前值。

18、一些实施例公开的基于java的内存事务管理方法,将每次属性数据的变化记录到事务上下文中,其中,属性数据的变化包括属性的名称、属性修改后的值、属性修改前的值。

19、一些实施例公开的基于java的内存事务管理方法,通过diff对象的唯一标识rootid,获取diff对象的事务上下文实例,包括:

20、通过根节点diff对象,获得根节点标识rootid;

21、通过事务上下文管理类,获得根节点标识rootid对应的事务上下文实例。

22、一些实施例公开的基于java的内存事务管理方法,内存事务包括多个相互嵌套的事务,多个事务的管理嵌套进行。

23、一些实施例公开的基于java的内存事务管理方法,第一事务中嵌套有第二事务,第一事务与第二事务的管理嵌套方法包括:

24、java类数据结构赋能成为diff类;

25、通过diff对象的唯一标识rootid,获取diff对象的事务上下文实例;

26、事务上下文执行start方法,开始第一事务;包括创建第一事务,创建第一diff数据缓存池;

27、执行第一事务业务逻辑,修改diff对象的内存数据,并记录diff数据;

28、事务上下文再次执行start方法,开始事务;

29、创建第二事务,创建第二diff数据缓存池;

30、执行第二事务业务逻辑,修改diff对象的内存数据,并记录diff数据;

31、所有业务逻辑执行结束后,若所有业务逻辑正常,则事务上下文执行commit方法提交第二事务,将记录的修改diff内容提交到第一事务中,记录diff数据;事务上下文执行commit方法提交第一事务,将记录的修改diff内容提交到事务上下文的diffmap中,diffmap记录diff修改内容,事务结束。

32、一些实施例公开的基于java的内存事务管理方法,第一事务中嵌套有第二事务,第一事务与第二事务的管理嵌套方法包括:

33、java类数据结构赋能成为diff类;

34、通过diff对象的唯一标识rootid,获取diff对象的事务上下文实例;

35、事务上下文执行start方法,开始第一事务;包括创建第一事务,创建第一diff数据缓存池;

36、执行第一事务业务逻辑,修改diff对象的内存数据,并记录diff数据;

37、事务上下文再次执行start方法,开始第二事务;包括创建第二事务,创建第二diff数据缓存池;

38、执行第二事务逻业务辑,修改diff对象的内存数据,并记录diff数据;

39、所有业务逻辑执行结束后,若第二事务业务逻辑有异常,第一事务业务逻辑正常,则事务上下文执行rollback方法回滚第二事务,将记录的diff修改内容清空,通过java反射机制还原被修改的值;事务上下文执行commit方法提交第一事务,将记录的修改diff内容提交到事务上下文的diffmap中,diffmap记录diff修改内容,事务结束。

40、本发明实施例公开的基于java的内存事务管理方法,实现了java对象和对象属性的内存级别事务处理,同时支撑复杂类数据结构,例如支撑基础数据类型、支持java原生集合list和map,还支持多层事务嵌套执行,为基于内存数据的事务管理提供了一种具有应用潜力的方法。



技术特征:

1.基于java的内存事务管理方法,其特征在于,包括:

2.根据权利要求1所述的基于java的内存事务管理方法,其特征在于,所述java类数据结构赋能成为diff类包括:

3.根据权利要求2所述的基于java的内存事务管理方法,其特征在于,所述java类数据结构赋能成为diff类还包括:

4.根据权利要求1所述的基于java的内存事务管理方法,其特征在于,所述java类数据结构赋能成为diff类包括:

5.根据权利要求2所述的基于java的内存事务管理方法,其特征在于,更新属性节点的数据变化路径,其中,传入参数包括属性的名称和属性当前值。

6.根据权利要求2所述的基于java的内存事务管理方法,其特征在于,将每次属性数据的变化记录到事务上下文中,其中,输入参数包括属性的名称、属性修改后的值、属性修改前的值。

7.根据权利要求1所述的基于java的内存事务管理方法,其特征在于,所述通过diff对象的唯一标识rootid,获取diff对象的事务上下文实例,包括:

8.根据权利要求1所述的基于java的内存事务管理方法,其特征在于,若内存事务包括多个相互嵌套的事务,多个事务的管理嵌套进行。

9.根据权利要求8所述的基于java的内存事务管理方法,其特征在于,第一事务中嵌套有第二事务,第一事务与第二事务的管理嵌套方法包括:

10.根据权利要求8所述的基于java的内存事务管理方法,其特征在于,第一事务中嵌套有第二事务,第一事务与第二事务的管理嵌套方法包括:


技术总结
本发明实施例公开的基于Java的内存事务管理方法,包括:Java类数据结构赋能成为Diff类;通过Diff对象的唯一标识rootID,获取Diff对象的事务上下文实例;事务上下文执行start方法,开始事务;执行原有业务逻辑,修改Diff对象的内存数据;业务逻辑执行结束后,若业务逻辑正常,则事务上下文执行commit方法提交事务,事务结束;若业务逻辑有异常,则事务上下文执行rollback方法回滚事务,还原Diff对象已修改的数据内容,事务结束。基于Java的内存事务管理方法,实现了Java对象和对象属性的内存级别事务处理,同时支撑复杂类数据结构和多层事务嵌套执行,为基于内存数据的事务管理提供了一种具有应用潜力的方法。

技术研发人员:王刚
受保护的技术使用者:北京攸乐科技有限公司
技术研发日:
技术公布日:2024/1/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1