码农们的聚餐,会复杂到什么程度?

半导体制冷片DIY实战:50W TEC散热方案原理、安装与防结露指南 半导体制冷片(TEC)是一种基于帕尔帖效应的固态热泵器件,通电后一面制冷、一面发热,能实现精准的主动温度控制。其技术价值在于可将局部温度降至环境温度以下,为传统散热方案难以满足的极限场景提供了解决方案。在工程实践中,TEC常用于需要点对点精准温控的领域,例如高性能计算芯片的辅助散热、激光器冷却或小型恒温设备。要实现高效稳定的制冷效果,关键在于构建一个平衡的热管理系统:必须为发热面配备强效的散热器(如大规模风冷或水冷),并为制冷面做好完善的保温与防水密封处理,以规避致命的冷凝水风险。本文以一款典型的50W功率 阅读详情

本文来自王卓的投稿,老刘做了修改。

王卓是北京邮电大学硕士,研究方向为区块链技术、共识算法及零知识证明,对区块链技术底层有较深的理解。

张大胖的部门连续加班三个月,系统终于上线了!

经理打算组织一次部门聚餐, 犒劳一下大家。至于去哪家饭店,就留给大家来讨论了。

没想到的是,这一伙人争得不可开交,谁都说不过谁,其中,争吵得最凶的是张大胖和刘瘦子,张大胖想去吃火锅, 刘瘦子想去吃烧烤, 剩下三个员工是墙头草, 也不知道听谁的。

经理看到这一群不省油的灯,突然想到一个办法,说到:“别吵了!咱们都是写程序的,用一个算法来解决这个问题吧。”

大家听到算法,一下子就来了兴致:“什么算法?”

“就是大名鼎鼎的Paxos啊,它有点儿复杂,大家正好学习一下。 这次咱们要出去聚餐,但是张大胖和刘瘦子的意见不统一,我们最终还是要选一家,这叫达成共识。这个共识啊只要有超过半数的人同意就可以了。”

“在开始之前,我先说几个要求, 咱们的目的是一起去吃饭,所以张大胖你不能给小A说去吃火锅,给小B说去吃烧烤,又给小C说去吃料理。你这样来回捣乱我可要罚你工资了!”

张大胖嘿嘿笑着同意。

“还有你,刘瘦子,如果小A,小B或者小C已经有人同意张大胖的意见了,你就别墨迹,别再坚持你的意见,跟着去吃就好了。”

刘瘦子也点头。

“最后小A,小B,小C你们仨,你们同意了一个人的提议就别来回当墙头草,确定吃哪个饭店就不要改啦!”

张大胖他们五个人听到经理讲了这些要求,默默记在心里。

经理接着说:“具体的算法也不难,就两个阶段:

1.给自己拉票阶段,这一阶段的目的是争夺“发言权”,只有多数人同意听你“发言”,才能进入下一阶段

2.确认阶段:确定去那个饭店吃饭。

经理一边说,一边给出了算法具体的步骤,张大胖刘瘦子一看,很简单啊!迫不及待地就开始玩起来了。

经理心里偷偷地笑了:简单!哼!等玩起来了够你俩折腾的!

第一次游戏

1.拉票阶段

张大胖人比较聪明,看到小A、小B、小C这三个家伙头发乱糟糟的,以及标配的格子衬衫,一想就知道还没有女朋友。

为了让这三个人听自己的,张大胖想出来一个点子:听我的提议,我给你们每人介绍一位女生! 

小A,小B听到了,非常高兴,张大哥解决单身问题,听张大哥的!

与此同时,他俩在小本子上记下:介绍一位女生, 我可以同意饭店提议!

张大胖乐了,自己这么轻松已经取得3个人的支持,小A, 小B加上我自己(我自己不会人格分裂反对我自己), 已经是多数派了,不管小C是否同意, 我都有了发言权了。 

 640?wx_fmt=png

2.确定饭店

张大胖给小A, 小B说, 我给你们介绍一位女生,去吃火锅!

小A, 小B 都表示同意,在小本子上记下: 介绍一位女生,去吃火锅。

640?wx_fmt=png

张大胖收到结果,知道自己的Paxos算法已经执行完毕, 高兴地宣布:“行了,我们已经达成了共识,可以去吃火锅了! ”

第二次游戏

刘瘦子傻眼了:“张大胖你这家伙下手太快了,你这样搞,一点意思都没有啊, 不行,我们再玩一次!”

