当前位置: 首页 > 专利查询>EMC公司专利>正文

使用布隆过滤器的索引搜索制造技术

技术编号:7978404 阅读:243 留言:0更新日期:2012-11-16 05:25
用于索引搜索的系统包括第一索引、第二索引、处理器和存储器。处理器配置成使用用于指纹的第二索引的布隆过滤器来确定布隆过滤器是否指示对应于段的条目以前已在第二索引中被存储。处理器还配置成如果布隆过滤器指示对应于段的条目以前已在第二索引中被存储,则检索以前已被存储的段相关联的第二索引条目。存储器耦合到处理器并配置成向处理器提供指令。

【技术实现步骤摘要】
【国外来华专利技术】使用布隆过滤器的索引搜索
技术介绍
对于使用去除重复的(deduplicated)段存储信息的系统,索引用于识别段是否以前已被存储以及给定段存储在何处。然而,随着存储系统存储的段的数量增大,索引大小也增大,并且定位接收的段的条目是否在索引中变得越来越耗时。附图说明在下面的详细描述和附图中,公开了本专利技术的不同实施例。图I是示出用于数据存储的系统的一实施例的框图。图2是示出段存储引擎的一实施例的框图。 图3是示出输入流、段和超段数据配置的一实施例的框图。图4是示出索引的一实施例的框图。图5是示出LO索引的一实施例的框图。图6是示出用于在索引中存储条目的过程的一实施例的流程图。图7是示出用于在索引中存储条目的过程的一实施例的流程图。图8是示出用于定位索引条目的过程的流程图。具体实施例方式本专利技术能够以多种方式实现,包括作为过程、设备、系统、物质的合成、计算机可读存储媒体上实施的计算机程序产品和/或处理器,如配置成执行耦合到处理器的存储器上和/或由存储器提供的指令的处理器。在此说明书中,这些实现或本专利技术可采用的任何其它形式可称为技术。通常,在本专利技术范围内可改变公开过程的步骤顺序。除非另有说明,否贝U,诸如处理器和存储器等被描述为配置成执行任务的组件可实现为暂时配置成在给定时间中执行该任务的组件或制造为执行该任务的特定组件。在本文中使用时,术语“处理器”指配置成处理诸如计算机程序指令等数据的一个或多个装置、电路和/或处理核。本专利技术一个或多个实施例的详细说明在下面与显示本专利技术原理的附图一起被提供。本专利技术结合此类实施例进行描述,但本专利技术并不限于任一实施例。本专利技术的范围只受权利要求的限制,并且本专利技术包括许多备选、修改和等同。许多特定的细节在下面的说明中陈述以便提供本专利技术的详细理解。这些细节为了示例的目的而被提供,并且本专利技术可在一些或所有这些特定细节不存在的情况下根据权利要求来实践。为了清晰的目的,与本专利技术相关
已知的技术材料未被详细描述以免不必要地混淆本专利技术。本文公开了一种用于索引搜索的系统。该系统包括第一索引、第二索引、布隆过滤器、处理器和存储器。处理器配置成1)接收检索段的请求;2)使用用于指纹的第二索引的布隆过滤器来确定布隆过滤器是否指示对应于段的条目以前已在第二索引中被存储;3)如果布隆过滤器指示对应于段的条目以前已在第二索引中被存储,则检索以前已被存储的段相关联的第二索引条目;4)如果对应于段的条目未在第二索引中找到,则检查第一索引以确定对应于段的条目是否以前已在第一索引中被存储;5)如果第一索引指示对应于段的条目以前已在第一索引中被存储,则检索以前已被存储的段相关联的第一索引条目;以及6)存储器,耦合到处理器并配置成向处理器提供指令。布隆过滤器用于识别第二索引是否包括与候选段相关联的条目。布隆过滤器的使用导致减少第二索引的随机访问。在一些实施例中,为候选段计算指纹。指纹被输入第一索引中(例如,称为LO的索引)。第一索引处于排序(sorted)顺序中。在一些实施例中,一部分指纹(例如,前两个字节)用于指向识别第一索引内某个位置的报头,而在该位置附近存储或未存储指纹。由于第一索引是排序列表,并且新段指纹在不断被添加,因此,第二索弓丨(例如,称为LI的索引)用于存储用于新段的指纹。在各种实施例中,第二索引被排序、部分排序、不被排序、小于第一索引,是多个次要索引之一、或具有任何其它适当的特性。在满足准则(例如,第二索引已达到某个大小)时,第二索引与第一索引合并,并且被排序以形成新的第一索引。在一些实施例中,在第二索引合并到第一索引期间,使用临时或备选第二索弓I。在一些实施例中,除第二索引外,有在进入第二索引前保留索引条目的存储器缓冲器,并且在寻找“索引”中的段时,系统查看存储器缓冲器;用于第二索引的布隆过滤器,以及如果布隆过滤器指示要求它,则查看第二索引;以及第一索引。在一些实施例中,有多个次 要索引,其各自带有布隆过滤器,以及在寻找“索引”中的段时,系统查看用于次要索引的每个布隆过滤器,并且如果布隆过滤器指示它是必需的,则查看第二索引,以及第一索引。由于在查看包括多个部分(例如,存储器缓冲器、一个或多个次要索引、第一索引等)的索引时,系统一旦在索引中找到最近的条目,便停止寻找段条目。在一些实施例中,索引的部分内的搜索以最新索引到最旧索引的顺序来执行-例如,最先是小的存储器缓冲器,接着是用于第二索引的布隆过滤器,以及如果要求则是第二索引,以及最后是第一索引。图I是示出用于数据存储的系统的一实施例的框图。在所示示例中,使用存储用户系统Iio的用户或存储用户系统110经网络108访问存储系统100。在各种实施例中,网络108包括有线网络、无线网络、局域网、广域网、因特网或任何其它适当的网络中的一种或多种网络。存储系统100包括系统接口 102、段存储引擎104和多个存储单元(在图I中由存储单元112、存储单元114、存储单元116及存储单元118来表示)。通过使用复本(r印Iica)存储系统106,复制了存储系统100。例如,通过将某个存储单元上存储的段和元数据存储到另一存储单元,复制了该存储单元。存储用户系统110将文件、数据流或数据文件分割成段(例如,为一个或多个段识别边界-例如,某个哈希函数在文件的内容的一部分上运算;在该哈希函数等于某个值,是最小值,是最大值,介于最小长度与最大长度之间和/或是文件的窗口内的极值等时,确定段边界)。段边界得以确定,使得两个类似文件、数据流或数据块具有的目标是对文件、数据流或数据块的相同部分具有相同段,并且对文件、数据流或数据块的非相同部分具有不同段。在各种实施例中,段确定基于数据的内容(使用基于数据内容所计算的值),不基于内容(例如,字节计数、文件准则等)、或基于内容的准则和基于非内容的准则的组合。在各种实施例中,存储用户系统Iio加密和/或压缩段。存储用户系统110经网络108发送要由存储系统100存储的段。在各种实施例中,有关如何重构文件、数据流或数据块的信息也从存储用户系统110发送到存储系统100和/或由存储系统100存储,或进行对信息适当的任何其它动作。存储系统100使用系统接口 102接收段。段存储引擎104在存储单元中存储段,或者存储到存储单元(例如,存储单元112、存储单元114、存储单元116或存储单元118)中以前存储的相同段的引用。在各种实施例中,存储单元包括去除重复存储系统、存储装置、多个存储装置、存储装置的一部分、硬盘驱动器、驱动器阵列、半导体存储器或用于节点的任何其它适当的组件。仅在段以前未在存储单元之一中存储时,段存储引擎104才存储段。在一些实施例中,通过查看相同的标识符是否已经在用于存储系统100的存储的段的索引中存在,标识符(例如,数字指纹、安全哈希算法哈希值等)用于确定段是否以前已被存储。在各种实施例中,使用存储系统100,使用存储用户系统110或任何其它适当的系统确定用于给定段的标识符。在一些实施例中,标识符与相关联的段一起从存储用户系统110被发送到存储系统 100。存储用户系统110经网络108请求存储系统100上存储的一个或多个段。存储系统100使用系统接口 102接收该请求。段存储引擎104路由该请求以定位、或者定本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:Y谢
申请(专利权)人:EMC公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1