最新 | 最热门 | 最高评价

+0  再谈 Paxos 和 Raft

Tag: 分布式 | Paxos | Raft
ideawu 发于 2021年04月18日 11:59 | 点击: 105 | 展开摘要
我之前写过一些谈 Paxos 的文章[1][2], 特别是将 Paxos[3] 和 Raft[4] 进行了对比. 由于我更多的是站在工程实现的角度考虑两种技术的优缺点, 所以造成了不少读者感受到我有非常强的"贬 Paxos, 赞 Raft"的倾向. 不可否认, 从工程实现的角度, Paxos 的指导意义非常抽象且不直接, 所以我们必须""亲 Raft 远 Paxos".

实际上, 许多人认为 Paxos 和 Raft 不是同一层面的东西, 不可同日而语. 另一方面, 某种角

查看全文: http://www.udpwork.com/item/17459.html

+0  TiDB 在 Raft 成员变更上踩的坑

Tag: distributed | raft | paxos | consensus | membership | tidb
张炎泼(xp) 发于 2021年01月05日 08:00 | 点击: 81 | 展开摘要
问题

上次跟好基 黄东旭 在咖啡厅撩天的时候谈笑风生地探讨了一个 TiDB 使用 Raft 时遇到的问题:

TiKV 层的 Raft 实现, 使用的是 Raft 单步变更 算法(每次添加或删除一个节点),
例如副本由 abc 变成 bcd 过程中,
先加入 d, 变成 abcd , 再去掉 a 变成最终配置 bcd.

这中间经历的4节点的状态 abcd, 有可能在出现二分的网络割裂(ad | bc)时导致整个集群无法选出leader.
这种网络割裂在跨机房部署时容易出现

查看全文: http://www.udpwork.com/item/17475.html

+0  200行代码实现基于paxos的kv存储

Tag: algo | distributed | replication | paxos | kv | 分布式 | 存储
张炎泼(xp) 发于 2020年10月28日 08:00 | 点击: 86 | 展开摘要
前言

写完 paxos的直观解释 之后,
网友都说疗效甚好, 但是也会对这篇教程中一些环节提出疑问(有疑问说明真的看懂了

查看全文: http://www.udpwork.com/item/17478.html

+0  后分布式时代: 多数派读写的’少数派’实现

Tag: algo | distributed | quorum | majority | replication | paxos | raft | 分布式 | 多数派
张炎泼(xp) 发于 2020年10月18日 08:00 | 点击: 91 | 展开摘要
前言

paxos可以看做是2次 多数派读写 完成一次强一致读写. 多数派要求半数以上的参与者(paxos中的Acceptor)接受某笔操作. 但 多数派读写 并不一定需要多于半数的参与者, 分布式系统中某些场合的优化, 可以通过减少参与者数量来完成的.

多数派读写:分布式系统的基础

分布式系统中, 其中一个基础的问题是如何在不可靠硬件(低可用性)基础上构建可靠(高可用性)的服务,
要达成这个目标, 核心的手段就是复制(例如一份数据存3个副本).
而复制过程中的一致性

查看全文: http://www.udpwork.com/item/17479.html

+0  可靠分布式系统-paxos的直观解释

Tag: algo | distributed | consensus | fault-tolerant | quorum | replication | paxos | 分布式 | 一致性 | 容错 | 多数派
张炎泼(xp) 发于 2020年06月01日 08:00 | 点击: 83 | 展开摘要
前言

paxos是什么?

在分布式系统中保证多副本数据强一致的算法.

paxos有啥用?

没有paxos的一堆机器, 叫做分布式;

有paxos协同的一堆机器, 叫分布式系统.

Google Chubby的作者Mike Burrows说过:

这个世界上只有一种一致性算法,那就是Paxos …

其他一致性算法, 都可以看做paxos在实现中的变体和扩展.

另外一个经常被提及的分布式算法是raft, raft的贡献在于把一致性算法落地.
因为 Leslie

查看全文: http://www.udpwork.com/item/17480.html

+0  关于高可用的系统

Tag: 技术管理 | 程序设计 | 系统架构 | Design | High Availability | Paxos | Programmer | 分布式 | 程序员
陈皓 发于 2016年08月21日 12:34 | 点击: 2203 | 展开摘要
在《这多年来我一直在钻研的技术》这篇文章中,我讲述了一下,我这么多年来一直在关注的技术领域,其中我多次提到了工业级的软件,我还以为有很多人会问我怎么定义工业级?以及一个高可用性的软件系统应该要怎么干出来?这样我也可以顺理成章的写下这篇文章,但是没有人问,那么,我只好厚颜无耻的自己写下这篇文章了。哈哈。

另外,我在一些讨论高可用系统的地方看到大家只讨论各个公司的技术方案,其实,高可用的系统并不简单的是技术方案,一个高可用的系统其实还包括很多别的东西,所以,我觉得大家对高可用的

查看全文: http://www.udpwork.com/item/15755.html

+0  持续可用与分布式协议

Tag: 未分类 | 持续可用,Paxos,分布式协议
chuanhui 发于 2015年04月12日 16:53 | 点击: 2165 | 展开摘要

+0  分布式系统的事务处理

Tag: 程序设计 | 系统架构 | 2PC | 3PC | Consistency | Design | NWR | Paxos | Performance | Vector Clock | 分布式
陈皓 发于 2014年01月20日 11:08 | 点击: 4539 | 展开摘要
当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题:

1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求。

2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失。

于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问题。 通常,我们会通过两种手段来扩展我们的数据服务:

1)数据分区:就是把数据分块放在不同的服务器上(如:uid % 16,一致性哈希等)。

