diffuse/aggregate是一个分布式数据计算算法,它的出现比Lexst早很多年。初期是做为一个独立的应用模块,用于关系数据库系统的分布计算环境(SQL SERVER、MYSQL、DB2都使用过),其间经历多次演进,发展到现在,已经是一个成熟的分布计算模型。使用diffuse/aggregate需要一个前提:数据必须是可以分解和合并的。diffuse在其中负责拆解、获取、分发数据,aggregate依靠diffuse提供的数据进行筛选、过滤、合并,然后将处理结果返回给调用端。在diffuse/aggregate算法基础上,我们为Lexst设计了分布式的SQL计算语句:DC和ADC。有关DC和ADC的详细介绍,请见《DC和ADC命令的区别》一文,更多的介绍见《LEXST:大规模数据处理系统》一文。
关于map/reduce算法
map/reduce是google发明的分布计算算法,它的主要特点是要求map将数据生成key/value对,map的输出是reduce的输入。
diffuse/aggregate对数据的定义要宽范很多,diffuse/aggregate支持key/value处理,也允许用户根据自己的理解,对数据做任意形式的分解和组合。为减少分布计算的开发难度,Lexst已经将分布式计算的逻辑代码抽象出来做成接口。这样,用户就不需要考虑分布计算时数据如何分发、协调这类复杂的问题,只要在接口内实现自己的逻辑代码,然后热发布到对应的运行平台上即可。编码难度大大降低。