【技术实现步骤摘要】
最佳记录查找
本技术涉及存储操作,并且更具体地涉及在外部媒体的查找索引中的最佳记录查找。
技术介绍
数据存储技术可能具有各种限制,包括伸缩、性能和成本限制。例如,存储器器件可提供快速访问,但具有伸缩和成本限制。存储设备提供更大的存储容量,但具有有限的吞吐量和访问能力。一些存储技术具有更大的存储容量和越来越强的性能,但另外可能受限于它们的数据访问和写入模式。在诸如商务和关键任务应用的许多情况下,数据存储技术不能提供存储容量、性能和可用性的适当平衡,从而满足数据和数据服务的特定需求。附图说明应理解这些附图仅描绘了本公开的示例性实施例,并且因此不应被认为是其范围的限制,通过使用所附附图描述和解释本文的原理以及附加特性和细节。其中:图1图示示例性存储和查找环境。图2图示用于利用查找索引定位对象的过程的示例图。图3图示查找索引的示例性布局。图4图示用于将对象散列成查找索引中的桶(bucket)的示例图。图5A图示用于缓存头部(header)和实现暂存区域的示例配置的示意图。图5B图示查找索引中的桶的示例暂存区域的示意图。图6图示用于执行查找操作的示例方法。图7图示用于添加或 ...
【技术保护点】
1.一种方法,包括:生成表示储存器中的数据对象的数据对象记录;在存储设备处存储包括多个索引桶的查找索引,每个索引桶与所述存储设备上的一组存储单元相关联,并且包括用于所述一组存储单元中的每个相应的一个存储单元的相应索引过滤器,所述一组存储单元包含所述数据对象记录的相应部分,其中每个相应索引过滤器包括用于所述一组存储单元中的所述相应的一个存储单元中的每个数据对象记录的至少一个查找条目;接收与数据对象相关联的输入‑输出请求;以及响应于所述输入‑输出请求,对所述查找索引执行所述数据对象的查找操作,所述查找操作包括:识别所述查找索引中用于所述数据对象的索引桶;并且基于与在所述查找索引 ...
【技术特征摘要】
2017.05.04 US 15/586,9471.一种方法,包括:生成表示储存器中的数据对象的数据对象记录;在存储设备处存储包括多个索引桶的查找索引,每个索引桶与所述存储设备上的一组存储单元相关联,并且包括用于所述一组存储单元中的每个相应的一个存储单元的相应索引过滤器,所述一组存储单元包含所述数据对象记录的相应部分,其中每个相应索引过滤器包括用于所述一组存储单元中的所述相应的一个存储单元中的每个数据对象记录的至少一个查找条目;接收与数据对象相关联的输入-输出请求;以及响应于所述输入-输出请求,对所述查找索引执行所述数据对象的查找操作,所述查找操作包括:识别所述查找索引中用于所述数据对象的索引桶;并且基于与在所述查找索引中识别的用于所述数据对象的所述索引桶相关联的每个相应索引过滤器,确定与所述索引桶相关联的一组存储单元中的任意一个是否包含与所述数据对象对应的数据对象记录。2.根据权利要求1所述的方法,其中所述存储设备包括固态驱动器(SSD),并且所述存储与第二存储设备相关联,所述第二存储设备包括固态驱动器、硬盘驱动器和独立冗余磁盘阵列中的至少一种,并且其中所述一组存储单元包括SSD页面。3.根据权利要求1所述的方法,其中所述相应索引过滤器包括布谷鸟过滤器,其中所述数据对象记录包括与所述数据对象对应的对象签名,并且其中所述至少一个查找条目包括与所述一组存储单元中的所述相应的一个存储单元中的对应数据对象记录相关联的至少部分对象签名。4.根据权利要求3所述的方法,其中所述对象签名和所述至少部分对象签名通过将一个或多个散列函数应用到所述数据对象而生成,并且其中识别所述查找索引中用于所述数据对象的索引桶包括:散列所述数据对象的至少部分以产生散列值;以及使用所述散列值的至少部分来识别所述查找索引中的索引桶。5.根据权利要求1所述的方法,进一步包括:在存储器设备处存储所述一组存储单元中的每个相应的一个存储单元的相应索引过滤器的副本,以产生多个缓存的索引过滤器,所述多个缓存的索引过滤器包含与包含在所述一组存储单元中的数据对象记录相关联的相应查找条目;并且其中确定所述一组存储单元中的任意一个是否包含所述数据对象记录包括:确定所述相应查找条目是否匹配针对所述数据对象生成的一个或多个散列值。6.根据权利要求5所述的方法,其中所述输入-输出请求包括读取操作,并且其中识别用于所述数据对象的所述索引桶是基于针对所述数据对象生成的所述一个或多个散列值,所述方法进一步包括:在确定与所述索引桶相关联的所述一组存储单元中的任意一个是否包含所述数据对象记录之前,针对所述数据对象记录搜索与所述索引桶相关联的暂存区域,其中所述暂存区域包括可选择、以复制到与所述索引桶相关联的所述一组存储单元中的一个存储单元的数据对象记录的队列;并且当所述搜索在所述暂存区域中未定位到所述数据对象记录时,确定与所述索引桶相关联的所述一组存储单元中的任意一个包含所述数据对象记录。7.根据权利要求6所述的方法,进一步包括:基于针对所述数据对象生成的所述一个或多个散列值,识别所述索引桶中具有包含与所述数据对象相关联的所述数据对象记录的阈值概率的特定存储单元;响应于识别到所述索引桶中的所述特定存储单元,读取所述特定存储单元并且检查所述特定存储单元中的对应槽,以确定所述数据对象记录是否包含在所述特定存储单元中;并且当确定所述数据对象记录在所述特定存储单元中时,从所述特定存储单元中检索所述数据对象记录。8.根据权利要求5所述的方法,进一步包括:当所述相应查找条目与针对所述数据对象生成的所述一个或多个散列值不匹配时,确定所述数据对象是新的数据对象并且所述数据对象记录不存在于所述一组存储单元中的任意一个中;响应于确定所述数据对象是所述新的数据对象,将所述数据对象写入到所述储存器;更新与所述数据对象相关联的所述数据对象记录,以包括所述储存器上的与所述数据对象相关联的地址的指示;并且将所述数据对象记录发送到与所述索引桶相关联的暂存区域。9.根据权利要求8所述的方法,进一步包括:确定所述暂存区域中的特定数据对象记录的数量已经达到阈值数;以及响应于确定所述暂存区域中的特定数据对象记录的所述数量已经达到所述阈值数,将所述暂存区域中的所述数量的数据对象记录复制到所述索引桶中的同一存储单元中。10.一种系统,包括:一个或多个处理器;存储查找索引的计算机可读存储介质,所述查找索引包括:与所述计算机可读存储介质上的存储单元相关联的多个索引桶,其中每个索引桶包括相应的一组存储单元;表示存储设备上的数据对象的多个数据对象记录,所述多个数据对象记录存储在所述存储单元中,每个存储单元存储所述多个数据对象记录的相应部分,所述相应部分对应于与所述存储单元相关联的特定索引桶;存储在所述存储单元中的多个索引过滤器,每个存储单元存储所述多个索引过滤器中的相应索引过滤器,所述相应索引过滤器包括与所述存储单元中的所述多个数据对象记录的所述相应部分中的每一个对应的至少一个查找条目;以及计算机可读指令,所述计算机可读指令在由所述一个或多个处理器执行时,使得所述系统:响应于与数据对象相关联的一个或多个输入-输出请求,识别所述多个索引桶中用于所述数据对象的对应索引桶;针对与所述数据对象相关联的数据对象记录,查询与所述对应索引桶相关联的所述相应的一组存储单元中的每一个存储单元中的所述相应索引过滤器;以及确定与所述对应索引桶相关联的所述一组存储单元中的任意一个是否包含所述数据对象记录。11.根据权利要求10所述的系统,其中所述计算机可读存储介质包括固态驱动器(SSD),并且所述存储设备包括固态驱动器、硬盘驱动器和独立冗余磁盘阵列中的至少一个,并且其中所述存储单元包括SSD页面。12.根据权利要求10所述的系统,其中所述多个索引过滤器包括布谷鸟过滤器,其中识别用于所述数据对象的所述对应索引桶包括:散列所述数据对象的至少部分以产生一个或多个散列值;以及基于所述一个或多个散列值识别所述对应索引桶。13.根据权利要求10所述的系统,进一步包括存储所述多个索引过滤器的第二计算机可读存储介质,其中确定与所述对应索引桶相关联的所述相应一组存储单元中的任意一个是否包含所述数据对象记录包括:将一个或多个散列函数应用到所述数据对象,以产生与所述数据对象相关联的一个或多个散列值;以及在所述多个索引过滤器的至少一部分中的过滤器条目内搜索所述一个或多个散列值,所述多个索引过滤器的所述部分对应于与所述对应索引桶中的所述相应的一组存储单元相关联的索引过滤器。14.根据权利要求13所述的系统,其中所述一个或多个输入-输出请求包括一个或多个读取操作,所述系统进一步包括在由所述一个或多个处理器执行时使得所述系统进行如下操作的附加计算机可读指令:在所述一个或多个散列值与所述过滤器条目中的至少一个匹配时:确定与所述特定索引过滤器相关联的存储单元至少具有包含所述数据对象记录的阈值概率;基于所述存储单元至少具有包含所述数据对象记录的所述阈值概率,执行所述存储单元的读取以搜索所述数据对象记录;以及当所述数据对象记录被定位在所述数据单元中时,从所述存储单元检索所述数据对象记录。15.根据权利要求13所述的系统,进一步包括在由所述一个或多个处理器执行时使得所述系统进行如下操作的附加计算机可...
【专利技术属性】
技术研发人员:格伦·沃特金斯,彼得·马丹尼,约翰·M·克泽尔考维茨,
申请(专利权)人:慧与发展有限责任合伙企业,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。