谷歌大数据(Google big data),新三件产品之一:Dremel

2010年的时候Google发表了一篇论文,介绍了一个新的系统Dremel。这个系统号称能提供比MapReduce更快的查询速度。所以从此开启了所谓的Interactive Query的阶段。这个系统若干年后也就成了Google的BigQuery的后端。

MapReduce的慢其实在这个之前已经被无数次的证实,无论Google内部还是外部。所以Google内部一直寻求更加快速的查询的解决方案的努力从未停止过。Dremel起于2006年,是由新人在Google的Kirkland的办公室,远离总部的地方做出来的。这也是我们在Google比较重大的,对BigData有影响的论文里面第一次没有见到Jeff Dean的名字。

从我知道的内部消息来看,Dremel是战胜了好多个其他系统最后在Google确立起江湖地位的。有个我认识的老工程师,曾经作为Dremel team的人,曾经有段时间的工作就是写从其他的系统的查询语言转化到Dremel,以便它们的application们可以顺利过渡过来。据说内部差不多竞争的至少有4个。这些竞争对手的系统们各个都被杀死了,很多也没有留下遗体。有个叫PowerDrill的项目,临死前在VLDB发了一篇论文,这算得上是公开有据可考的唯一的一个。

Dremel刚出来的时候还是非常小心翼翼的避免和MapReduce冲突的。从无数的宣传资料和ppt上可以看到,他们出来演讲的时候都会说自己是MapReduce的一个补充,是为少量到中等规模的数据查询服务的,而MapReduce则用来处理更大量的数据。这种宣传在Dremel越来越成功,以及FlumeJava差不多把整个MapReduce的team都要收编了的今天就显得多余了。所以胆肥的Dremel队伍现在已经比较少再提自己是MapReduce的有益补充了。

其实MapReduce慢早就不是什么不知道的问题,Dremel之前的半年微软Cosmos组也打算做interactive query了。当然虽然说是论文发表半年前,但是Dremel是2006年开始做的,而Cosmos在06年连影子都还没有,09年才开始有这个想法。之后因为一些非技术的原因,Architect跳去Google做Dremel了更是对此有直接的影响。至于最后论文发出来那是2015年的VLDB,那个时候早就天下大乱,Cosmos经过无数次的Reorg,早已经物是人非了。

说到Dremel当然要提一个在华盛顿大学读了本科的中国人 JingJing Long。他是Dremel的早期员工之一,后来成了那个team的manager,再后来又自立门户了。这位算得上是在Google Kirkland里混得相当不错的华人了。此人有一个最大的特点就是从来不说中文,尽管他会说。所以在Google Kirkland的华人里面赢得了装B华人的美称。

Dremel出来没多久,开源社区,尤其是Hadoop的批发商们都纷纷雀跃而起。Cloudera开始做Impala,MapR则做了Drill,Hortonworks说我们干脆直接improve HIVE好了,所以就有了包括Apache Tez在内的effort。当然按照业内人士的观点,这几个都借了Dremel的名而已,实际上挂羊头卖狗肉这个事情不但中国人会,老外也会做。名不正言不顺好像在哪里都讲得通。