前两天CSDN的大标题有些吓人“google 放弃MapReduce”。
我找到原文浏览一番,其实并不是google不用MapReduce了,而是google在web indexing中已经放弃了MapReduce。
看起来很意外,其实大势所趋。
MapReduce说到底是一个batch processing system(批处理系统),“you can't start your next phase of operations until you finish the first”。也就是说,在用MapReduce做web index的过程中,是不能够对这个index做更新的。这就会有一个问题,通过MapReduce产生的index很难包括那些最新的web数据。而现在搜索引擎一个很重要的衡量指标就是它能够进行real-time search,即能够找到互联网上最新发布的网页和数据。很难通过MapReduce来实现这个目标。
所以,google放弃了MapReduce这个架构,而转而采用另一个类似于“database programming model”的模型,在这个模型中,只需要直接修改存储在bigTable中的web数据就可以更新它的index,其实类似于Database中的trigger。这样,最新抓取到的数据能够立刻反映到index中,也就能够体现到用户的搜索结果当中。
Google貌似已经在今年的OSDI上提交了关于这个系统的paper,乐观的话下个月就能够了解到系统设计的细节了。
引文: http://www.theregister.co.uk/2010/09/09/google_caffeine_explained/
-- END --