首页 > 其他分享 >君方智能设计平台-事务管理(Redo/Undo)技术方案

君方智能设计平台-事务管理(Redo/Undo)技术方案

时间:2024-07-09 09:56:07浏览次数:16  
标签:事务管理 事务 方案 对象 君方 Undo 修改 序列化 redo

1.背景介绍

事务处理是指对数据进行一组操作,这些操作要么全部成功,要么全部失败,以确保数据的一致性和完整性。软件的事务管理主要实现方案主要涉及以下几个方面:

(1)数据一致性:在CAD软件中,数据一致性是指确保所有操作都遵循一定的顺序,以避免意外的后果。例如,在编辑图形时,确保先删除图形元素,然后再创建新的图形元素。

(2)事务边界:在CAD软件中,事务边界是指将一系列相关操作组合成一个完整的事务。事务边界可以确保一组操作要么全部成功,要么全部失败。例如,在绘制一个建筑平面图时,将所有操作组合成一个事务,以确保整个绘制过程的一致性。

(3)错误恢复:CAD软件需要具备错误恢复能力,以便在发生意外故障或操作失败时,能够将数据恢复到一致的状态。错误恢复通常涉及到日志记录、事务回滚等机制。

在图形平台的设计与开发中,撤销(Undo)和重做(Redo)机制是至关重要的功能。它们让用户能够回退到先前的操作状态,或者重新执行之前撤销的操作,提供了更好的用户体验和操作灵活性,这一功能是由事务管理机制来实现的。我们将深入探讨撤销与重做机制的原理、实现方法以及其应用场景。

2.技术方案选择

  • 方案1

commit提交产生的修改对象序列化流保存在redo文件。

方案2

commit提交产生的修改对象序列化流保存在内存中。

由于采用内存存储,序列化和反序列化性能,方案1的劣于方案2。方案2稳定可靠性差。程序崩溃,导致文件修改无法恢复数据丢失,无法实现设计目标2.方案1的每次提交保存在文件中,程序崩溃后,数据可以恢复。保存二进制流会占用大量内存,影响程序性能。经过比较,决定采用方案1.

3.技术方案

  • 使用对象状态跟踪管理器来跟踪上次提交以来element修改状态。
  • 使用OM序列化机制生成所有修改对象的序列化流。
  • 将序列化流保存在redo文件中及对象修改状态(删除、修改、新增)。
  • Redo时读入redo文件的序列化流,使用OM反序列化机制生成Element对象,根据保存的修改状态,更新对象管理器ElementManager中的对象。
  • Undo时读入redo文件的序列化流,使用OM反序列化机制生成Element对象,根据保存的修改状态,更新ElementManager中的对象。
  • 每个事务提交生成一个redo文件。
  • 设计TransactionEvent事务事件机制,事务commit时,发出PreCommint等事件,应用做对应处理。
  • 设计RedoUndoEvent事件,回退和重做时发出对应事件,应用做对应处理。

4.设计实现

4.1设计类图

4.2 接口设计

5.使用规则

  • 调整业务逻辑,减少事务创建。
  • 避免事务的滥用,创建新的事务前,请仔细三思。
  • 在交互模块调用事务,避免在在业务逻辑和数据模块使用。

君方智能设计平台介绍链接:

ShipMaker船舶协同设计软件介绍-CSDN博客

标签:事务管理,事务,方案,对象,君方,Undo,修改,序列化,redo
From: https://blog.csdn.net/ljemailbox/article/details/94439001

相关文章

  • redo和undo
    1redo1.1redo是什么oracle数据库几乎所有的操作都会产生redo日志。redo日志可以分为在线redo日志和归档redo日志。当数据库实例失败时,数据库会使用redo日志恢复数据。1.2在线重做日志和归档重做日志1.2.1在线重做日志数据库的操作产生的redo日志会先存放在在线重做日志中......
  • 数据库——事务管理
    title:数据库——事务管理date:2024-07-0611:55:39tags:数据库categories:数据库cover:/image/T1.jpgdescription:数据库的事务管理的相关知识事务管理事务管理是对一系列数据库操作进行管理的过程,这些操作被视为一个不可分割的工作单元(原子单元)。事务管理在......
  • 站在架构师角度:深入剖析Spring事务管理底层原理
    摘要Spring框架的事务管理是企业级应用开发中的一个核心特性,它为不同的事务使用场景提供了统一的抽象和实现。本文从架构师的角度出发,深入探讨Spring事务管理的底层原理,包括其设计哲学、核心组件、以及事务传播行为等。1.事务管理概述事务是数据库操作中的一个基本概念,它保......
  • 关于oracle中的undo
    一,undo介绍二,undo视图说明三,常用脚本说明四.释放UNDO表空间五.参考一,undo介绍Oracle中undo的作用主要有两个:第一是回滚事务,第二是产生一致性读。同时也衍生出了一些新的功能,比如Flashbackquery。传统的undo是通过undosegment来管理的,我们看下面的示例:详见第二篇文章......
  • Spring (73)Spring项目中的事务管理最佳实践
    Spring项目中的事务管理是确保数据一致性和完整性的关键组成部分。Spring提供了一套灵活而强大的事务管理框架,允许开发者以声明式和编程式两种方式来管理事务。为了确保高效和安全的事务管理,遵循最佳实践是非常重要的。下面深入探讨Spring事务管理的最佳实践,并结合源码分析......
  • springboot事务管理的机制是什么
    SpringBoot的事务管理机制实质上是基于Spring框架的事务处理机制。其主要目的是确保一系列数据库操作要么全部成功,要么全部失败(回滚),从而维护数据的完整性和一致性。SpringBoot事务管理遵循ACID四大特性:1、原子性(Atomicity)事务是一个原子操作单元,其对数据的修改要么全都执......
  • JavaEE——声明式事务管理案例:实现用户登录
    一、案例要求        本案例要求在控制台输入用户名密码,如果用户账号密码正确则显示用户所属班级,如果登录失败则显示登录失败。实现用户登录项目运行成功后控制台效果如下所示。欢迎来到学生管理系统请输入用户名:zhangsan请输入zhangsan的密码:123456用户登录成......
  • JavaWeb开发基础 (5) :后端框架进阶(事务管理、AOP、Spring原理、Maven高级)
    JavaWeb开发基础:后端框架进阶——事务管理、AOP、Spring原理、Maven高级文章目录1事务管理1.1Spring事务管理1.2rollbackFor和propagation2AOP2.1AOP快速入门2.2核心概念2.3通知类型2.4通知顺序2.5切入点表达式[email protected]连接点案......
  • 2024年公共事务管理与社会服务国际会议(ICPAMSS2024)
    2024年公共事务管理与社会服务国际会议(ICPAMSS2024)会议简介2024国际公共事务管理与社会服务会议(ICPAMSS2024)将在广州隆重举行。本次盛会诚挚邀请来自世界各地的公共事务管理和社会服务领域的专家、学者和从业者齐聚一堂,探索行业发展前沿,分享实践经验,推动理论创新。会议将......
  • Spring支持哪些事务管理类型?
    Spring框架支持两种主要类型的事务管理:编程式事务管理声明式事务管理这两种事务管理各有优缺点,可以根据具体需求和偏好来选择使用。1.编程式事务管理编程式事务管理意味着你必须在代码中显式管理事务。这通常是通过编码来实现的,即使用Spring框架提供的TransactionTempl......