首页 文章

回滚原子和耐用性

提问于
浏览
0

我试图了解数据库转换的ACID属性:它们是如何实现的;哪个部分是原子性,哪个部分是耐久性等 .

假设我有两个动作的转换, AB . 不幸的是,系统在执行 action B 时关机 . 系统重置后,我们知道数据库将在执行 action A 之前保留(通过sqlite中的回滚jounery)状态 . 那么,这显示了哪个ACID属性,原子性或持久性?

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

1 回答

  • 0

    这两个例子突出了原子性:A和B都被提交,或两者都没有 .

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

相关问题