漫步云端之初读Google三大论文(一)

2024-05-12 23:32

本文主要是介绍漫步云端之初读Google三大论文(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GFS(Goole File System):对大数据时代的存储需求进行重新设计的分布式文件系统。
背景:google迅速增长的业务和数据处理需求
设计目标
- 性能
- 可伸缩性
- 可靠性
- 可用性

以上设计目标与传统的分步式文件系统相同。关键在于不同点。
不同之处
- 组建失效为常态
- 文件巨大
- 绝大部分文件的修改采用在文件尾部追加数据的方式,而非覆盖。
- 对文件的随机读写几乎不存在,一旦写完,对文件的操作就只有读,按顺序的读取(流式读取)。

设计预期

  • 系统持续监控自身的状态,迅速侦测、冗余、并恢复失效的组件
  • 系统存储一定数量的文件,能够有效的管理大文件(也支持小文件,但无需对小文件做专门的优化)
  • 系统的工作负载:大规模流式读取,小规模随机读取,大规模、顺序的、数据追加式的写入
  • 系统行为必须是高效的、行为定义明确的实现多客户端并追加到同一文件中的语意。“生产者-消费者”队列—使用最小的同步开销实现原子的多路追加数据操作
  • 高性能的网络带宽比低延迟重要。对高速、大批量处理数据的需求远大于对单一读写操作的响应要求

系统架构
这里写图片描述
GFS系统集群:由一个单独的Master节点(逻辑上)和多台chunk服务器以及多个客户机组成。Chunk服务器同时被多个客户机访问。
GFS存储文件时,将文件分割成固定大小的chunk,复制各个块到多个块服务器上。

GFS读取文件的流程
首先,客户端把文件名和程序指定的字节偏移,根据固定的chunk大小,转换成文件的chunk索引,然后将文件名和chunk索引发送给master节点,master节点将相应的chunk标识和副本的位置信息发送给客户端,客户端用文件名和chunk索引作为key缓存这些信息。之后客户端发送请求到其中一个副本处,一般会选择最近的那个。在对chunk的后续读取操作中,客户端不必再与master节点通讯了。

Chunk:

  • 创建之时,由master服务器给每个chunk分配一个不变的、全球唯一的64位标识
  • 将chunk以linux文件的形式保存于本地硬盘,根据指定的chunk标识和字节范围来读写块数据

Master节点

  • 管理所有文件系统元数据(元数据包括:名字空间、访问控制信息、文件和chunk的映射信息、当前chunk的位置信息等)
  • 管理系统范围内的活动,如chunk租约管理,孤儿chunk的回收以及chunk在chunk服务器之间的迁移
  • 使用心跳信息周期地和每个chunk服务器通信,发送指令到各个chunk服务器并接收chunk服务器的状态信息

GFS客户端:
GFS客户端代码以库的形式被链接到客户程序中

  • 客户端代码实现了GFS文件系统的api接口函数、应用程序与master节点和chunk服务器的通讯、以及对数据进行读写操作
  • 客户端与master节点的通讯只获取元数据,所有的数据操作都是客户端直接与chunk服务器交互的
  • GFS API的调用无需深入到linux node级别

另外,客户端和chunk服务器皆无需缓存文件数据。由于程序以流的方式读取一个大文件,客户端缓存数据几乎无用(但是客户端会缓存元数据);chunk以本地文件的方式保存,linux的文件系统缓存会把经常访问的数据缓存到内存中。


小结:
google file system 使用普通廉价硬件实现了一个支持大规模数据处理的系统。在设计思路上,与传统的分布式文件系统完全不同,认为组件的失效为常态、采用追加方式写入、然后再读取(通常序列化读取)、对大文件进行优化、放开接口限制来改进整个系统。
GFS通过持续监控,复制关键数据,快速和自动恢复提供灾难冗余。系统的设计保证了在大并发的读写操作时能够提供很高的吞吐量。GFS通过分离控制流和数据流来实现这个目标,master处理控制流,chunk处理数据流和客户端进程。通过选择较大chunk尺寸减小元数据的大小、通过chunk lease将控制权限交给主副本,进而达到将单一master服务器的负担减小到最低的目标,从而避免master成为性能的瓶颈。

这篇关于漫步云端之初读Google三大论文(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/984041

相关文章

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

OmniGlue论文详解(特征匹配)

OmniGlue论文详解(特征匹配) 摘要1. 引言2. 相关工作2.1. 广义局部特征匹配2.2. 稀疏可学习匹配2.3. 半稠密可学习匹配2.4. 与其他图像表示匹配 3. OmniGlue3.1. 模型概述3.2. OmniGlue 细节3.2.1. 特征提取3.2.2. 利用DINOv2构建图形。3.2.3. 信息传播与新的指导3.2.4. 匹配层和损失函数3.2.5. 与Super

BERT 论文逐段精读【论文精读】

BERT: 近 3 年 NLP 最火 CV: 大数据集上的训练好的 NN 模型,提升 CV 任务的性能 —— ImageNet 的 CNN 模型 NLP: BERT 简化了 NLP 任务的训练,提升了 NLP 任务的性能 BERT 如何站在巨人的肩膀上的?使用了哪些 NLP 已有的技术和思想?哪些是 BERT 的创新? 1标题 + 作者 BERT: Pre-trainin

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需

com.google.gson.JsonSyntaxException:java.lang.IllegalStateException异常

用Gson解析json数据的时候,遇到一个异常,如下图: 这个异常很简单,就是你的封装json数据的javabean没有写对,你仔细查看一下javabean就可以了 比如:我的解析的代码是             Gson gson = new Gson();             ForgetJson rb = gson.fromJson(agResult.mstrJson, For

2024 年高教社杯全国大学生数学建模竞赛 C 题 农作物的种植策略 参考论文 无水印

持续更新中,2024年数学建模比赛思路代码论文都会发布到专栏内,只需订阅一次!  完整论文+代码+数据结果链接在文末!  订阅后可查看参考论文文件 第一问 1.1 问题重述 这个问题围绕的是华北山区的某乡村,在有限的耕地条件下,如何制定最优的农作物种植策略。乡村有 34 块露天耕地和 20 个大棚,种植条件包括粮食作物、蔬菜、水稻和食用菌。除了要考虑地块的面积、种植季节等,还要确保