当前位置: 首页 > ds >正文

FreeCAD源码分析: Transaction实现原理

本文阐述FreeCAD中Transaction的实现原理。

注1:限于研究水平,分析难免不当,欢迎批评指正。

注2:文章内容会不定期更新。

一、概念

Ref. from What is a Transaction? 

A transaction is a group of operations that have the following properties: atomic, consistent, isolated, and durable (ACID). The support of transactions enables new types of applications to be developed, while simplifying the development process and making the application more robust. The remainder of this topic provides scenarios that demonstrate the need for these properties, then a table that defines each property.

In an atomic group of operations, either every operation in the group must succeed, or the effects of all of them must be undone (also known as rolling back). 

AtomicEither all of the operations in the transaction succeed or none of the operations persist.
ConsistentIf the data are consistent before the transaction begins, then they will be consistent after the transaction finishes.
IsolatedThe effects of a transaction that is in progress are hidden from all other transactions.
DurableWhen a transaction finishes, its results are persistent and will survive a system crash.

二、核心组件

三、关键流程

网络资料

What is a Transaction?https://learn.microsoft.com/en-us/windows/win32/ktm/what-is-a-transaction

FreeCAD源码分析:Undo/Redo实现原理https://blog.csdn.net/qq_26221775/article/details/124954477

http://www.xdnf.cn/news/6973.html

相关文章:

  • 基于51单片机温控风扇—PWM调速、2挡、数码管显示
  • TCP/UDP协议原理和区别 笔记
  • Postman遇到脚本不支持replaceIn函数
  • Cookie、Session、Token
  • 自定义类、元组、字典和结构体对比——AutoCAD C# 开发中建立不同对象之间的联系
  • 灵光一现的问题和常见错误2
  • C语言:在 Win 10 上,g++ 如何编译 gtk 应用程序
  • Android核心系统服务:AMS、WMS、PMS 与 system_server 进程解析
  • cursor/vscode启动项目connect ETIMEDOUT 127.0.0.1:xx
  • 鸿蒙ArkUI体验:Hexo博客客户端开发心得
  • JVM 调优实战入门:从 GC 日志分析到参数调优
  • 基于requests_html的python爬虫
  • Redis——缓存雪崩、击穿、穿透
  • 内容安全:使用开源框架Caffe实现上传图片进行敏感内容识别
  • HMDB51数据集划分
  • V 型不锈钢对夹球阀:高性价比流体控制的优选方案-耀圣
  • 联想笔记本黑屏了,排线出问题还是静电
  • QT调用Halcon查询所有摄像头名称
  • 遨游科普:三防平板是什么?有什么功能?
  • Linux安全篇 --firewalld
  • Windows系统永久暂停更新操作步骤
  • 微软家各种copilot的AI产品:Github copilot、Microsoft copilot
  • 什么是PMBus
  • 18-总线IIC
  • 大模型在腰椎间盘突出症预测与治疗方案制定中的应用研究
  • LeetCode 热题 100_寻找重复数(100_287_中等_C++)(技巧)(暴力解法;哈希集合;二分查找)
  • 字节2025实习/校招/社招 内推码:R9SZ7Y1
  • 车载以太网驱动智能化:域控架构设计与开发实践
  • 【Ubuntu】Waydroid-Linux安卓模拟器安装
  • 【数据结构】线性表--队列