首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mnesia交易记录

Mnesia交易记录
EN

Stack Overflow用户
提问于 2009-02-05 15:20:37
回答 3查看 553关注 0票数 0

偶然的是,我正在写的一些代码正在慢慢地变成一个独立的数据库系统,具有增量索引,自由格式的“文档”(也称为CouchDB类),可以有任意的属性……阿尼瓦伊。我决定继续改进它,主要是为了教育目的,也决定严格地根据我的需求对它进行定制,并保持精简,因为我不想让它对任何人都有用,只是为了我自己的需求(多么慷慨:)……

无论如何,我想知道有没有人有关于Mnesia如何“在幕后”实现事务的建议/更多信息。

Ulf W.,我一直很感谢你在网上的帖子,所以也许你有一些更深层次的信息?

EN

回答 3

Stack Overflow用户

发布于 2009-07-21 16:56:35

Mnesia使用两阶段提交协议来管理分布式事务。

票数 2
EN

Stack Overflow用户

发布于 2009-02-05 16:55:20

所以我一直在考虑更多的事情...事务锁可以通过在表示表的行的每个元组中有一个"Lock“元素来破解……该元素将包含持有执行当前事务的锁的进程的Pid (这是由事务管理器产生的)(或者,出于效率的原因,Pid将存储在其他地方,重点是每行有一个Pid )。如果另一个事务想要从锁定的行写/读,事务管理器将不执行它,并将其留在队列中以供以后尝试(下一次它的尾部递归)。我必须更多地考虑检查点是如何工作的……但总的来说,我开始理解事物是如何构造的,至少在概念上是这样的。这将是丑陋的;)),而且可能比Mnesia成功的速度慢几个数量级,但至少我会学到很多东西……

关于分布式事务...我猜测,事务fun通过线路发送到另一个节点,首先将其转换为二进制,然后在另一端重新构建它……现在,有一个关于这方面的问题。因为fun是一个闭包,假设我在fun中使用了一个绑定在fun之外的变量,比如一个10个元素的列表,然后闭包作为一个事务传入,该事务将在另一个节点上执行(由事务管理器透明地执行)-我假设闭包语义代表包含10个元素的列表将被发送,以及闭包“关闭”的词法环境的一部分。我是不是漏掉了什么?只需考虑如何实现分布式事务...

谢谢

票数 -1
EN

Stack Overflow用户

发布于 2009-06-27 05:52:56

由于Mnesia是开源的,您可以查看代码本身。CouchDB也是如此。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/516324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档