转自:http://timyang.net/distributed/multi-idc-consensus/
一、Master/slave
这个是多机房数据访问最常用的方案,一般的需求用此方案即可。因此大家也经常提到“premature optimization is the root of all evil”。
优点:利用mysql replication即可实现,成熟稳定。
缺点:写操作存在单点故障,master坏掉之后slave不能写。另外slave的延迟也是个困扰人的小问题。
二、Multi-master
Multi-master指一个系统存在多个master, 每个master都具有read-write能力,需根据时间戳或业务逻辑合并版本。比如分布式版本管理系统git可以理解成multi-master模式。具备最终一致性。多版本数据修改可以借鉴Dynamo的vector clock等方法。
优点:解决了单点故障。
缺点:不易实现一致性,合并版本的逻辑复杂。
三、Two-phase commit(2PC)
Two-phase commit是一个比较简单的一致性算法。由于一致性算法通常用神话(如Paxos的The Part-Time Parliament论文)来比喻容易理解,下面也举个类似神话的例子。
某班要组织一个同学聚会,前提条件是所有参与者同意则活动举行,任意一人拒绝则活动取消。用2PC算法来执行过程如下
Phase 1
Prepare: 组织者(coordinator)打电话给所有参与者(participant) ,同时告知参与者列表。
Proposal: 提出周六2pm-5pm举办活动。
Vote: participant需vote结果给coordinator:accept or reject。
Block: 如果accept, participant锁住周六2pm-5pm的时间,不再接受其他请求。
Phase 2
Commit: 如果所有参与者都同意,组织者coodinator通知所有参与者commit, 否则通知abort,participant解除锁定。
Failure 典型失败情况分析
Participant failure:
任一参与者无响应,coordinator直接执行abort
Coordinator failure:
Takeover: 如果participant一段时间没收到cooridnator确认(commit/abort),则认为coordinator不在了。这时候可自动成为Coordinator备份(watchdog)
Query: watchdog根据phase 1接收的participant列表发起query
Vote: 所有participant回复vote结果给watchdog, accept or reject
Commit: 如果所有都同意,则commit, 否则abort。
优点:实现简单。
缺点:所有参与者需要阻塞(block),throughput低;无容错机制,一节点失败则整个事务失败。
四、Three-phase commit (3PC)
Three-phase commit是一个2PC的改进版。2PC有一些很明显的缺点,比如在coordinator做出commit决策并开始发送commit之后,某个participant突然crash,这时候没法abort transaction, 这时候集群内实际上就存在不一致的情况,crash恢复后的节点跟其他节点数据是不同的。因此3PC将2PC的commit的过程1分为2,分成preCommit及commit, 如图。
(图片来源:http://en.wikipedia.org/wiki/File:Three-phase_commit_diagram.png)
从图来看,cohorts(participant)收到preCommit之后,如果没收到commit, 默认也执行commit, 即图上的timeout cause commit。
如果coodinator发送了一半preCommit crash, watchdog接管之后通过query, 如果有任一节点收到commit, 或者全部节点收到preCommit, 则可继续commit, 否则abort。
优点:允许发生单点故障后继续达成一致。
缺点:网络分离问题,比如preCommit消息发送后突然两个机房断开,这时候coodinator所在机房会abort, 另外剩余replicas机房会commit。
五、Paxos
Google Chubby的作者Mike Burrows说过, “there is only one consensus protocol, and that’s Paxos” – all other approaches are just broken versions of Paxos. 意即“世上只有一种一致性算法,那就是Paxos”,所有其他一致性算法都是Paxos算法的不完整版。相比2PC/3PC, Paxos算法的改进
- P1a. 每次Paxos实例执行都分配一个编号,编号需要递增,每个replica不接受比当前最大编号小的提案
- P2. 一旦一个 value v 被replica通过,那么之后任何再批准的 value 必须是 v,即没有拜占庭将军(Byzantine)问题。拿上面请客的比喻来说,就是一个参与者一旦accept周六2pm-5pm的proposal, 就不能改变主意。以后不管谁来问都是accept这个value。
- 一个proposal只需要多数派同意即可通过。因此比2PC/3PC更灵活,在一个2f+1个节点的集群中,允许有f个节点不可用。
另外Paxos还有很多约束的细节,特别是Google的chubby从工程实现的角度将Paxos的细节补充得非常完整。比如如何避免Byzantine问题,由于节点的持久存储可能会发生故障,Byzantine问题会导致Paxos算法P2约束失效。
以上几种方式原理比较如下
(图片来源:http://snarfed.org/space/transactions_across_datacenters_io.html)
相关推荐
标题和描述中提到的是关于大数据技术在多IDC(数据中心)环境下的数据分布以及MySQL的多机房部署策略。在处理大数据时,特别是在多个IDC之间进行数据分发和存储,确保数据一致性、高可用性和容灾能力是关键挑战。...
互联网IDC数据中心机房规划设计及建设探讨: 摘要: 随着信息系统的快速发展,互联网IDC数据中心机房规划建设面临更高标准和要求。本文从IDC数据业务开展角度出发,分析了机房的规划设计要点,并针对布局规划、网络...
总的来说,智慧城市IDC数据中心机房建设综合解决方案是一个涵盖了需求分析、设计规划、技术选型、实施运维等多方面的复杂工程,旨在构建一个能够支持智慧城市建设的高效、安全、绿色的数据中心。
总的来说,IDC数据中心解决方案是一个全方位、多层次的服务体系,涉及网络、硬件、软件、服务等多个层面,旨在为客户提供一站式的数据中心服务,帮助企业或网站专注于自身业务,而无需担忧底层基础设施的建设和维护...
IDC 数据中心布线是当前数据中心市场发展中的一个重要方向。在数据中心内部,布线系统 plays a vital role 在数据中心的设计和实施中。近年来,数据存储应用和设备的高速发展已经改变了数据中心和计算机房的电信基础...
总之,IDC数据中心的布线设计需要兼顾当前需求和未来扩展性,遵循TIA/EIA-942标准能确保数据中心的高效、稳定和安全。这涉及到对整个布线架构的精心规划,包括进入场所、主次分布区的布局,以及如何实现冗余和灵活性...
【XX智慧城市-IDC数据中心机房改造建设方案】 ...通过以上详尽的设计和施工计划,XX智慧城市IDC数据中心机房改造将实现更高的运行效率、更优的能效比和更强的安全防护,为智慧城市的数字化转型提供强有力的支持。
### IDC数据中心布线的方向与道路 #### 背景与挑战 随着国际数据中心市场的快速发展,数据存储技术的应用以及设备更新换代,特别是存储区域网络(SAN)等方面的重大变革,已经显著改变了数据中心和计算机房的电信...
某某IDC数据中心机房建设项目旨在构建一个高效、稳定且具有高扩展性的数据中心,以满足日益增长的数据处理和存储需求。 ##### 1.2 依据的原则 项目设计遵循以下原则: - **安全性**:确保数据中心的物理安全和网络...
- **1.3 IDC数据机房安全技术架构图**:展示了一系列的安全措施,如防火墙、入侵检测系统、访问控制等,用于保护数据中心免受外部威胁。 2. **IDC机房运维** - **2.1 软件维护**:包括操作系统、数据库、中间件等...
此IDC数据中心视频监控系统解决方案综合运用了先进的安防技术和信息技术,旨在构建一个全方位、立体化的安全保障体系,确保数据中心在24小时不间断运营中保持高效、安全。同时,系统的智能分析功能有助于提前预警,...
快⼿的未来规划可能包括进一步优化EC算法,提高修复效率,以及探索更高效的跨IDC数据同步策略。同时,随着数据规模的增长,可能会扩展到更多的AZ,并考虑引入更智能的分层存储策略,以适应不同业务场景的需求。 总...
在多个浪涌保护器并存的情况下,还需遵循设计和产品说明书的规定,合理分布安装。接地装置的焊接质量直接关系到接地系统的稳定性和耐久性,必须采取防腐措施以应对长期的环境侵蚀。引下线的安装同样不容忽视,一旦...
在IDC数据中心机房工程验收过程中,确保机房的安全与稳定运行至关重要。这份文档详细列出了防雷及接地、供配电系统以及监控与安全防范系统的验收标准和流程。以下是对这些关键领域的详细解释: 1. 防雷及接地验收:...
综上所述,本项目通过对IDC数据中心云机房环境配套设施系统进行全面的设计与建设,不仅能够满足当前数据中心运行的基本需求,还为未来可能的技术革新预留了充足的空间。此外,通过采用先进的技术和材料,提升了数据...
综上所述,数据中心机房模型的设计和建设是一个涉及多个方面考量的综合性工程。设计团队需要综合考虑可用性、可管理性、安全性、节能环保等因素,并通过专业整合、协调和集成的方法,来实现数据中心机房的高效、平稳...
总结,IDC机房信息化建设是一个复杂而全面的过程,涉及到设计理念的更新、具体需求的满足、国家规范的遵守,以及技术应用的创新。通过科学的设计和管理,可以构建出适应未来发展、高效节能、安全可靠的数据中心,为...
**IDC**(Internet Data Center)即互联网数据中心,是随着互联网技术的发展而诞生的一种专业化的服务模式。它的核心功能在于为各种类型的网站和应用提供高质量、稳定、安全的服务环境,主要包括服务器托管、租用、...
1. 规模效应:万国数据拥有多个分布在全国各地的数据中心,形成了一张庞大的数据中心网络。这使得企业可以轻松实现多地备份,提高业务连续性,同时也降低了跨区域数据传输的成本。 2. 技术领先:万国数据采用先进的...