论文部分内容阅读
随着互联网技术的迅猛发展,网络访问数据量呈指数级增长,提高对海量数据的管理访问能力的需求变得越来越迫切,海量数据的索引性能的提升对于互联网的诸多应用会有极大的促进作用。ATR实验室开发的JBc-LSM系统是一种为自然语言处理N-gram模型的应用而设计的新型的海量数据索引系统,这个模型为了弥补传统B树的不足,设计了基于内存操作的高密度磁盘索引结构Bc。JBc-LSM系统在建库,批量查询和更新上有着较为优秀的性能,然而在线索引性能并不理想。本课题针对已有的JBc-LSM系统在线索引性能的不足所在,提出本课题的解决方案Flash-JBc-LSMo本文首先介绍了两种主流的索引系统的架构,重点介绍和比较了LSM模型的主流实现技术,结合对JBc-LSM系统的分析,在JBc-LSM系统的基础上,引入固态硬盘,遵循程序访问的局部性原理,设计了改进版本的系统Flash-JBc-LSMo改进后的Flash-JBc-LSM设计了适用于固态硬盘的索引数据结构,使得可以充分的发挥固态硬盘的性能,从而提升索引系统的在线索引性能。我们在JBc-LSM的基础上设计三层缓存层,第一层为内存索引结构,为Judy的关联结构,第二层为SSD的记录存储结构,记录的查询通过内存的hash表进行快速索引,第三层为以Linux Device Mapper技术为依托的Facebook开源项目Flashcache,此层将在磁盘的底层驱动里对磁盘的Block进行读的Cache。通过与几种主流的索引系统的实验的测试比较结果来看,本文提出的方案Flash-JBc-LSM比其他的索引系统有着较为显著的提升效果,也证明了本课题的解决方案Flash-JBc-LSM引入的固态硬盘以及为固态硬盘设计的索引结构对于系统的在线索引性能确有着提升的作用,也有助于提升自然语言处理N-gram模型应用或者在线搜索引擎的应用的性能。其次本文通过对实验的结果的分析,对Flash-JBc-LSM的改进的空间作进一步讨论。