您的位置:首页 > 其它

关于搜索引擎及其开发之二

2007-12-16 10:12 267 查看
前两天去九华山庄参加了CSDN的2.0大会,有幸听了一些前辈和大师的思想和理解!受益匪浅!这其中跟搜索引擎开发相关比较紧密的是雷鸣的演讲。因为他以前就是做搜索引擎的,而且被李彦宏成为"中国最好的工程师之一"! 他所说的很多的东西,有些我知道,但是没有人家提炼的透彻,一针见血;有些我是模糊的或者是不知道。不管如何,我把听来的笔记和理解记在下边!与大家共享和讨论!

我去的时候已经9:30了。呵呵! 其实是从9:00之前开始的。 我的笔记从9:30开始!

1. 抓CPU的热点!
1. 分析而不是猜测

这是有抓大热点和小热点之分了。抓一个程序的CPU热点,比如那个函数的CPU耗用的太多,linux是有一个程序可以直接利用的,我倒是忘了名字了。当程序规模变大,流程变多的时候,打时间戳的办法是非常有效的。当然他也适用于单个程序!它的目的就是一个,在一个我们认为运行时间超出了我们预定值的系统里边,明确的知道,那一个或者是哪些步骤是耗费的时间最多!搜索引擎是一个典型的流程比较长,规模大的系统。

2. 硬盘IO
1. 二维到一维的转换
内存是二维的,硬盘是一维的。内存数据写入硬盘就有一个二维转成一维的转换!

2. 硬盘性能指标
搜索引擎里边,硬盘的IO性能到最后都会成为瓶颈!现在主流的硬盘,随机读写每秒可能是千次!

3. 半个产品人员
1. 要想做出一个好的产品,首先你就起码是是半个产品人员,你的想法和客户的想法是相同的。这样产品才是有用的!
2. 如果你封装了类给被人用,你起码要设定他的应用的场景。用的人好用,才会用你的东西!

4. 数据挖掘
每天有大量的查询日志,它才是反映用户查询需求的第一手的资料。也是做符合用户需求的产品的基础!

5. 协防
1. 去帮助你的同事,因为你肯定会需要他们的帮助。
2. 朋友也是如此。

这是将来发展的基础

6. 一个技术人员走的有多远,要看他的心胸有多开阔
雷鸣说,他曾经看过很多的基础很好,也很聪明的开发人员。但是,他们走到一个程度以后,往往开始听不进不同的意见!不管是队的还是错的。 这会在很大的程度上限制一个好的开发人员的发展!

7. 监控
1. 不要让用户感觉到
这一点是很重要的。不管出现什么样的错误,底线是不能让用户感觉到你的系统出现了问题!

2. 凡事预防为主
不要让你所有的机器满载,否则,如果有一台机器出现错误,就会产生雪崩效应,可能会让你的系统崩溃!

3. 分级监控。
1. 用户体验级监控
2. 模块监控系统
3. 主机资源监控
4. 告知机制

在看余世维的培训录像时,就听过这个道理:如果你上班时间充分利用每一个小时,还用的着加班吗?这里说的差不多也是一个道理:不是每一个error都需要实时处理的。只要不到用户体验级的错误,都大可不必半夜3:00起床处理。当然这需要一个好的监控,能够分辨出这是那一个级别的,什么地方的错误!

8. 搜索引擎为什么不用数据库
通用的不能用来专用。搜索引擎是一个专用的系统,他的的更新和查询是一个完全不对得的过程!他的索引可能一个星期才能全部的更新一遍,但是,他的查询是每天都是巨量的数字。而数据库是各个方面进行了权衡和处理的。增删查改四个动作是受到相同的对待的。

临近结束的时候,我问了雷鸣几个问题。不过这些问题可能显得有些虚狂。其实我心里是非常的想知道,对中搜的没落,他是怎么看的!中搜和百度当初是差不多一个起跑线的!而且,他可能接触的可能都是公司的高层!对问题可能看的更远更多更细致一些。不过,可能场合不适于讲这个问题,也许这个问题只能私下里问!我也没有得到什么样的答案!遗憾!

结束之后,很多人围住雷鸣讨论那个奥运会门票系统的例子。其实,他在介绍的过程中对这个问题已经阐述的很好,1. 估计后台没有分布式。 没有任务分割。 2.对并发的人数估计不足。 (不过,估计谁也想不到有这么大的并发访问量。单对这个倒是有一个比较损的办法:半夜三点开始卖票。:) ) 3. 对连接的数目没有一个限制,超出上限的链接关闭,给一个错误页面! 这样不会妨碍其他的可以正常链接的交易!可以使程序免于崩溃! 给一个安全阀,这才是最重要的!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: