GFS论文总结(下)

前言

上一篇博客中总结了gfs一部分内容,剩下的一致性模型和容错性机制在这篇博客中结束

三、Fault Tolerance

GFS的容错性主要是通过以下几个机制实现的。这部分没有什么好说的,简单记录如下。

3.1 高可用性

这部分主要包括
(1)、快速恢复:Master和Chunk服务器宕机之后都可以在数秒中恢复其状态
(2)、Chunk 复制:每个chunk多个备份
(3)、Master 服务器的复制:为了保证 Master 服务器的可靠性, Master 服务器的状态也要复制。 Master 服务器所有的操作日志和checkpoint 文件都被复制到多台机器上。

3.2 数据完整性

有关数据的完整性主要指的是GFS通过Checksum来检查保存的数据是否损坏。


四、Consistancy Model

分布式一致性算法一直是一个非常大,非常难于理解和设计的point. GFS中的一致性模型也不例外。

GFS的一致性包括两方面内容,一个是元数据的一致性,其主要通过锁机制来实现。另一个就是副本数据之间的一致性。下面涉及的主要是后者。

从某种程度上来说,GFS使用WARO(Write-all-read-one)机制来读写副本,即如果更新所有副本成功则认为成功,一旦更新成功,则可以选取任意一个副本读取数据(刚刚写入的数据)。如果写入某个副本失败,则更新失败,副本之间即处于不一致的状态。如果这个时候client来读取的话,可能会读到不正确的数据。GFS不保证异常状态时副本的一致性,GFS系统需要上层应用通过Checksum等机制自行判断数据是否合法。

以上只是对GFS一致性机制做了一个相当笼统的介绍。要想深刻理解GFS的一致性模型,
首先要理解paper中出现的这个表。

在这里插入图片描述

这个博客中做了比较好的阐述。

其次要理解普通写操作和append操作在跨越chunk时造成了不一致现象,及其原因。

这个博客中解释的比较清楚。

最后,你会发现GFS在一致性上做的并不是很完美,甚至说不太好。所以后面有了代替平(HDFS)。

五、总结

设计并实现一个好的系统可能需要好几个月,甚至是好几年的时间,读一篇论文可能只需要几天,但是充分理解它,几天甚至几个星期甚至几个月都困难(尤其是在没有基础的情况下),哎,好吧,GFS,我理解的还不是很深刻。


参考
[1]. GFS 阅读笔记
[2]. GFS一致性总结
[3]. 从 GFS 失败的架构设计来看一致性的重要性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值