gpt4 book ai didi

erlang - Mnesia异步事务

转载 作者:行者123 更新时间:2023-12-01 15:02:57 30 4
gpt4 key购买 nike

我想要一个 Erlang 节点的主从设置,其中读写操作只发生在主节点上。从节点仅作为热备节点。

据我了解,Mnesia 的默认行为是在执行写操作之前在所有节点上同步获取锁。这将导致高延迟,尤其是对于地理分布的节点。

我的问题是:Mnesia 是否支持异步事务,其中仅在主节点上获取锁,然后将写操作传播到从节点?

最佳答案

我认为如果您使用消息队列系统(可能是 rabbitmq)构建此异地复制,您会更开心,自己从消息队列提要更新复制的数据库。 WAN 链接更有可能变得拥塞或中断,消息队列协议(protocol)有办法处理这个问题。 Erlang 分发只是放弃,您必须将更新溢出到一个文件中,直到副本出现并可以使用它。

为了获得最佳对称性,将发布到消息队列作为更新数据库的主要方法。因此,即使是 master 也是通过从消息队列中消费来更新的。如果需要响应,当前主控可以向消息的发布者发送回消息。

Mnesia 确实有几种不同的 mnesia transaction contexts但没有什么能真正完全符合您的需求。

关于erlang - Mnesia异步事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1896801/

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