每天为您提供网通传奇1.80飞龙,超变态传奇外传,传奇 私服,sf发布网!
广告联系
1.76网通复古传奇sf
  • 传奇私服带英雄合击
  • 传世私服28pkw
  • 变态传奇合击
  • 新开1.85传奇私服网
  • 完美国际私服 谷歌三大核心技术(一)The Google File System中文版 - 程序人生,guisu专栏 - 博客频道 - C
    文章作者:网通传奇sf 文章来源:http://WWW.ZSPINSHENG.COM/ 更新时间:2012-02-23 06:13:45  

    因为名称空间可能有很多节点,读写锁采用惰性分配策略,在不再使用的时候立刻被删除。同样,锁的获取也要依据一个全局一致的顺序来避免死锁:首先按名称空间的层次排序,在同一个层次内按字典顺序排序。

      为了迎接圣诞节销售旺季的到来,苹果昨日推出了最新版 传奇世界私服 4S。虽然智能手机传世私服场的竞争越来越激烈,但是最高的用户忠实度或许可以帮助苹果巩固其传世私服场领先的地位。

    相比之下,如果写操作覆盖已经存在的一个范围内的Chunk,我们必须读取和校验被覆盖的第一个和最后一个块,然后再执行写操作;操作完成之后再重新计算和写入新的Checksum。如果我们不校验第一个和最后一个被写的块,那么新的Checksum可能会隐藏没有被覆盖区域内的数据错误。

    在图2中,我们依据步骤编号,展现写入操作的控制流程。

    The Google File System中文版

    摘要

    分类和主题描述

    常用术语

    关键词

    1. 简介

    2.设计概述

    2.1设计预期

    我们的程序倾向于同时处理多个这样的文件。换句话说,即N个客户机同时追加数据到M个共享文件中,这里N和M都是数十或者数百以上。所以,在我们的实际应用中,Chunk服务器的网络拥塞并没有成为一个严重问题,如果Chunk服务器的某个文件正在写入,客户机会去写另外一个文件。

      Strategy Analytics 此次调查了 1497 名欧洲用户和 987 名美国用户的意见。它计划下周发布一份更完整的调查报告,将冒险岛私服诛仙sf的调查结果也收录进去。

    6.2.2 元数据

    2.7.2 程序的实现

    3. 系统交互

    3.1 租约(lease)和变更顺序

    5.2 数据完整性

    如同我们所预期的,我们的数据修改操作主要是记录追加操作而不是覆盖方式的写操作。我们测量了第一个副本的数据覆盖写的情况。这近似于一个客户机故意覆盖刚刚写入的数据,而不是增加新的数据。对于集群X,覆盖写操作在写操作所占据字节上的比例小于0.0001%,在所占据操作数量上的比例小于0.0003%。对于集群Y,这两个比率都是0.05%。虽然这只是某一片断的情况,但是仍然高于我们的预期。这是由于这些覆盖写的操作,大部分是由于客户端在发生错误或者超时以后重试的情况。这在本质上应该不算作工作负荷的一部分,而是重试机制产生的结果。

    每个Chunk服务器都使用Checksum来检查保存的数据是否损坏。考虑到一个GFS集群通常都有好几百台机器、几千块硬盘,磁盘损坏导致数据在读写过程中损坏或者丢失是非常常见的(第7节讲了一个原因)。我们可以通过别的Chunk副本来解决数据损坏问题,但是跨越Chunk服务器比较副本来检查数据是否损坏很不实际。另外,GFS允许有歧义的副本存在:GFS修改操作的语义,特别是早先讨论过的原子纪录追加的操作,并不保证副本完全相同(alex注:副本不是byte-wise完全一致的)。因此,每个Chunk服务器必须独立维护Checksum来校验自己的副本的完整性。

    6.3.4 Master的工作负荷

    7. 经验

    8. 相关工作

    9. 结束语

    致谢

    参考


    [4] Garth A. Gibson, David F. Nagle, Khalil Amiri, Jeff Butler, Fay W. Chang, Howard Gobioff, Charles Hardin, ErikR iedel, David Rochberg, and Jim Zelenka. A cost-effective, high-bandwidth storage architecture. In Proceedings of the 8th Architectural Support for Programming Languages and Operating Systems, pages 92?103, San Jose, California, October 1998.

    经过了一系列的成功的修改操作之后,GFS确保被修改的文件region是已定义的,并且包含最后一次修改操作写入的数据。GFS通过以下措施确保上述行为:(a) 对Chunk的所有副本的修改操作顺序一致(3.1章),(b)使用Chunk的版本号来检测副本是否因为它所在的Chunk服务器宕机(4.5章)而错过了修改操作而导致其失效。失效的副本不会再进行任何修改操作,Master服务器也不再返回这个Chunk副本的位置信息给客户端。它们会被垃圾收集系统尽快回收。

    在Chunk服务器空闲的时候,它会扫描和校验每个不活动的Chunk的内容。这使得我们能够发现很少被读取的Chunk是否完整。一旦发现有Chunk的数据损坏,Master可以创建一个新的、正确的副本,然后把损坏的副本删除掉。这个机制也避免了非活动的、已损坏的Chunk欺骗Master节点,使Master节点认为它们已经有了足够多的副本了。

    在Master服务器上保存的元数据就小的多了,大约只有数十MB,或者说平均每个文件100字节的元数据。这和我们设想的是一样的,Master服务器的内存大小在实际应用中并不会成为GFS系统容量的瓶颈。大多数文件的元数据都是以前缀压缩模式存放的文件名。Master服务器上存放的其它元数据包括了文件的所有者和权限、文件到Chunk的映射关系,以及每一个Chunk的当前版本号。此外,针对每一个Chunk,我们都保存了当前的副本位置以及对它的引用计数,这个引用计数用于实现写时拷贝(alex注:即COW,copy-on-write)。

    (alex注:lease是数据库中的一个术语)

    RPC日志包含了网络上发生的所有请求和响应的详细记录,但是不包括读写的文件数据。通过匹配请求与回应,以及收集不同机器上的RPC日志记录,我们可以重演所有的消息交互来诊断问题。日志还用来跟踪负载测试和性能分析。

    日志对性能的影响很小(远小于它带来的好处),因为这些日志的写入方式是顺序的、异步的。最近发生的事件日志保存在内存中,可用于持续不断的在线监控。

    正如之前讨论的,每个Chunk都被复制到不同机架上的不同的Chunk服务器上。用户可以为文件命名空间的不同部分设定不同的复制级别。缺省是3。当有Chunk服务器离线了,或者通过Chksum校验(参考5.2节)发现了已经损坏的数据,Master节点通过克隆已有的副本保证每个Chunk都被完整复制(alex注:即每个Chunk都有复制因子制定的个数个副本,缺省是3)。虽然Chunk复制策略对我们非常有效,但是我们也在寻找其它形式的跨服务器的冗余解决方案,比如使用奇偶校验、或者Erasure codes(alex注:Erasure codes用来解决链接层中不相关的错误,以及网络拥塞和buffer限制造成的丢包错误)来解决我们日益增长的只读存储需求。我们的系统主要的工作负载是追加方式的写入和读取操作,很少有随机的写入操作,因此,我们认为在我们这个高度解耦合的系统架构下实现这些复杂的冗余方案很有挑战性,但并非不可实现。


    完美国际私服时间 10 月 5 日消息,据国外媒体报道,据传奇sf场研究公司 Strategy Analytics 最新调查发现,在智能手机传奇sf场,苹果 征途sf 的用户忠实度最高,超过了宏达电和三星等其他公司的产品;另外,诺基亚的用户忠实度首次出现了下滑。

    在设计满足我们需求的文件系统时候,我们的设计目标既有机会、又有挑战。之前我们已经提到了一些需要关注的关键点,这里我们将设计的预期目标的细节展开讨论。

    Chunk服务器总共保存了十几GB的元数据,大多数是来自用户数据的、64KB大小的块的Checksum。保存在Chunk服务器上其它的元数据是Chunk的版本号信息,我们在4.5节描述过。

    可以从另外一个角度去理解这个设计决策:只有Chunk服务器才能最终确定一个Chunk是否在它的硬盘上。我们从没有考虑过在Master服务器上维护一个这些信息的全局视图,因为Chunk服务器的错误可能会导致Chunk自动消失(比如,硬盘损坏了或者无法访问了),亦或者操作人员可能会重命名一个Chunk服务器。

    Checksum的计算针对在Chunk尾部的追加写入操作作了高度优化(与之对应的是覆盖现有数据的写入操作),因为这类操作在我们的工作中占了很大比例。我们只增量更新最后一个不完整的块的Checksum,并且用所有的追加来的新Checksum块来计算新的Checksum。即使是最后一个不完整的Checksum块已经损坏了,而且我们不能够马上检查出来,由于新的Checksum和已有数据不吻合,在下次对这个块进行读取操作的时候,会检查出数据已经损坏了。

    最初设计时,我们试图把Chunk的位置信息持久的保存在Master服务器上,但是后来我们发现在启动的时候轮询Chunk服务器,之后定期轮询更新的方式更简单。这种设计简化了在有Chunk服务器加入集群、离开集群、更名、失效、以及重启的时候,Master服务器和Chunk服务器数据同步的问题。在一个拥有数百台服务器的集群中,这类事件会频繁的发生。

    变更是一个会改变Chunk内容或者元数据的操作,比如写入操作或者记录追加操作。变更操作会在Chunk的所有副本上执行。我们使用租约(lease)机制来保持多个副本间变更顺序的一致性。Master节点为Chunk的一个副本建立一个租约,我们把这个副本叫做主Chunk。主Chunk对Chunk的所有更改操作进行序列化。所有的副本都遵从这个序列进行修改操作。因此,修改操作全局的顺序首先由Master节点选择的租约的顺序决定,然后由租约中主Chunk分配的序列号决定。

      宏达电的安卓智能手机在欧洲和美国诛仙sf场的用户忠实度分别为 81% 和 75%;黑莓厂商 RIM 在欧洲和美国诛仙sf场的用户忠实度均为 72%;三星安卓智能手机在欧洲和美国诛仙sf场的用户忠实度分别为 66% 和 73%。

      2.2 接口

      2.3 架构

      2.4 单一Master节点

      2.5 Chunk尺寸

      2.6 元数据

      2.6.1 内存中的数据结构

      2.6.2 Chunk位置信息

      Master服务器并不保存持久化保存哪个Chunk服务器存有指定Chunk的副本的信息。Master服务器只是在启动的时候轮询Chunk服务器以获取这些信息。Master服务器能够保证它持有的信息始终是最新的,因为它控制了所有的Chunk位置的分配,而且通过周期性的心跳信息监控Chunk服务器的状态。

      GFS支持一个宽松的一致性模型,这个模型能够很好的支撑我们的高度分布的应用,同时还保持了相对简单且容易实现的优点。本节我们讨论GFS的一致性的保障机制,以及对应用程序的意义。我们也着重描述了GFS如何管理这些一致性保障机制,但是实现的细节将在本论文的其它部分讨论。

      5.3 诊断工具

      6.2 实际应用中的集群

      6.2.1 存储

      详尽的、深入细节的诊断日志,在问题隔离、调试、以及性能分析等方面给我们带来无法估量的帮助,同时也只需要很小的开销,99听战歌网。没有日志的帮助,我们很难理解短暂的、不重复的机器之间的消息交互。GFS的服务器会产生大量的日志,1.76天下毁灭版本,记录了大量关键的事件(比如,Chunk服务器启动和关闭)以及所有的RPC的请求和回复。这些诊断日志可以随意删除,对系统的正确运行不造成任何影响。然而,我们在存储空间允许的情况下会尽量的保存这些日志。

      3.2 数据流

      3.3 原子的记录追加

      3.4 快照

      4. Master节点的操作

      4.1 名称空间管理和锁

      Checksum对读操作的性能影响很小,可以基于几个原因来分析一下。因为大部分的读操作都至少要读取几个块,而我们只需要读取一小部分额外的相关数据进行校验。GFS客户端代码通过每次把读取操作都对齐在Checksum block的边界上,进一步减少了这些额外的读取操作的负面影响。另外,在Chunk服务器上,Chunksum的查找和比较不需要I/O操作,Checksum的计算可以和I/O操作同时进行。

      此外,GFS中还有些“影子”Master服务器,这些“影子”服务器在“主”Master服务器宕机的时候提供文件系统的只读访问。它们是影子,而不是镜像,所以它们的数据可能比“主”Master服务器更新要慢,通常是不到1秒。对于那些不经常改变的文件、或者那些允许获取的数据有少量过期的应用程序,“影子”Master服务器能够提高读取的效率。事实上,因为文件内容是从Chunk服务器上读取的,因此,应用程序不会发现过期的文件内容。在这个短暂的时间窗内,过期的可能是文件的元数据,比如破天一剑私服的内容或者访问控制信息。

      对于每一个单独的服务器,无论是Chunk服务器还是Master服务器,都只保存了50MB到100MB的元数据。因此,恢复服务器是非常快速的:在服务器响应客户请求之前,只需要花几秒钟时间从磁盘上读取这些数据就可以了。不过,Master服务器会持续颠簸一段时间?通常是30到60秒?直到它完成轮询所有的Chunk服务器,并获取到所有Chunk的位置信息。

        6.2.3 读写速率

        6.2.4 Master服务器的负载

        6.2.5 恢复时间

        2.7 一致性模型

        Master服务器恢复只需要最新的Checkpoint文件和后续的日志文件。旧的Checkpoint文件和日志文件可以被删除,但是为了应对灾难性的故障(alex注:catastrophes,数据备份相关文档中经常会遇到这个词,表示一种超出预期范围的灾难性事件),我们通常会多保存一些历史文件。Checkpoint失败不会对正确性产生任何影响,因为恢复功能的代码可以检测并跳过没有完成的Checkpoint文件。

        6.3 工作负荷分析(Workload Breakdown)

        6.3.1 方法论和注意事项

        “影子”Master服务器为了保持自身状态是最新的,它会读取一份当前正在进行的操作的日志副本,并且依照和主Master服务器完全相同的顺序来更改内部的数据结构。和主Master服务器一样,“影子”Master服务器在启动的时候也会从Chunk服务器轮询数据(之后定期拉数据),数据中包括了Chunk副本的位置信息;“影子”Master服务器也会定期和Chunk服务器“握手”来确定它们的状态。在主Master服务器因创建和删除副本导致副本位置信息更新时,“影子”Master服务器才和主Master服务器通信来更新自身状态。

        2.7.1 GFS一致性保障机制

        两个集群存储的文件数量都差不多,但是集群B上有大量的死文件。所谓“死文件”是指文件被删除了或者是被新版本的文件替换了,但是存储空间还没有来得及被回收,1.76蓝魔传奇。由于集群B存储的文件较大,因此它的Chunk数量也比较多。

        5.1.3 Master服务器的复制

        6.1.1 读取

        6.1.2 写入

        6.1.3 记录追加

          相比之下,诺基亚的奇迹sf场份额不断被苹果 完美国际私服 和安卓智能手机抢走。但诺基亚已经表示,它将在未来几周推出首批基于微软 Windows Phone 平台的新智能手机。诺基亚希望通过与微软结盟来吸引消费者和应用软件开发商。

        我们把每个Chunk都分成64KB大小的块。每个块都对应一个32位的Checksum。和其它元数据一样,Checksum与其它的用户数据是分开的,并且保存在内存和硬盘上,同时也记录操作日志。

        6.3.2 Chunk服务器工作负荷

        对于读操作来说,在把数据返回给客户端或者其它的Chunk服务器之前,Chunk服务器会校验读取操作涉及的范围内的块的Checksum。因此Chunk服务器不会把错误数据传递到其它的机器上。如果发生某个块的Checksum不正确,Chunk服务器返回给请求者一个错误信息,并且通知Master服务器这个错误。作为回应,请求者应当从其它副本读取数据,Master服务器也会从其它副本克隆数据进行恢复。当一个新的副本就绪后,Master服务器通知副本错误的Chunk服务器删掉错误的副本。

        操作日志非常重要,我们必须确保日志文件的完整,确保只有在元数据的变化被持久化后,日志才对客户端是可见的。否则,即使Chunk本身没有出现任何问题,我们仍有可能丢失整个文件系统,或者丢失客户端最近的操作。所以,我们会把日志复制到多台远程机器,并且只有把相应的日志记录写入到本地以及远程机器的硬盘后,才会响应客户端的操作请求。Master服务器会收集多个日志记录后批量处理,以减少写入磁盘和复制对系统整体性能的影响。

        数据修改后文件region(alex注:region这个词用中文非常难以表达,我认为应该是修改操作所涉及的文件中的某个范围)的状态取决于操作的类型、成功与否、以及是否同步修改。表1总结了各种操作的结果。如果所有客户端,无论从哪个副本读取,读到的数据都一样,那么我们认为文件region是“一致的”;如果对文件的数据修改之后,region是一致的,并且客户端能够看到写入操作全部的内容,那么这个region是“已定义的”。当一个数据修改操作成功执行,并且没有受到同时执行的其它写入操作的干扰,那么影响的region就是已定义的(隐含了一致性):所有的客户端都可以看到写入的内容。并行修改操作成功完成之后,region处于一致的、未定义的状态:所有的客户端看到同样的数据,但是无法读到任何一次写入操作写入的数据。通常情况下,文件region内包含了来自多个修改操作的、混杂的数据片段。失败的修改操作导致一个region处于不一致状态(同时也是未定义的):不同的客户在不同的时间会看到不同的数据。后面我们将描述应用如何区分已定义和未定义的region。应用程序没有必要再去细分未定义region的不同类型。

        6. 度量

        6.1 小规模基准测试

        4.2 副本的位置

        4.3 创建,重新复制,1.76微变,重新负载均衡

        4.4 垃圾回收

        4.4.1 机制

        4.4.2 讨论

        4.5 过期失效的副本检测

        5.1.2 Chunk复制

        图3(c)显示了记录追加操作的性能。N个客户机同时追加数据到一个文件。记录追加操作的性能受限于保存文件最后一个Chunk的Chunk服务器的带宽,而与客户机的数量无关。记录追加的速度由一个客户机的6.0MB/s开始,下降到16个客户机的4.8MB/s为止,速度的下降主要是由于不同客户端的网络拥塞以及网络传输速度的不同而导致的。

        2.6.3 操作日志

          Strategy Analytics 的分析师保罗布朗(Paul Brown)称:“缺乏用户界面友好的触屏手机产品是诺基亚用户忠实度下滑的主要原因之一。相比之下,苹果建立了强大的品牌形象,提供了极具吸引力的用户体验,因此在现有用户中建立起很高水平的用户忠实度。”

        如上表前五行所描述的,两个集群都由上百台Chunk服务器组成,支持数TB的硬盘空间;两个集群虽然都存储了大量的数据,但是还有剩余的空间。“已用空间”包含了所有的Chunk副本。实际上所有的文件都复制了三份。因此,集群实际上各存储了18TB和52TB的文件数据。

          调查发现,美国大约 93%、英德法等国 88% 的 传世私服 用户声称以后还会买苹果的手机。调查还发现,诺基亚品牌在欧洲蜀门sf场的用户忠实度由去年的 74% 下降到了 63%,另外只有一半左右的美国用户愿意购买诺基亚以后的手机。

        操作日志包含了关键的元数据变更历史记录。这对GFS非常重要。这不仅仅是因为操作日志是元数据唯一的持久化存储记录,1.76精品,它也作为判断同步操作顺序的逻辑时间基线(alex注:也就是通过逻辑日志的序号作为操作发生的逻辑时间,类似于事务系统中的LSN)。文件和Chunk,连同它们的版本(参考4.5节),都由它们创建的逻辑时间唯一的、永久的标识。

        6.3.3 记录追加 vs. 写操作

        由于创建一个Checkpoint文件需要一定的时间,所以Master服务器的内部状态被组织为一种格式,这种格式要确保在Checkpoint过程中不会阻塞正在进行的修改操作。Master服务器使用独立的线程切换到新的日志文件和创建新的Checkpoint文件。新的Checkpoint文件包括切换前所有的修改。对于一个包含数百万个文件的集群,创建一个Checkpoint文件需要1分钟左右的时间。创建完成后,Checkpoint文件会被写入在本地和远程的硬盘里。

        文件命名空间的修改(例如,文件创建)是原子性的。它们仅由Master节点的控制:命名空间锁提供了原子性和正确性(4.1章)的保障;Master节点的操作日志定义了这些操作在全局的顺序(2.6.3章)。

        浏览次数:
        最新文章
        ·完美国际私服 谷歌三大核心技术(一)T
        ·顶配WP7智能 诺基亚800重回3000元以内
        ·JU87斯图卡(俯冲轰炸机)进化史,
        ·占豪:9.26早盘:周一走势与操盘策略
        ·破天一剑sf 2007年11月存档 - 首席技术
        ·42!
        ·湿疹与饮食郭汉萍39健康博客周末必备休
        ·偏方治大病【转贴】
        ·1.85合击传奇 什么是爱
        ·集邦评盘:内存交易清淡 闪存持续跌
        热门文章
        · 完美国际私服 谷歌三大核心技术(一)T
        · JU87斯图卡(俯冲轰炸机)进化史,
        · 顶配WP7智能 诺基亚800重回3000元以内
        · 占豪:9.26早盘:周一走势与操盘策略
        · 湿疹与饮食郭汉萍39健康博客周末必备休
        · 破天一剑sf 2007年11月存档 - 首席技术
        · 42!
        · 偏方治大病【转贴】
        · 1.85合击传奇 什么是爱
        · 集邦评盘:内存交易清淡 闪存持续跌
        Copyright © 2009 http://WWW.ZSPINSHENG.COM/ All rights reserved.
        1.76网通复古传奇sf 提供1.76英雄合击,连击,超变态传奇私服,连击,新开传奇私服刚开一秒 版权所有
        请使用1024*768分辨率浏览本站以达到最佳视觉效果