张大胖说:“没问题, 我还怕你不成?”  

话虽这么说,他赶紧和小A,小B,小C联系:给你们介绍一位女生,要支持我啊。

小A, 小B表示同意,在本子上记下:介绍一位女生, 我可以饭店提议!

结果小C说了句,张大胖,你不实在哈,刘瘦子说给我介绍俩女生呢! 

原来小C由于已经听了刘瘦子的话了,本子记得是:介绍两位女生,我可以同意饭店提议!

640?wx_fmt=png

张大胖心说,这刘瘦子也不笨嘛,也知道用这种方式来拉拢人。 

不过既然有小A、小B答应自己,,张大胖知道自己有了多数派的同意!

自己赶快给他们说去哪吃就行,别让这几个墙头草跑了! 然后哼着小曲儿去找女生联系方式了。

找到联系方式以后,张大胖进入第二阶段,准备彻底终结这次饭店之争。 

小A顺利地同意了吃火锅的提议, 记录了下来:介绍一位女生,去吃火锅。

没想到的是,小B已经反水了: 张大胖,你不实在哈,刘瘦子说给我介绍俩女生呢!

 640?wx_fmt=png

张大胖心想,真是墙头草,看来只好从第一阶段的拉票重新开始了。 

加大筹码! 给他们每人介绍三位女生!果然,小B这两个墙头草再次反水,欢天喜地地支持自己了。

640?wx_fmt=png

与此同时, 刘瘦子美滋滋地以为,自己用“介绍两位女生”获得了多数派的支持,可以进入第二阶段,去确定饭店。

可是他和小B联系的时候,悲催地发现,张大胖已经提高了筹码(3位女生)。 又把小B给拉走了!

刘瘦子赶紧查找通信录,准备找出更多联系方式,给他们介绍4位女生。 

张大胖可没有闲着,马上进入第二阶段,成功地确定了饭店。 

640?wx_fmt=png

至此,张大胖的Paxos算法执行完毕,他知道大多数人已经同意去吃火锅了。

刘瘦子再次发起拉票,试图重新占据优势,可是他发现小A和小B已经接受了吃火锅的提议。 

他们说:“刘瘦子,我们很想答应你,可是,我们已经答应吃火锅的建议了,不能再变了,但是,为了表示对您的尊重,我们以后就认定确定吃火锅是得给我们介绍4位女生。”

 640?wx_fmt=png

刘瘦子想到经理之前定的规则:“如果已经有人接受过了饭店的提议,不能再墨迹了,跟着去吃就行了!”

他叹了口气,进入了第二阶段,确定饭店,不过他确定的也是“吃火锅”

 640?wx_fmt=png

刘瘦子的Paxos算法也执行完了, 最终达成了一致,去吃火锅。

总结

我发现对于这个Basic Paxos算法,你要是理解了,会发现很简单,但是想把脑子中的东西描述出来,却很难,因为每个参与者的状态都在不断地变化中,细节太多,分支太多。

所以就通过这个小游戏讲述了Basic Paxos算法,说实话,不太严谨,比如小A,小B,小C如果收到了带着更多“贿赂”的Accept,虽然已经确定了饭店,还是可以修改的,这一点在游戏中就没提。 

这个游戏展示了执行过程遇到的典型情况。 完整的算法参见文章的最后部分。

在Basic Paxos算法中,有两个角色最为重要:

Proposer : 即张大胖和刘瘦子

Acceptor:  小A, 小B, 小C, 也包括张大胖和刘瘦子

一个人可以身兼多个角色。

游戏中的“介绍n位女生”,在Paxos算法中,就是一个数字n。 

在Basic Paxos这个两阶段的协议中,Proposer 在第一阶段发送Prepare(n) 给其他人,试图获取“发言权”。 这里的prepare(n)就相当于“介绍n位女生”。

在第二阶段发送Accept(n,v) 来试图确定结果,这里的n 还是“介绍n位女生”,v是吃火锅或者吃烧烤。

由于有多个Proposer可以发送Prepare(n) 。这时候Acceptor就需要根据n的大小来确定听谁的。所以就会出现像小B这样的墙头草,来回摇摆。 

Proposer在第一阶段得到大多数人支持以后,会进入第二阶段,发出Accept(n,v) 的消息给其他人。

某个Acceptor,例如小B,收到了张大胖的Accept(3,火锅),已经记录下了吃火锅, 这时候即使收到的消息中是prepare(4) ,数字更大也不行。他就告诉刘瘦子,我已经确定选火锅了。  

