首页> 中国专利> 在能够进行高速缓存的存储装置上进行高效顺序记录的系统和方法

在能够进行高速缓存的存储装置上进行高效顺序记录的系统和方法

摘要

一种在能够进行高速缓存的存储装置上高效顺序记录的计算机实施的方法可以包括1)识别具有高速缓存的一个存储装置;2)为顺序日志在该存储装置上分配空间;3)至少部分地基于指向该顺序日志的输入/输出负载来计算该顺序日志的一个目标大小;并且然后4)将顺序日志限制到对应于该目标大小的分配空间的一部分。在此还披露了不同的其他的方法、系统、以及计算机可读介质。

著录项

  • 公开/公告号CN103140839A

    专利类型发明专利

  • 公开/公告日2013-06-05

    原文格式PDF

  • 申请/专利权人 赛门铁克公司;

    申请/专利号CN201180039786.2

  • 申请日2011-07-22

  • 分类号G06F12/02;G06F3/06;G06F12/12;G06F11/34;G06F11/07;G06F12/08;

  • 代理机构中原信达知识产权代理有限责任公司;

  • 代理人周亚荣

  • 地址 美国加利福尼亚州

  • 入库时间 2024-02-19 19:50:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-03-16

    授权

    授权

  • 2013-07-31

    实质审查的生效 IPC(主分类):G06F12/02 申请日:20110722

    实质审查的生效

  • 2013-06-05

    公开

    公开

说明书

发明背景

一些应用可以出于各种目的向日志输出数据,例如安全执行具有最小延 时的事务、错误记录等。在很多情况中,这种日志可以采取顺序日志的形式。

顺序日志可以呈现多写少读的输入/输出模式,记录活动开始于分配空 间的起始处并继续顺序进行,直到日志到达分配空间的末尾并再次绕回到起 始处。不幸的是,当顺序日志保存在具有高速缓存前端的存储装置上时,这 种格式可能导致低效率。例如,为日志分配的磁盘空间不会锁定到高速缓存, 因为对日志的写操作可能在较大空间上顺序出现。这可能导致从磁盘而非高 速缓存提取数据。另外或可替代地,对日志的顺序写入可能触发频繁的高速 缓存清除,从而有可能影响对日志的写性能。而且,存储装置可能执行各种 不必要的高速缓存操作,不会考虑顺序日志所工作的环境。因此,本披露认 为需要在能够进行高速缓存的存储装置上进行高效顺序的记录。

发明概述

如以下更为详细说明的,本披露总体上涉及在能够进行高速缓存的 存储装置上进行高效顺序记录的多种系统及方法。在一个示例中,本文描 述的这些系统可以通过以下操作完成一项任务:1)识别具有高速缓存的一 个存储装置,2)为顺序日志在该存储装置上分配空间,3)至少部分地基于 指向该顺序日志的输入/输出负载来计算顺序日志的一个目标大小,并且然后 4)将顺序日志限制到对应于该目标大小的分配空间的一部分。

当为该顺序日志在存储装置上分配空间时,本文描述的系统可以为顺序 日志分配足够的空间以便在最大负载期间接纳所有写尝试。除了限制该顺序 日志的大小外,在一些示例中本文所述的系统可以1)至少部分地基于指向 该顺序日志的输入/输出负载来重新计算该顺序日志的目标大小,并且2)将 该顺序日志增加至该分配空间内的目标大小。在一些示例中,当该输入/输出 负载变化时本文描述的系统可以动态地计算目标大小。

该目标大小的计算可以包括各种信息。例如,该计算可以包括与顺序日 志的数据消耗有关的信息。在一些环境中,顺序日志可以用于一个节点集群。 在这些环境中,该计算可以包括1)识别对该输入/输出负载有贡献的该节点 集群以及2)基于该集群中每个节点对该输入/输出负载的贡献来计算该节点 的目标大小。

除了控制顺序日志的大小,本文描述的系统可以通过各种高速缓存感知 的干预措施来提高顺序记录的效率。这些措施可以包括1)将分配空间的一 部分锁定到该高速缓存上,2)配置该高速缓存忽略分配空间内的延伸部分, 该延伸部分不包含被配置为使用该顺序日志的应用程序的有效信息,和/或3) 防止该存储装置在第一次写入到顺序日志期间从该存储装置将一个页面提 取至该高速缓存。本文描述的系统还可以通过以下操作避免不需要的高速缓 存操作:1)识别对该顺序日志的可能进入,2)确定该可能进入已经存在于 该顺序日志内,并且然后3)阻止该可能进入再次进入该顺序日志。

