用于对数据处理系统的集群中的共享资源执行写入操作的方法和系统的制作方法_2

文档序号:8395921阅读:来源:国知局
因为已经向集群的节点通知了(或者没有通知)资源已经被改变,并且因此不需要向例如中央存储库的源发送可能慢并且昂贵的查询。此外,说明性实施例消除了执行轮询的需要。也就是说,通过说明性实施例,如果节点希望以可能不必要的网络流量为代价来维持100%的一致性,S卩,即使资源将不被使用也总是复制最新版本,则该节点能够通过立即刷新该节点的本地缓存来对集群事件通知进行响应。这消除了在任何给定时间本地缓存中的资源的本地副本陈旧的概率。这与当前的轮询解决方案形成对照,在当前的轮询解决方案中,陈旧的缓存条目的概率与轮询间隔成比例。
[0028]通过说明性实施例的机制,当其他节点或在集中式集群控制设备中接收到集群事件通知时,向其他节点通知该条目(即每个节点的本地缓存的资源的副本)是陈旧的。如果节点不具有该资源的本地缓存的副本,即用于该资源的本地缓存中的条目,则该节点可以忽略这个事件通知。因此,对于识别该共享资源已经被修改,轮询不是必要的。此外,从在事件通知中传达的信息知道陈旧的特定共享资源,并且因此,通过对已经改变的共享资源的整个目录以及它们的属性的搜索不是必要的。此外,说明性实施例的机制可以独立于集群文件系统而被实施。
[0029]此外,事件通知被非常快速地传输到其他节点或者集中式集群控制设备,并且因此,陈旧条目的寿命很短。也就是说,如果节点将总是保持其资源得缓存副本一致,则该节点能够在接收到事件通知时立即刷新。然而,这不是说明性实施例的要求。实际上,节点可以丢弃通知,直至当其需要重新使用该资源的这样的时刻。因此,在通知被丢弃直至该资源要被重新使用的这样的时刻的情况中,陈旧条目的寿命可以是无限长。
[0030]为了进一步说明轮询解决方案与说明性实施例的机制之间的区别,应当记住,轮询解决方案是盲目的并且仅仅以规则间隔发生。查询表示如下的网络流量:在查询指示该资源自从上次轮询发生以来还没有更新的任何时候,该网络流量能够被视作“浪费的”流量。相对照地,说明性实施例的机制仅在资源已经被更新时发送非常小的事件通知,并且这个事件通知向所有的节点通知:它们的资源的本地副本是陈旧的。
[0031]另外对于轮询解决方案,资源可能是陈旧的窗口有效地是整个轮询间隔。然而,通过说明性实施例的机制,取决于本地缓存被刷新的特定实施方式,该窗口是单个锁定实例的寿命周期,即非常小的窗口,或者然而是长窗口,其使另一节点在第一事件通知被处理的同时进行第二修改。这是在数学上能够实现的最小的可能的陈旧窗口。
[0032]此外,轮询解决方案总是需要应用(或用户)在以下各项之间进行折衷:具有更短的轮询间隔,以便减小可能的陈旧窗口 ;以及通过要求轮询以可能更高的“浪费的”网络流量的实例更经常地完成而具有增加网络噪声;或者更低的网络噪声但是更长的轮询间隔。说明性性实施例的机制消除了这个折衷问题,因为没有轮询被完成,并且仅在必要时(即当资源被实际修改时)发送小的事件通知。
[0033]下文中将参考附图来更具体地描述本发明的说明性实施例的上述方面和优点。应当理解,附图仅意在说明本发明的示例性实施例。本发明可以涵盖在附图中没有明确示出的所描绘的示例性实施例的修改、各方面、实施例,但是根据说明性实施例的描述,对于本领域技术人员来说将是容易明显的。
[0034]所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码/指令。
[0035]可以采用计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一一但不限于一一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0036]在一些说明性实施例中,计算机可读介质是非瞬时计算机可读介质。非瞬时计算机可读介质是不是非实体信号或传播波,即纯信号或传播波本身的任何介质。非瞬时计算机可读介质可以利用信号和传播波,但是不是信号或传播波本身。因此,例如,以任何方式利用信号以保持其状态的各种形式的存储器设备以及其他类型的系统、设备或装置在本说明书的范围内可以被视为非瞬时计算机可读介质。
[0037]另一方面,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一一但不限于一一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0038]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一一但不限于一一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0039]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java?、Smalltalk?、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为单机软件包部分地在用户的计算机上并且部分地在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任意种类的网络一一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0040]下面将参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本公开。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其他可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0041]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其他可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
[0042]计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程数据处理装置或其他设备上执行可操作步骤序列,以产生计算机实现的处理,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或框图的框中所规定的功能/动作的过程。
[0043]附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0044]为了提供用于说明性实施例的具体元素和功能的描述的上下文,下文中提供了图1-2作为可以实现说明性实施例的各方面的示例性环境。应当理解,图1-2仅是示例,并且不旨在断言或暗示对可以实现本发明的各方面和实施例的环境的任何限制。可以在不背离本发明的精神和范围的情况下进行对所述环境的很多修改。
[0045]现在参考图1,图示了根据一个实施例可以被配置为集群系统的数据处理环境的高层级框图。在所描绘的实施例中,数据处理环境100包括同构或异构的联网数据处理设备/系统的分布式集合,本文被称为节点102。例如,每个节点102能够通过服务器计算机系统来实施,诸如从 Internat1nal Business Machines Corporat1n of Armonk, N.Y 可得到的POWER服务器中的一个。替代地,节点102可以是客户端计算设备或者客户端的组合,并且服务器计算设备可以用作节点102。当然,可以在不脱离说明性实施例的精神和范围的情况下使用其他类型的数据处理系统。
[0046]如所示出的,每个节点102包括硬件资源110和软件资源120 二者。节点102的硬件资源110包括用于处理数据和程序指令的处理器112以及数据存储设备114,诸如用于存储软件和数据的存储器和光盘和/或磁盘。硬件资源110还包括附加硬件116,诸如网络、输入/输出(I/O)和外围适配器、电源系统、端口、管理控制台、附接的设备等。在各种实施例中,硬件资源110可以包括例如响应于高工作负载或硬件失效而可以选择性地放置到服务中的至少一些冗余或备份资源。
[0047]节点102的软件资源120能够包括(多个)操作系统122、诸如web和/或应用服务器的中间件124、以及应用126的一个或多个可能地异构并发实例。在优选实施例中,操作系统122中的至少一个操作系统包括支持命令和编程API的内置集群能力以实现对多个节点102上的操作系统实例的组中的集群的创建、维护和管理。如下面进一步描述的,操作系统基础设施支持根据说明性实施例中的一个或多个说明性实施例的用于
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1