2)数据镜像:让所有的服务器

查看全文: http://www.udpwork.com/item/11599.html

+0  consensus made simple

Tag: 分布式技术 | paxos
恨少 发于 2013年06月04日 13:58 | 点击: 1607 | 展开摘要

+0  Paxos小议

Tag: 分布式基础 | paxos | 分布式 | 选举算法
editor 发于 2011年11月23日 15:08 | 点击: 9179 | 展开摘要
问题

最近我们在做一个项目的时候有这样一个需求:我们有多台服务器资源,希望彼此协作完成一项工作。这项工作可以被划分为N个小的模块,但由于这项工作会依赖于持续不断的输入(在线业务),因此我们无法使用人工指定的方式将此工作分发到不同服务器进行。目前我们想到一个方法,将这项工作划分出的小模块放到一个稳定可靠的地方,例如mola存储系统,然后每台服务器去存储系统上取得一定数量的模块进行工作,完成后再将处理的结果输出到前述的存储系统上。这些小的模块虽然可以被不同的服务器运行,然后重复

查看全文: http://www.udpwork.com/item/6367.html

+0  多IDC的数据分布设计(二)

Tag: data | consensus | dynamo | paxos | PNUTS
Tim 发于 2010年03月25日 02:18 | 点击: 2659 | 展开摘要
在前文《多IDC的数据分布设计(一)》中介绍了多IDC数据一致性的几种实现原理,遗憾的是,目前虽然有不少分布式产品,但几乎都没有开源的产品专门针对IDC来优化。本文从实践的角度分析各种方法优缺点。

背景资料 Latency差异

Jeff Dean提到不同数据访问方式latency差异

Numbers Everyone Should Know
L1 cache reference                           0.5 ns
Branch mispre

查看全文: http://www.udpwork.com/item/490.html

+0  多IDC的数据分布设计(一)

Tag: 分布式 | 2PC | 3PC | consensus | paxos | Three-phase commit | Two-phase commit
Tim 发于 2010年02月02日 21:04 | 点击: 3343 | 展开摘要
上个月跟某个朋友谈及多IDC数据同时读写访问的问题(tweet),当时觉得有不少解决方案,但觉得思路还不够清晰。最近看了Google App Engine工程师Ryan Barrett介绍GAE后端数据服务的演讲稿Transactions Across Datacenters(视频),用Ryan的方法来分析这个问题后就豁然开朗。

按Ryan的方法,多IDC实现有以下几种思路。

一、Master/slave

这个是多机房数据访问最常用的方案,一般的需求用此方案即可。因此大

查看全文: http://www.udpwork.com/item/204.html
|<<<1>>>| 一共1页, 12条记录