如以下将要详细解释的,通过限制顺序日志的界限,本文描述的系统和 方法可以提高在其上保持顺序日志的存储装置的缓存性能。而且,通过知道 顺序日志和/或使用该顺序日志的应用做出缓存决定,本文描述的系统和方法 可以提高缓存性能。

来自上述任一个实施例的多种特征可以根据在此说明的通用原理 彼此相互结合使用。通过阅读以下的详细说明连同附图和权利要求,将 会更加全面地理解这些以及其他的实施例、特征、和优点。

附图简要说明

附图展示了多个示例性实施例并且是本说明书的一部分。这些附图 与以下的说明共同展现并解释了本披露的不同原理。

图1是一种在能够进行高速缓存的存储装置上进行高效顺序记录的 示例性系统的方框图。

图2是一种在能够进行高速缓存的存储装置上进行高效顺序记录的 示例性系统的方框图。

图3是一种在能够进行高速缓存的存储装置上进行高效顺序记录的 示例性方法的流程图。

图4是一种在能够进行高速缓存的存储装置上进行高效顺序记录的 示例性系统的方框图。

图5是一个示例性计算系统的方框图,该计算系统能够实施在此说 明和/或展示的这些实施例中的一个或多个。

图6是一种示例性计算网络的框图,该计算网络能够实施在此说明 和/或展示的这些实施例中的一个或多个。

贯穿这些附图,相同的参考字符以及描述表示相似的但并不一定完 全相同的要素。虽然在此说明的这些示例性实施例可容许进行不同的修 改以及多种替代形式,在此仍在附图中以举例的方式示出多个具体的实 施例并且对其进行了详细的说明。然而,在此说明的多个示例性实施例 无意限制于所披露的这些具体形式。相反,本披露涵盖了落入所附权利 要求范围内的所有修改形式、等效形式、以及替代方案。

示例性实施例的详细说明

以下将参见图1、2以及4提供在能够进行高速缓存的存储装置上进行 高效顺序记录的多种示例性系统的详细描述。还将结合图3提供相应的 计算机实施的方法的详细说明。另外,将分别结合图5和图6提供一种示 例性计算系统和网络架构的详细说明,它们能够实施在此描述的这些实 施例中的一个或多个。

图1是一种在能够进行高速缓存的存储装置上进行高效顺序记录的 示例性系统100的方框图。如此图中所示,示例性系统100可以包括用于 执行一项或多项任务的一个或多个模块102。例如,如以下将要更详细解 释的,示例性系统100可以包括被编程以识别具有高速缓存的存储装置的识 别模块104。示例性系统100还可以包括被编程为为顺序日志在存储装置上分 配空间的分配模块106。

另外,如以下将要更详细解释的,示例性系统100可以包括计算模块108, 该模块被编程为至少部分基于指向顺序日志的输入/输出负载来计算顺序日 志的目标大小。示例性系统还可以包括限制模块110,该模块被编程为将顺 序日志限制于对应于该目标大小的分配空间的一部分。尽管展示为多个分 离的元素,图1中的模块102中的一个或多个可以代表一个单一模块或应 用程序的多个部分。

在某些实施例中,图1中模块102中的一个或多个可以代表一个或多 个软件应用程序或程序,这些软件应用程序或程序在由计算装置执行时 可以使该计算装置执行一项或多项任务。例如,如以下将更为详细描述 的,模块102中的一个或多个可以代表在一个或多个计算装置上存储并 被配置为在其上运行的多个软件模块,如图2所示的这些装置(例如, 计算装置202和/或存储装置206)、图5中的计算系统510、和/或图6中的 示例性网络架构600的多个部分。图1中模块102的一个或多个还可以代 表被配置成执行一项或多项任务的一个或多个专用计算机的全部或一 些部分。

图1中的示例性系统100可以采用各种方式进行部署。例如,示例性 系统100的全部或一部分可以代表云计算或基于网络的环境的多个部 分,如图2所示的示例性系统200。云计算和基于网络的环境可以通过互 联网提供各种服务和应用程序。这些基于云的和基于网络的服务(例如, 软件即服务、平台即服务、基础设施即服务等)可以通过网络浏览器或 其他的远程接口进行访问。在此所述的不同功能可以通过远程桌面环境 或任何其他的基于云的或基于网络的计算环境来提供。

如图2中所示,系统200可以包括通过网络204与存储装置206进行通信的 计算系统202。在一个实施例中,如以下将更为详细描述的,计算系统202可 以包括图1的模块102(例如,识别模块104、分配模块106、计算模块108以 及限制模块110)。

