




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Google三大核心技术之一:Mabiner函数被执行一般的,相同的代码被用函数的输出被保存最终输出文件里biner函数的输出被写到中间文件里,然后被发送给reduce任务函数的例子输入输出类型Maaaaaaaaster动态的分配工作给几千台机器为了简化调试和测试,我们开发了一个可替换的实现,这个实现在本地执行所有的Maaaster运行一个HTTaae,Stringcontents:
foreachwordwincontents:
ifIsCaent;
EmitIntermediatew,"1";来自不同worer机器上的计数器值被周期性的传送给master在aster把来自成功的maaster状态页里,以便人们可以查看实际的计算进度当计算计数器值的时候消除重复执行的影响,防止数据的累加在备用任务的使用,和由于出错的重新执行,可以产生重复执行有些计数器值被Ma2G2000Gar的最高纪录1057秒差不多需要注意的事情是:因此位置优化的原因,很多数据都是从本地磁盘读取的而没有通过我们有限带宽的网络,所以输入速度比排序速度和输出速度都要快排序速度比输出速度快的原因是输出阶段写两个排序后数据的拷贝我们写两个副本的原因是为了可靠性和可用性我们写两份的原因是因为底层文件系统的可靠性和可用性的要求如果底层文件系统用类似容错编码erasurecoding的方式,而不采用复制写的方式,在写盘阶段可以降低网络带宽的要求。备用任务的影响在图3b中,显示我们不用备用任务的排序程序的执行情况除了它有一个很长的几乎没有写动作发生的尾巴外,执行流程和图3a相似在960秒后,只有5个reduce任务没有完成然而,就是这最后几个落后者知道300秒后才完成全部的计算任务执行了1283秒,多花了44%的时间机器失效在图3c中,程序因为仅仅程序被停止,而机器仍然在正常运行因为已经完成的maaming以及一些Mitives提供了更高级别的抽象,系统的不同之处在,Maaae,Shun-TaLeung,和JoshRedstone,LiangOlcanSercinogluBurrows,WilsonHsieh,JoshLevenberg,Sharona_tass100;
out->set_format"tet";
out->set_reducer_class"Adder";
果要支持更大的文件系统,那么增加一些内存的方法对于我们将元数据〔metadata〕保存在内存种所获得的简单性、可靠性、高性能和灵活性来说,这只是一个很小的代价。
B、块位置:
master并不为chunserver所拥有的块的副本的保存一个不变的记录。它在启动时通过简单的查询来获得这些信息。Master可以保持这些信息的更新,因为它控制所有块的放置并通过HeartBeat消息来监控chunserver的状态。
这样做的好处:因为chunserver可能参加或离开集群、改变路径名、崩溃、重启等,一个集群重有成百个server,这些事件经常发生,这种方法就排除了master与chunserver之间的同步问题。
另一个原因是:只有chunserver才能确定它自己到底有哪些块,由于错误,chunserver中的一些块可能会很自然的消失,这样在master中就没有必要为此保存一个不变的记录。
C、操作日志:
操作日志包含了对metadata所作的修改的历史记录。它作为逻辑时间线定义了并发操作的执行顺序。文件、块以及它们的版本号都由它们被创立时的逻辑时间而唯一地、永久地被标识。
操作日志是如此的重要,我们必须要将它可靠地保存起来,并且只有在metadata的改变固定下来之后才将变化呈现给用户。所以我们将操作日志复制到数个远程的机器上,并且只有在将相应的日志记录写到本地和远程的磁盘上之后才答复用户的请求。
Master可以用操作日志来恢复它的文件系统的状态。为了将启动时间减至最小,日志就必须要比拟小。每当日志的长度增长到超过一定的规模后,master就要检查它的状态,它可以从本地磁盘装入最近的检查点来恢复状态。
创建一个检查点比拟费时,master的状态是以一种在创立一个检查点时并不耽误即将到来的修改操作的方式来组织的。Master切换到一个新的日子文件并在一个单独的线程中创立检查点。这个新的检查点记录了切换前所有的修改。在一个有数十万文件的集群中用一分钟左右就能完成。创立完后,将它写入本地和远程的磁盘。
〔7〕数据完整性
名字空间的修改必须是原子性的,它们只能有master处理:名字空间锁保证了操作的原子性和正确性,而master的操作日志在全局范围内定义了这些操作的顺序。
文件区间的状态在修改之后依赖于修改的类型,不管操作成功还是失败,也不管是不是并发操作。如果不管从哪个副本上读,所有的客户都看到同样的数据,那么文件的这个区域就是一致的。如果文件的区域是一致的并且用户可以看到修改操作所写的数据,那么它就是已定义的。如果修改是在没有并发写操作的影响下完成的,那么受影响的区域是已定义的,所有的client都能看到写的内容。成功的并发写操作是未定义但却是一致的。失败的修改将使区间处于不一致的状态。
Write操作在应用程序指定的偏移处写入数据,而recordaaster和chunserver间定期的handshae,借助校验和来检测对数据的破坏。一旦检测到,就从一个有效的副本尽快重新存储。只有在GFS检测前,所有的副本都失效,这个块才会丧失。2、系统交互
〔1〕租约〔lease〕和修改顺序:
〔2〕数据流
我们的目标是充分利用每个机器的网络带宽,防止网络瓶颈和延迟
为了有效的利用网络,我们将数据流和控制流别离。数据是以流水线的方式在选定的chunerserver链上线性的传递的。每个机器的整个对外带宽都被用作传递数据。为防止瓶颈,每个机器在收到数据后,将它收到数据尽快传递给离它最近的机器。
〔3〕原子性的recordAary上多了一些逻辑判断。首先,client将数据发送到文件最后一块的所有副本上。然后向ary发送请求。ary检查添加操作是否会导致该块超过最大的规模〔64M〕。如果这样,它将该块扩充到最大规模,并告诉其它副本做同样的事,同时通知client该操作需要在下一个块上重新尝试。如果记录满足最大规模的要求,ary就会将数据添加到它的副本上,并告诉其它的副本在在同样的偏移处写数据,最后ary向client报告写操作成功。如果在任何一个副本上recordaary。根据一致性保证,成功的recordaaster受到一个snaaster交互以找到拥有lease的副本。这就给master一个创立这个块的副本的机会。
副本被撤销或终止后,master在磁盘上登记执行的操作,然后复制源文件或目录树的metadata以对它的内存状态实施登记的操作。这个新创立的snaetadata〕指向相同的块〔chun〕。
Snaaster以找到拥有lease的副本。Master注意到chunc的引用记数比1大,它延迟对用户的响应,选择一个chunhandleC’,然后要求每一有chunc的副本的chunserver创立一个块C’。每个chunserver在本地创立chunC’防止了网络开销。从这以后和对别的块的操作没有什么区别。
3、MASTER操作
MASTER执行所有名字空间的操作,除此之外,他还在系统范围管理数据块的复制:决定数据块的放置方案,产生新数据块并将其备份,和其他系统范围的操作协同来确保数据备份的完整性,在所有的数据块效劳器之间平衡负载并收回没有使用的存储空间。
名字空间管理和加锁
与传统文件系统不同的是,GFS没有与每个目录相关的能列出其所有文件的数据结构,它也不支持别名〔uni中的硬连接或符号连接〕,不管是对文件或是目录。GFS的名字空间逻辑上是从文件元数据到路径名映射的一个查用表。
MASTER在执行某个操作前都要获得一系列锁,例如,它要对/d1/d2…/dn/leaf执行操作,那么它必须获得/d1,/d1/d2,…,/d1/d2/…/dn的读锁,/d1/d2…/dn/leaf的读锁或写锁〔其中leaf可以使文件也可以是目录〕。MASTER操作的并行性和数据的一致性就是通过这些锁来实现的。
备份存储放置策略
一个GFS集群文件系统可能是多层分布的。一般情况下是成千上万个文件块效劳器分布于不同的机架上,而这些文件块效劳器又被分布于不同机架上的客户来访问。因此,不同机架上的两台机器之间的通信可能通过一个或多个交换机。数据块冗余配置策略要到达连个目的:最大的数据可靠性和可用性,最大的网络带宽利用率。因此,如果仅仅把数据的拷贝置于不同的机器上很难满足这两个要求,必须在不同的机架上进行数据备份。这样即使整个机架被毁或是掉线,也能确保数据的正常使用。这也使数据传输,尤其是读数据,可以充分利用带宽,访问到多个机架,而写操作,那么不得不涉及到更多的机架。
产生、重复制、重平衡数据块
当MASTER产生新的数据块时,如何放置新数据块,要考虑如下几个因素:〔1〕尽量放置在磁盘利用率低的数据块效劳器上,这样,慢慢地各效劳器的磁盘利用率就会到达平衡。〔2〕尽量控制在一个效劳器上的“新创立〞的次数。〔3〕由于上一小节讨论的原因,我们需要把数据块放置于不同的机架上。
MASTER在可用的数据块备份低于用户设定的数目时需要进行重复制。这种情况源于多种原因:效劳器不可用,数据被破坏,磁盘被破坏,或者备份数目被修改。每个被需要重复制的数据块的优先级根据以下几项确定:第一是现在的数目距目标的距离,对于能阻塞用户程序的数据块,我们也提高它的优先级。最后,MASTER按照产生数据块的原那么复制数据块,并把它们放到不同的机架内的效劳器上。
MASTER周期性的平衡各效劳器上的负载:它检查chun分布和负载平衡,通过这种方式来填充一个新的效劳器而不是把其他的内容统统放置到它上面带来大量的写数据。数据块放置的原那么与上面讨论的相同,此外,MASTER还决定那些数据块要被移除,原那么上他会去除那些空闲空间低于平均值的那些效劳器。
垃圾收集
在一个文件被删除之后,GFS并不立即收回磁盘空间,而是等到垃圾收集程序在文件和数据块级的的检查中收回。
当一个文件被应用程序删除之后,MASTER会立即记录下这些变化,但文件所占用的资源却不会被立即收回,而是重新给文件命了一个隐藏的名字,并附上了删除的时间戳。在MASTER定期检查名字空间时,它删除超过三天〔可以设定〕的隐藏的文件。在此之前,可以以一个新的名字来读文件,还可以以前的名字恢复。当隐藏的文件在名字空间中被删除以后,它在内存中的元数据即被擦除,这就有效地切断了他和所有数据块的联系。
在一个相似的定期的名字空间检查中,MASTER确认孤儿数据块〔不属于任何文件〕并擦除他的元数据,在和MASTER的心跳信息交换中,每个效劳器报告他所拥有的数据块,MASTER返回元数据不在内存的数据块,效劳器即可以删除这些数据块。
过时数据的探测
在数据更新时如果效劳器停机了,那么他所保存的数据备份就会过时。对每个数据块,MASTER设置了一个版本号来区别更新过的数据块和过时的数据块。
当MASTER一个新的lease时,他会增加数据块的版本号并会通知更新数据备份。MASTER和备份都会记录下当前的版本号,如果一个备份当时不可用,那么他的版本号不可能提高,当ChunServer重新启动并向MASTER报告他的数据块集时,MASTER就会发现过时的数据。
MASTER在定期的垃圾收集程序中去除过时的备份,在此以前,处于效率考虑,在各客户及英大使,他会认为根本不存在过时的数据。作为另一个平安措施,MASTER在给客户及关于数据块的应答或是另外一个读取数据的效劳器数据是都会带上版本信息,在操作前客户机和效劳器会验证版本信息以确保得到的是最新的数据。4、容错和诊断
高可靠性
快速恢复
不管如何终止效劳,MASTER和数据块效劳器都会在几秒钟内恢复状态和运行。实际上,我们不对正常终止和不正常终止进行区分,效劳器进程都会被切断而终止。客户机和其他的效劳器会经历一个小小的中断,然后它们的特定请求超时,重新连接重启的效劳器,重新请求。
数据块备份
如上文所讨论的,每个数据块都会被备份到放到不同机架上的不同效劳器上。对不同的名字空间,用户可以设置不同的备份级别。在数据块效劳器掉线或是数据被破坏时,MASTER会按照需要来复制数据块。
MASTER备份
为确保可靠性,MASTER的状态、操作记录和检查点都在多台机器上进行了备份。一个操作只有在数据块效劳器硬盘上刷新并被记录在MASTER和其备份的上之后才算是成功的。如果MASTER或是硬盘失败,系统监视器会发现并通过改变域名启动它的一个备份机,而客户机那么仅仅是使用标准的名称来访问,并不会发现MASTER的改变。
数据完整性
每个数据块效劳器都利用校验和来检验存储数据的完整性。原因:每个效劳器随时都有发生崩溃的可能性,并且在两个效劳器间比拟数据块也是不现实的,同时,在两台效劳器间拷贝数据并不能保证数据的一致性。
每个Chun按64B的大小分成块,每个块有32位的校验和,校验和和日志存储在一起,和用户数据分开。
在读数据时,效劳器首先检查与被读内容相关局部的校验和,因此,效劳器不会传播错误的数据。如果所检查的内容和校验和不符,效劳器就会给数据请求者返回一个错误的信息,并把这个情况报告给MASTER。客户机就会读其他的效劳器来获取数据,而MASTER那么会从其他的拷贝来复制数据,等到一个新的拷贝完成时,MASTER就会通知报告错误的效劳器删除出错的数据块。
附加写数据时的校验和计算优化了,因为这是主要的写操作。我们只是更新增加局部的校验和,即使末尾局部的校验和数据已被损坏而我们没有检查出来,新的校验和与数据会不相符,这种冲突在下次使用时将会被检查出来。
相反,如果是覆盖现有数据的写,在写以前,我们必须检查第一和最后一个数据块,然后才能执行写操作,最后计算和记录校验和。如果我们在覆盖以前不先检查首位数据块,计算出的校验和那么会因为没被覆盖的数据而产生错误。
在空闲时间,效劳器会检查不活泼的数据块的校验和,这样可以检查出不经常读的数据的错误。一旦错误被检查出来,效劳器会拷贝一个正确的数据块来代替错误的。
诊断工具
广泛而细致的诊断日志以微小的代价换取了在问题隔离、诊断、性能分析方面起到了重大的作用。GFS效劳器用日志来记录显著的事件〔例如效劳器停机和启动〕和远程的应答。远程日志记录机器之间的请求和应答,通过收集不同机器上的日志记录,并对它们进行分析恢复,我们可以完整地重现活动的场景,并用此来进行错误分析。
6测量
测试环境
一台主控机,两台主控机备份,16台数据块效劳器,16台客户机。
每台机器:2块1.4G2G80G的硬盘,1块100Mb1G
首先,BigTable从2021年初就开始研发了,到现在为止已经用了将近8个月。〔2021年2月〕目前大概有100个左右的效劳使用BigTable,比方:amutable的SSTables,一台机器一个日志文件。当系统的内存满后,系统会压缩一些Tablets。由于Jeff在论述这点的时候说的很快,所以我没有时间把听到的都记录下来,因此下面是一个大概的说明:压缩分为:主要和次要的两局部。次要的压缩仅仅包括几个Tablets,而主要的压缩时关于整个系统的压缩。主压缩有回收硬盘空间的功能。Tablets的位置实际上是存储在几个特殊的BigTable的存储单元cell中。看起来这是一个三层的系统。客户端有一个指向METAO的Tablets的指针。如果METAO的Tablets被频繁使用,那个这台机器就会放弃其他的tablets专门支持METAO这个Tablets。METAOtablets保持着所有的META1的tablets的记录。这些tablets中包含着查找tablets的实际位置。〔老实说翻译到这里,我也不太明白。〕在这个系统中不存在大的瓶颈,因为被频繁调用的数据已经被提前获得并进行了缓存。现在我们返回到对列的说明:列是类似下面的形式:family:ol页面的代码。“anchor:news〞中包含着相对应的url,〞anchor:包含着链接的文字局部。列中包含着类型信息。翻译到这里我
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2031年中国玻璃彩绘漆行业投资前景及策略咨询研究报告
- 2025至2031年中国塑料镖行业投资前景及策略咨询研究报告
- 2025至2031年中国原位岩石钻孔剪切仪行业投资前景及策略咨询研究报告
- 2025至2031年中国全竹餐桌椅行业投资前景及策略咨询研究报告
- 2025至2030年中国通信电台数据监测研究报告
- 2025至2030年中国虫草燕窝口服液数据监测研究报告
- 2025至2030年中国自动电压调整器数据监测研究报告
- 永川商用开水器施工方案
- 2025至2030年中国电线专用设备数据监测研究报告
- 2025至2030年中国滋润沐浴露数据监测研究报告
- 电子产品设计生产工艺流程课件
- 温室大棚、花卉苗圃采暖方案(空气源热泵)
- 即兴口语(姜燕)-课件-即兴口语第五章PPT-中国传媒大学
- 高等无机化学理论—原子参数及元素周期性
- 部编人教版五年级下册道德与法治全册知识点整理归纳
- 《神笔马良》阅读测试题(50题)含答案
- 绘本阅读《铁丝网上的小花》
- 固定资产含答案
- 现代诗人徐志摩简介(课堂PPT)
- 字号大小样式设计参照表
- 理想信念主题班会ppt课件
评论
0/150
提交评论