InfoQ

新闻

Google可拓展性会议报告

作者 Stefan Tilkov 译者 高昂 发布于 2007年6月26日 下午9时0分

社区
Architecture,
SOA,
Java
主题
性能和可伸缩性
标签
Google

在一篇blog文章中,微软的Dare Obasanjo为大家分享了Google在Seattle召开的有关可拓展性(Scalability)的会议笔记,笔记的内容由Google员工Jeff Dean的发言整理而来,内容包括“MapReduce,BigTable,以及其他处理大规模数据集的分布式系统抽象方式”。根据Dare的笔记,讨论内容涉及Google目前三种主要的大规模可拓展架构:GFS(Google File System),提供大规模数据集并行处理能力的软件基础设施MapReduce,以及为结构数据提供分布式存储的BigTable

报告包含Google软件基础设施许多引人入胜的特性。关于GFS:

目前Google拥有超过200个的GFS集群,其中有些集群的计算机数量超过5000台。Google现在拥有数以万计的连接池从GFS集群中获取数据,集群的数据存储规模可以达到5个PB,并且集群中的数据读写吞吐量可达到每秒40G。

MapReduce方面:

开发者只需要为数据集编写特定的Map/Reduce操作,有时甚至只需25-50行代码就够了,而MapReduce软件微架构会处理并行任务并且向分布在各处的计算机分发任务,同时处理机器错误和数据中的错误条件并进行优化操作,例如把计算过程推移到靠近数据的一方执行来减少I/O带来的带宽消耗,还提供了系统监控并且通过数以千计的计算机保持服务的可拓展性。

关于BigTable:

BigTable不是一个关系型的数据库。它不支持关联或是类似于SQL的高级查询。取而代之的是多级映射的数据结构。这是一种面向大规模处理、容错性强 的自我管理系统,拥有TB级的内存和PB级的存储能力,每秒可以处理数百万的读写操作。目前,BigTable正在为Google六十多种产品和项目提供 存储和结构化数据获取的支撑平台。

对于那些想自己尝试Map/Reduce操作的人来说,Apache Lucene的子项目Hadoop提供了MapReduce的实现方式,以及类似于GFS的分布式文件系统HDFS,Hadoop项目对于你来说将可能会是个不错的开始。

查看英文原文:Google Scalability Session Report

深度内容

模块化Java:声明式模块化

本文是模块化Java系列文章的第4篇,介绍的是声明式模块化。文中描述了组件如何以声明的方式来定义并组织在一起,而无需让代码依赖于OSGI API。

Ian Robinson和Jim Webber谈论基于Web的整合

本采访是在伦敦举行的QCon2009上记录的,Ian Robinson和Jim Webber探讨了如何将Web作为整合平台以及REST在理论上和实践中的好处。

项目管理修炼之道(精选版)

项目管理对于项目成败至关重要,但实践中每个项目都有自己的独特性,没有现成的解决方案可以套用。书中从应对实际风险的角度出发,讲述了从项目启动、项目规划到项目结束的整个管理流程,展示了作者的思考过程。本迷你书从原书中精选出5个章节。

那是鸟,还是飞机?不,那是超人!

在这个演讲中,Fred将会揭示敏捷的一些外在因素,并会重点关注敏捷获得成功的内在原因。从案例研究和真实的项目经验来看,Fred认为:工具、管理体系都不能让你变得敏捷。敏捷的成功,植根于士气高涨、充分授权的工作者身上,他们能够以不同以往的方式思考问题。

访谈和书摘:Eben Hewitt的新书《Java SOA Cookbook》

Java SOA Cookbook

Eben Hewitt的新书《Java SOA Cookbook》从Java实现的角度讨论了面向服务架构。Eben在书中讨论了SOA基础、工具、最佳实践和SOA治理等主题。

Mark Richard的《Java消息服务》第二版

Mark Richards的新书《Java消息服务》第二版覆盖了JMS的许多主题, 包括发布和订阅模式以及点对点模式,消息过滤和事务等。InfoQ与Mark谈论了跟他的新作。

模块化Java:动态模块化

本文是“模块化Java”系列文章的第三篇,讨论动态模块化,内容涉及如何解析bundle类、bundle如何变化、以及bundle之间如何通信。

让测试也敏捷起来

对于测试组织来说,敏捷方法带来的快速迭代却让测试本身变得困难起来:缺乏“足够详细的文档”,缺乏“仔细设计用例的时间”等等。在本演讲中,段念将与大家探讨如何在敏捷过程中进行测试。