【问题标题】:Rollback for Atomic and Durability回滚原子和持久性
【发布时间】:2009-11-09 06:48:46
【问题描述】:

我正在尝试了解数据库事务的 ACID 属性:它们是如何实现的;哪一部分是原子性,哪一部分是持久性等等。

假设我有一个包含两个操作的交易,AB。不幸的是,执行action B 时系统关机。系统重置后,我们知道数据库将保留(通过 sqlite 中的回滚任务)执行action A 之前的状态。那么,这显示了哪种 ACID 属性,原子性还是持久性?

另一种情况:假设在执行action B时,发生错误并被通知给应用程序,应用程序回滚。我认为这是由用户而不是数据库引擎实现的纯原子性。我说的对吗?

【问题讨论】:

    标签: sql sqlite acid


    【解决方案1】:

    这两个例子都强调了原子性:要么 A 和 B 都被提交,要么都不提交。

    持久性是仅在事务提交后 出现的属性。应用程序可以放心,如果 COMMIT 调用成功,那么它是持久的。系统重置或断电不会恢复已提交事务的效果,因此不会恢复其持久性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-15
      • 2013-04-03
      • 1970-01-01
      • 2011-10-18
      • 1970-01-01
      • 1970-01-01
      • 2014-11-12
      • 1970-01-01
      相关资源
      最近更新 更多