- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GFS的读操作 GFS的读操作 计算数据块位置信息:(假设:文件位置在201,359,161字节处) 块大小=64MB 64MB=1024*1024*64bytes = 67,108,864 bytes 201,359,161bytes= 67,108,864 * 3 + 32,569 bytes 所以,client的位置索引是3. Ch_1000 {2,5,6} GFS的读操作 GFS的读操作 应用程序发出读请求。 Client将请求转换为(文件名、块位置),然后发送给主服务器。 主服务器返回数据块的指引信息和副本位置信息。 Client选择其中一个位置信息,并给那个块服务器发送请求。 块服务器返回请求的数据。 Client将数据传送给应用程序。 GFS的互斥操作 互斥:任何的写或者追加操作 数据需要被写到所有的副本上 当多个用户请求修改操作时,保证同样的次序。 GFS的互斥操作 GFS的互斥操作 GFS的互斥操作 GFS的互斥操作 GFS的互斥操作 GFS客户端发送请求到主服务器; 主服务器返回块的句柄和副本的位置信息; 客户端将写数据发送给所有副本服务器; 数据存储在副本服务器的缓存中; 客户发送写命令到主副本服务器; 主副本服务器给出写的次序; 主副本服务器将该次序发送给二级副本服务器; 二级副本管理器响应主副本服务器; 主服务器响应客户端。 添加操作的算法 谷歌文件系统中非常重要的操作: 把多个主机的结果合并到一个文件中。 将文件组织成生产者消费者队列。 Clients可以并发读。 Clients可以并发写。 Clients可以并发地执行添加操作。 应用程序提出添加操作的请求。 GFS client 解释该请求,然后发向主服务器。 主服务器返回块句柄和副本位置。 Client将要写入的数据推入各个副本。 Primary检查添加操作是否会导致该块超过最大的规模。 如果超过:将该块扩充到最大规模,其它副本做同样的事,同时通知client该操作需要在下一个块上重新尝试。 如果记录满足最大规模,primary将数据添加到它的副本上,并告诉其它的副本在同样的偏移处写数据,最后primary向client报告写操作成功。 APPEND算法 一致性模型 并发的修改将导致一致性问题。不同的client对同一组数据执行修改。 一致性:所有的client读取的数据一致。 确定性:所有的client读取全部的修改过程。 写操作制定一个变动发生的偏移量,追加记录操作不会, (在给定时间点上,不论变动发生何处,变动写到文件尾) GFS能区分确定和不确定的区域(写操作和追加记录操作) 一致性模型 对数据块和副本执行相同顺序的添加操作。 利用数据块版本号来检测陈旧的副本。 记录追加操作致使多步的修改操作能单独的添加到文件尾。 写操作指定一个变动发生的偏移量,而追加操作不会。 写操作的变动位置是预先确定的,而追加操作是由系统决定的。 并发读 Clients缓存数据块位置信息。 因为所有的修改操作都是追加,所以可以并发读。 容错 恢复:不管如何终止服务,MASTER和数据块服务器都会在几秒钟内恢复状态和运行。 数据块备份 :每个数据块都会被备份到放到不同机架上的多个服务器上。 MASTER备份:为确保可靠性,MASTER的状态、操作记录和检查点都在多台机器上进行了备份。一个操作只有在数据块服务器硬盘上刷新并被记录在MASTER和其备份的上之后才算是成功的。如果MASTER或是硬盘失败,系统监视器会发现并通过改变域名启动一个备份机,而客户机并不会发现MASTER的改变。 数据完整性 各个块服务器利用校检和独立地验证它的副本的完整性。 一个数据块被分为64kb大小的小块,每个小块有一个32bit的校检和。 读取时,块服务器先验证数据块的校检和,然后将数据返回给请求者。 遇到读取错误,错误被报告给请求者。主服务器重读数据块。 创建、复制、平衡数据块 创建副本的原因: 数据块的创建、复制、平衡 当主服务器产生新数据块时,如何放置新数据块要考虑一下因素: 放置在磁盘利用率低的数据块服务器 控制在一个服务器上的“新创建”次数 把数据块放置于不同的机架上。 垃圾收集 分布式垃圾收集有一定的复杂性,GFS用一种高效的方式处理 确定对块数据的引用 确定块数据的副本信息 主服务器不认知的副本被确认为是垃圾文件 文件被删除后,GFS不立即回收磁盘空间 磁盘空间等到垃圾收集程序在文件和数据块级的检查中收回 这种办法更简单,可靠。 END * intersperse散置,散布,点缀 第8章谷歌文件系统(GFS) Google思路 Google是伸缩性的王者。Google一直的目标就是构建高性能高伸缩性的基础组织来
文档评论(0)