大数据经典论文解读
徐文浩
bothub创始人
新⼈⾸单¥59
1567 人已学习
课程目录
已更新 6 讲 / 共 36 讲
0/4登录后,你可以任选4讲全文学习。
课前导读 (3讲)
开篇词 | 读论文是成为优秀工程师的成年礼
免费
01 | 什么是大数据:从GFS到Dataflow,12年大数据生态演化图
02 | 学习方法:建立你的大数据知识网络
基础知识篇:Google的三驾马车 (3讲)
03 | The Google File System (一): Master的三个身份
04 | The Google File System (二): 如何应对网络瓶颈?
05 | The Google File System (三): 多写几次也没关系
大数据经典论文解读
15
15
1.0x
00:00/00:00
登录|注册

05 | The Google File System (三): 多写几次也没关系

你好,我是徐文浩。在前面的两讲中,我们一起探讨了 GFS 系统设计中秉持的两个原则,分别是“保持简单”和“根据硬件特性设计系统”,而今天我们要讨论的 GFS 的最后一个设计特点,是“放宽数据一致性的要求”。
分布式系统的一致性要求是一个很有挑战的话题。如果说分布式系统天生通过更多的服务器提升了性能,是一个天然的优点,那么在这些通过网络连起来的服务器之间保持数据一致,就是一个巨大的挑战。毕竟网络传输总有延时,硬件总会有故障,你的程序稍有不慎,就会遇到甲服务器觉得你的钱转账失败,而乙服务器却觉得钱已经转走了的情况。可以说,一致性是分布式系统里的一个永恒的话题
不过 2003 年的 GFS,对于一致性的要求,是非常宽松的。一方面,这是为了遵循第一个设计原则,就是“保持简单”,简单的设计使得做到很强的一致性变得困难。另一方面,则是要考虑“硬件特性”,GFS 希望在机械硬盘上尽量有比较高的写入性能,所以它只对顺序写入考虑了一致性,这就自然带来了宽松的一致性。
好,废话不多说,让我们切入正题。

随机写入只是“确定”的

通过上一讲的学习,我们知道了在 GFS 中,客户端是怎么把数据写入到文件系统里的。不过,我们并没有探讨一个非常重要的问题,就是数据写入的一致性(Consistency)问题。这个一致性,也是我们常常听说的 CAP 理论中的 C,即一致性、可用性、分区容错性在分布式系统中,三者不能兼得中的一致性问题。这个 C,也正来自于一致性的英文 Consitency 的首字母。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
该试读文章来自付费专栏《大数据经典论文解读》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥59
立即订阅
登录 后留言

精选留言(1)

  • 如果在写入时就保证文件是ok的,那么就是要做个失败重试,即,写入失败就整个放弃重新写一个文件。
    另一个思路是,记录下每次发其写入请求是失败还是成功,以及每次写入的大小,也就形成了一个list(成功失败,写入大小)每次读电影文件的时候,就可以根据这个信息,读文件了,比如开始读失败了,所以跳过这次写入大小,读成功了,则读取这次写入大小。 怎么保存这个信息存的是ok的,又可以专门为gfs,设计一种文件格式来保证或者当作文件的元数据信息存入master(当然不是好思路)。

    2021-09-29
收起评论
1
返回
顶部