Networking 跨计算机网络的原子更新同步
以下是我在要点中的问题(我想尽可能清楚地说明):Networking 跨计算机网络的原子更新同步,networking,synchronization,Networking,Synchronization,以下是我在要点中的问题(我想尽可能清楚地说明): 我有一套计算机,以点对点的方式连接,因此没有中央服务器 每台计算机有时(但不是经常,正常运行时间应该在0.98左右)会脱机。此外,连接有时可能会丢失,或者两个节点可能由于某种原因无法连接。但大多数情况下,这些连接都能正常工作,并且相当稳定 这些计算机中的每台都保留一个更新堆栈的副本。更新按渐进顺序编号 在任何时间点,外部用户都可以连接到网络中的任何计算机并发布(已签名,因此更新可通过网络验证)更新 然后,应通过网络发送更新,并将其添加到每台计算
- 我有一套计算机,以点对点的方式连接,因此没有中央服务器
- 每台计算机有时(但不是经常,正常运行时间应该在0.98左右)会脱机。此外,连接有时可能会丢失,或者两个节点可能由于某种原因无法连接。但大多数情况下,这些连接都能正常工作,并且相当稳定
- 这些计算机中的每台都保留一个更新堆栈的副本。更新按渐进顺序编号
- 在任何时间点,外部用户都可以连接到网络中的任何计算机并发布(已签名,因此更新可通过网络验证)更新
- 然后,应通过网络发送更新,并将其添加到每台计算机的更新堆栈中
- 通过网络中的计算机已建立的连接发送更新
- 如果某台计算机在某个时间点脱机,当它重新联机时,更新的顺序和编号将允许它再次与网络同步
- 如果他们只是分发更新,一些节点将有一个更新,而另一些节点的堆栈中将有另一个不同的更新,因此我失去了一致性
- 如果我实现某种形式的锁定机制,在发布更新之前,我尝试锁定所有节点,我可能会引发各种与饥饿相关的问题
- 我想选择一台计算机作为主机,让所有的用户都连接到这台计算机上,但是我怎么才能选择哪一台是主机呢?出现以下问题:
- 我如何选择大师
- 这也应该是动态的。如果主机脱机会发生什么情况
- 由于可能存在错误的连接,并非所有节点都会看到一个节点处于联机状态,即使该节点处于联机状态:在极少数情况下,主计算机(它处于联机状态并可以连接到所有其他计算机)可能会被其中一台视为脱机。然后呢
是否有一些已知的策略来解决这类问题?我打赌有。我试着在网上查找,但我真的不知道如何表达我要查找的内容。这个答案不完整,不幸的是含糊不清,因为我仍在试图理解这里链接的论文。但我想发布我目前发现的东西 同步分散式数据复制系统似乎有两种主要方法
由于源代码链接已关闭,我对一些细节有点茫然,但我会在找到答案后用伪代码更新这个答案。如果我误读了您的问题或这没有帮助,我深表歉意。这正是我想要的!我真的很感谢你的帮助!其他的东西可能有用-。上的许多实现