这时候的关键点就是刘瘦子要跟随,不要坚持自己的烧烤了。

一个有趣的问题

聪明的你估计已经看出:如果张大胖和刘瘦子交替着争夺发言权,例如:

张大胖介绍1位女生,争取了小A, 小B

刘瘦子介绍2位女生,争取了小B, 小C

张大胖介绍3位女生,又争取了小A, 小B

刘瘦子介绍4位女生,又争取了小B, 小C

……

这样一来,无论是谁都无法进入第二阶段,算法永远无法完成。

一种解决办法就是,可以让他们开始新一轮争取的时候,等待一个随机的时间。让其他人有机会去完成这个算法。

算法

贴一张详细的算法,有兴趣的可以仔细研究一下。 

算法来自于:https://ramcloud.stanford.edu/~ongaro/userstudy/paxos.pptx  我觉得这个PPT讲得还是比较好的。

640?wx_fmt=png

你可能会喜欢

我是一个线程

我是一个Java Class

CPU阿甘

面向对象圣经

TCP/IP之大明邮差

CPU阿甘

负载均衡的原理

一个故事讲完HTTPs

编程语言的巅峰

Java:一个帝国的诞生

JavaScript:一个屌丝的逆袭

C语言:春节回家,我发现只有我没有对象

640?wx_fmt=jpeg

变压器差动保护整定计算与比率制动特性校验实践指南 继电保护是电力系统安全运行的第一道防线,其中变压器保护因涉及差动、过流、瓦斯等多种原理而成为工程实践中的重点。比率制动特性作为差动保护的核心,通过引入制动电流动态调整动作门槛,可在区外故障时可靠躲过不平衡电流,同时保证区内故障的灵敏度。理解其平衡系数、拐点电流与制动系数的配合逻辑,是正确整定的前提。在实际工程中,整定计算需结合短路计算、互感器变比及时间阶梯配合,才能兼顾选择性与速动性。从本科课程设计到现场调试,掌握以灵敏度校验和多边界条件验证为闭环的方法,能显著提升保护方案的可信度。本文以一台110/10. 阅读详情

相关推荐

YOLO26算法心电图十二导联目标检测+训练好的模型+368张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[导联I(I), 导联II(II), 导联III(III), 胸导联V1(V1), 胸导联V2(V2), 胸导联V3(V3), 胸导联V4(V4), 胸导联V5(V5), 胸导联V6(V6), 加压肢体导联aVF(aVF), 加压肢体导联aVL(aVL), 加压肢体导联aVR(aVR)] · 训练集:313 张 · 验证集:37 张 · 测试集:18 张 · 总计:368 张 该数据集聚焦于临床心电图信号的精准识别与定位,其核心检测目标为标准12导联心电图中的各个独立导联波形区域,涵盖肢体导联(I、II、III)与加压肢体导联(aVR、aVL、aVF),以及胸前导联(V1至V6),适用于心电图自动分析系统中对各导联位置的快速准确标注与分类。数据采集场景真实还原了医院心电图室或急诊监护环境下的标准心电图记录纸,波形清晰、基线稳定,具有高度临床参考价值。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 57 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9708** mAP50-95 | 0.6344 Precision | 0.8990 Recall | 0.9191 train/box_loss | 1.2231 train/cls_loss | 0.9703 val/box_loss | 1.2779 val/cls_loss | 0.... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

大话分布式理论之二——共识算法与一致性的区别

在我们认知分布式理论时,有两个东西常常混在一起,在我的角度看来,他们应该是两个东西——共识算法与一致性协议。

D的博客 2261

企业级AI助手平台 开箱即用的全栈AI平台,支持多智能体协同、Supervisor模式编排、多种决策模式、RAG技术和流程编排能力 支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化

企业级AI应用开发框架,支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化能力,提供可视化流程编排、自主决策智能体与多智能体协同调度,兼容主流 Agent Skill 协议,帮助企业与开发者零门槛快速构建安全、高效、可落地的AI智能体应用与行业解决方案。

大话分布式系统

Notify:原标题:MIT6.824 Spring 2020 分布式系统课程 lab1之mapreduce(二) 这是写着写着 就变成了另一篇文章 分布式系统的发展? 自20世纪60年代大型主机被发明出来后计算机一致在保持着快速地更新迭代,“摩尔定律”一直在发挥着作用,到20世纪80年代,计算机向微型化发展趋势日渐明显,传统的集中式处理模式越来越不能适应人们的需求。集中式主机在发展中存在的问题比...

草帽boy的博客 642

python123题目——个税计算器

类型:简单分支。

m0_62488776的博客 5802

小米路由器R1D进阶玩法:MIXBOX工具箱安装与插件管理指南

本文详细介绍了为小米路由器R1D安装MIXBOX工具箱的完整指南。通过开启SSH、执行一键安装脚本,用户可以轻松解锁路由器的进阶功能,如安装离线下载、内网穿透等插件,从而将旧设备转变为强大的家庭网络服务中心。

weixin_29292431的博客 1110

理解这两点,也就理解了paxos协议的精髓

什么是paxos协议? Paxos用于解决分布式系统中一致性问题。分布式一致性算法(Consensus Algorithm)是一个分布式计算领域的基础性问题,其最基本的功能是为了在多个进程之间对某个(某些)值达成一致(强一致);简单来说就是确定一个值,一旦被写入就不可改变。paxos用来实现多节点写入来完成一件事情,例如mysql主从也是一种方案,但这种方案有个致命的缺陷,如果主库挂了会直接

yinn 1万+

【Pandas总结】第二节 Pandas 的数据读取_pd.read_csv()的使用详解(非常全面,推荐收藏)

pandas对纯文本的读取提供了非常强力的支持,参数有四五十个。这些参数中,有的很容易被忽略,但是在实际工作中却用处很大。

weixin_47139649的博客 11万+

【论文推荐】了解《人脸防伪》必看的6篇论文(附打包下载地址)

论文推荐“SFFAI141期来自北京邮电大学的王卓推荐的文章主要关注于计算机视觉的人脸防伪领域,你可以认真阅读讲者推荐的论文,来与讲者及同行线上交流哦。”关注文章公众号回复"SFFAI14...

weixin_48294000的博客 5442

STM32低功耗模式下ADC采样抖动的5个隐藏陷阱及解决方案(实测避坑)

本文深入探讨了STM32低功耗模式下ADC采样抖动的5个常见陷阱及解决方案,包括多通道采样电压跃迁、外设开关信号稳定、低功耗模式与ADC时钟同步、输入阻抗失配以及基准电压稳定性问题。通过实测数据和优化代码示例,帮助工程师有效规避ADC采样数据抖动问题,提升物联网设备的测量精度和稳定性。

weixin_30316097的博客 381

PMBus协议解析:基于I2C的电源管理实战与TMS320F28003x驱动开发

在嵌入式系统与服务器电源设计中,数字电源管理总线是实现高效、可靠电源监控与控制的关键技术。PMBus协议基于广泛应用的I2C总线物理层,通过定义标准化的命令集、数据格式与时序规范,为多路电源的电压电流监控、动态调整及故障处理提供了高效解决方案。其技术价值在于通过硬件自动处理协议解析、时钟拉伸与中断,显著降低软件复杂度,使开发者能聚焦于电源环路设计等核心逻辑。该协议广泛应用于服务器、通信基站及高性能计算板卡等场景,通过引入数据包错误检查、专用告警线等机制,确保了电源管理的可靠性。本文以TI TMS320F28

weixin_29189377的博客 374

paxos算法详解

目的 Paxos算法的目的是为了解决分布式环境下一致性的问题。 多个节点并发操纵数据,如何保证在读写过程中数据的一致性,并且解决方案要能适应分布式环境下的不可靠性(系统如何就一个值达到统一) paxos协议用来解决的问题可以用一句话来简化: 将所有节点都写入同一个值,且被写入后不再更改。 基本概念 两个操作 1. Proposal Value:提议的值; 2. Propo...

miaochengyi的博客 2408

芒果YOLO11改进23:主干Backbone篇GhostNet:原创改进高效 GhostNet 网络,华为出品,打造全新检测器

主干Backbone篇GhostNet:原创改进高效 GhostNet 网络,华为出品,打造全新检测器

包括YOLOv5、YOLOv7、YOLOv8等模型改进 404

面试官问你:程序=算法+数据结构,能深入讲讲吗?

友情提示:建议您看看这篇文章,我敢保证,你会有收获的(大神请忽略)

程序员青戈 7269

RK356X linux系统移植RTL8723BU模块遇到的坑

RK356X linux系统移植RTL8723BU模块遇到的坑

目前从事linux驱动开发,多交流多学习吧 954

