论文部分内容阅读
现代的搜索引擎系统需要存储海量的数据,并接收大规模用户的高并发检索需求。由于磁盘具有价格便宜、超大容量存储等优势,被很多搜索引擎作为系统的主要存储介质。但磁盘相对于内存来说,其读写性能较低,使得搜索引擎系统的主要瓶颈问题在于磁盘的低速I/O。针对该问题,很多搜索引擎系统采用缓存技术来进行优化。而已有的缓存技术也存在一些潜在问题,如查询结果缓存和倒排列表缓存对查询长度较长的查询缺乏有效性、交集缓存数据选择策略效率低下和对不同特性的应用灵活性差等问题。因此,需要寻找一种新的缓存数据策略,以在搜索引擎检索性能、缓存数据策略效率和应用灵活性之间具有更好的平衡。针对已有的搜索引擎缓存体系架构存在的问题,提出了基于内存的搜索引擎三级缓存体系架构TLMCA,将访问最频繁的查询结果、倒排列表和交集数据存放在内存中,尽可能快地返回搜索的结果。与传统的二级内存缓存架构相比,三级内存缓存架构的检索性能提高了27%,且交集缓存对查询结果缓存和倒排列表缓存的命中率几乎没有影响。为了提高交集缓存数据的选择效率,并增强交集数据对不同特性应用的灵活性,设计了基于FP-Growth的Top-N频繁项集挖掘的交集缓存数据选择策略,并设计了相应的缓存查询处理流程,采用贪婪策略来减少系统开销,以提升系统的响应速度。同时,当交集缓存数据项的最大长度为3时,交集缓存带来的检索性能最佳。为了保证交集数据在持续不断的检索数据流中的有效性,提出了基于增量频繁项集挖掘的交集缓存数据替换策略,采用字典树Trie-Tree的前缀树数据结构,充分利用先前已建立的模型,来减少增量频繁项集挖掘过程中的开销。同时,基于缓存命中率的反馈调节机制,给出了动态数据流中的交集缓存数据替换时机定义,以在离线分析系统开销和在线检索系统性能之间具有较好的平衡。