首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分布式互斥:小圈子的形成

分布式互斥:小圈子的形成
EN

Stack Overflow用户
提问于 2014-03-05 21:44:34
回答 1查看 394关注 0票数 0

我一直在研究基于Quorums概念的分布式互斥算法。

引用:小圈子C是集合的集合,其中每个集合g∈C称为定数。

以下属性适用于小圈子中的仲裁:

1)交集性质:对于每个quorum g,h∈C,g∩h=∅。例如,集合{1,2,3},{2,5,7}和{5,7,9}不能作为小圈子中的仲裁,因为fi第一个和第三个集合没有公共元素。

2)最小性质:在小圈子C中不应该有定额g,h使得g⊇h。例如,集合{1,2,3}和{1,3}不能是小圈子中的定数,因为fi第一个集合是第二个集合的超集。

我想知道,给定分布式系统中的一组节点,这样的coteries或quorum集是如何由这些节点组成的?有什么算法或技术可以做到这一点?

更新:换句话说,“给定'N‘个节点,什么是形成'K’个定额的最好方法,这样它们中的任何两个节点都有'J‘个公共节点?”

EN

回答 1

Stack Overflow用户

发布于 2014-03-05 22:52:10

读取或写入的简单算法是,您必须从quorum中的每个节点读取,并向quorum中的每个节点写入。这样,您可以确保系统中的每个其他方都将读取最新写入的项目。

由于您的标题是关于相互排除的,因此系统中的对等节点可以向quorum中的每个节点请求对资源的锁定。根据第一条规则,任何其他对等节点都不能从整个仲裁中获得锁。

据我所知,您在实践中接触随机节点并将其用作quorum n/2 + 1,但正如您所看到的,您还可以定义更复杂的分布,从而允许您拥有更小的quorum,这再次提高了性能。

更新:

具有9台服务器的此类仲裁的示例如下:

  • 2 quorum : servers 1-5是一个仲裁,5-9是另一个(简单多数)
  • 3 quorum: servers 1,2,3,4;4,5,6,7;和7,8,9,1可以是3个不同的quorum
  • quorum: servers 1,2,3;3,4,5;5,6,1;6,7,3;8,3,1;9,3,1;可能是6个不同的仲裁。但是,您可以在此处看到,服务器1和3分别属于4个仲裁,因此需要处理更多流量。
  • 您还可以创建仲裁,如1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;但这与只有服务器1是一样的。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22199571

复制
相关文章

相似问题

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