服务咨询热线:

022-88711099

当前位置:

最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用43

发布时间:2012-01-24 05:42:11 作者:Yt7589--csdn 访问量:1314

最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用43

反客为主
本来吴言和张绍志关于提高系统并发性的讨论是一个完全非正式性的会议,估计张绍志也没有进行特别的准备,但是作为王文斌第一次主持参加的技术会议,这就具有了特别的意义。吴言希望要在这次会议向王文斌和张绍志表达出自己虽然不是技术负责人,但是在技术方面还具有不可忽视的影响力,因此在这个会议上吴言需要有所做为。
首先这次会议肯定会讨论数据库的瓶颈问题,之前因为人力资源方面的原因,所有操作都是基于数据库进行的,这在用户量小的情况下,不会出现什么问题,但是在用户并发量大了之后,数据库的性能问题就会变得日益突出起来。对于这个问题,显然可以通过MySql集群来得到一定程序的缓解,但是并不是根本的解决之道,因此需要考虑采用一种可以支持大容量并发的体系架构。
根据吴言的猜测,张绍志很可能提出NoSql的解决方案,这样既可以解决数据库瓶颈问题,同时还可以对系统进行大规模重构,所有的开发人员,包括吴言自己,都希望构造一个属于自己的全新系统,而不愿意维护别人的旧系统,系统维护通常意味着无穷无尽的噩梦,在这点上,张绍志可能也不例外。而在这点上王文斌可能也希望减少对旧系统的依赖,这样更有利于他今后开展工作,因此单从这点上来看,王文斌和张绍志的利益是相同的。但是这意味着需要重写很大一部分代码,同时意味着很大的资金占用,从公司的角度来看,至少在现阶段必要性不大。
吴言前一阶段通过对NoSql和NewSql的比较,觉得对于现在这个项目而言,采用NewSql可能是一个更好的解决方案,可以通过对后台数据库软件的配置,实现既满足大容量并发性要求,同时不必对现有代码进行任何修改,这种方案似乎比NoSql更好。只是对于程序员来说,通常喜欢通过软件编程来解决问题,而不喜欢通过系统软硬件配置来解决问题,这也正是前一段吴言在NoSql和NewSql之前犹豫的原因,现在跳出程序员的视图之后,做出选择NewSql的方案就显得顺理成章了。
在做出决定之后,吴言熬夜把NewSql和NoSql的概念重新熟悉了一遍,为明天的技术讨论会做足了准备。
将所有材料看完之后,已经是凌晨一点多钟了,整个公司空无一人。正好,吴言把自己的东西收拾了一下,搬到了大厅里的一个空位上,这样就为王文斌腾出了办公室。
刚刚有的独立办公室,还没有坐热,就又没有了,看来自己可能真的没有坐独立办公室的命呀!吴言不禁在心中暗自感慨着。
准备好所有这一切之后,吴言才拖着疲惫的身体回去休息了。
吴言在八点钟左右就到了公司,公司还没有一个人。吴言坐到了自己在大厅的新位置上,打开电脑,开始看起了《产品经理圣经》这本电子书,既然要做产品经理,就要把这件工作做好。
吴言正在看书,这时公司的前台先到了,前台是一个二十岁不到的小女生,叫张新燕,今年刚刚大专毕业。见到吴言坐在大厅的新座位上,惊奇地说道:“吴总,您怎么坐到这儿来了?”
“噢,这是我的新位置,咱们公司来了新的CEO,他会坐在我原来的办公室。对了,今天咱们的新CEO为过来,就是前两天跟赵总一起来的那位王总,你还有印象吧!”吴言说着。
张新燕若有所思的点了点头,说道:“有点印象。”
“对了,他今天过来时你就直接把他带到他的办公室去吧!”吴言嘱咐着。
“好的!”张新燕回答着,张新燕脸上的表情有些复杂,看得出是对公司突然间出现的人事变动有些意外,同时对吴言的境遇有些同情抑或是别的感情,反正张新燕的表情也令吴言有一种如芒在背的感觉。好在张新燕在大厅里转了一圈就到前台去了。
其他员工也陆续到了,他们看到吴言坐在大厅里,眼神中都有些奇怪的感觉,吴言只能一遍遍地跟他们解释,这是自己的新工位,今天公司要来新的CEO,要坐自己原来的办公室,可以看得出他们每个人的表情都有些怪怪的,在他们的眼神下,吴言觉得很不自在,简直就是一种煎熬,不过终于所有的员工都到齐了,这段尴尬的经历终于可以告一段落了。
王文斌在九点不到的时侯就来到了公司,前台张新燕把他直接带向了吴言原来的办公室。在经过大厅时,王文斌一眼看到了吴言,连忙走过来和吴言握手,说道:“吴总,你好!真不好意思,占了你的办公室!”
吴言也回应道:“没关系,别客气!您先到办公室收拾一下,一会儿咱们还得开个会呢!”
“好的,好的!”王文斌一边答应着,一边和张新燕走进了自己的办公室。
在十点钟左右,讨论提高系统大容量并发性的会议如期开始了,参会的只有吴言、王文斌和张绍志,会议由吴言来主持,所以吴言首先来了个开场白:“我先介绍一下,这位是王总,是咱们公司新来的CEO,以后王总将主要负责研发工作。当然,为了实现平稳的过渡,所有技术部门的邮件可以都抄送给我,我也会参与所有的技术部门会议。”
吴言的这番话,令张绍志吃惊不小,突然换了上司,一点准备都没有,也难怪张绍志会有一种很突然的感觉。
吴言又接着向王文斌介绍了张绍志:“这位是研发部的部门经理张绍志,他原来在商聪网络负责系统开发工作,是清北大学计算机系硕士,非常能干。”
王文斌主动向张绍志打着招呼:“你好!以后请多支持!”
张绍志也回打着招呼:“一定,一定!”
然后吴言就进入了正题:“今天咱们这次会议的主要议题是讨论系统大容量并发性的问题,这个问题在用户量很少的情况下是没有问题的,但是用户量一旦上来之后,在咱们现在的架构下,数据库的瓶颈就会显得很明显了。这个问题我以前和绍志谈过,下面请绍志来介绍一下关于这个问题的解决方案。”
张绍志清了清噪子,接着吴言的话说道:“我觉得现在咱们系统中的主要问题是所有操作,包括登录这些操作,都是直接对MySql数据库的操作,由于数据库的性能问题,导致我们现在系统在大容量并发情况下性能并不好!”
王文斌似懂非懂地点了点头,在本上记了点什么,然后问道:“那你觉得这个问题应该怎么解决呢?”
张绍志接着说道:“这个问题的解决有短期方案和长期方案两种,从长期来看,我们应该迁移到Hadoop架构上去,从短期上来看,我们需要将MySql转换为NoSql。因为NoSql是专门针对MySql的性能问题而开发的,同时解决了非结构化或半结构化数据的存储和管理的问题,目前很多SNS网站都大量采用这种技术,我们这里所面临的情况和他们类似,所以我觉得我们应该采用NoSql方案。”
王文斌听了张绍志的话,有些疑惑地说道:“关于NoSql我也有一些了解,不过,好像NoSql与普通数据库有很大的不同,不知道是不是这样。”
“是的!”张绍志肯定地说道:“普通数据库是建立在关系模型基础上的,比较适合处理结构化数据,但是对非结构化数据处理比较低效,同时他们的编程模型也不同。”
“那如果我们采用NoSql,从现在普通的数据库转到NoSql,难度大吗?”王文斌问道。
“难度应该不大,NoSql的另一个设计初衷就是要改变关系数据库比较复杂的问题,程序员学习NoSql比学习关系数据库要简单多了!”张绍志语气很肯定地说着。
“嗯!”王文斌点了点头,说道:“如果转换的难度不大,还可以提高系统大容量并发能力,我觉得可以转换到NoSql上去!”
张绍志听了王文斌的话,脸上露出了得意的神情。
这时,吴言不失时机地说道:“绍志刚才说的很有道理,确实目前很多公司都在采用NoSql技术,确实可以提高系统大容量并发性能。但是,根据我们项目目前的状态,我们已经大量采用了MySql,如果全部转换到NoSql上去,虽然技术难度不大,但是工作量将是非常巨大的,在目前人力资源有限的条件下,这样做也许有些得不偿失!”
王文斌听了吴言的话,反过来问张绍志:“那你觉得刚才吴总所说的工作量问题,是不是一个很大的问题呢?”
“工作量确实会比较大,”张绍志有些犹豫地说道:“但是这样可以解决大容量并发问题,这是一个长痛不如短痛的解决方案。”
王文斌又把头转向了吴言,吴言接着说道:“其实,针对关系型数据库性能不足的问题,NoSql不是唯一的解决方案,现在新近兴起的NewSql也是一种不错的解决方案。”
王文斌这时说道:“NewSql?你们技术领域的新名词太多了,Sql还没搞明白,就出了NoSql,现在又来了NewSql,这些到底都是些什么东西,区别大吗?”
吴言接着说道:“刚才绍志只是提到了NoSql,其实NoSql是一类产品的总称,NoSql包括三种不同的体系架构,包括Document类的如Apache的CouchDb和MongoDb,还有采用Graph方式存储的如OrientDb和Pregel,还有最大量的采Key-Value结构的如Memcached和Redis等,其中最流行的应该就是MongoDb了,因为他与关系型数据库很像,另外Redis和Memcached与很常用。”
吴言昨天晚上才把NoSql产品梳理了一遍,现在就现学现卖起来,由于可以很有条理的将这些技术问题说出来,显然可以增加观点的说服力。
吴言停了一下,显然王文斌和张绍志对于自己刚才的技术分析,还在消化之中,没有什么异议,所以接着开始说了起来:“NewSql是最近才出现的技术,他们认为关系数据库性能问题不是关系型数据库本身造成的,而是各种关系型数据库的实现是采用了二十年前的技术造成的,因此着眼于利用最新技术,重新打造关系数据库,这里面有代表性的技术也有三大类,第一类是为MySql这样的关系数据开发新的存储引擎,从而使MySql可以支持高并发性、分布式存储以及性能问题,比如Xeround和Akiban,第二类是MySql Sharding技术,就是MySql前再增加一个实体,来实现并发性扩展,例如ScaleBase,第三类是全新的数据库设计,这里面又分为两种,一种是MySql兼容的,另一种是基于全新协议的,例如VoltDb和NimbusDb。”
吴言所说的这些话显然已经使王文斌处于信息过载状态了,连张绍志也对吴言这种头头是道的讲解,有些招架不住了。
吴言觉得效果已经达到了,可以说出自己的结论了,于是接着说道:“根据我们的项目特点,我建议采用这样一种架构,大家可以看一下,是不是可行。”
在听了吴言的长篇大论之后,对于吴言要给出的结论,王文斌和张绍志都充满了期待。
吴言说道:“我建议我们对经常进行数据库访问的部分,如登录时的用户名口令验证,采用基于Key-Value的NoSql技术,具体产品可以采用Memcached,之所以选择Memcached而不是Redis,是因为在MySql 5.6以后的版本中,将集成Memcached服务,今后我们肯定会升级MySql到5.6以后的版本,采用Memcached可以减少系统所需的节点,降低系统管理的难度。我觉得需要经常访问的内容并不是很多,所以工作量并不大。”
吴言接着分析道:“对于MySql数据库本身而言,我们可以考虑采用扩展存储引擎的产品,这样可以自动解决并发性能问题,同时我们的应用程序可以不进行任何修改,唯一需要做的可能就是数据迁移的问题。”
将解决方案全部讲完之后,吴言总结道:“这就是我的一个基本思路,大家看看有什么意见没有?”
王文斌拿着笔,似乎想要记些什么,但是好像内容太多,无从下笔,一时也没说什么。
张绍志听了之后,说道:“我觉得吴总的方案挺好的,这样确实可以既提高性能,工作量也不太。我原来是想采用MongoDb的,但是确实工作量会很大。”
王文斌点了点头,还是没有说什么。
吴言接着说道:“绍志这边还有一些系统可用性改进方面的工作,目前还没有做完,下一阶段,赵启刚的产品设计方案出来后,还需要进行新的功能开发。另外,王总这边引入的新商户,优惠券功能开发,这些方面也有不小的工作量,目前他们就只有三个人,工作量可不算小,因此解决大容量并发问题最好采用最经济的手段进行,因为我们现在毕竟还没达到大容量并发瓶颈出现的阶段。”
吴言的话似乎对王文斌有了启发,王文斌说道:“对,我同意刚才吴总的看法,我们应该把主要精力放在新功能开发上,至于性能改进,最好采用经济的方式进行。”
吴言的目标初步达到了,在不在其位的情况下,实现了对技术问题的影响力。想到这里,吴言心情顿时轻松了起来。
王文斌接着说道:“绍志,你待会儿写一个会议纪要出来,发给我和吴总,然后你再发份实现的计划上来。那就这样,谢谢大家!”
王文斌参加的第一次会议就这样结束了,吴言对会议的结果很满意,但是看得出王文斌有些郁闷。
在走回办公室的路上,王文斌对张绍志说道:“你一会儿有事吗?不忙的话,到我的办公室来一趟!”
“我不忙!”张绍志一边回答着,一边和王文斌走进了他的办公室。
两个人关上门,一直谈到了中午吃饭的时间。两个人具体谈了些什么,吴言不得而知,不过想来应该是王文斌希望张绍志能够脱离吴言独立工作,而张绍志可能还在琢磨到底应该听王文斌的还是吴言的话。
中午全公司一起去吃午饭,为王文斌举办欢迎宴。
在大家都坐好之后,梁秀娟首先向大家作了介绍:“各位同事,我旁边的这位就是咱们公司新任CEO王总,他会负责公司的整体工作,下面大家欢迎王总给大家讲两句。”
王文斌欠了欠身子,说道:“各位同事,大家好!很高兴有机会和各位共事,今天上午我已经和一些同事接触过了,我对咱们这个团队非常有好感,觉得咱们这个团队真是人才辈出,一定可以做出一番大事业来。我刚来公司,对情况还不是特别熟悉,希望能够得到大家的支持。我接下来想说几句,时间不长,也就一两个小时!”
“啊?”员工们不约而同地发出了惊叹声。
“但是让大家看着这么一大桌美味,等到黄花采都凉了,也太不讲人情了,所以大家先吃饭,我们以后再交流!”王文斌还幽默了一把。
员工们这才如释重负,开始吃了起来。
梁秀娟这时问王文斌:“王总,刚来公司,还适应吗?”
“适应,适应!这感觉就像到家里一样,特别有归属感!”王文斌不加思索地回答着。
“那就好!我们目前没有做企业的经验,王总在这方面经验丰富,可要带领大家快点取得成功呀!”梁秀娟略带恭维地说道。
“哪里,哪里!经验丰富,不敢当!大家一起努力!”王文斌轻松地说着。
这一顿饭大家吃得都很尽兴,王文斌虽然第一次和大家在一起,一点也没有拘束的感觉,还能很好的控制饭桌上的气氛,这点吴言还是挺佩服的。
在回来的路上,王文斌本来和吴言、梁秀娟走在一起,可是很快就被赵启刚利用一个机会,和王文斌单独聊了起来,现在就剩下吴言和梁秀娟走在一起了。
吴言主动对梁秀娟说道:“看来你对这个王总还挺满意的!”
梁秀娟若有所思地说道:“还行吧!我打听过了,王文斌原来在易买网是三号人物,易买网今年初就倒了,他们的第一、二把手又都再次创业了,就是王文斌还守着原来的烂摊子,这样原来易买网的资源就归他了,据说他的能力也一般。”
“噢,是这样!那赵总把他安排过来是为什么呢?”吴言一直以为王文斌像赵海波所言,是个极为难得的管理人才,到这里来一定可以把企业搞好呢!听梁秀娟这么一说,王文斌看来能力也不一定很强,因此吴言不解地问道。
“这个我也在想,因为照理来说,王文斌在这个阶段进入,应该是核心管理团队成员,应该有公司实股的,但是赵海波只给了他虚拟股,所以赵海波并不是很看好他,我感觉赵海波的意思是先把CEO这个职位占住,将来找到合适的人选再换,他应该是个过渡性的人物。”梁秀娟分析着。
吴言听了梁秀娟的分析,感觉很有道理,于是说道:“我觉得你分析得挺有道理,我觉得可能还有一条,就是王文斌可以和咱们互相制衡,这样赵海波就不用担心自己的话语权了。”
吴言现在很想让梁秀娟站在自己一边,因此在说话时总是把他们俩个人看作一个整体。
“行啊,你连这点也看出来了,看来以前还真是小看你了!”梁秀娟说道。
这话说得吴言有些不好意思,说道:“哪里,就是随便想想罢了!”
吴言此刻觉得心里有了些底,他感觉梁秀娟还是站在自己这一边的,他一直没忘小A说的话,梁秀娟是个人才,自己只要和梁秀娟团结起来,一定可以做成大事情。
接下来就是后天要开的产品设计会议了,吴言已经仔细看过了赵启刚的产品设计文档。如果是以前,吴言肯定是走马观花的看一遍,有个大致印象就可以了,认为这些东西毫无技术含量可言,不值得细看。但是这次吴言却非常仔细地看了好几遍,令他惊奇地是,他不仅理解了赵启刚所有的建议,而且对其中很多方面还有自己的意见,因此吴言正在努力按照赵启刚的思路,把自己的思路也整理出来。
不过赵启刚看来也有个问题,从他今天主动和王文斌搭话来看,他似乎是想借公司这次人事变动,通过重新站队,得到更大的好处。这些事情,吴言以前根本不会去想,觉得这些人整天勾心斗角很没意思,但是现在却对这些事情有了一些敏感,同时觉得琢磨人与人之间的关系,同样是很有乐趣的。
赵启刚这个人进取心非常强,但是显得有些急燥,总是有想走捷径的冲动,可能是因为年轻的缘故,因为他毕竟刚本科毕业两年。所以应该适当削减一下他的职权范围,给他一些更具体的事情来做,先把他这种喜欢投机取巧的急性子磨掉再说。不过,这些需要和梁秀娟商量以后才能决定。
一回到公司,吴言就开始研究起互联网产品设计方面的书来,现在他所看是从网上新下载的SNS界面设计的书,不看不知道,原来这些非技术书籍,里面讲的东西也非常引人入胜,同样有许多看似浅显,但是却包含着深刻道理的东西。比如,在SNS网站中,采用第一人称还是第二人称来与用户沟通呢,这两种称呼都有很多实例,比如MySpace、MyYahoo等都采用第一人称,而YouTube等都采用第二人称,但是比较有意思的是,采用第一人称的如MySpace等都陷入了困境,这并不是一个偶然的现象,而是因为采用第二人称,更有利于创造系统与用户之间的交流氛围,更符合SNS的理念,因此SNS采用第二人称更容易获得成功。
上面这些东西,如果是以前,吴言肯定不屑一顾的,所以也就没有机会把这些知识运用到项目中去,这虽然技术含量不高,但是往往可以起到比高深的技术更大的作用,因此吴言庆幸自己可以有机会从纯技术的领域跳出来,可以考虑一些更重要的问题。
但是吴言也发现,自己的技术背景也有优势,对一些概念的理解会很快,而且由于知道实现细节,因此对某些问题的理解肯定会更深入一些。
经过几天的准备,吴言已经把自己对产品设计的思路完全整理完成,就等着这次产品设计讨论会的召开了。
敬请期待下集:产品设计讨论会

本文由客户端添加