FAST 2023 Paper 分布式元数据论文整理
问题
在信息检索领域,随着大量搜索引擎用户搜索越来越多的在线数据,并用于数据挖掘和自然语言处理,维护可靠的术语索引的需求变得更加迫切。同时,越来越多的主存储系统采用重复数据消除,其中重复的逻辑数据块被对唯一物理拷贝的引用所取代。
挑战
-
使用重复数据消除遗忘机制,对已消除重复的数据进行索引可能会导致效率极低:索引大小将与逻辑数据大小成比例增加,无论其重复率如何,这会消耗过多的存储和内存,并减慢查找速度。
-
索引创建期间的逻辑顺序访问将被转换为对物理块的随机和冗余访问。
-
任何重复数据消除存储系统都不支持术语索引。
重复数据消除会使关键字索引变得复杂,指的是术语到文件索引(也称为反向索引),它支持返回包含关键字或术语的文件的查询。
-
初始索引创建时间:通过处理逻辑文件来扫描系统,生成对物理块的随机访问。当由于重复数据消除而对一个块有多个引用时,会对块进行冗余处理。
-
索引大小,它与逻辑数据大小成比例,而不是与系统中存储的物理大小成比例:每个术语都必须指向包含它的所有文件,即使文件的内容几乎相同。巨大的索引大小可能会导致较差的查找性能。
本文方法
本文提出了一种支持重复数据删除的术语索引设计,IDEA。将术语映射到包含它们的唯一块,并将每个块映射到包含它的文件。这一基本设计概念提高了索引性能,并可以支持高级功能,如内联索引、结果排名和邻近搜索。
-
用术语到块映射取代了传统索引中的术语到文件映射,其大小与系统中物理存储的唯一内容成比例。用额外的块到文件映射记录了从块到所包含的文件的引用。这种映射明显小于术语到块映射,可以存储在更小更快的存储设备中。IDEA专注于文本数据,使用空白感知内容定义的分块算法,该算法创建与空白字符对齐的分块边界,确保了术语不会在相邻的块之间分割。
-
通过顺序处理物理数据而不是逻辑数据来创建索引。术语到块映射是由标准术语索引软件创建的,该软件扫描系统中的所有物理块,而不考虑它们在文件中的逻辑顺序。块到文件的映射是通过扫描文件元数据创建的,文件元数据通常与数据块分开存储。术语查找从查询术语到块映射开始,生成的块集用于块到文件映射中的查找,从而生成一组匹配的文件。
开源代码:GitHub - asaflevi0812/IDEA: IDEA
基于Lucene(Elasticsearch的核心搜索引擎)的原型实现表明,IDEA可以将索引大小和索引时间分别减少73%和94%,并将单个和多个术语查询的术语查找延迟分别减少82%和59%。
实验
实验环境:一台运行Ubuntu 16.04.7的服务器,配备了128GB DDR4 RAM,2.40GHz Intel Xeon Silver 4210 CPU,Destor的备份存储是一个Dell 8DN1Y 1TB 2.5“SATA HDD。所有索引备选方案的映射(Naïve以及IDEA的术语块映射和IDEA Direct的所有映射)存储在一个单独的相同HDD上。IDEA的块到文件和文件到路径映射存储在Dell T1WH8 240GB 2.5“ SSD上。
数据集:Linux数据集[7]、Wikipedia数据集[15,16]
实验对比:索引时间、索引大小、查找时间、查找时间、开销
实验参数:不同数据集
总结
针对用于信息检索的存储文本数据的文件系统,其中有大量重复数据,如何实现支持重复数据删除和术语索引的文件系统。现有方法:索引效率低;索引大小与逻辑数据大小成比例,消耗过多的存储和内存,查找速度慢;索引创建期间的逻辑顺序访问将被转换为对物理块的随机和冗余访问。本文提出支持重复数据删除的术语索引设计,IDEA。核心思想是将术语映射到包含它们的唯一块,并将每个块映射到包含它的文件。(1)用术语到块映射取代术语到文件映射,其大小与系统中物理存储的唯一内容成比例。用额外的块到文件映射记录了从块到所包含的文件的引用。这种映射明显小于术语到块映射,可以减少空间占用。使用空白感知内容定义的分块算法,创建与空白字符对齐的分块边界,确保了术语不会在相邻的块之间分割。(2)通过顺序处理物理数据而不是逻辑数据来创建索引。术语查找从查询术语到块映射开始,生成的块集用于块到文件映射中的查找,从而生成一组匹配的文件。