在一个示例中,如以下更为详细描述的,模块102可以对计算机系统202 进行编程以1)识别具有高速缓存(例如,高速缓存208)的存储装置(例如, 存储装置206),2)为顺序日志(例如,顺序日志212)在该存储装置上分 配空间(例如,分配的空间210),3)至少部分地基于指向该顺序日志的输 入/输出负载(例如,由于应用程序216)来计算该顺序日志的一个目标大小 (例如,目标大小214),然后4)将该顺序日志限制到对应于该目标大小的 分配空间的一部分。

计算系统202通常代表能够读取计算机可执行指令的任意类型或形 式的计算装置。计算系统202的示例包括(但不限于)膝上型计算机、 桌上型计算机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播 放器、嵌入式系统、以上各项中的一项或多项的组合、图5中示例性计 算系统510、或任意其他适当的计算装置。

存储装置206通常代表能够利用缓存机制存储和/或检索数据的任意类 型或形式的计算装置。存储装置206的示例包括(但不限于)硬盘驱动器或 固态驱动器。

网络204通常代表能够协助通信或数据传输的任意介质或架构。网 络204的示例包括(但不限于):内部网、广域网(WAN)、局域网(LAN)、 存储区域网(SAN)、个人区域网(PAN)、互联网、电力线通信(PLC)、 蜂窝网络(例如GSM网络)、图6中的示例性网络架构600等。网络204 可以利用无线或有线连接来协助通信或数据传送。在一个实施例中,网 络204可以协助计算系统202和存储装置206之间的通信。

图3是一种在能够进行高速缓存的存储装置上进行高效顺序记录的 示例性计算机实施的方法300的流程图。图3中所示的步骤可以由任何适 合的计算机可执行代码和/或计算系统来执行。在一些实施例中,图3所 示的步骤可以由图1中的系统100和/或图2中系统200的组件中的一个或 多个来执行。

如图3所示,在步骤302本文描述的系统的一个或多个可以识别具有 高速缓存的存储装置。例如在步骤302,作为图2中的计算系统202的一 部分,识别模块104可以识别具有高速缓存208的存储装置206。

如本文所用,术语“存储装置”可以指代用于存储数据的任意物理的、 逻辑的和/或虚拟的装置。例如,存储装置可以包括一个单一的驱动器、一个 存储阵列、一个逻辑单元号指定的一个存储阵列的一部分等。类似地,如本 文所用,术语“高速缓存”可以指代用于通过存储和/或产生可能被访问的可 利用数据来协助数据存取的任意机制和/组件。

识别模块104可以采用任意适合的方式来识别存储装置。例如,识别模 块104可以通过读取识别存储装置的配置文件来识别该存储装置。另外或可 替代地,识别模块104可以通过从应用程序接收信息(例如,来自使用顺序 日志的应用程序的信息)来识别存储装置。在一些示例中,识别模块104可 以通过从存储装置接收通信来识别存储装置。识别模块104还可以查询存储 装置和/或查找与存储装置有关的信息以确定该存储装置包括高速缓存。在一 些示例中,识别模块104还可以确定高速缓存的属性(例如,为了从缓存的 角度来确定顺序日志的可选大小)。

在步骤304,本文描述的系统的一个或多个可以为顺序日志在存储装置 上分配空间例如在步骤304,作为图2中的计算系统202的一部分,分配模块 106可以创建用于顺序日志212的存储装置206上的分配空间210。

如本文所用,术语“顺序日志”可以指代顺序地存储数据(例如,在存 储装置上)的任意日志、文件、和/或数据结构。在一些示例中,顺序日志还 可以是循环日志(例如,一旦到达顺序日志的末尾,继续在顺序日志的开始 处进行写操作)。顺序日志还可以包括元数据,该元数据涉及顺序日志中哪 些数据是有效的和/或未耗用的以及顺序日志中哪些数据是无效的和/或耗用 的。

顺序日志可以存在于各种环境中。例如,顺序日志可以用作安全地执行 具有最小延时的事务的机构(例如,应用程序可以将事务提交给顺序日志, 而不是直接提交给远程系统或繁忙的数据库)。在不同示例中,顺序日志可 以用于数据复制、登记、系统恢复、错误检查、回归测试等。

分配模块106可以采用任意适合的方式来执行步骤304。例如,分配 模块106可以通过从文件系统请求空间来分配空间。另外或可替代地,分配 模块106可以在存储装置上创建用于空间的分区。在一些示例中,分配模块 106可以为顺序日志在存储装置上分配连续空间。

分配模块106可以为顺序日志分配任意适合量的空间。例如,分配模块 106可以为顺序日志分配足够的空间以便在最大负载期间接纳所有写入尝 试。分配模块106可以采用任意适合的方式来确定多少空间是足够的。例如, 分配模块106可以识别顺序日志的配置参数(例如,由管理员进行设置,该 参数对应于使用顺序日志的应用程序所设定的默认值),以指示用于顺序日 志的足够量的空间。

