用于按需缓存的方法和数据处理系统的制作方法

文档序号:8006424阅读:158来源:国知局
用于按需缓存的方法和数据处理系统的制作方法
【专利摘要】本发明提供了一种用于在广域网(WAN)分离的分布式文件系统或集群式文件系统中按需缓存的数据处理系统中的机制。该机制监视在WAN分离的分布式文件系统或集群式文件系统中由多个缓存站点进行的文件访问。该机制识别缓存站点的访问模式。该机制与所述多个缓存站点共享访问模式。所述多个缓存站点中的给定缓存站点将访问模式与本地的访问信息进行组合,并且基于组合的信息来识别要预取的文件。
【专利说明】用于按需缓存的方法和数据处理系统
【技术领域】
[0001]本申请一般地涉及改进的数据处理装置和方法,更具体地涉及用于在广域网(WAN)分离的分布式文件系统或集群式文件系统的缓存(cache)中按需缓存(on_demandcaching)的机制。
【背景技术】
[0002]存在用于实现广域网(WAN)缓存的架构。主站点可以是通用并行文件系统(GPFS)或由网络文件系统(NFS)导出的任何其它文件系统。多个缓存站点通过网络连接至主站点。多个缓存站点可以NFS挂载主NFS出口。只有一个缓存站点被允许对用于特定NFS出口的缓存中的文件进行写操作。其它站点是只读缓存站点,其可以了解来自主站点的更新并将这些更新拉取(pull)到缓存站点中。然而,缓存站点不能向主站点发送对文件和目录的任何写或更新。多个缓存站点可以是针对来自主站点的不同NFS出口的单个写入器。

【发明内容】

[0003]在一个说明性实施例中,提供了 一种数据处理系统中的用于在分离的分布式文件系统或集群式文件系统中按需缓存的方法。该方法包括监视并行文件系统中由多个缓存站点进行的文件访问。该方法进一步包括识别缓存站点的访问模式。该方法还包括与所述多个缓存站点共享访问模式。所述多个缓存站点中的给定缓存站点将访问模式与本地的访问信息进行组合,并且基于组合的信息来识别要调度预取的文件。
[0004]在其它的说明性实施例中,提供了一种包括具有计算机可读程序的计算机可用或可读介质的计算机程序产品。当计算机可读程序在计算设备上被执行时,使得计算设备执行上面关于方法说明性实施例概述的操作中的各种操作及其组合。
[0005]在又一个说明性实施例中,提供了一种系统/装置。该系统/装置包括一个或多个处理器和耦合到所述一个或多个处理器的存储器。存储器可以包括指令,当指令由一个或多个处理器执行时,使得一个或多个处理器执行上面关于方法说明性实施例概述的操作中的各种操作及其组合。
[0006]这些以及本发明的其它特征和优点将在下面的本发明的示例实施例的详细说明中描述,或者基于下面的详细说明而对具备所属领域普通技能的人而言变得清楚。
【专利附图】

