论文部分内容阅读
在应答一个来自用户的查询(query)时,现代搜索引擎会返回给用户前k个相关的查询结果及其摘要。摘要是一小段摘选于文档的文本,该段文本归纳了查询词与文档的相关关系。生成摘要既需要消耗大量系统I/O来检索文档,又需要消耗大量的CPU来计算摘要。搜索引擎常常使用缓存技术来减少摘要生成过程的延迟。固态硬盘(Solid State Drive, SSD)是一种新兴的存储介质,它的I/O效率比传统的机械硬盘(Hard Disk Drive, HDD)快30倍到120倍。随着固态硬盘的性价比逐步提高,搜索引擎公司开始用固态硬盘替换传统机械硬盘。替换后搜索引擎系统I/O性能不断提高,性能瓶颈从I/O转变为CPU计算。为了应对固态硬盘带来的变化,进一步提升系统性能,本文提出了一个简单但有效的方法:用精简摘要(Fragment)替换原始的摘要。精简摘要在不改变摘要质量的前提下,仅存储摘要的位置信息。该方法空间利用率更高。返回摘要前精简摘要需恢复为完整摘要。针对精简摘要在恢复过程引起的文档检索,本文提出了使用精简文档(Short Document)替换完整文档的方法。精简文档同样也能够提高文档缓存的空间利用率。本文的主要工作包括:1.为了减少平均摘要生成延迟,本文设计了摘要的精简表示方法。精简摘要记录摘要在文档中的位置信息。在返回摘要前,精简摘要需要经过计算才能恢复成完整摘要。在相同的缓存空间下,精简摘要缓存的命中率远高于完整摘要缓存命中率。精简摘要缓存能够大量避免重复摘要计算。精简摘要恢复完整摘要的过程会引起文档检索以及一小部分额外计算,额外计算增加的摘要生成延时远小于精简摘要高命中率减少的摘要生成延时。2.为了减少在精简摘要恢复过程引起的文档检索延迟,本文在精简摘要的基础上,设计了配套的精简文档缓存。与文档缓存存储整篇文档不同,精简文档缓存仅存储文档中用来恢复完整摘要的句子。由于精简文档存储的内容更为精细,空间利用率更高,精简文档缓存能够有效减少摘要恢复过程的I/O。配套精简摘要缓存,精简文档缓存能够进一步提高摘要生成效率。通过实验我们发现,精简缓存使摘要缓存的空间利用率提高了15倍,精简文档缓存的空间利用率提高了6倍。