在步骤306,本文描述的系统的一个或多个可以至少部分地基于指向顺 序日志的输入/输出负载来计算顺序日志的目标大小。例如在步骤306,作为 图2中计算系统202的一部分,计算模块108可以至少部分地基于指向顺序日 志212(例如,来自应用程序216)的输入/输出负载来计算顺序日志212的目 标大小214。

计算模块108可以基于输入/输出负载采用各种方式来计算目标大小。例 如,计算模块108可以基于当前使用的顺序日志的百分比来计算目标大小(例 如,仍然有待由应用程序耗用的有效数据所占的顺序日志的百分比)。另外 或可替代地,计算模块108可以基于顺序日志增长的速率来计算目标大小。 在一些示例中,计算模块108可以基于估计的和/或计划的输入/输出负载来计 算目标大小。例如,计算模块108可以从应用程序接收信息,该信息写入到 指示输入/输出负载的顺序日志。

计算模块108还可以使用各种其他信息以计算目标大小。例如,计算模 块108可以至少部分地基于顺序日志的数据消耗量来计算目标大小。如本文 所用,应用于数据的术语“消耗”可以指代任意处理,通过这种处理数据可 以由应用程序访问和/或不再需要。计算模块108可以采用各种方式评估数据 消耗量。例如,计算模块108可以识别存在多少次对顺序日志的头部的引用。 另外或可替代地,计算模块108可以识别顺序日志包含未消耗数据的百分比 的变化率。在一些示例中,计算模块108可以使用其他信息计算目标大小, 例如存储装置上的高速缓存的特征(例如,高速缓存的大小、高速缓存对多 个访问的灵敏度等)。

在一些示例中,计算模块108可以作为目标大小重新计算的一部分来计 算目标大小。例如,计算模块108可以计算顺序日志的目标大小(并且如以 下更为详细描述的,将顺序日志限制到目标大小),随后重新计算目标大小, 这可以增加或减少顺序日志的大小。在一些实施例中,当输入/输出负载变化 时计算模块108可以动态地计算目标大小。例如,计算模块108可以连续地和 /或定期地监控上述输入/输出负载变化的一个或多个指示器。在一些示例中, 当顺序日志已经用完空间时计算模块108可以向上修改目标大小。

在一些环境中,一个节点集群可以对输入/输出负载做出贡献。在这些 环境中,计算模块108可以1)识别该节点集群,并且然后2)基于该集群中 每个节点对输入/输出负载的贡献计算该节点的目标大小。例如,图4展示了 一种在能够进行高速缓存的存储装置上进行高效顺序记录的示例性系统 400。如图4中所示,示例性系统400可以包括一个节点402(1)-(n)集群402。 节点402(1)-(n)可以分别运行应用程序416(1)-(n)。在本示例中,计算模块 108可以计算存储装置406上的顺序日志412的目标大小414(1)-(n)。因此,该 集群中的每个节点可以基于该节点上的应用程序负载来有效地管理它的活 动日志空间。

在一些示例中,该集群节点可以共享顺序日志。在本示例中,计算模块 108可以组合由该节点集群计算的目标大小以确定顺序日志的目标大小。另 外或可替代地,该节点集群中的每个节点可以保持一份单独的顺序日志。在 此示例中,计算模块108为每个节点产生的目标大小可以应用于该节点的顺 序日志。

在步骤308,本文描述的系统的一个或多个可以将顺序日志限制到对应 于目标大小的分配空间的一部分。例如在步骤308,作为图2的计算系统202 的一部分,限制模块110可以将顺序日志212限制到对应于目标大小214的的 分配空间210的一部分。

限制模块110可以采用任意适合的方式执行步骤308。例如,限制模 块110可以改变顺序日志绕回到分配空间的起始处的点。在一些示例中,限 制模块110可以等待从而限制顺序日志,直到顺序日志已经绕回到分配空间 的起始处并且已经消耗了目标大小的界限之外的任意记录的数据之后。

如前文所提及,在一些示例中计算模块108可以重新计算顺序日志的目 标大小和/或动态地计算顺序日志的目标大小。在这些示例中,限制模块110 可以将顺序日志的大小增加到重新计算的目标大小。

通过计算顺序日志的大小,限制模块110可以使顺序日志空间的多个部 分能够锁定到存储装置的高速缓存上,从而有可能提高I/O性能。而且,对 顺序日志的较少写入可能触发高速缓存清除(因为需要高速缓存中的空间来 执行写入),从而有可能提高I/O性能并防止高速缓存清除。在步骤308之后, 方法300可以结束。

