卧槽原来睡眠排序法也是有用的....orz

2019-02-19 16:02:42 +08:00
 lolizeppelin

结果没有任何一方获得多数票。之后每个参与方随机休息一阵( Election Timeout )重新发起投票直到一方获得多数票。这里的关键就是随机 timeout,最先从 timeout 中恢复发起投票的一方向还在 timeout 中的另外两方请求投票,这时它们就只能投给对方了,很快达成一致。

喷了...............睡眠排序法不光是搞笑用的

7345 次点击
所在节点    程序员
18 条回复
Lax
2019-02-19 16:11:28 +08:00
第一听说这个叫法
skymei
2019-02-19 16:13:27 +08:00
睡梦罗汉拳
Canrz
2019-02-19 16:13:57 +08:00
chenyu8674
2019-02-19 16:15:54 +08:00
随机退让策略而已,跟排序有毛关系
lolizeppelin
2019-02-19 16:18:31 +08:00
@chenyu8674

别那么死板啊
睡眠排序是 n 线程通过 sleep 来排序
这里靠的是多机器靠 sleep 时间来找到第一位

思路是一致的
lihongjie0209
2019-02-19 16:24:27 +08:00
lance6716
2019-02-19 19:44:38 +08:00
@lolizeppelin 是退让不是排序,sleep 在退让很常用,排序就别思路一致了。
jorneyr
2019-02-19 19:48:04 +08:00
睡梦罗汉排序法
Mohanson
2019-02-19 19:49:26 +08:00
bft?
Cbdy
2019-02-19 20:00:38 +08:00
计算机网络介质访问控制层有用这个东西
sgissb1
2019-02-19 21:14:18 +08:00
一些灾备或者自治系统里面,常用的选举做法啊。和睡眠排序稍有区别,但也挺相似的。
msg7086
2019-02-19 22:35:55 +08:00
不仅有随机退让,还有指数退让。比如一条网线同一时间只能由一个设备发送数据,所以如果遇到冲突的话,两方不仅随机等待一段时间,还会因每次冲突而使等待的时间加倍,比如刚开始是 8±2ms,如果第二次还冲突就变成 16±4ms 等等。
wu1990
2019-02-19 22:57:21 +08:00
哈哈哈 基本上就是段子吧
虽然我觉得挺酷的,但是也很好笑 哈哈哈哈哈
realpg
2019-02-19 23:37:11 +08:00
退让和 sleep 排序是两码事……
sleep 排序其实是很创新的……
aijam
2019-02-19 23:51:36 +08:00
分布式系统基本操作,paxos 了解下
zhujinliang
2019-02-20 00:29:00 +08:00
以前有个“抢线王”网卡,就是通过驱动修改参数(前提是支持的硬件),减少帧间延迟或错误重传延迟,提高传输效率。在那个 10M 网线,使用 HUB 而不是交换机的年代,比普通网卡稍微有些优势,当然也影响了使用正常网卡人的通信
Laynooor
2019-02-20 00:36:29 +08:00
@zhujinliang 搜了下抢线王,找到这个帖子

http://nga.178.com/read.php ? tid=4944286&page=1&rand=997

打个比方 某程序每 10ms 向某地址发送数据 windows 为了节约网络流量 收集了 0.1s 的数据包 也就是 10 个包 打包起来一起发送 这样就节约了 9 个数据包包头的流量 但是造成了平均 50ms 的延迟 这个网卡应该就是硬件设定不经堆栈直接发送 和打了 Leatrix Latency Fix 补丁的普通网卡完全一样
当年曾经有一种抢线王网卡 硬件修改成监听到冲突后不经等待直接再次发送 抢占局域网资源 这两种网卡虽然恶劣性质不同不过原理都很相似


长见识了...
Laynooor
2019-02-20 00:37:13 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/536593

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX