深入理解分布式系统(二)分布式系统模型
分布式系统模型 2.1 两将军问题 “两将军问题”是一个经典的分布式系统问题,旨在研究在存在故障节点的情况下如何协调两个进程之间的通信。 问题场景是两个将军分别率领一支军队进攻敌方城市。两个将军之间必须达成一致,以确定进攻时间和策略。但是,将军们分别位于两个不同的营地,只能通过信使进行通信。此外,有可能存在恶劣的天气或其它因素干扰通信,或者其中一个将军的信使被敌人抓住并修改了消息。 该问题的关键是如何确保将军之间的通信可靠,并避免消息的丢失和篡改。经典的解决方案是使用拜占庭将军问题中的拜占庭容错算法,该算法可以容忍部分节点的故障和恶意攻击。 具体实现上,将军们需要达成共识,以决定进攻时间和策略。首先,每个将军向所有其他将军发送一个决策信息,并等待回复。如果将军收到的回复都是一致的,他就可以确定其他将军的决策,并做出相应的行动。如果将军收到的回复不一致,他会将这些信息再次发送给所有其他将军,直到收到一致的回复。 在该问题中,每个将军需要知道有多少其他将军参与协调,并且需要容忍其他将军的可能失败和恶意行为。这需要设计合适的算法和协议来保证将军之间的协作和共识。 总之,“两将军问题”是...
数据结构与算法
数据结构与算法 排序算法时间复杂度分析:https://blog.csdn.net/qq_54693844/article/details/136658836?fromshare=blogdetail&sharetype=blogdetail&sharerId=136658836&sharerefer=PC&sharesource=a1150568956&sharefrom=from_link 排序算法 稳定性 时间复杂度 空间复杂度 特点 冒泡排序 ✅ 稳定 O(n²) O(1) 简单,适合小数据 插入排序 ✅ 稳定 O(n²) O(1) 数据基本有序时很快 归并排序 ✅ 稳定 O(n log n) O(n) 稳定高效的通用排序 计数排序 ✅ 稳定 O(n+k) O(k) 适合整数范围小 基数排序 ✅ 稳定 O(d(n+k)) O(n+k) 适合整数/字符串 桶排序 ⚠️ 取决于桶内 O(n)平均 O(n) 数据分布均匀时快 快速排序 ❌ 不稳定 O(n log n)平均 O(log n) 最常用的通...

