内存中直接建立索引: Lucene 建索引效率(litertiger)

来源:互联网 发布:勇者之塔圣痕激化数据 编辑:程序博客网 时间:2024/06/05 18:59
Lucene 建索引效率
2007年06月13日 星期三 19:48
昨天给一个项目的数据做索引,
采用内存索引和硬盘索引交替写,内存索引大小为64个Document,
结果发现一个晚上才做了17万条数据的索引(表的字段比较多,75个字段),花费了10几个小时.
生成文件 135M

今天优化了一下,决定在内存中做索引,做晚之后写道硬盘里面.
但是这是非常消耗内存的事情,自己的机器只有512M内存,发现用的内存到323M的时候,
就会发现内存不足的错误.

最后是放在一个服务器上运行,服务器4G内存,,至强的3G 16路 CPU,这个机器跑这个程序
CPU只有6%,(普通的都是100%),运行的过程中峰值内存占用800M左右,最后40万条数据,执行了
26分钟.最后的索引文件大小是196M


所以当内存足够大,CPU比较强的时候,在服务器内存中直接建立索引应该是非常快的事情.

===显然,采用内存可以最大减小磁盘读取。则索引的效率非常高=======

这些服务器将采用拥有大容量内存的低主频处理器。业内人士认为,这可能是采用低端的1路Woodcrest处理器的服务器,并且配置大量的内存以提高性能。这种配置可能会满足Google对内存的需求。目前还没有资料显示Google为什么需要那样多的内存。

这不奇怪,google采用分布式体系结构进行数据挖掘,其中大量的工作就是数据立方体的计算,在目前内存价格比较便宜的情况下,把单个数据立方体缓存在内存中,性能会提高很多,feelor就是这么做的。

=========

这两台机器配置都是300MHz 频率、内存512MB的的奔II服务器,共有9块9G 的硬盘。主要的搜索任务就是由它们执行。

//这可以看出,那个年代他们就是搞的大内存。

 

原创粉丝点击