首页 > 代码库 > 关于Sphinx中使用 RealTime Index的问题

关于Sphinx中使用 RealTime Index的问题

我们有了完整索引和增量索引,为什么还需要研究实时索引?

1、完整索引每个晚上空闲时执行一次,时间较长,但问题不大,因为IO慢,CPU累,但那个时间段基本没有人使用平台,比如凌晨2点。

2、增量索引:目前我们有些需求要求增加的资源要马上在列表中能看到,这里有两个问题,第一个是我们采用的是异步写入数据库队列,不保证这边写入了,那么一定马上写入到数据库中。

第二是就算写入到数据库中,我们的增量索引的间隔期是2秒,再加上真正生成索引的时间,比如0.5秒,就是说写入到数据库后需要2.5的时间才能保证用户看到,我们需要在界面上显示保存中的进度条,这一点有时让人很不爽。那该如何处理呢?比如异步写入队列,我们可以开多队列,比如4个队列监控,同时向数据库中写入,这些就是4线程并发写入,肯定能提高写入速度,而且4个也不多,MYSQL也能顶的住,就算是4个不够了,也可以后期采用多MASTER写入方案,写入不是主要问题。但增量索引是2秒一重建,不能要求0.1秒重建吧?

这时研究实时索引就很有意义了:

1、实时索引是如何工作的,原理是什么?
2、实时索引怎么配置,做好测试工作。
3、实时索引存在什么问题,我们应如何应对?
4、评估我们现在的增量索引是否有必要转为实时索引?还是结果是实时还不成熟,不宜转入?

参考链接:
http://blog.sina.com.cn/s/blog_54ef398901017u8w.html

 

关于Sphinx中使用 RealTime Index的问题