我和计算机技术-在迅雷

我和计算机技术-在迅雷
2007年04月02日 18:37

    02年10月左右,steve离开百度,准备前往深圳和他duke的同学sean一起创业,做p2p。一帮朋友吃了一顿,去JJ蹦迪,然后到我住的地方通宵打牌。我对p2p领域并不熟悉,在美国的时候因为要看璩美凤的光碟,用过edonkey,感觉不爽。steve去深圳后,和sean谈起我,问我有没有兴趣,我就决定去深圳和他们谈谈先。

 

    03年的元旦,我和世春一起前往深圳,steve和sean请我们吃饭,记得饭桌上sean说他们在硅谷的时候一个月写1万2千代码,而且还是加上设计,测试的时间算得,呵呵,我至今不相信写一个有质量的产品能达到这样的performance。

 

    3月我从北京辞职,来到深圳,刚开始和steve在四海公园北门合租。办公就在我们租的房子内。我很快看了pastry, chord,jxta等p2p的东西,sean原来的设想是在jxta平台的基础上做,我试过jxta上的GISP后,一直就对jxta感到很不安,有一次在bus上和steve讲了我的担忧。

 

    sean和steve原本计划做p2p email(这是一个不了解市场用户需求的东东),3月中,eric来到深圳,谈到百度mp3检索遇到的一个问题,流量越大,提供mp3内容的服务器就承受不住,导致mp3搜索的流量上不去,建议我们用p2p来解决这个问题。正好steve用过美国的p2p cdn kontki,我们就决定参考kontki,以p2p cdn为切入点。

 

    sean提出要做pure p2p,steve则认为不管是pure的还是不pure的,满足用户的需求就好,我虽然也觉得pure p2p有点不妥,但是觉得技术上很cool,也同意做pure p2p,随后,我提出了所有peer跑jxta,但是索引不用jxta的,rendevous peer(或者叫super peer)跑pastry,负责索引,中转等等。很快按照这样的方案完成了设计。

 

    4月,公司的办公室拿到了,很小的一间。金波,晓峰还有迷糊兼职做,后来丰良加入公司,虽然SARS流行,我们也没有受什么影响,4/5/6 3个月,代码完成了,可是遇到很多问题,最严重的是peer之间使用jxta的endpoint service发送数据总是有问题,有时候能成功,有时候不行。我,金波,sean都先后花了很多时间,一直到最后都没有解决。

 

    7月那个版本,基本上是不可用的,除了一个远不如flashget的下载。然后开始重新架构下载部分,同时试图解决jxta peer之间通信存在的问题。到10月,下载部分按照新的架构完成,有了不少的提高,可是jxta的p2p通信,任然没有进展。在这段时间,我看了很多资料,对流行的p2p架构,软件都做了研究,深信必须抛弃jxta,pastry,p2p cdn不适合采用pure p2p。

 

    10月那段时间,有点山穷水尽的感觉,最后,经过很多的争吵,在steve,丰良和我的坚决要求下,决定重新架构整个系统,抛弃jxta和pastry。我负责设计,保留原来的下载部分,采用中心服务器重新架构了系统,这一次,我和steve,丰良通力合作,设计的时候,每一步都讨论得很详细,每个人都做了很详细的单元测试,集成的时候仅仅用了一个上午就成功了,整个项目甚至提前了一周完成。IDG的杨飞下午3点来公司,呆了1个多小时,看了演示,当天傍晚就决定给我们投资了。

 

    接下来,我们又重新设计了界面,完成了后台的crawler。我则潜心研究http和ftp协议,完善了下载部分,基本做到flashget能下thunder也能够下载。

 

    04年春节过后,我们开始3.0版本的开发,我重新架构了下载部分,因为当时在没有peer资源的时候,在好些情况下flashget都比我们快。我知道原因,但是flashget是单点下载,thunder却是多点下载,采用flashget的方式比较困难。我那个时候自由度比较大,做设计的时候,我一般不到公司,那样的环境没法思考,我一般去咖啡馆,或者坐在科技园的路边,呵呵。还记得那个下午,我拿着笔记本和笔,坐在路边,把一些不成熟的想法在本上划来划去,突然之间,那个key point就冒了出来,我赶快写下来,从多种角度衡量这个架构,自己能够体会到这是一个简单的,优美的架构,而且完全解决了速度问题。做技术的人很累,可是这样的体会,也许就是上帝给我们的礼物吧,人生不多的高峰体验。然后我把它细化成算法,验证它是不是在多种情况下权衡的一个最优解,开会的时侯,我讲完设计,steve非常兴奋,甚至要求他来实现这个算法。

 

    04年初,我们开始正式发布Thunder,看着用户数不断的增长,同时在线超过1000,10000,直到今天超多60万,数百万用户使用Thunder(现在已经有几千万用户了),每天下载数百T的游戏,软件,mp3,DVD等等,园了我学习计算机以来的一个梦想,做一个被很多人使用的软件。

Link: http://www.yijian.com/view_blog.do?id=9390&user=yingming

你可能感兴趣的:(算法,百度,单元测试,服务器,performance,p2p)