完成了P2P Tuple中Map Reduce支持的前端
P2P Tuple解决一个很普遍很直观的问题:当有X个计算机和Y个任务,如何把Y个任务分布在X个计算机上并最终完成处理,同时允许任何时间任何计算机都可以崩溃。这不同与多数系统,比如Google的Map Reduce系统,master一旦崩溃整个任务就直接abort。BOINC的server一旦崩溃掉,比如网络故障一天,那么多数机器都会闲置。简单的让我们称它为后端,因为它做的是默默无闻的工作,应用根本感觉不到它。这几天完成的是Map Reduce的前端部分,就是mapper, reducer等等如何在各分布的节点上工作,也就是比较直接的和应用打交道的部分。这部分基本不用动脑,很弱智的东西,也就完全模仿Hadoop的老API来做的,才1500行C++代码。敲敲打打,Scheduler也同时完成了,初步估计效率可以在70%以上(注:这不是集群或者networked workstation上的版本,集群上应该可以轻松做到高的多的效率)。剩下的工作就是一个提交作业的client,因为这部分涉及要清理一下原来的代码,因此耽误了一下。
看了一下Hadoop的代码,还是原来的感觉:MapReduce本身不具有任何技术含量,难点还是在一个高效、高可靠性、高伸展的能很好定制局部化特性的存储系统。当然,把这东西做的和P2P Tuple一样,能做到上面黑体字部分的特性,就稍微有一点技术含量了。
看了一下Hadoop的代码,还是原来的感觉:MapReduce本身不具有任何技术含量,难点还是在一个高效、高可靠性、高伸展的能很好定制局部化特性的存储系统。当然,把这东西做的和P2P Tuple一样,能做到上面黑体字部分的特性,就稍微有一点技术含量了。
浙公网安备 33010602011771号