【附图说明】
[0007]本发明和优选使用模式以及其目标和优势可以通过参照下面结合附图的对说明性实施例的详细描述而最好地理解,其中:
[0008]图1描绘了在其中可以实施说明性实施例的方面的示例分布式数据处理系统的图形表示;
[0009]图2是在其中可以实施说明性实施例的方面的示例分布式数据处理系统的框图;
[0010]图3描绘了在其中可以实施说明性实施例的方面的示例WAN分离的分布式文件系统或集群式文件系统;
[0011]图4描绘了根据说明性实施例的主站点确定文件活跃度;
[0012]图5描绘了根据说明性实施例的基于具有按需缓存的WAN分离的分布式文件系统或集群式文件系统中的信息而共享分析和统计信息以及预取;
[0013]图6是根据说明性实施例的说明WAN分离的分布式文件系统或集群式文件系统中的具有按需缓存的缓存站点的操作的流程图;
[0014]图7是根据说明性实施例的说明WAN分离的分布式文件系统或集群式文件系统中的用于按需缓存的主站点的操作的流程图;
[0015]图8是根据说明性实施例的说明缓存站点调度预取的操作的流程图;
[0016]图9是根据说明性实施例的说明缓存站点执行访问信息的统计分析的操作的流程图。
【具体实施方式】
[0017]说明性实施例提供了 一种用于在WAN分离的分布式文件系统或集群式文件系统中按需缓存的机制。该机制把在一时间窗口期间已经被活跃使用的或在一时间段内具有多个用户的文件归类为活跃文件。该时间窗口或该时间段可以是根据所需粒度可变的或固定的。该机制可以使用多个时间窗口,在这多个时间窗口内同一文件或多个不同文件可以变得活跃。
[0018]主站点可以在中央位置处。由于主站点大体了解大部分的写和未缓存的读,因此其知晓哪些文件是活跃的。主站点还能够执行某些统计分析。例如,主站点能够在几天、几周或几个月的时段中确定哪些文件在哪个时间点开始变得活跃、到达最高点、以及接着变得静止。主站点整理该信息并将其馈送给缓存站点,因而缓存站点能够执行针对性的文件预填充(pre-population) /预取。基于提供的信息,缓存站点能够减小针对特定文件的再验证间隔。对于特定的活跃文件,当写到来时,主站点可以向缓存站点发送回叫(callback)。
[0019]可以在许多不同类型的数据处理环境中利用所述说明性实施例。为了提供描述说明性实施例的特定元件和功能的上下文,随后提供了图1和图2作为在其中可以实施说明性实施例的方面的示例环境。应当了解,图1和图2只是示例,并非旨在断言或暗示关于在其中可以实施本发明的实施例的方面的环境的任何限制。在不偏离本发明的精神和范围的情况下,可以对所描绘的环境进行许多修改。
[0020]图1描绘了在其中可以实施说明性实施例的方面的示例分布式数据处理系统的图形表示。分布式数据处理系统100可以包括在其中可以实施说明性实施例的方面的计算机网络。分布式数据处理系统100包含至少一个网络102,网络102是用来提供分布式数据处理系统100内连接在一起的各种设备与计算机之间的通信链路的媒介。网络102可以包括诸如有线、无线通信链路或光缆的连接。
[0021]在描绘的示例中,服务器104和服务器106连同存储单元108连接至网络102。另夕卜,客户端110、112和114也连接至网络102。这些客户端110、112和114可以是例如个人计算机、网络计算机等等。在描绘的示例中,服务器104向客户端110、112和114提供数据,诸如引导文件、操作系统映像和应用。在描绘的示例中,客户端110、112和114是服务器104的客户端。分布式数据处理系统100可以包括附加的服务器、客户端以及其它未示出的设备。
[0022]在描绘的示例中,分布式数据处理系统100是因特网,其中网络102表示世界范围内的使用传输控制协议/互联网协议(TCP/IP)协议组相互通信的网络和网关的集合。在因特网的核心处是主节点或主计算机之间的骨干高速数据通信线路,其由成千上万的用于路由数据和消息的商业、政府、教育以及其它计算机系统组成。当然,分布式数据处理系统100也可以被实施为包括许多不同类型的网络,诸如例如内联网、局域网(LAN)、广域网(WAN)等等。如上所述,图1旨在作为示例,而非作为对本发明的不同实施例的架构限制,因此,图1所示的特定元件不应当认为是对在其中可以实施本发明的说明性实施例的环境的限制。
[0023]图2是在其中可以实施说明性实施例的方面的示例数据处理系统的框图。数据处理系统200是诸如图1中的客户端的计算机的示例,实施用于本发明的说明性实施例的处理的计算机可用的代码或指令可以位于其中。
[0024]在描绘的示例中,数据处理系统200采用包括北桥和存储器控制器集线器(NB/MCH) 202以及南桥和输入/输出(I/O)控制器集线器(SB/ICH) 204的集线器架构。处理单元206、主存储器208和图形处理器210连接至NB/MCH202。图形处理器210可以通过加速图形端口(AGP)连接至NB/MCH202。
[0025]在描绘的示例中,局域网(LAN)适配器212连接至SB/ICH204。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(R0M)224、硬盘驱动器(HDD)226、⑶-ROM驱动器230、通用串行总线(USB)端口以及其它通信端口 232和PCI/PCIe设备234通过总线238和总线240连接至SB/ICH204。PCI/PCIe设备可以包括例如以太网适配器、插入卡和用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe则不使用卡总线控制器。R0M224可以是例如快闪基本输入/输出系统(BIOS)。
[0026]HDD226 和 CD-ROM 驱动器 230 通过总线 240 连接至 SB/ICH204。HDD226 和 CD-ROM驱动器230可以使用例如集成驱动电路(IDE)或串行高级技术附件(SATA)接口。超级I/O(SIO)设备236可以连接至SB/ICH204。
[0027]操作系统运行在处理单元206上。操作系统协调和提供图2中的数据处理系统200内的各种组件的控制。作为客户端,操作系统可以是诸如微软Windows7 (微软和Windows是微软公司在美国、其它国家或在美国和其它国家的商标)的商用操作系统。诸如Java编程系统的面向对象编程系统可以结合操作系统运行并从Java程序或在数据处理系统200上执行的应用向操作系统提供调用(Java是Oracle和/或其附属公司的商标)。
[0028]作为服务器,数据处理系统200可以是例如运行高级交互执行程序(AIX? )操
作系统或LINUX操作系统的丨βΜ' ? eServer? System p? 计算机系统(IBM、eServer、
System p和AIX是国际商用机器公司在美国、其它国家或在美国和其它国家的商标,LINUX是李纳斯.托沃兹(Linus Torvalds)在美国、其它国家或在美国和其它国家的注册商标)。数据处理系统200可以是在处理单元206中包括多个处理器的对称多处理器(SMP)系统。另选地,可以采用单处理器系统。
[0029]用于操作系统的指令、面向对象编程系统和应用或程序位于诸如HDD226的存储设备上,并可以装入到主存储器208中用于由处理单元206执行。用于本发明的说明性实施例的处理可以由处理单元206利用计算机可用的程序代码来执行,计算机可用的程序代码可以例如位于存储器中,诸如主存储器208、R0M224或一个或多个外围设备226和230中。
[0030]诸如图2所示的总线238或总线240的总线系统可以由一个或多个总线组成。当然,总线系统可以利用任何类型的通信结构或架构来实施,该通信结构或架构提供附接至所述结构或架构的不同组件或设备之间的数据传送。诸如图2的调制解调器222或网络适配器212的通信单元可以包括一个或多个用来发送和接收数据的设备。存储器可以是例如主存储器208、R0M224或诸如图2的NB/MCH202中的缓存。
[0031]本领域技术人员会清楚,根据实现方式,图1和图2中的硬件可以变化。其它内部硬件或外围设备,诸如闪存、等效的非易失性存储器、或光盘驱动器等等,可以附加于图1和图2描绘的硬件或代替图1和图2描绘的硬件来使用。同样,在不偏离本发明的精神和范围的情况下,说明性实施例的处理可以应用于前面提及的SMP系统以外的多处理器数据处理系统。
[0032]此外,数据处理系统200可以采用许多不同的数据处理系统中的任何形式,包括客户端计算设备、服务器计算设备、平板计算机、膝上型计算机、电话或其它通信设备、个人数字助理(PDA)等等。在一些说明性示例中,数据处理系统200可以是便携式计算设备,其配置有闪存以提供非易失性存储器用于存储例如操作系统文件和/或用户生成的数据。本质上,数据处理系统200可以是任何已知的或以后开发的数据处理系统,而不具有架构限制。
[0033]回到图1,分布式数据处理系统100可以采用通用并行文件系统(GPFS),在该系统中诸如服务器104的一个节点是主站点,诸如客户端110、112、114以及服务器106的其它节点可以是缓存站点。图3描绘了在其中可以实施说明性实施例的方面的示例WAN分离分布系文件系统或集群式文件系统。主站点310连接至缓存站点301-306。缓存站点301-305对于一个或多个文件挂载(file mounts)是只读站点,而缓存站点306是用于文件挂载的写缓存。
[0034]WAN分离的分布式文件系统或集群式文件系统缓存是基于按需缓存的概念的。当文件被访问时,存在三种可能的不同场景:
[0035]1、文件最近已经被取得。在这个模型中,存在对特定文件的访问。如果文件已经存在于缓存站点处且文件是在被称为再验证间隔的预定间隔内被存储在缓存站点处的,则该文件可以在缓存中被直接访问,使其成为本地访问,本地访问是非常快的。
[0036]2、文件最近还未被取得。如果文件存在于缓存站点处但自文件存储在缓存站点处起已经超过了再验证间隔,则缓存站点对照主站点副本执行再验证处理。缓存站点接着对主站点执行查找以获得被修改时间和改变时间属性。如果文件在主站点处的被修改时间和改变时间与缓存站点处的文件的值不同,则从主站点重取该文件到缓存站点。
[0037]3、文件在缓存站点处不存在。如果文件在缓存站点处不存在,则缓存站点从主站点取得文件。
[0038]当然,在后面的两种情况中,应用经历访问延时,该访问延时与文件大小和至主站点的链路的带宽直接成比例。
[0039]具有按需缓存的WAN分离的分布式文件系统或集群式文件系统可以经历两种情况:对文件的冷访问和过期访问(stale access)。当缓存站点确定文件在主站点处被修改且必须重取时是过期访问。在某些约束下用于对文件的首次访问或过期访问的时间与文件大小和链路带宽直接成比例。在低速链路或有限带宽链路的情况中,这可能是显著的开销。预填充可以在一定程度上减轻首次访问的问题;然而,当文件在长时间内未被访问时,文件必须被从主站点重取,再次弓I入了延时。
[0040]一些解决方案可以基于预填充和基于文件的预取。这里预填充意指在整个文件被需要之前,将整个文件从主站点取得至缓存站点。如果整个文件相对于主站点版本是过期的,则预填充会重取缓存中的整个文件。预取意指在文件的部分被需要之前,将文件的部分从主站点取得。预取包括重取,即,当这些文件的缓存部分与这些文件的主站点部分不同步时,从主站点更新文件的过期部分。预填充可以帮助减轻首次访问的成本;然而,其通常由管理员执行,而且不是减小首次访问时间的自动化方法。其也不能动态地适应访问模式的改变,除非管理员修改预填充方案。一般地,预填充是向空缓存引入数据的一次性动作。文件数据预取不解决首次访问或后续过期访问的时间滞后/延时的问题。准确地说,其解决的是在首次访问后在文件其它部分的数据被需要之前具有这些数据的问题。
[0041]说明性实施例的机制使用了活跃文件的概念,活跃文件可以被归类为要么在一时间窗口期间已经被活跃地使用要么在一时间段内具有多个用户的那些文件。该时间窗口或时间段可以是基于所需粒度可变的或固定的。另选地,所述机制可以使用多个时间窗口,在这多个时间窗口内同一文件或多个不同文件可以变得活跃。
[0042]在具有按需缓存的WAN分离的分布式文件系统或集群式文件系统中,主站点一般位于中央位置处。由于主站点大体了解大部分的文件写和未缓存的读,因此其知晓哪些文件是活跃的。主站点也能够执行某些统计分析。例如,主站点能够在几天、几周或几个月的时段中确定哪些文件在哪些时间点开始变得活跃、到达最高点、以及接着变得静止。主站点能够整理该信息并将其馈送给缓存站点,因而当需要时,缓存站点能够执行针对性的文件预填充/预取。基于提供的信息,缓存站点也能够减小其针对特定文件的再验证间隔。对于特定的活跃文件,每当写到来时,主站点可以向缓存站点发送回叫。
[0043]主站点确定文件或文件集合的“热度”。主站点接着向缓存站点提供该信息。对于非常活跃的文件,主站点可以向缓存站点提供回叫。
[0044]图4描绘了根据说明性实施例的主站点确定文件活跃度。缓存站点401接收针对文件F402的写。主站点410维护F的热度的统计信息403。文件或文件集合的热度可以基于到达文件的写以及还基于来自不同缓存站点的读以及在一时间段内具有多个用户。同样,在不同时段期间,不同的文件可以是活跃的。主站点410存储和整理该信息,以确定访问模式。
[0045]主站点410可以是几个不同的单写入器缓存站点的目标。主站点410能够跨挂载点或目录来关联信息。例如,第一挂载点目录中的第一文件可以在第二挂载点目录中的第二文件被写的同时被写。同样,确定文件的共享模式是重要的。例如,对文件的写可以继之以对文件集合的读,接着继之以来自另一个节点的写。关于共享模式的信息可以是不断演变的。访问模式的历史必须被存储。例如,特定文件可能在周三下午2:00至下午3:00之间被大量地访问和修改。类似的信息是有价值的,并且可以由缓存站点使用以发挥优点。
[0046]图5描绘了根据说明性实施例的基于具有按需缓存的WAN分离的分布式文件系统或集群式文件系统中的信息而共享分析和统计信息以及预取。周期性地,主站点510与不同的缓存站点501、502、506共享访问模式和活跃度。缓存站点501、502、506将来自主站点510的模式信息与其在本地拥有的关于其连接的客户端的访问模式的信息进行组合。缓存站点501、502、506接着尝试预取或调度预取最有可能被访问的文件。
[0047]有时,可能存在非常活跃的且被大量访问的文件。由于这是新近的模式,所以该信息可能尚未对其它缓存站点可用。根据示例性实施例,可以规定安装“钩子(hook)”,“钩子”会向缓存站点回叫或调出(callout),来通知缓存站点其可能需要预取数据至缓存以补偿该文件的按需代价。
[0048]统计分析涉及用在不同的缓存站点间传播的试探模式来加权数据,以帮助调度预测的文件预取。一个示例:如果用户A从给定缓存站点访问针对给定事件的数据X ;并且通过基于试探的统计分析,暗示在预定时间间隔内数据Y会被该用户从相同的缓存访问,则推荐/预测数据Y被预取(声明其在下一预定时间间隔内非常活跃)以在该特定事件和时间期间用于该特定缓存会有助于使得缓存更加高效。
[0049]这里是一个这样的用于实施例的示例,以有助于描述其实施。
[0050]对于算法A,考虑下列命名:
[0051]R(x, t, c):在时间t对特定数据元素X的读,其中t是在被指定为主站点的中央站点处的时间,c是缓存集群ID。
[0052]ff(x, t, c):在时间t对特定数据元素x的写,其中t是在被指定为主站点的中央站点处的时间,c是缓存集群ID。
[0053]T(t, x):T是由从0到间隔P (其中P是预定值,例如24小时)的时间和粒度G (例如I秒)沿着X轴索引的二维表格。T中的每个元素是R(x,t,c)和W(x,t,c)元素的链表。这些元素没有特定的次序。
[0054]T’ (t,x):r是结构类似于T的二维表格。T与T’之间的差别是T’中的每个元素是R(x,t, c)和W(x,t, c)元素的链表束(针对每个数据元素X —个链表),其中每个链表按到达时间t排序。
[0055]T’’ (t,x):T’’类似于T’,并增加了图表元素之间的链接。T’’是持久性的,并有
助于建立试探和演变。
[0056]M:整合(consolidation)时间间隔。
[0057]D:整合间隔粒度。
[0058]G:时间间隔粒度。
[0059]P:粒度G中的特定重现间隔。
[0060]该算法如下进行:
[0061]步骤S:在每个时间间隔M,在中央站点处执行如下步骤:
[0062]a.通过沿着X轴组合D/G邻近元素,将T转换为具有粒度D的新表格T’,以使得具有按时间顺序的对同一数据元素X的读/写序列的列表。
[0063]b.进一步将T’转换为T’ ’,以使得:
[0064]1.如果图表T’中任何具有数据元素X的特定元素只具有读,则创建至在前的对X的写的链接(如果其存在)。
[0065]i1.如果任何具有数据条目X的特定表格条目只具有写,则创建至下一个读集合(可能在另一个格子元素中)的链接。[0066]算法A只是实施细节,并不旨在限制说明性实施例。所属领域技术人员能够容易地用其它公知的统计算法,如统计推断、马尔科夫模型等,来代替步骤S。
[0067]在中央站点/主站点处的通用I/O路径中:
[0068]对于到来的W(x,t,c):
[0069]1.根据其位于的时间间隔,用合适的格子条目中的“写”信息来更新现有的表格T。
[0070]i1.使用表格T’’,确定后续所预测的来自其它缓存集群的对数据元素X的“读”(如果其存在)。如果后续“读”存在,则向该缓存集群站点推送“读”。
[0071]对于到来的R(x,t,c):
[0072]1.根据其位于的时间间隔,用合适的表格条目中的“读”信息来更新现有的表格T。
[0073]算法B:中央站点或主站点与缓存站点共享表格T’’的内容。缓存站点基于其访问模式确定其想要拉取的数据元素。
[0074]算法C:对于其访问模式未在T’ ’中表示的非常活跃的文件,中央站点或主站点向缓存站点发送回叫。接着,缓存站点决定其是否想要拉取该文件。
[0075]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序代码。
[0076]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或设备,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0077]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数字信号,其中承载了计算机可读的程序代码。这种传播的数字信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者设备使用或者与其结合使用的程序。
[0078]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0079]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。[0080]下面将参照根据本发明的说明性实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个框以及流程图和/或框图中各框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个框中规定的功能/动作的装置。
[0081]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个框中规定的功能/动作的指令的制造品(article of manufacture)?
[0082]计算机程序指令也可以加载到计算机、其它可编程数据处理装置或其它设备上,以引起一系列操作步骤在该计算机、其它可编程装置或其它设备上被执行以产生计算机实施的处理,从而在该计算机或其它可编程装置上执行的指令提供用于实施在流程图中和/或在框图的一个或多个框中指定的功能/动作的处理。
[0083]图6是根据说明性实施例的说明WAN分离的分布式文件系统或集群式文件系统中具有按需缓存的缓存站点的操作的流程图。当缓存站点经历由客户端进行的文件访问(框600)时,操作开始。缓存站点确定文件是否在其本地缓存中(框601)。如果文件不在本地缓存中,则缓存站点从主站点取得文件(框602),并且操作结束(框603)。
[0084]如果缓存站点确定文件在本地缓存中(框601),则缓存站点确定文件是否是最近被取得的(框604)。缓存站点确定文件是否是在预定时间阈值内被取得的。如果文件是最近被取得的,缓存站点直接在本地缓存中访问文件(框605),并且操作结束。
[0085]如果在框604中,缓存站点确定文件不是最近取得的,则缓存站点对照主站点副本执行再验证(框607)。为了执行再验证,缓存站点从主站点获得文件的被修改时间和改变时间属性,并将其与本地缓存中的文件副本的相同属性进行比较。缓存站点确定本地文件的时间属性是否与在主站点处的文件的时间属性匹配(框608)。如果属性不匹配,缓存站点则从主站点取得文件(框602),并且操作结束。如果在框608中属性匹配,则缓存站点直接在本地缓存中访问文件(框605),并且操作结束(框606)。
[0086]图7是根据说明性实施例的说明WAN分离的分布式文件系统或集群式文件系统中用于按需缓存的主站点的操作的流程图。操作开始(框700)。主站点监视文件访问(框701)并与缓存站点共享访问模式(框702)。访问模式可以作为表格T’’而被共享。
[0087]主站点执行分析以识别非常活跃的文件(框703)。该分析可以识别在预定时间窗口期间已经被活跃地使用的文件和/或在一时间段内具有多个用户的文件。该时间窗口和时间段可以是根据所需的粒度可变的或固定的。如上所述,主站点可以在框703中基于表格T’’而执行统计分析。主站点接着确定是否识别出一个或多个活跃文件(框704)。如果识别出活跃文件,则主站点向缓存站点通知所识别的活跃文件(框705),并且操作结束(框706)。如果主站点在框704中没有检测到活跃文件,则操作结束。主站点可以周期性地重复图7的操作,以持续地向缓存站点提供用于预取调度的信息。
[0088]图8是根据说明性实施例的说明缓存站点调度预取的操作的流程图。操作开始(框800),缓存站点与主站点共享访问模式(框801)。在框801中,缓存站点可以接收表格!'’’,表格!'’’识别预定时间段P内的读和写。缓存站点将来自主站点的访问信息与本地访问信息组合(框802)。缓存站点接着执行分析以识别要预取的文件,生成预取调度,并设置再验证间隔(框803)。此后,操作结束(框804)。
[0089]图9是根据说明性实施例的说明缓存站点执行访问信息的统计分析的操作的流程图。操作开始(框900),主站点接收具有读访问的链表和写访问的链表的活跃度表格T(框901)。T(t,X)是由从O到间隔P (其中P是预定值,例如24小时)的时间和粒度G (例如I秒)沿着X轴索引的二维表格。T中的每个元素是R(x,t,c)和W(x,t,c)元素的链表。这些元素没有特定的次序。主站点接着将活跃度表格T转换为排序链表的表格T’(框902)。T’(t,x)是结构与T类似的二维表格。T与T’之间的差别是T’中的每个元素是R(x,t,c)和W(x,t, c)元素的链表束(针对每个数据元素X —个链表),其中每个链表按到达时间t排序。
[0090]主站点接着确定T’中的任何元素是否只具有读(框903)。如果一元素只具有读,则主站点创建至在前的写的链接(框904)。此后,或者如果在T’中没有元素只具有读(框903),则主站点确定T’中的任何元素是否只具有写(框905)。如果一元素只具有写,则主站点创建至下一个读集合的链接(框906)。框903-906的操作产生更新的活跃度表格T’ ’。T’’ (t,x)类似于 T’,并增加了图表元素之间的链接。T’’是持久性的,有助于建立试探和演变。
[0091]此后,或者如果在T’中没有元素只具有写(框905),则主站点确定是否遇到到来的写(框907)。如果遇到对主站点处的数据元素的写,则主站点更新活跃度表格T(框908)。主站点接着使用T’ ’来确定后续的所预测的来自一个或多个其它缓存集群的对该数据元素的读(框909)。主站点向所述一个或多个缓存集群推送该数据元素(框910)。此后,操作返回至框902来将活跃度表格转换为排序链表的表格。
[0092]如果主站点在框907中没有遇到写,则主站点确定是否遇到到来的读(框911)。如果在主站点处遇到对数据元素的读,则主站点更新活跃度表格T (框912)。此后,或者如果主站点在框911中没有遇到读,操作返回至902来将活跃度表格转换为排序链表的表格。
[0093]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0094]因此,说明性实施例提供了用于在WAN分离的分布式文件系统或集群式文件系统中按需缓存的机制。该机制减小了首次访问的代价。预期的减小有赖于预测逻辑的准确度。该减小也有赖于在缓存站点与主站点之间共享信息的周期。对于至少一些首次访问或冷访问,时间与本地访问是相当的。该机制还可以用于诸如网络文件系统的网络附加存储(network-attached storage)角军决方案。
[0095]上面已经看到,应当理解说明性实施例可以采用完全硬件的实施例、完全软件的实施例或者同时包含硬件和软件元素的实施例的形式。在一个示例实施例中,说明性实施例的机制被实施为软件或程序代码,其包括但不限于固件、驻留软件、微代码等等。
[0096]适合于存储和/或执行程序代码的数据处理系统包括至少一个通过系统总线直接或间接地耦合到存储器元件的处理器。存储器元件可以包括在实际执行程序代码期间采用的本地存储器、大容量存储器、以及提供至少一些程序代码的暂时存储以减少在执行期间必须从大容量存储器中重取代码的次数的高速缓冲存储器。
[0097]输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以直接地或者通过居间的I/O控制器来耦合到系统。网络适配器也可以耦合到系统以使得数据处理系统能够通过居间的专用或公共网络而耦合到其它数据处理系统或远程打印机或存储设备。调制解调器、线缆调制解调器和以太网卡仅是当前可获得的网络适配器类型中的几种。
[0098]给出本发明的说明书的目的在于说明和描述,并非旨在穷举或将本发明限制于公开的形式。对于具备所属领域普通技能的人员来说,多种修改和变型是明显的。选择并描述实施例来最好地解释本发明的原理、实际应用,并使得具备所属领域普通技能的人员能够理解具有与特定预期用途相称的各种修改的本发明的各种实施例。
【权利要求】
1.一种数据处理系统中的用于在分离的分布式文件系统或集群式文件系统中按需缓存的方法,该方法包括: 监视分离的分布式文件系统或集群式文件系统中由多个缓存站点进行的文件访问; 识别缓存站点的访问模式;以及 与所述多个缓存站点共享访问模式,其中所述多个缓存站点中的给定缓存站点将访问模式与本地的访问信息进行组合,并且基于组合的信息来识别要预取的文件。
2.根据权利要求1所述的方法,其中主站点维护关于分离的分布式文件系统或集群式文件系统中的文件的文件访问模式的统计信息。
3.根据权利要求2所述的方法,进一步包括: 执行分析以识别至少一个活跃文件;以及 响应于识别出至少一个活跃文件,向所述多个缓存站点中的至少一个缓存站点通知所述至少一个活跃文件,其中所述至少一个缓存站点预取所述至少一个活跃文件。
4.根据权利要求3所述的方法,其中所述给定缓存站点执行分析以识别要预取的文件并生成预取调度。
5.根据权利要求3所述的方法,其中所述给定缓存站点重置至少一个再验证间隔。
6.根据权利要求13所述的方法,其中监视文件访问包括在活跃度表格中记录文件访问,其中活跃度表格是由从O到预定间隔P的时间和粒度G索引的二维表格,其中活跃度表格中的每个元素是读和写元素的链表。
7.根据权利要求6所述的方法,其中识别缓存站点的访问模式包括: 将活跃度表格转换为排序的活跃`度表格,其中排序的活跃度表格中的每个元素是按照时间排序的读和写元素的链表;以及 通过为排序的活跃度表格中只具有读的每个元素创建至在前的写的链接以及为排序的活跃度表格中只具有写的每个元素创建至下一个读集合的链接,将排序的活跃度表格转变为经转变的活跃度表格。
8.根据权利要求7所述的方法,其中共享访问模式包括将经转变的活跃度表格发送给所述多个缓存站点。
9.根据权利要求7所述的方法,进一步包括: 响应于在主站点处接收到对数据元素的写,基于经转变的活跃度表格来确定后续的所预测的来自至少一个缓存站点的读;以及 向所述至少一个缓存站点推送所述数据元素。
10.一种用于在分离的分布式文件系统或集群式文件系统中按需缓存的数据处理系统,其包括用于实施权利要求1-9中的任何方法的任何步骤的部件。
11.一种装置,包括: 处理器;以及 耦合到处理器的存储器,其中存储器包括指令,当指令由处理器执行时,使得处理器: 监视分离的分布式文件系统或集群式文件系统中由多个缓存站点进行的文件访问; 识别缓存站点的访问模式;以及 与所述多个缓存站点共享访问模式,其中所述多个缓存站点内的给定缓存站点将访问模式与本地的访问信息进行组合,并且基于组合的信息来识别要预取的文件。
12.根据权利要求11所述的装置,其中主站点维护关于分离的分布式文件系统或集群式文件系统中的文件的文件访问模式的统计信息,其中指令进一步使得处理器: 执行分析以识别至少一个活跃文件;以及 响应于识别出至少一个活跃文件,向所述多个缓存站点中的至少一个缓存站点通知所述至少一个活跃文件,其中`所述至少一个缓存站点预取所述至少一个活跃文件。
【文档编号】H04L29/08GK103677664SQ201310396099
【公开日】2014年3月26日 申请日期:2013年9月4日 优先权日:2012年9月4日
【发明者】R·M·诺伦纳, S·R·帕蒂尔, A·K·塞恩, R·P·沃德, K·S·扎德布克 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1