在一些示例中,本文描述的系统可通过在和/或与高速缓存的操作来提 高顺序日志的效率。例如,图4展示了具有高速缓存408和高速缓存模块412 的存储装置406。高速缓存模块412可以结合存储装置和/或高速缓存执行各种 功能以提高与顺序日志有关的高速缓存的效率。

在一些示例中,高速缓存模块412可以将对应于目标大小的分配空间(例 如,顺序日志所占用的空间)的一部分锁定至高速缓存。高速缓存模块412 可以采用任意适合的方式将分配空间的该部分锁定至高速缓存。例如,高速 缓存模块412可以将指令传输至存储装置的高速缓存机构以锁定存储装置上 的地址范围(对应于分配空间的该部分)。通过锁定分配空间的该部分而不 是整个分配空间,高速缓存模块412可以提高顺序日志的读性能,无需浪费 地消耗高速缓存空间。

高速缓存模块412还可以配置高速缓存忽略分配空间内的延伸部分,该 延伸部分不包含被配置成使用顺序日志的应用程序的有效信息。如本文所使 用,术语“延伸部分”可以指代任意延伸部分、模块、区域、页面、和/或其 他数据单元。例如,高速缓存模块412可以从应用程序接收以下通信:延伸 部分不包含有效信息。然后高速缓存模块412可以将信息传递给高速缓存, 该信息指示延伸部分没有值。高速缓存随后可以避免对该延伸部分进行高速 缓存清除。

在一些示例中,高速缓存模块412可以防止存储装置在第一次写入到顺 序日志期间从存储装置将一个页面提取至该高速缓存。例如,高速缓存模块 412可以配置存储装置以创建空的(例如,归零的)页面,而不是提取该页 面。以此方式,高速缓存模块412可以使高速缓存能够避免高速缓存的当前 状态的不必要扰动。

在一些示例中,本文描述的系统可以通过防止顺序日志上不必要的操作 来提高与顺序日志相关的高速缓存的效率。例如,本文描述的系统可以1) 识别对顺序日志的可能进入,2)确定该可能进入已经存在于该顺序日志内, 然后3)阻止该可进进入再进入该顺序日志。例如,本文描述的系统可以检 查和/或过滤写入到顺序日志的应用程序的记录活动。通过防止对顺序日志的 冗余进入,本文描述的系统可以减少与写入冗余进入至日志有关的高速缓存 活动,从而有可能提高与顺序日志内的其他数据的高速缓存相关联的I/O响 应。

如以上解释的,通过限制顺序日志的界限,本文描述的系统和方法可以 提高顺序日志在其上保持的存储装置的高速缓存性能。而且,通过知道顺序 日志和/或使用该顺序日志的应用做出高速缓存决定,本文描述的系统和方法 可以提高高速缓存性能。

图5是一个示例性计算系统510的方框图,该系统能够实施在此说明 和/或展示的实施例中的一个或多个。计算系统510广义上代表能够执行 计算机可读指令的任何单处理器或多处理器计算装置或系统。计算系统 510的多个示例包括但不限于工作站、膝上型计算机、客户侧终端、服 务器、分布式计算系统、手持装置、或任何其他计算系统或装置。在其 最基本的配置中,计算系统510可以包括至少一个处理器514以及一个系 统内存516。

处理器514总体上代表能够处理数据或解释并执行多个指令的任何 类型或形式的处理单元。在某些实施例中,处理器514可以从软件应用 程序或模块接收指令。这些指令可以使处理器514执行在此所说明和/ 或展示的这些示例性实施例中的一个或多个的功能。例如,处理器514 可以单独地或与其他元件相结合来执行和/或作为一种手段来执行在此 描述的识别、分配、计算、限制、增加、锁定、配置、防止、确定、和 /或阻止步骤中的一个或多个。处理器514还可以执行和/或作为一种手段 来执行在此说明和/或展示的任何其他步骤、方法、或过程。

系统内存516总体上代表能够存储数据和/或其他计算机可读指令 的任何类型或形式的易失性或非易失性存储装置或介质。系统内存516 的示例包括(但不限于)随机存取存储器(RAM)、只读存储器(ROM)、 闪存、或任何其他适当的存储装置。尽管未作要求,在某些实施例中计 算系统510可以既包括易失性存储器单元(例如,像系统内存516)又包 括非易失性存储装置(例如,像以下详细描述的主存储装置532)。在 一个示例中,图1的模块102中的一个或多个可以载入到系统内存516中。

