gpt4 book ai didi

erlang - 更好地理解如何工作/平衡 mnesia 的事务/ACID 功能

转载 作者:行者123 更新时间:2023-12-01 05:27:07 25 4
gpt4 key购买 nike

我仍在尝试深入了解 Mnesia 可以做什么,这两个问题的答案将有很大帮助。

1) 如果一个进程对记录 X 执行原子事务,而其他进程执行涉及同一记录的脏事务,会发生什么情况。第一个进程的 ACID 属性是否受到损害?

2)有没有办法让同一个进程在一个表的行上持有一个非脏(mnesia:transaction/1)读锁,同时对另一个表执行脏操作?

最佳答案

在允许脏操作的数据库环境中,隔离保证会丢失,就像 Mnesia 一样。所以问题 1) 的答案是肯定的,行为良好的事务过程可能会受到并发脏操作的影响,反之亦然——例如,脏读可能返回“旧”甚至新删除的数据,而固有的危险脏写是显而易见的。

在您的第二种情况下,答案是肯定的,原因有两个:只有您所在的数据对象
阅读被锁定,只有你的本地副本!这通常是一件好事和有用的事情,甚至允许其他数据对象(当然包括其他表)上的并发事务发生。

Erlang Mnesia docs, Chapter 4

关于erlang - 更好地理解如何工作/平衡 mnesia 的事务/ACID 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13298650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com