专利名称:用于在顺序存取数据存储子系统中执行搜索操作的系统和方法
技术领域:
本发明的实施例一般地涉及数据存储和管理,更具体地,涉及一 种用于在顺序存取数据存储子系统中执行搜索操作的系统和方法。
背景技术:
随着数据处理系统和通信网络变得越来越普遍,更有效地存储、断增加。
一种用于这、^数据进行存储、提供访问和处理的机制是^: 存储子系统。数据存储子系统包括存储控制器和/或主机总线适配器、 存储单元以及用于为一个或多个主机数据处理系统提供数据存储服 务的任何所需控制软件的综合集合。常规存储单元包括可以是固定的、可拆除的、磁、光、随机/直接存取和/或顺序存取的机器可读介质(例如固定盘、CD/DVD-ROM、 磁带、固态存储器等)以及用于访问这种介质的介质装栽器和自动设 备。起初,数据存储子系统包括可靠的、相对高容量且廉价的顺序存 取存储单元(例如磁带)。这种基于顺序存取的数据存储子系统曾主 要用于并将继续主要用于数据备份和存档操作。最近,已经使用提供 更高存取速度和使用灵活性、同时增加成本和/或降低可靠性的盘驱动 存储器实现数据存储子系统。除了传统用于数据备份和存档之外,基于磁盘驱动器的数据存储 子系统已经被用于为数据处理系统群提供数据复制服务、故障/灾难恢 复、测试、数据挖掘和分析等。虽然可以使用基于顺序存取存储单元 的数据存储子系统提供一些或全部所述增强数据存储和处理服务,现 有的系统仍然依靠主机数据处理系统控制的或执行的输入/输出(I/O )操作(例如读和写操作)。这种主机i/o操作会为执行搜索操作以及否则将是不必要的系统开销(例如应用、驱动程序和/或操作系统软件) 消耗大量主机数据处理系统到数据存储子系统通信信道带宽和主机 数据处理系统资源(例如处理单元、存储器等)。发明内容提供一种用于在顺序存取数据存储子系统中执行搜索操作的系 统和方法。根据一个实施例,提供一种数据存储子系统,其包括通信 信道接口和搜索模块,所述通信信道接口经通信信道将数据存储子系 统通信地耦合到主机数据处理系统。在所描述的实施例中,搜索模块 被配置为经通信信道接口从主机数据处理系统接收搜索属性数据,其 中该搜索属性数据指定搜索属性。搜索模块还被配置为使用该搜索属 性对顺序存取存储单元的数据执行搜索操作,和响应于搜索操作的执 行经通信信道接口将搜索结果数据提供给主机数据处理系统。根据本发明的第二实施例,所接收的搜索属性数指定最大搜索持 续时间,先前描述的搜索模块被配置为在短于或等于最大搜索持续时 间的时间段内执行搜索操作。根据本发明的第三实施例,所接收的搜索属性数据指定逻辑块的 最大数量,使用多个逻辑块存储先前描述的顺序存取存储单元的数 据。在所描述的实施例中,搜索模块被配置为对少于或等于逻辑块的 最大数量的多个逻辑块中的若干逻辑块执行先前描述的搜索操作。根据本发明的第四实施例,所提供的搜索结果数据包括指定先前 描述的多个逻辑块中的某个逻辑块的数据。根据本发明的第五实施例,所接收的搜索属性数据指定用户选定 的搜索属性。在所描述的实施例中,搜索模块被配置为使用用户选定 的搜索属性和至少一个缺省搜索属性执行先前描述的搜索操作。根据本发明的第六实施例,所接收的搜索属性数据指定搜索项目 和顺序搜索类型,先前描述的搜索操作与该顺序存取存储单元数据内 的当前逻辑位置关联。在所描述的实施例中,搜索模块被配置为提供数据,所述数据指定搜索项目在先前描述的顺序存取存储单元数据内 的出现,其中该搜索项目的出现与所描述的当前逻辑位置顺序相邻。 根据本发明的第七实施例,所接收的搜索属性数据指定搜索项目 和摘要搜索类型。在所描述的实施例中,配置该搜索模块以提供数据, 其指定搜索项目在先前描述的顺序存取存储单元数据内的一次或多 次出现。根据本发明的第八实施例,所接收的搜索属性数据还指定搜索结 果的最大数量。在所描述的实施例中,搜索模块被配置为提供数据, 所述数据指定搜索项目在先前描述的顺序存取存储单元数据内的出 现次数,此次数少于或等于搜索结果的最大数量。根据本发明的第九实施例,所接收的搜索属性数据指定搜索项 目,先前描述的搜索操作包括被动搜索操作。在所描述的实施例中, 搜索模块被配置为响应于接收到对先前描述的顺序存取存储单元执 行输入/输出操作的请求来执行被动搜索操作,其还被配置为提供第一 数据和第二数据,所述第一数据指定搜索项目在先前描述的顺序存取存储单元数据内的出现,所述第二数据指定对执行输入/输出操作请求 的响应。根据本发明的第十实施例,先前描述的数据存储子系统还包括緩 冲器存储单元,以响应于接收到先前描述的执行输入/输出操作的请 求,存储先前描述的顺序存取存储单元的一部分数据。在所描述的实 施例中,搜索模块被配置为对在緩冲器存储单元内存储的先前描述的 顺序存取存储单元的该部分数据执行先前描述的被动搜索操作。根据本发明的第十一实施例,先前描述的搜索模块被配置为响应 于接收到对先前描述的顺序存取存储单元的数据执行主动搜索操作 的请求,执行主动搜索操作。根据本发明的第十二实施例,先前描述的搜索模块包括硬件处理 单元。在所描述的实施例中,搜索模块被配置为使用硬件处理单元对 先前描述的顺序存取存储单元的数据执行主要搜索操作,并将搜索结 果数据提供给先前描述的主机数据处理系统内的搜索模块软件,其中该搜索模块软件被配置为使用搜索结果数据执行辅助搜索操作。在本发明的又一个实施例中,提供一种方法,其包括呈现数据存 储子系统搜索用户接口,和经该数据存储子系统搜索用户接口从用户 接收搜索属性数据。在所描述的实施例中,将所接收的搜索属性数据 提供给数据包括搜索模块和顺序存取存储单元的存储子系统。所描述 的实施例还包括响应于将搜索属性数据提供给数据存储子系统,接收 来自数据存储子系统的搜索结果数据。虽然在此在本发明一个或多个实施例的描述中使用术语"用户,,, 但是在此使用的"用户,,将不限制于实际人员。相反,在本说明书中的 术语"用户"将指能够请求、发出、控制或者消费或使用搜索操作结果 的任意逻辑或物理实体。因此,在本发明的各种实施例中,"用户"可 以包括操作员、与这样的操作员关联的证书或标识、主机或系统应用 程序、操作系统单元等。上文是概述,因而必然包含对细节的简化、概括和省略;因此, 本领域的技术人员将认识到此概述仅仅是说明性的,而不将以任何方 式进行限制。如本领域的技术人员还将显而易见的,可以以多种方式 实现在此公开的操作,包括用软件、硬件、(例如ASIC和/或专用电 子电路)或者包括软件和硬件的组合来实现。可以在不脱离本发明及 其更宽范围的情况下进行所述的改变和修改。在下面阐述的非限制的 详细描述中,如仅由权利要求书定义的本发明其它方面、创造特征和 优点将变得显而易见。
通过参考附图,可以更好地理解本发明,其诸多特征和优点对于 本领域的技术人员来说是显而易见的,在附图中图1图示根据本发明一个实施例的包括数据存储子系统的数据 存储网络的高层方框图;图2图示根据本发明一个或多个实施例的数据处理系统;图3图示根据本发明一个实施例的数据存储子系统;图4图示根据本发明一个实施例的数据存储子系统搜索处理的 高层流程图;和图5图示根据本发明一个实施例的主机数据存储系统搜索处理 的高层流程图。在不同的附图中使用相同的参考标记表示类似或相同的项目。
具体实施方式
下面阐述用于执行在此描述的一个或多个系统、设备和/或过程 的至少最佳预期模式的详细描述。本描述将是说明性的,不应当视为 限制。在下文的详细描述中,阐述诸如特定方法顺序、结构、单元和连 接的诸多具体细节。然而,将理解不需要使用这些和其它具体细节以 实现本发明的实施例。在其它的情况下,省略或者未详细描述公知的 结构、单元或连接,从而避免不必要地模糊本描述。在本说明书中提到"一个实施例"、"实施例"或者"多个实施例,, 是指结合实施例描述的特定特征、结构或特性包含在本发明的至少一 个实施例中。在本说明书中各个位置出现这种短语不必全部指同 一实 施例,也不是与其它实施例相互排斥的分立或者替代实施例。而且, 描述了各种特征,所述特征可能由一些实施例体现而不由其它实施例 体现。类似地,描述各种要求,所述要求可能是一些实施例的要求, 而不是其它实施例的要求。本发明的实施例提供用于在如由纽约Armonk的国际商业机器 公司提供的3592 Enterprise Tape System等顺序存取数据存储子系统 中执行搜索操作的系统和方法。其它的顺序存取数据存储子系统可以 包括包含逻辑或物理顺序存取存储单元的分级存储管理系统 (HSM)、如同样由国际商业机器公司提供的3494虚拟磁带服务器 的虛拟磁带存储子系统和/或其它的基于线性、隐含地址(例如顺序) 的存储单元或设备。这些实施例提供一种接口、方法和存储子系统, 其允许逐个记录地在主机数据处理系统上对在包含特定数据内容的远程顺序(例如磁带)数据存储单元内的数据记录执行搜索,而不要 求主机请求(例如读取)和/或处理(例如搜索或解析)数据内容。因 此,与常规的系统和方法相比,节省了主机数据处理系统资源(例如 处理器周期、存储器等)以及主机数据处理系统至数据存储子系统通 信信道带宽,并提高了执行搜索操作的整体速度。例如,使用一个或 多个所描述的系统和方法实施例,将执行涉及一个或多个搜索操作的顺序存取数据处理需要的时间从54小时降低到7.5小时。根据本发明的一个实施例,提供一种数据存储子系统。该数据存 储子系统包括主要用于提供持久数据存储和/或存取目的的任意系统 或装置。数据存储子系统可以包括任意数量的存储资源,包括一个或 多个单个(例如单个磁盘驱动器、磁带驱动器等)和/或聚集(例如磁 盘或磁带阵列系统、机器人磁带库、文件编档器、文件编档器服务器 等)存储单元或设备,以及任意相关的存储控制器、适配器、接口、 控制软件等。在所描述的实施例中,提供一种数据存储子系统,其包 括至少一个搜索模块和通信信道接口 ,所述通信信道接口通过通信信 道(例如ESCON、 FICON、光纤通道、SCSI等)将数据存储子系统 通信地耦合到主机数据处理系统。在所描述的实施例中,搜索模块被配置为通过通信信道接口从主 机数据处理系统接收搜索属性数据(其指定搜索属性),还被配置为 使用搜索属性对顺序(例如磁带)存储单元的数据执行搜索操作,和 响应于执行搜索操作,通过通信信道接口将搜索结果数据提供给主机 数据处理系统。在一个实施例中,该搜索模块包括用于提供数据流控 制和管理的专用硬件处理单元(例如专用集成电路或"ASIC")。所描述的搜索模块可以实施在如IBM TotalStorage Enterprise Tape Controller 3592 Model J70等数据存储子系统的分立存储控制 器设备内,或者与如同样由国际商业机器公司提供的IBM TotalStorage Enterprise Tape Drive 3592等存储单元或其设备整体提 供。类似地,可以将搜索模块实施为如先前描述的离散物理单元(例 如数据流处理模块或单元),或者实施为合并在存储控制器或单元的现有控制单元/控制器内的功能。在所描述的实施例中,搜索属性数据,因此还有搜索属性,可以数据。一例如,在一个实施例中:搜索属性指定一个或多个搜索项目(即将要搜索的实际数据)、 一个或多个搜索项目格式(例如ASCII数据 格式、EBCDIC数据格式、二进制数据格式等)和/或搜索项目运算符, 从而形成将在搜索操作中使用的搜索项目表达式。在一个或多个其它 实施例中,搜索属性数据可以指定一个或多个"限制条件"类型搜索属 性,其指定可以如何限制搜索操作或者根据哪一个"限制条件"类型搜 索属性限制搜索操作。使用"限制条件,,类型搜索属性,可以以多种方式中的任一方式限 制搜索操作。根据一种示例实施例,指定最大搜索持续时间或"超时" (例如30分钟)搜索属性。在所描述的实施例中,在短于或等于所 指定的最大搜索持续时间的时间段内执行搜索操作。在另一个实施例 中,可以指定搜索属性,其指示将要使用搜索操作搜索的顺序存取存 储单元的数据量(例如比特、字节、词、区域、串、文件、记录、块、 页的数量等)。在所描述的实施例中,对等于或少于由相应搜索属性 指定的数据量的一定量数据执行搜索操作。例如,可以将搜索操作限 制为在逻辑或物理上与要搜索的数据中与搜索请求接收、启动等关联 的位置(例如"当前"逻辑块或数据位置)邻近的数据段。使用此"限制条件,,搜索属性,在此描述的接口或数据存储子系统 配备有可以控制搜索操作持续时间的机制。在另一个实施例中,提供 替代的搜索持续时间控制机制,其中定期地挂起每个所请求的搜索操 作,为请求用户提供确定所请求搜索的状态或进展(如果有的话)的 机会,并指示是否应当继续该搜索操作。在结合不能提供完美技术以 便一旦已经开始或请求命令就中断和/或停止数据存储子系统或存储 单元的操作的技术使用时,如上所述的这种机制特别有用。在基于 SCSI的数据存储子系统中没有这种机制的情况下,例如,所请求的 搜索操作可能在很长的时间段内(例如数小时甚至数天)一直执行,而不生成有用的结果数据和/或搜索操作本身已经变得微不足道。在本发明的 一个实施例中,只要达到/检测到任意限制条件搜索 属性,则结束或修改搜索操作,使得所指定的其它限制条件搜索属性 (如果有的话)不起作用。例如,如果达到将要搜索的搜索属性指定 数据量的最后逻辑块,则可以将搜索操作执行短于指定的最大搜索持 续时间。而且,出于多种其它原因中的任一原因,可以使搜索属性指 定的限制条件变得不起作用(例如, 一旦将要搜索整个顺序存取存储 单元的最后逻辑块,而不管指定的任意最大数量逻辑块)。在本发明的其它实施例中,可以使用搜索属性和/或搜索属性数 据指定将要如何执行搜索操作的其它方面(例如执行搜索的"类型")。 例如,在本发明的一个实施例中,可以提供搜索属性,其表示将要执 行顺序搜索类型和摘要搜索类型中的哪一个。在顺序或"位置"搜索操 作中,在其相对于"当前"逻辑块或者在要搜索的数据内与搜索请求的 接收、启动等相关的数据位置的位置的上下文中请求搜索结果。例如, 可以请求搜索以定位指定搜索项目的"下一次,,出现或"下三次"出现。 类似地,可以请求搜索以定位指定搜索项目的紧邻在前出现或者"前 一次,,出现。因此,应当理解可以通过将要执行的搜索类型指定"定向,, 搜索属性。可替代地,可以使用附加或替代搜索属性单独地指定规定 这样的搜索方向的数据。根据一个实施例,提供顺序搜索类型,作为 对结合数据存储子系统或数据存储单元(其中用户指定要在顺序存取存储单元中提前(advance)的多个逻辑块,直到达到一个或多个指 定搜索项目和/或表达式为止)使用的常规"空间"命令的修改。相反地,在摘要或"匹配列表,,类型搜索操作中,请求搜索结果, 而不考虑它们相对于"当前,,逻辑块或数据位置的相对位置,在所描述 的搜索类型中,呈现了 "匹配,,指定搜索项目或表达式的搜索结果摘 要。可以顺序地呈现这些结果,开始于在将要搜索的顺序存取存储单 元数据内的第一搜索项目或表达式"匹配",或者可以根据若干准则中 的任一准则(例如执行"模糊,,搜索操作的匹配精确度、搜索结果"排 列,,等)予以组织。如在此将进一步描述的,可以呈现"匹配"指定搜索项目或表达式的所有搜索结果,或者可替代地,可以减少所呈现的 搜索结果数量。在本发明的又一个实施例中,提供"搜索类型"搜索属性,其指示 将要执行被动搜索操作和主动搜索操作中的哪一种操作。根据本发明 一个实施例的被动或"被动执行"搜索操作是结合另一操作的执行而 执行的搜索操作,所述另一搮作例如是主动或明确请求(以及分离和不同的)输入/输出(1/0)操作。在被动搜索操作执行之前,用户指定一个或多个搜索项目或表达式。此后,响应于执行非相关i/o或其它操作(例如读或写)的请求,执行搜索操作,并且结合对该请求的 响应(如果有的话)提供搜索结果数据。根据一个实施例,结合HSM"迁移"或者迁移后"审计"功能(其 中从直接存取硬盘驱动器存储单元向一个或多个顺序(例如磁带)数 据存储单元存储(例如写入、复制或转移)数据并随后验证),执行 被动搜索操作。在所描述的实施例中,搜索已知的记录标签以识别已 经写入数据的每个文件的位置。随后,为了验证目的,可以比较在顺 序数据存储单元上每个"带标签,,文件位置上存储的数据与从磁盘存 储器迁移的数据。在本发明的替代实施例中,可以仅对I/O操作的实际数据(例如 读出或写入的特定数据字)执行被动搜索,或者可替代地,在使用高 速緩存或者空间位置类型(例如向前读取)緩冲器时,可以对与这种 I/O操作数据逻辑或物理相邻地存储并且借助于所请求的I/O操作和 所描述的緩冲器是可存取的(例如与将要读取的数据一起緩存的)数 据执行被动搜索操作。相反地,主动搜索操作是响应于用户的明确或 主动搜索请求(例如通过数据存储子系统搜索用户接口进行或启动 的)执行的搜索操作。可以通过多种形式(例如修改现有命令、生成 新数据存储子系统命令、诊断功能等)中的任一种形式实施这样的主 动搜索操作请求。一旦已经根据一个或多个用户指定的搜索属性执行了搜索操作, 则可以提供搜索结果数据。如在此描述的搜索结果数据可以包括与搜索操作结果相关的或者表示搜索操作结果的任何数据。根据本发明的 一个实施例,在记录(即逻辑块)或者更高粒度(例如范围、词、字 节等)等级上执行搜索操作。在一个实施例中,将搜索结果数据提供 为指定在将要搜索的数据内从中识别出指定的搜索项目或表达式的 特定逻辑块的数据。搜索结果数据可以附加地或替代地包括进一步识 别或指定搜索结果、命中和/或搜索项目/表达式出现的其它数据。例 如,在一个实施例中,可以提供或指定搜索结果编号或标识符。在本 发明的另 一个实施例中,搜索结果数据可以包括含有搜索项目或表达 式出现的要搜索数据的摘录,以提供搜索结果上下文。如先前所述,可以使用指示将要返回和/或呈现的搜索结果的最 大数量的搜索属性数据来指定搜索属性。可以将这样的搜索属性直接 应用于搜索操作(即, 一旦识别出指定数量的搜索结果,则导致停止 搜索操作)和/或搜索结果数据的提供(即,导致将大量所识别搜索结 果中指定数量的结果提供/呈现给用户)。在将搜索结果子集提供为搜 索结果数据的情况下,可以根据若干准则(例如顺序、搜索结果匹配 精确度、相关性等)中的任一准则选择将要呈现的搜索结果。根据又一个实施例,可以作为分支过程的一部分提供搜索结果数 据。在所描述的实施例中,在顺序存取数据存储单元中本地和/或对顺 序存取数据子系统以本地方式执行第 一或"主要"搜索操作,从而使得 生成搜索结果数据并将其提供给物理远程主机数据处理系统。此后, 在所描述的实施例中,对所接收的搜索结果数据在主机数据处理系统 以本地方式执行第二或"扩展"搜索操作。在一个实施例中,通过响应 于接收到搜索操作请求自动地精简或修改用户指定的搜索项目或表 达式以配置所描述的主要搜索操作、以及生成指定辅助搜索操作定义 的数据并将此数据提供给主机数据处理系统应用,来执行这样的分支 搜索处理。使用所描述的分支搜索处理,可以使用专用硬件(例如硬件处理 单元搜索模块)执行粗粒度主要搜索操作,从而支持主机数据处理系 统软件根据需要执行精确粒度辅助搜索操作,从而降低搜索模块硬件和数据存储子系统复杂性,同时支持使用某一主机数据处理系统功能 执行更复杂搜索操作的能力,并与常规存储系统相比降低在主机数据 存储系统资源上的负担。根据本发明的另一个实施例,结合被动或主动搜索操作请求提供 搜索属性数据,所述请求包括一个或多个用户选择的搜索属性或参数 以及元数据,所述元数据表示多个搜索属性中的哪些搜索属性已经被 用户选择和指定,以及多个搜索属性中的哪些属性将与预先确定的缺 省搜索属性值一起使用或者予以忽略。在所描述的实施例中,通过使性数据(对应于已经、如此识别的那些搜索属性)配置搜索操作,来执 行搜索操作。根据本发明的一个实施例,元数据包括多个"应用"(apply)比特,分别对应于多个潜在搜索属性之一。如果与搜索属性关联或者与其对应的应用比特存储第一预先确 定的数值(例如具有逻辑值"l,,或者是"设置"),则将搜索属性视为 是用户选定的,该属性的用户指定数值是从所接收的搜索属性数据确 定的,并在执行一个或多个搜索操作时"应用"或使用。相反地,如果 与搜索属性关联或者与其对应的应用比特存储第二预先确定的数值 (例如具有逻辑值"O"或者是"清除"),则搜索属性尚未被用户选定, 并且"应用"或使用预先确定的缺省搜索属性值。除了简化基本或一般执行的搜索操作的配置,同时便于使用所有 可用的搜索属性配置更复杂或专用的搜索之外,使用应用比特或其它 缺省搜索属性机制可具有诸多有用益处。例如,由于不需要在主机和 存储器之间传送已知的搜索属性值,降低了主机数据处理系统至数据 存储子系统通信信道带宽利用。而且,除非相应的元数据(例如应用 比特)指示期望搜索属性值修改在数据存储子系统上传播或应用,无 意中的搜索属性值修改不会在数据存储子系统上传播或应用,因此可 以提高所使用的搜索属性值的精确度。类似地,可以初始化搜索属性 数据以包括缺省搜索属性数值,从而元数据的无意中的修改通常不会 导致在搜索操作过程中应用的实际搜索属性的修改,除非在搜索属性数据内进行了相应的无意中的改变。虽然已经为了说明的目的在此描述了多个特定的示例搜索属性, 但是可以在替代实施例中使用多种其它搜索属性和/或搜索属性数据 格式中的任一种。例如在一种替代实施例中,采用一个搜索属性,其 指定要搜索的每个逻辑块中开始进行每个搜索操作的逻辑块或记录 偏移(例如偏移字节数量)。类似地,利用指定逻辑块长度(例如以 字节为单位)的搜索属性(其中使用实际逻辑块长度和搜索属性指示数值中的较小者并使用预先确定的数值(例如逻辑值"o,,)来指示生成块(spanning block)),可以提供逻辑块或"记录"大小灵活性。 在另 一个实施例中,可以使用搜索属性数据指示如何在搜索操作过程 中传播非数据(例如文件标记、磁带标记等)。图1图示根据本发明一个实施例的包括数据存储子系统的数据 存储网络的高层方框图。在所图示的数据存储子系统100内,将主机 数据处理系统102通过如图所示的通信信道106 (例如ESCON、 FICON、光纤通道、SCSI等)耦合到数据存储子系统104 (例如磁带 数据存储子系统)。在图l的实施例中,主机数据处理系统102包括 数据存储子系统搜索用户接口 108,用于从用户接收搜索属性数据, 将所接收的搜索属性数据提供给数据存储子系统104,从数据存储子 系统104接收搜索结果数据和将所接收的结果数据提供给用户。所图示实施例的数据存储子系统104包括顺序(例如磁带)访问 存储单元114,其包括通过如图所示的存储控制器110耦合到主机数 据处理系统102的搜索模块116。在所图示的实施例中,使用搜索模 块116经通信信道106和存储控制器110从主机数据处理系统102接 收指定至少一个搜索属性的搜索属性数据,使用一个或多个指定的搜 索属性对顺序存取存储单元114的数据执行搜索操作,和作为响应经 通信信道106和存储控制器110将搜索结果数据提供给主机数据处理 系统102。在一个实施例中,对如顺序存取存储单元114的可拆除数 据存储磁带(未图示)等顺序存取数据存储介质执行所描i^的搜索操 作。虽然在图1的实施例中仅描述了单个顺序存取存储单元114 (例 如磁带驱动器),在其它实施例中,可以在数据存储子系统104内提 供任意数量的随机/直接存取和/或顺序存取存储单元。可以使用存储 控制器110提供和/或控制这种存储单元的操作配合。在图1的图示实 施例中,存储控制器110包括搜索模块112,类似于先前针对顺序存 取存储单元114所描述的,还可以包括用于处理关联存储单元之间I/O 请求的处理器、定序器或其它处理单元或模块(未图示)。在提供包 括单个存储单元的数据存储子系统104的实施例中,可以从这样的数据存储子系统中省去存储控制器110 (如果不是必需的话)。而且, 虽然图示为 一部分数据存储子系统104,但是也可以将存储控制器110 提供为外部单元或设备。尽管搜索模块112和116可以包括软件、硬件或其组合,在本发 明的一个实施例中,搜索模块112包括软件单元,搜索模块116包括 配合使用以执行搜索操作的硬件单元(例如硬件处理单元)。在另一 个实施例中,例如,根据用户选择或检测到一个或多个预定条件,可 以替代地使用搜索模块112和116。在又一个实施例中,可以在存储 控制器IIO、顺序存取存储单元114内提供单个搜索模块,或者将其 作为独立的单元或设备。图2图示根据本发明一个或多个实施例的数据处理系统。例如, 如图2所示的数据处理系统200可以图示如在此所述的主机数据处理 系统。可替代地和/或附加地,可以使用类似于图2所示的数据处理系 统实现数据存储子系统或其组件。虽然针对图2的数据处理系统200 已经图示了单元的特定数量和配置,应当理解本发明的实施例并不限 制于具有任意特定数量、类型和配置的组件的数据处理系统,因此可 以包含多种数据处理系统类型、结构和形式因素(例如网络单元或节 点、个人计算机、工作站、服务器等)。所图示实施例的数据处理系 统200包括使用总线206或其它通信介质耦合到存储器204的处理器 202。存储器204可以包括多种系统存储器型存储单元中的任一种, 例如随机存取存储器(RAM)、只读存储器(ROM)、闪存和高速緩存。在图2所图示的实施例中,存储器204包括如在此所述的数据 存储子系统搜索用户接口 205。所图示的实施例的数据处理系统200还包括耦合到总线206以将 一个或多个I/0设备(未图示)通信地耦合到数据处理系统200的输 入/输出(I/0)接口 208。示例的1/0设备可以包括传统的I/0设备, 例如键盘、显示器、打印机、光标控制设备(例如跟踪球、鼠标、书 写板等)、扬声器和麦克风;数据存储单元和/或存储子系统,例如和 /或包括固定或"硬"磁介质存储设备、光存储设备(例如CD或DVD ROM)、固态存储单元(例如USB、安全数字SDTM、 CompactFlash 、 MMC等)、诸如软盘和磁带等可拆除磁介质存储单元或者其它存储 单元或介质;和有线或无线通信设备或介质(例如经调制解调器或直 接网络接口访问的通信网络)。本发明的实施例可以包括在此进一步描述的软件、信息处理硬件 和各种处理操作。可以将本发明的特征和处理操作实施为在诸如存储 器204、存储单元、通信设备或介质等机器可读介质内实施的可执行 指令。机器可读介质可以包括以由机器(例如数据处理系统200)可读 的形式提供(即存储和/或发送)数据的任意机制。例如,机器可读介 质包括但是并不限制于随机存取存储器(RAM)、只读存储器 (ROM)、磁存储介质、光存储介质、闪存设备、电子、光和/或声 音传播信号(例如载波、红外信号、数字信号等)等。可以使用所描述的可执行指令使通过指令编程的通用或专用处 理器(如处理器202等)执行本发明的操作、方法或处理。可替代地, 通过包含用于执行操作的硬连线逻辑的专用硬件组件,或者通过编程 数据处理組件和定制硬件組件的任意組合,可以执行本发明的特征或操作。虽然已经在完全功能的数据处理系统的环境下描述了本发明的 实施例,但是本领域的技术人员将理解这些实施例能够作为程序产品 以各种形式分配并能够同等地应用,而与用于执行该分配的机器可读或者信号承载介质的特定类型无关。信号承载介质的例子包括诸如软盘、磁带和CD-ROM等可记录介质、诸如数字和模拟通信链路等传 输类型介质以及介质存储和分配系统。可以使用用于执行某些操作或 任务的软件模块类似地实施本发明的实施例。所描述的软件模块可以 包括脚本、组、库或其它可执行文件,和可以存储在机器或计算机可 读介质上。因而,可以将模块存储在计算机系统存储器内,从而配置 数据处理或计算机系统执行软件模块的一个或多个功能。可以使用在 此讨论的各种机器或计算机可读存储介质存储根据本发明实施例的 模块。图3图示根据本发明实施例的数据存储子系统。在图3的实施例 中,数据存储子系统300包括包含顺序存取存储介质(例如数据存 储磁带盒302 )的顺序存取存储单元、通过通信信道(未图示)将数 据存储子系统300通信地耦合到主机数据处理系统的通信信道接口 (例如主机数据处理系统接口 304)和搜索模块306。在图3所图示 的实施例中,配置搜索模块306以通过主机数据处理系统接口 304从 主机数据处理系统接收指定至少一个搜索属性的搜索属性数据,以利 用所接收的搜索属性对顺序存取存储单元数据执行搜索操作,并作为 响应通过主机数据处理系统接口 304将搜索结果数据提供给主机数据 处理系统。所图示实施例的数据存储子系统300还包括利用如图所示的介 质传输巻轴312和314和一个或多个介质传输马达316在磁带存取(例 如读/写)头310附近传送的磁带数据存储介质308 (例如磁带)。在 所图示的实施例中,配置磁带访问头310以相对于磁带数据存储介质 308读取数据和写入数据,并在緩冲器318 (例如一个或多个"向前读 取"或备份緩冲器)内临时存储或"备份"(stage)这种数据。在图3 所示的实施例中,数据存储子系统300还包括控制器或控制单元320。 在一个实施例中,控制单元320通过发给如图所示的一个或多个主机 数据处理系统接口 304、搜索模块306、緩冲器318和/或介质传输马 达316的控制信号控制和管理数据流、格式化和数据存储子系统操作。在另一个实施例中,可以将由搜索模块306提供的功能并入或者结合 到控制单元320中。图4图示根据本发明实施例的数据存储子系统搜索处理的高层 流程图。在所图示的实施例中,首先从主机数据处理系统接收搜索属 性数据(处理块402)。此后,在所接收的搜索属性数据中并使用所 述所接收的搜索属性数据来识别一个或多个用户指定的搜索属性(处 理块404)。 一旦识别出,则利用每个用户指定的搜索属性(以及在 一个实施例中的一个或多个缺省搜索属性)执行在此所述的一个或多 个搜索操作(处理块406)。当执行所请求的搜索操作时,确定是否已经完成所请求的操作 (处理块408)。在所图示的实施例中,出于多种原因中的任一原因, 可以将搜索操作表示为完成。例如,在提供所请求的搜索结果数据的 情况下(例如在顺序存取数据存储单元的关联数据内识别出"下一个" 指定搜索项目的出现),达到/检测到"限制条件"类型搜索属性,或者 在将要搜索的顺序存取存储单元内未识别出指定搜索项目的出现。一 旦确定所请求的搜索操作已经完成,则将搜索结果数据(如果有的话) 提供给相关主机数据处理系统(处理块410)。图5图示根据本发明实施例的主机数据处理系统搜索处理的高 层流程图。在所图示处理实施例中,首先将数据存储子系统搜索用户 接口呈现给主机数据处理系统用户(处理块502)。此后,通过所描 述的用户接口接收一个或多个用户选择和指定的搜索属性(处理块 504),并使用所指定的属性生成搜索属性数据(处理块506)。 一旦 生成,就将所描述的搜索属性数据(和在至少一个实施例中,表示已 经使用搜索属性数据由用户指定了多个搜索属性中的哪些搜索属性 的元数据)提供给数据存储子系统的搜索模块(处理块508)。此后,在所图示的处理实施例中,从数据存储子系统接收指定搜 索结果和/或搜索项目出现的搜索结果数据(处理块510)。然后,通 过如图所示的所述用户接口呈现搜索结果数据的所接收搜索结果。虽然已经图示和描述了本发明的具体实施例,但是对于本领域的技术人员来说,根据在此的教导,在不脱离本发明及其更宽范围的情 况下,可以进行改变和修改,因此,权利要求书将在其保护范围内包 含在本发明的实际精神和范围内的所有这种改变和修改。因此,本发明将仅仅限制于权利要求的保护范围,全面考虑所有 方面中的等同物。
权利要求
1.一种数据存储子系统,包括通信信道接口,用于通过通信信道将所述数据存储子系统通信地耦合到主机数据处理系统;和搜索模块,用于通过所述通信信道接口从所述主机数据处理系统接收搜索属性数据,其中所述搜索属性数据指定搜索属性,以使用所述搜索属性对顺序存取存储单元的数据执行搜索操作,并响应于所述搜索操作的执行,通过所述通信信道接口将搜索结果数据提供给所述主机数据处理系统。
2. 权利要求l的数据存储子系统,其中 所述搜索属性数据指定最大搜索持续时间;和 所述搜索模块被配置为在短于或等于所述最大搜索持续时间的时间段中执行所述搜索操作。
3. 权利要求l的数据存储子系统,其中 所述搜索属性数据指定逻辑块的最大数量;使用多个逻辑块存储所述顺序存取存储单元的所述数据;和 所述搜索模块被配置为对所述多个逻辑块中少于或等于所述逻 辑块的最大数量的若干逻辑块执行所述搜索操作。
4. 权利要求3的数据存储子系统,其中 所述搜索结果数据包括指定所述多个逻辑块中一个逻辑块的数据。
5. 权利要求l的数据存储子系统,其中 所述搜索属性数据指定用户选定的搜索属性;和 所述搜索模块被配置为使用所述用户选定的搜索属性和至少一个缺省搜索属性执行所述搜索操作。
6. 权利要求l的数据存储子系统,其中 所述搜索属性数据指定搜索项目和顺序搜索类型,所述搜索操作与所述顺序存取存储单元的所述数据内的当前逻辑位置关联,所述搜索模块被配置为提供指定所述搜索项目在所述顺序存取 存储单元的所述数据内的出现的数据,和所述搜索项目的所述出现与所述当前逻辑位置顺序相邻。
7. 权利要求l的数据存储子系统,其中 所述搜索属性数据指定搜索项目和摘要搜索类型,和 所述搜索模块被配置为提供指定所述搜索项目在所述顺序存取存储单元的所迷数据内的一次或多次出现的数据。
8. 权利要求7的数据存储子系统,其中 所述搜索属性数据还指定搜索结果的最大数量,和 所述搜索模块被配置为提供指定所述搜索项目在所述顺序存取存储单元的所述数据内的出现次数的数据,所述次数少于或等于所述 搜索结果的最大数量。
9. 权利要求l的数据存储子系统,其中 所述搜索属性数据指定搜索项目, 所述搜索操作包括被动搜索操作;和所述搜索模块被配置为响应于接收到对所述顺序存取存储单元 执行输入/输出操作的请求,执行所述被动搜索操作,并进一步被配置 为提供第一数据和第二数据,所述第一数据指定所述搜索项目在所述 顺序存取存储单元的所述数据内的出现,所述第二数据指定对执行所 述输入/输出操作的所述请求的响应。
10.述输入/输出操作的所述请求的所述接收,存储所述顺序存取存储单元 的一部分所述数据,和所述搜索模块被配置为对在所述緩冲器存储单元内存储的所述 顺序存取存储单元的所述一部分所述数据执行所述被动搜索操作。
11. 权利要求l的数据存储子系统,其中 所述搜索模块被配置为响应于接收到对所述顺序存取存储单元的所述数据执行所述主动搜索操作的请求,执行主动搜索操作。
12. 权利要求l的数据存储子系统,其中 所述搜索模块包括硬件处理单元,所述搜索模块被配置为使用所述硬件处理单元对所述顺序存取 存储单元的所述数据执行主要搜索操作,并将所述搜索结果数据提供 给所述主机数据处理系统内的搜索模块软件,所述搜索模块软件被配置为使用所述搜索结果数据执行辅助搜 索操作。
13. —种方法,包括在数据存储子系统上从主机数据处理系统接收搜索属性数据,其中所述搜索属性数据指定搜索属性,和所述数据存储子系统包括搜索模块和顺序存取存储单元; 响应于接收到所述搜索属性数据,使用所述搜索模块执行搜索操作;其中所述执行包括使用所述搜索属性对所述顺序存取存储单元的数据执行所述搜索操作;和响应于执行所述搜索操作,将搜索结果数据从所述数据存储子系 统提供给所述主机数据处理系统.
14. 权利要求13的方法,其中所述搜索属性数据指定最大搜索持续时间;和 执行所述搜索操作包括在短于或等于所迷最大搜索持续时间的 时间段中执行所述搜索操作。
15. 权利要求13的方法,其中所述搜索属性数据指定用户选定的搜索属性;和执行所述搜索操作包括使用所述用户选定的搜索属性和至少一 个缺省搜索属性执行所述搜索操作。
16. 权利要求13的方法,其中 所述搜索属性数据指定搜索项目和顺序搜索类型,辑位置关联,提供所述搜索结果数据包括提供指定所述搜索项目在所述顺序 存取存储单元的所述数据内的出现的数据,和所述搜索项目的所述出现与所述当前逻辑位置顺序相邻。
17. 权利要求13的方法,其中 所述搜索属性数据指定搜索项目, 所述数据存储子系统还包括緩冲器存储单元, 所述方法还包括响应于接收到对所述顺序存取存储单元执行输入/输出操作的请求,使得在所述緩冲器存储单元内存储所述顺序存取 存储单元的所述数据的一部分,执行所述搜索操作包括响应于执行所述输入/输出操作的所述请 求的所述接收,对在所述緩沖器存储单元内存储的所述顺序存取存储 单元的所述数据的所述部分执行被动搜索操作,和提供所述搜索结果数据包括提供第一数据和第二数据,所述第一 数据指定所述搜索项目在所述顺序存取存储单元的所述数据内的出 现,所述第二数据指定对执行所述输入/输出操作的所述请求的响应。
18. 权利要求13的方法,其中 所述搜索模块包括硬件处理单元,执行所述搜索操作包括使用所述硬件处理单元对所述顺序存取 存储单元的所述数据执行主要搜索操作,提供所述搜索结果数据包括将所述搜索结果数据提供给所述主 机数据处理系统内被配置为执行辅助搜索操作的搜索模块软件。
19. 一种设备,包括用于在数据存储子系统上从主机数据处理系统接收搜索属性数 据的装置,其中所述搜索属性数据指定搜索属性,和所述数据存储子系统包括搜索模块和顺序存取存储单元;用于响应于接收到所述搜索属性数据使用所述搜索模块执行搜索操作的装置;其中所述执行装置包括用于使用所述搜索属性对所述顺序存取存储单元的数据执行所 述搜索操作的装置;和用于响应于所述搜索操作的执行,将搜索结果数据从所述数据存 储子系统提供给所述主机数据处理系统的装置。
20. 权利要求19的设备,其中 所述搜索属性数据指定最大搜索持续时间;和 所述用于执行所述搜索操作的装置包括用于在短于或等于所述最大搜索持续时间的时间段内执行所述搜索操作的装置。
21. 权利要求19的设备,其中 所述搜索属性数据指定用户选定的搜索属性;和所述用于执行所述搜索操作的装置包括用于使用所述用户选定 的搜索属性和至少一个缺省搜索属性执行所述搜索操作的装置。
22. 权利要求19的设备,其中 所述搜索属性数据指定搜索项目和顺序搜索类型, 所述搜索操作与所述顺序存取存储单元的所述数据内的当前逻辑位置关联,所述用于提供所述搜索结果数据的装置包括用于提供指定所述 搜索项目在所述顺序存取存储单元的所述数据内的出现的数据的装 置,和所述搜索项目的所述出现与所述当前逻辑位置顺序相邻。
23. 权利要求19的设备,其中 所述搜索属性数据指定搜索项目, 所述数据存储子系统还包括緩沖器存储单元, 所述设备还包括用于响应于接收到对所述顺序存取存储单元执行输入/输出操作的请求,使得在所述緩沖器存储单元内存储所述顺序 存取存储单元的所述数据的一部分的装置,用于4^行所述搜索操作的装置包括用于响应于执行所述输入/输 出操作的所述请求的所述接收,对在所述緩沖器存储单元内存储的所置,和所述用于提供所述搜索结果数据的装置包括用于提供第一数据 和第二数据的装置,所述第一数据指定所述搜索项目在所述顺序存取存储单元的所述数据内的出现,所述第二数据指定对执行所述输入/ 输出操作的所述请求的响应。
24. 权利要求19的设备,其中 所述搜索模块包括硬件处理单元,所述用于执行所述搜索操作的装置包括用于使用所述硬件处理 单元对所述顺序存取存储单元的所述数据执行主要搜索操作的装置,所述提供所述搜索结果数据的装置包括用于将所述搜索结果数 据提供给所述主机数据处理系统内被配置为执行辅助搜索操作的搜 索模块软件的装置。
25. —种计算机可读介质,具有在其中实施的可由机器执行的多 个指令,其中当所述多个指令执行时使所述机器执行一种方法,该方法包括在数据存储子系统上从主机数据处理系统接收搜索属性数据,其中所述搜索属性数据指定搜索属性,和所述数据存储子系统包括搜索模块和顺序存取存储单元;响应于接收到所述搜索属性数据,使用所述搜索模块执行搜索操作;其中所述执行包括使用所述搜索属性对所述顺序存取存储单元的数据执行所述搜 索操作;和响应于执行所述搜索操作,将搜索结果数据从所述数据存储子系 统提供给所述主机数据处理系统。
26. 权利要求25的机器可读介质,其中 所述搜索属性数据指定最大搜索持续时间;和 执行所述搜索操作包括在短于或等于所述最大搜索持续时间的时间段中执行所述搜索操作。
27. 权利要求25的机器可读介质,其中 所述搜索属性数据指定用户选定的搜索属性;和 执行所述搜索操作包括使用所述用户选定的搜索属性和至少一个缺省搜索属性执行所述搜索操作。
28. 权利要求25的机器可读介质,其中 所述搜索属性数据指定搜索项目和顺序搜索类型, 所述搜索操作与所述顺序存取存储单元的所述数据内的当前逻辑位置关联,提供所述搜索结果数据包括提供指定所述搜索项目在所述顺序 存取存储单元的所述数据内的出现的数据,和所述搜索项目的所述出现与所述当前逻辑位置顺序相邻。
29. 权利要求25的机器可读介质,其中 所述搜索属性数据指定搜索项目, 所述数据存储子系统还包括緩冲器存储单元, 所述方法还包括响应于接收到对所述顺序存取存储单元执行输入/输出操作的请求,使得在所述緩沖器存储单元内存储所迷顺序存取 存储单元的所述数据的一部分,执行所述搜索操作包括响应于执行所述输入/输出操作的所述请 求的所述接收,对在所述緩冲器存储单元内存储的所述顺序存取存储 单元的所述数据的所述部分执行被动搜索操作,和提供所述搜索结果数据包括提供第一数据和第二数据,所述第一 数据指定所述搜索项目在所述顺序存取存储单元的所述数据内的出 现,所述第一数据指定对执行所述输入/输出操作的所述请求的响应。
30. 权利要求25的机器可读介质,其中 所述搜索模块包括硬件处理单元,执行所述搜索操作包括使用所述硬件处理单元对所述顺序存取 存储单元的所述数据执行主要搜索操作,提供所述搜索结果数据包括将所述搜索结果数据提供给所述主机数据处理系统内被配置为执行辅助搜索操作的搜索模块软件。
31. —种方法,包括在主机数据处理系统上呈现数据存储子系统搜索用户接口 ; 通过所述数据存储子系统搜索用户接口从用户接收搜索属性数据;将所述搜索属性数据提供给数据存储子系统,其中所述数据存储 子系统包括搜索模块和顺序存取存储单元;和响应于将所述搜索属性数据提供给所述数据存储子系统,从所述 数据存储子系统接收搜索结果数据。
32. 权利要求31的方法,其中接收搜索属性数据包括接收指定 最大搜索持续时间的数据。
33. 权利要求31的方法,其中接收搜索属性数据包括接收指定 将要搜索的逻辑块的最大数量的数据。
34. 权利要求31的方法,其中接收搜索属性数据包括接收指定 要通过所述数据存储子系统搜索用户接口提供的最大数量搜索结果 的数据。
35. 权利要求31的方法,其中 所述搜索模块包括硬件处理单元,所述搜索模块被配置为使用所述硬件处理单元对所述顺序存取 存储单元的数据执行主要搜索操作,和所述方法还包括在所述主机数据处理系统上使用搜索模块软件 对所述搜索结果执行辅助搜索操作。
全文摘要
公开了一种用于在顺序存取数据存储子系统中执行搜索操作的系统和方法。根据一个实施例,提供一种数据存储子系统,其包括搜索模块和通过通信信道将数据存储子系统通信地耦合到主机数据处理系统的通信信道接口。在所描述的实施例中,该搜索模块被配置为通过通信信道接口从主机数据处理系统接收搜索属性数据,其中该搜索属性数据指定搜索属性。该搜索模块被进一步配置为使用搜索属性对顺序存取存储单元的数据执行搜索操作,和响应于执行搜索操作,通过通信信道接口将搜索结果数据提供给主机数据处理系统。
文档编号G06F17/30GK101258493SQ200680032463
公开日2008年9月3日 申请日期2006年8月21日 优先权日2005年9月7日
发明者C·G·斯密斯, M·R·诺埃尔, P·M·格雷科, R·T·比斯顿 申请人:国际商业机器公司