重生之互联网霸主_第200章 0201.大数据时代 首页

字体:      护眼 关灯

上一页 目录 下一页

   第200章 0201.大数据时代 (第2/3页)

和爬虫上用心外,最核心的部分还是背后那套围绕在bfs(bingfilesystem)文件系统的核心技术体。这套系统的设计目标,与许多传统的分布式文件系统有很多相同之处。比如,性能、可伸缩性、可靠性以及可用性。

    ??但bfs的还是以应用负载情况和技术环境的分析为基础着重考虑,不管现在还是将来,bfs和早期的分布式文件系统的设想都有明显的不同。所以我们重新审视了传统文件系统在设计上的折衷选择,衍生出了完全不同的设计思路。

    ??首先,组件失效被认为是常态而不是意外。bfs需要管理成百上千存储机器,同时被相当数量的用户终端机访问。bfs组件的数量和质量导致在事实上,任何给定时间内都有可能发生某些组件无法工作,某些组件无法从它们目前的失效状态中恢复。

    ??当我们遇到过各种各样的问题,比如应用程序bug、操作系统的bug、人为失误,甚至还有硬盘、内存、连接器、网络以及电源失效等造成的问题。所以,持续的监控、错误侦测、灾难冗余以及自动恢复的机制必须集成在gfs中。

    ??其次,以通常的标准衡量,我们的文件非常巨大。数gb文件都可能非常普遍。每个文件通常都包含许多应用程序对象,比如web文档。

    ??当我们未来需要处理快速增长并由数亿个对象构成的、数以tb的数据集时,采用管理数亿个kb大小的小文件的方式是非常不明智的,尽管有些文件系统支持这样的管理方式。因此,设计的假设条件和参数,比如io操作和block的尺寸都需要重新考虑。

    ??第三,绝大部分文件的修改是采用在文件尾部追加数据,而不是覆盖原有数据的方式。对文件的随机写入操作在实际中几乎不存在。一旦写完之后,对文件的操作就只有读,而且通常是按顺序读。

    ??大量的数据符合这些特性,比如:数据分析程序扫描的超大的数据集;正在运行的应用程序生成的连续的数据流;存档的数据;由一台机器生成、另外一台机器处理的中间数据,这些中间数据的处理可能是同时进行的、也可能是后续才处理的。

    ??对于这种针对海量文件的访问模式,客户端对数据块缓存是没有意义的,数据的追加操作是性能优化和原子性保证的主要考量因素。

    ??第四,应用程序和文件系统api的协同设计提高了整个系统的灵活性。比如,我们放松了对bfs一致性模型的要求,这样就减轻了文件系统对应用程序的苛刻要求,大大简化了bfs的设计。

    ??bfs还引入了原子性的记录追加操作,从而保证多个客户端能够同时进行追加操作,不需要额外的同步操作来保证数据的一致性。”

    ??端起咖啡又喝了一口,宁子默已经习惯了身边这四人目瞪狗呆的状态。

    ??放下杯子,宁子默再也懒得去解释那些技术细节,但还是提点到:

    ??“bfs一早就规划了四大核心技术体,其中涵盖了第一个部分的分布式基础设施,包含的模块有文件系统(file),分布式锁服务(chubby)和数据化序列协议(protocolbuffer)。

    ??而第二部分是分布式大规模数据处理模块,其中包含分布式运算程序的编程框架和对应的数据查询语言。他们或许和sql和类似,但实际上它应该被称之为dsl(domain-specificlanguage)。

    ??第三部分则是分布式数据库技术,它包含的模块就有分布式数据存储系统(bigtable)和数据库分区系统(sharding)。

    ??最后一部分当然包含数据中心优化技术,这些技术中包括综合考虑的数据中心高温化,还有电池与服务器相应整合技术等。”

    ??撇了撇嘴,宁子默皱着眉头说,“搜索引擎是一个全盘技术的考虑,但我仅仅只举了一个很简单的例子,并且其应用范围还只是在网页搜索结果当中,并没有提及一整个生态的整体考虑。

    ??但我所说技术方面的内容,远比我现在讲给你们听的内容要复杂的多。每一个单项里都会包含大量工作人员相应的工作成果,确实不是短期内可以去实现的。

    ??但好在我们【bing】团队的目标明确啊。”

    ??“梦想还是要有的,万一实现了呢?”宁子默撇着嘴挑了挑眉毛。

    ??这个轻挑的动作,在kaltix三人组的眼里却郑重如斯。

 
加入书签 我的书架

上一页 目录 下一页