在某些实施例中,除了处理器514和系统内存516外,示例性计算系 统510还可以包括一个或多个组件或元件。例如,如图5所示,计算系统 510可以包括内存控制器518、输入/输出(I/O)控制器520、以及通信接 口522,它们中的每一个可以通过通信基础设施512相互连接。通信基础 设施512总体上代表能够帮助在计算装置的一个或多个组件之间进行通 信的任意类型或形式的基础设施。通信基础设施512的示例包括但不限 于通信总线(例如ISA、PCI、PCIe、或类似总线)和网络。

内存控制器518总体上代表在计算系统510的一个或多个组件之间 操作内存或数据或者控制通信的任意类型或形式的装置。例如,在某些 实施例中,内存控制器518可以通过通信基础设施512控制处理器514、 系统内存516以及I/O控制器520之间的通信。在某些实施例中,内存控 制器518可以独立地或与其他元件相结合地执行和/或作为一种手段执 行在此描述和/或展示的多个步骤或特征中的一个或多个,例如识别、 分配、计算、限制、增加、锁定、配置、防止、确定、和/或阻止。

I/O控制器520总体上代表能够协调和/或控制计算装置的输入和输 出功能的任何类型或形式的模块。例如,在某些实施例中I/O控制器520可 以控制或协助计算系统510的一个或多个元件之间的数据传输,例如处理器 514、系统内存516、通信接口522、显示适配器526、输入接口530、以及存 储接口534。I/O控制器520可以例如用于单独地或与结合其他元件执行和/或 作为一种手段来执行在此描述的识别、分配、计算、限制、增加、锁定、 配置、防止、确定、和/或阻止步骤中的一个或多个。I/O控制器520还 可用于执行和/或作为一种手段用于执行本披露中提出的其他步骤和特 征。

通信接口522广义地代表能够协助示例性计算系统510与一个或多 个附加装置之间进行通信的任何类型或形式的通信装置或适配器。例 如,在某些实施例中,通信接口522可以协助计算系统510与包括多个附 加的计算系统的私有或公共网络之间的通信。通信接口522的示例包括 而不限于有线网络接口(例如网络接口卡)、无线网络接口(例如无线 网络接口卡)、调制解调器、以及任何其他适当的接口。在至少一个实 施例中,通信接口522可通过到网络(如互联网)的直接链接来提供与 远程服务器的直接连接。通信接口522还可以间接地提供这种连接,例 如通过局域网(如以太网)、个人局域网、电话或缆线网、蜂窝电话连 接、卫星数据连接、或任何其他适当的连接。

在某些实施例中,通信接口522还可以代表主机适配器,该主机适 配器被配置成通过外部总线或通信信道协助计算系统510与一个或多个 附加网络或存储装置之间的通信。主机适配器的示例包括但不限于SCSI 主机适配器、USB主机适配器、IEEE1394主机适配器、SATA和eSATA 主机适配器、ATA和PATA主机适配器、光纤通道接口适配器、以太网 适配器等。通信接口522还可以允许计算系统510参与分布式计算或远程 计算。例如,通信接口522可以从远程装置接收用于执行的指令或向远 程装置发送指令。在某些实施例中,通信接口522可以独立地或与其他元件 相结合地执行和/或作为一种手段执行在此描述的识别、分配、计算、限制、 增加、锁定、配置、防止、确定、和/或阻止步骤中的一个或多个。通 信接口522还可以用于执行和/或作为一种手段用于执行本披露中提出 的其他步骤和特征。

如图5所示,计算系统510还可以包括通过显示适配器526连接至通 信基础设施512的至少一个显示装置524。显示装置524总体上代表能够 可视地呈现显示适配器526所转发的显示信息的任意类型或形式的装 置。相似地,显示适配器526总体上代表任意类型或形式的装置,这些 装置被配置成从通信基础设施512(或从本领域已知的帧缓存器)转发 图形、文本以及其他数据以便显示在显示装置524上。

如图5所示,示例性计算系统510还可以包括通过输入接口530连接 至通信基础设施512的至少一个输入装置528。输入装置528总体上代表 能够向示例性计算系统510提供由计算机或人员生成的输入的任意类型 或形式的输入装置。输入装置528的示例包括但不限于键盘、定位装置、 语音识别装置或任意其他输入装置。在至少一个实施例中,输入装置528 可以独立地或结合其他元件执行和/或作为一种手段来执行在此描述的识 别、分配、计算、限制、增加、锁定、配置、防止、确定、和/或阻止 步骤中的一个或多个。输入装置528还可以用于执行和/或作为一种手段 来执行本披露中提出的其他步骤和特征。

如图5所示,示例性计算系统510还包括通过存储接口534连接至通 信基础设施512的一个主存储装置532和一个备份存储装置533。存储装 置532和533总体上代表能够存储数据和/或其他计算机可读指令的任意 类型或形式的存储装置或介质。例如,存储装置532与533可以是磁盘驱 动器(例如,所谓的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱 动器、闪存驱动器、或者类似装置。存储接口534总体上代表用于在存 储装置532和533以及计算系统510的其他组件之间传输数据的任意类型 或形式的接口或装置。

在某些实施例中,存储装置532和533可以被配置为用于读取自和/ 或写入到可移动存储单元,该可移动存储单元被配置为用于存储计算机 软件、数据、或其他计算机可读信息。适合的可移动存储单元的示例包 括但不限于软盘、磁带、光盘、闪存装置等等。存储装置532和533还可 以包括其他类似的结构或装置,以允许计算机软件、数据或其他计算机 可读指令下载到计算系统510中。例如,存储装置532和533可以被配置 成读或写软件、数据或其他计算机可读信息。存储装置532和533还可以 作为计算系统510的一部分或可以是通过其他接口系统访问的一个分离 的装置。

在某些实施例中,存储装置532和533可以用于例如独立地或与其他元 件相结合地执行和/或作为一种手段来执行在此描述的识别、分配、计算、 限制、增加、锁定、配置、防止、确定、和/或阻止步骤中的一个或多 个。存储装置532和533还可以被用于执行和/或作为一种手段用于执行 本披露提出的其他步骤和特征。

很多其他装置或子系统可以连接至计算系统510上。相反地,为了 实施在此描述和/展示的实施例,不需要图5中所示的所有组件和装置。 以上引用的这些装置和子系统还能够以不同于图5中所示的方式进行相 互连接。计算系统510还可使用任何数目的软件、固件、和/或硬件的配 置。例如,在此披露的示例性实施例中的一个或多个可以被编码为一种 计算机可读介质上的计算机程序(还称为计算机软件、软件应用程序、 计算机可读指令、或计算机控制逻辑)。短语“计算机可读介质”总体 上是指能够存储或携带计算机可读指令的任何形式的装置、载体、或介 质。计算机可读介质的示例包括但不限于传输型介质,如载波,以及物 理介质,如磁性存储介质(例如,硬盘驱动器和软盘驱动器)、光存储 介质(例如,CD-ROM或DVD-ROM)、电子存储介质(例如,固态驱 动器和闪存介质)、以及其他分布式系统。

包含计算机程序的计算机可读介质可以载入到计算系统510中。存 储在计算机可读介质上的所有或部分计算机程序然后可以存储在系统 内存516和/或存储装置532和533的不同部分上。当由处理器514执行时, 载入到计算系统510中的计算机程序可以使处理器514执行和/或作为一 种手段执行在此描述和/或展示的示例性实施例中的一个或多个的功 能。另外或可替代地,在此所说明和/或展示的示例性实施例中的一个 或多个可以在固件和/或硬件中实施。例如,计算系统510可被配置为一 种专用集成电路(ASIC),它被适配为用于实施在此所披露的这些示 例性实施例中的一个或多个。

图6是示例性网络架构600的方框图,在该网络架构中客户端系统610、 620和630以及服务器640和645可以连接至网络650。客户端系统610、620和 630总体上代表任意类型或形式的计算装置或系统,例如图5中的示例性计算 系统510。在一个示例中,客户端系统610可以包括图1的系统100。

类似地,服务器640和645总体上代表被配置为用于提供不同的数据 库服务和/或运行某些软件应用程序的计算装置或系统,例如应用程序 服务器或数据库服务器。网络650总体上代表任何电信或计算机网络, 包括例如内部网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、 或互联网。

如图6所示,一个或多个存储装置660(1)-(N)可以直接附接至服务器 640。类似地,一个或多个存储装置670(1)-(N)可以直接附接至服务器 645。存储装置660(1)-(N)和存储装置670(1)-(N)总体上代表能够存储数 据和/或其他计算机可读指令的任意类型或形式的存储装置或介质。在 某些实施例中,存储装置660(1)-(N)和存储装置670(1)-(N)可代表被配置 为用于使用不同协议(例如NFS、SMB、或CIFS)与服务器640和645 进行通信的网络附接存储(NAS)装置。

服务器640和645还可以连接至存储区域网络(SAN)结构680。SAN 结构680总体上代表能够协助多个存储装置之间通信的任意类型或形式 的计算机网络或架构。SAN结构680可以协助服务器640和645与多个存 储装置690(1)-(N)和/或智能存储器阵列695之间的通信。SAN结构680还 可以通过网络650和服务器640和645协助客户端系统610、620和630与存 储装置690(1)-(N)和/或智能存储器阵列695之间的通信,其方式为装置 690(1)-(N)以及阵列695对客户端系统610、620和630呈现为本地附接的 装置。与存储装置660(1)-(N)和存储装置670(1)-(N)一样,存储装置 690(1)-(N)和存储阵列695总体上代表能够存储数据和/或其他计算机可 读指令的任意类型或形式的存储装置或介质。

在某些实施例中,参见图5的示例性计算系统510,通信接口(例如 图5中的通信接口522)可以用于在每个客户端系统610、620和630以及 网络650之间提供连接。客户端系统610、620和630能够利用例如网络浏 览器或其他客户端软件访问服务器640或645的信息。这种软件可以允许 客户端系统610、620和630访问由服务器640、服务器645、存储装置 660(1)-(N)、存储装置670(1)-(N)、存储装置690(1)-(N)或智能存储器阵 列695管理的数据。尽管图6描绘了使用网络(例如互联网)来交换数据, 但在此描述和/或展示的实施例不限于互联网或任意具体的基于网络的 环境。

在至少一个实施例中,在此披露的示例性实施例中的一个或多个的 全部或一部分可被编码为一种计算机程序并且由服务器640、服务器 645、存储装置660(1)-(N)、存储装置670(1)-(N)、存储装置690(1)-(N)、 智能存储阵列695、或它们中的任意组合加载并执行。在此披露的示例性 实施例的一个或多个的所有或一部分还可以被编码为计算机程序,存储在服 务器640中,由服务器654运行,并分布至网络650上的客户端系统610、620 和630。因此,网络架构600可以单独地或与其他元件相结合来执行和/ 或作为一种手段来执行在此描述的识别、分配、计算、限制、增加、锁 定、配置、防止、确定、和/或阻止步骤中的一个或多个。网络架构600 还可以用于执行和/或作为一种手段来执行本披露中提出的其他步骤和 特征。

如以上所述,计算系统510和/或网络架构600的一个或者多个组件 可以单独地或与其他元件相结合地执行和/或作为一种手段来执行一种 用于在相关计算系统之间共享计算操作的结果的示例性方法的一个或 多个步骤。

虽然以上披露使用了多个具体的框图、流程图、以及示例阐明了不 同的实施例,在此说明和/或展示的每个框图部件、流程图步骤、操作、 和/或部件都可以单独地和/或共同地使用一个大范围的硬件、软件、或 者固件(或者它们的任何组合)配置来实施。另外,在其他部件之中所 包括的任何部件的披露都应该看作本质上是示例性的,因为可以实施许 多其他的架构来达到同样的功能。

在此说明和/或展示的进程的参数以及步骤的顺序仅仅是以举例的 方式给出并且可以按希望来更改。例如,虽然在此展示和/或说明的这 些步骤可以按照一个具体的顺序来示出或讨论,但这些步骤并非必须按 照所展示或者所讨论的顺序来执行。在此说明和/或展示的不同的示例 性方法还可以省略在此说明或展示的一个或者多个步骤或者还可以包 括除所披露的那些之外的额外步骤。

虽然不同的实施例在此已经在全功能性计算系统的背景下进行了 说明和/或展示,这些示例性实施例中的一个或者多个能够以多种形式 作为一个程序产品来分发,而无论实际用于进行该分发的计算机可读介 质的具体形式如何。在此披露的这些实施例还可以通过使用执行一些特 定任务的软件模块来实施。这些软件模块可以包括脚本、成批文件、或 者其他可执行文件,它们可以存储在一种计算机可读的存储介质上或者 在一种计算系统中。在一些实施例中,这些软件模块可以将一个计算系 统配置用于实施在此披露的一个或者多个示例性的实施例。

另外,在此所述的这些模块中的一个或多个可以将数据、物理装置、 和/或物理装置的表示从一种形式转换到另一种形式。例如,在此描述的 多个模块中的一个或多个可以将存储装置的高速缓存机制转换为用于顺序 记录的高效高速缓存机制。

已经提供了以上说明用于使本领域的其他普通技术人员能够最好 地使用在此披露的这些示例性实施例的不同方面。这种示例性说明并非 旨在是穷尽性的或者被限制在所披露的任何准确的形式上。许多修改与 变更都是可能的而不背离本披露的精神与范围。应该认为在此披露的这 些实施例在所有方面都是展示性的而非限制性的。应该参照所附权利要 求及其等效物来确定本披露的范围。

除非另外说明,如在本说明书与权利要求中所使用的,术语“一种” 或“一个”将被解释为“至少一个”的意思。此外,为便于使用,如在 本说明书以及权利要求中所使用的文字“包含”和“具有”是可以互换 的并且具有与文字“包括”相同的含义。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号