很久没有更新了,在07年下半年,我们对搜索引擎做了分布式的改造,现在已经在试运营,效果还不错,虽然还不太稳定,偶尔还有服务core dump的情况,但是基本上没出大的问题,但是从长远考虑,这次分布式架构的改造只是一次过渡,并不能应付长远的需求。而且目前的架构存在很大运维成本。
2月份开始,我开始思考下一个版本的架构, 目前已具备一些雏形,先贴出来:
Master进程
负责Map/Reduce任务的调度、分配
Map任务进程
负责过滤、排序功能,不保存数据和配置,从索引服务器中获取分量数据,做分布式计算,产生中间结果
Reduce任务进程
负责对Map任务产生的中间结果做合并、聚类,产生最终结果
索引服务器
负责生成索引,对关键词生成一级索引文件,可以对常用过滤条件生成二级索引文件,减少过滤次数,还需要做一些预排序,对文件做集中式管理