Claude Code 分布式并行开发最佳实践:1中枢+10Worker跨多Git仓库全流程落地

本文介绍了一套基于Claude Code和Git Worktree的分布式并行开发方案,解决多仓库、微服务开发中的核心痛点。方案采用"1个决策中枢+10个并行Worker"架构,中枢负责任务拆解和调度,每个Worker绑定独立仓库实现完全隔离开发。关键优势包括:任务并行效率提升10倍、跨仓库依赖自动编排、版本统一管理、零第三方依赖。文章详细提供了环境准备、架构设计、中枢搭建和初始化脚本等全流程落地指南,特别适合多仓库协同的全栈开发场景。

AI天才研究院 243

写技术文章也挺好的,虽然没有多少人看

微信改版信息流以后,正式进入了“拼标题”时代,如果没有一个吸引眼球、摄人心魄,不点进来心里就痒痒的标题,那阅读量肯定是嗖嗖地下降。偏偏我又不擅长此道,绞尽脑汁想了个自以...

码农翻身 1160

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

讲一点分布式的基础知识,图解!

故事还是得从单机开始,没有单机哪儿来的分布式?在IT世界,二进制的数据是我们最宝贵的资产,必须要把它保存在断电也不怕的硬盘上。但是只用一块硬盘很危险,万一坏了数据就彻底没...

码农翻身 454

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

AI崛起,为何是35岁以上程序员的“黄金时代”?

AI的爆发,非但不是35岁以上程序员的丧钟,反而可能是我们职业生涯中最大的利好,是我们开启“黄金时代”的关键转折点。

weixin_38717458的博客 290

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

讲了两个故事,他获得了图灵奖

《人类简史》中提到,人类之所以开启认知革命,站到生物链的最顶端,主要是因为人类学会了讲虚构的故事。尤其是人类可以“一起”想象、编织出共同的虚构故事,不管是《圣经》的《创世记》、澳大利亚原住民的“梦世记”(Dreamtime),甚至连现代所谓国家的概念也是种想象。就算是大批互不相识的人,只要同样相信某个故事,就能共同合作,创造出城市、国家和文明。1到了现代,人类依然喜欢听故...

码农翻身 179

MIT AI Agent分级系统详解:从L1到L5的工程能力进阶路线图

在人工智能领域,智能体(AI Agent)正成为连接大语言模型(LLM)与现实世界任务的关键技术。其核心原理在于构建感知、规划、行动与学习的自主闭环,通过工具调用(Tool Calling)与环境交互来扩展LLM的能力边界。这一技术价值在于将静态的对话模型转变为能主动执行复杂工作流的智能系统,从而在自动化客服、智能流程编排、个性化助手等应用场景中创造实际生产力。本文聚焦于**能力演进**与**工程实践**,深入解析MIT提出的AI Agent五级分级框架(L1-L5),为开发者提供从基础响应到自主进化的清晰

djph26741的博客 470

软件项目管理实战:用“人机料法环”五维框架应对AI时代新挑战

在软件工程领域,项目管理是确保项目成功交付的核心能力。其基本原理在于通过系统化的方法,协调资源、控制过程、管理风险,以实现预定目标。从瀑布模型到敏捷开发,再到DevOps,方法论不断演进,但其核心价值始终是提升交付效率、保障软件质量与应对不确定性。在AI大模型集成、系统集成等复杂场景下,稳固的管理框架尤为重要。本文以经典的“人机料法环”全面质量管理框架为透镜,深入剖析其在现代软件项目中的映射与实践。该框架将项目要素系统归入人员、工具、物料、流程、环境五个维度,为项目诊断与改进提供了全景视角。文中结合Jenk

Eric.Net的专栏 470

关于若干选举算法的解释与实现

分布式中有这么一个疑难问题,客户端向一个分布式集群的服务端发出一系列更新数据的消息,由于分布式集群中的各个服务端节点是互为同步数据的,所以运行完客户端这系列消息指令后各服务端节点的数据应该是一致的,但由于网络或其他原因,各个服务端节点接收到消息的序列可能不一致,最后导致各节点的数据不一致。要确保数据一致,需要选举算法的支撑,这就引申出了今天我们要讨论的题目,关于选举算法的原理解释及实现,选举包括对机器的选举,也包括对消息的选举。

6403
上一篇: 什么是财务自由?
下一篇: 为什么中国没有诞生世界流行的编程语言?
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值