流年

众里寻她千百度–2012年度总结

2013年1月19日 阅读(129)

按照习惯,还是在这岁月交替之际,写一篇小小的总结吧。虽许久不再写流年,而流年依旧如流年。依旧觉得很快这一年就又过去了。

过去的一年里,起了很多变化,无论是工作还是生活。刚工作的时候,一个人度着周末,经常就是打印个三两篇论文,读着读着就是一天。偶尔还看点闲书,生活倒也惬意,只是颇有些单调。所以在那极单调的日子里,倒也看了不少东西。很多人会觉得能有时间看这么多文章而且还翻译出来的人,一定是在学校或者研究所的吧。其实如果想看,又何需一定是悠闲的人呢。也忘了是哪年哪月读到的了,只是记忆犹新,欧阳修<<归田录>>中有云”余平生所作文章,多在三上,乃马上、枕上、厕上也。盖惟此尤可以属思尔“。其实并不是没有时间,只是需要自己去找,即使每天给自己一个小时的阅读时间,累积下来,一周,一月,一年,只要坚持,就能读很多东西。

很久很久以前,还会在这个blog上写着各种各样的文字,时至今日这里已经完全成为论文的自留地了。如同在<<分布式领域经典论文译序>>所述,最初只是看了下Google的几篇论文,也并没有一个这样的系统的阅读计划,只是逐步逐步地才建立起这样一个系列文章,而这个系列也已经是几经增删,与当初的面貌全然不同了。只是初衷一直未改,”翻译这些论文的目的,首先是对于自身学习过程的一个记录,同时方便以后的回顾以及继续的学习理解,同时将这些翻译内容发布在我的blog上(http://duanple.blog.163.com),希望能为对分布式领域感兴趣的同学提供一些参考性的资料,同时也可以让更多的人帮助纠正其中翻译和理解的失误之处“。也有人曾经问过,为何只翻译论文呢?首先,其实并非只是在翻译论文,而翻译论文也是有一个原因的,整个的过程是有一个脉络在里面的。

2010年的<<十一>>加上中秋,翻译完了Google的四篇文章,这便是开始,当时之所以翻译这四篇,是因为工作正是基于这些东西,看论文是为了更好的理解系统,而工作内容也会反过来帮助理解论文,虽然表面上未体现工作相关的内容,实际上很多理解是通过工作过程建立的。论文的选择需要结合工作,这样两个方面才会是相辅相成,相互促进,否则要么是因为阅读耽搁了工作,要么是难以对论文有真正好的理解,所以在整个的论文阅读过程中,是始终有这样的一个原则或主线贯穿其中的。之后因为当时阅读Chubby碰到了很大的困难,于是决定先阅读Chubby所依赖的那些论文,所以转而去看分布式理论方面的文章,也就是之后的<<拜占庭将军问题>>,<<FLP结论>>,<<Lease>>,<<Paxos>>等文章。到了2011年的五一才有了这样的一个系列阅读计划的产生,在此之前基本上局限于Google的那几篇文章。之后,当时本是打算继续翻译Google的文章,诸如Pregel,MegaStore,Dremel,Percolator。但是这些文章属于未来,翻译的话只是对开阔眼界会比较有益,另一方面工作中在酝酿一个新系统的开发,可能会运用当前一些开源系统,所以临时调整。之后,就做了一系列关于LevelDB和Hadoop系统文章的翻译。从HDFS,MapReduce,到HBase,Hive都有涉及,然后再加上之前翻译的奠定这些开源系统理论基础的Google论文系列,就整理出了一个<<Hadoop Reading List>>系列。这时已经是2011年的 <<十一>> ,而这个十一大概翻译出了10万字的文章,应该是最密集的一个时期了。

值得提出的一点是,我发现很多人在阅读论文时,只是抓着那篇文章本身,比如Google的那篇Spanner出来的时候,立马一堆人关注,然后就去看那论文,估计很多内容都没咋看懂,最后只是记住了Spanner这个名字,然后便不再关注了。有时候,看论文时,更应该多看看它的参考文献,罗马不是一天建成的,所有的论文中的想法也不是一下冒出来的,一切总有一个渊源。而其实真正懂得那些基础理论的人,目前看来还是很少的,但是我相信Google那些做系统的人肯定都是具有非常好的计算机科学尤其是系统方面的理论素养的,你看它的那些东西很多都还是从传统的理论中演化出来的。我喜欢将阅读的内容,分为过去,现在和未来三个维度,Google的那些论文就属于未来,看看它们,那可能是你未来要做的,当然慢慢地它们也会成为过去;经典的理论的东西,放到过去这个维度,它们是非常重要的,这决定了你的深度和高度;现在,就是正在做的,或者符合目前实际环境可以直接借鉴的。很多人往往喜欢抓着未来,总是忽略了过去和现在,又或者是仅看着当前,从来不看看未来,回顾下过去。

很多研究领域的大牛们,经常会调侃做工程的家伙们,他们说”这些家伙看着就像生活在5,60年代的老家伙“,为什么呢,因为这些家伙们总是用一些很丑陋的方法去解决一个科学家们早在几十年前就给出了完美解决方案的问题,但是这些家伙看起来对此一无所知。当然了,做工程的也会挖苦下那些研究家们老是指指点点,从来不肯俯下身子来解决实际问题。但是实际上,如果你是做工程的,那就应该多看看研究家们的成果,其实很多问题的确是人家n多年前就已经提出并很好解决了的。如果是做研究的,那就多接触下工程实践,理解下现实需求,弥补下理论与实践的差距。

2012年是幸运跟幸福的一年,虽然没有像2010年,2011年那般勤劳,只是生活不再单调。王国维借用辛弃疾《青玉案》里的”众里寻他千百度,蓦然回首,那人却在灯火阑珊处“来描述读书三境界,在这里我将它借来作为本文的标题,是读书也是生活。2011年下半年到2012年的上半年,基本上在忙着一个新系统的开发,在这个系统系统中用到了LevelDB,由于那段时间甚为忙碌,所以写的文章就少了,但是结合工作,还是看完了一篇长文<<The Log-Structured Merge-Tree>>,这篇论文对于Bigtable和LevelDB来说是一个重要的理论基础。然后作为工作的副产品,写了一些关于LevelDB的分析文章,还有就是那篇<<编译 链接和加载 >>,至今感觉通过那次彻底地梳理,后来再碰到编译链接加载问题时,都能很快地解决。碰到问题,然后深入分析其涉及的原理,最后写篇总结,估计是长久养成的习惯了,最近解决了一些内存方面的问题,正在总结一篇关于内存的长文,写完之后再发出来吧。也是在这一年,曾经有段时间感觉看的东西够多了,可以停下来了,但是过了一段时间,却又发现还需要看的东西实在是太多了,时间根本不够用。虽然已经有一系列的计划,但是也只能慢慢地调整优先级,一步一步走下去。所以看起来,阅读之路是不知道何时停止了,只是翻译的频率会降低很多。到了下半年,基本上就是一月一篇文章的样子,同时也是理论文章偏多些,这些只是新的阅读计划的开始,随着后续文章的浮出,这个计划的目的也会浮出水面的,或许明眼人已经看出来了,不妨猜猜下面还会翻哪些文章。然后,十一的时候跟小沙同学去了东北,爬上了长白山,看到了天池,就是在去长白山的火车上,看了Lamport的那篇<<Time Clocks and the Ordering of Events in a Distributed System>>,^-^。

在接近两年的时间里,一直做的都是海量数据的离线处理,跟MapReduce打了许多交道,最近又开始做在线的系统,希望可以发现更多有趣和不同的东西。最后,希望未来的生活和工作更美好吧。

You Might Also Like