CN115454562A - 标识跨集群计算环境的资源锁定所有权 - Google Patents
标识跨集群计算环境的资源锁定所有权 Download PDFInfo
- Publication number
- CN115454562A CN115454562A CN202210652569.0A CN202210652569A CN115454562A CN 115454562 A CN115454562 A CN 115454562A CN 202210652569 A CN202210652569 A CN 202210652569A CN 115454562 A CN115454562 A CN 115454562A
- Authority
- CN
- China
- Prior art keywords
- lock
- owner
- information record
- lock information
- resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Abstract
一种标识跨集群计算环境的资源锁定所有权。通过包括由进程基于用户获取资源锁定将锁定信息记录保存到集群计算环境的共享数据结构的方法跨集群计算环境的进程和系统提供资源锁定所有权标识。锁定信息记录包括标识在执行进程的系统上获取的资源锁的用户所有方的用户标识数据。该方法还包括由另一进程引用共享数据结构的锁定信息记录以查明标识资源锁的用户所有方的用户标识数据,并且由此促进集群计算环境内的处理。
Description
技术领域
通常,一个或多个方面涉及促进计算环境内的处理,尤其涉及改进集群计算环境内的处理。
背景技术
存在范围从简单环境到更复杂环境的不同类型的计算环境。简单的环境可以包括执行一个操作系统的一个处理器,而复杂的环境可以包括执行不同类型的系统的多个处理器或多个隔离的存储器空间。在一个示例中,复杂环境包括执行一个或多个操作系统的一个或多个逻辑分区。在一个实施例中,逻辑分区将计算环境的处理器、存储器和存储装置划分成多个资源集,使得每个资源集可以与其自身的操作系统实例和一个或多个应用独立地操作。
在一个实现中,复杂计算环境可以被配置为具有多个系统或计算机的集群计算环境,这些系统或计算机一起工作使得它们可以被视为单个系统。集群计算环境的组件通常通过快速局域网而被连接在一起,其中每个节点或系统运行其自己的操作系统的实例。在一个或多个实施例中,节点可以使用相同的硬件和相同的操作系统,尽管在某些设置中,可以在每个计算机上使用不同的操作系统或不同的硬件。集群计算环境的示例是由纽约州阿蒙克的国际商业机器公司提供的系统综合体(“sysplex”)计算环境。(z/架构是在一个或多个管辖区中的国际商业机器公司的商标或注册商标)。在一个实施例中,系统综合体计算环境包括构成复合体的多个计算机或系统。
在一个或多个实现中,终端用户具有在集群计算环境中运行的操作系统的多个实例是常见的。为了访问操作系统上的资源,终端用户通常将部署应用服务器。应用服务器允许以安全方式访问资源,并且在某些实施例中,允许用户锁定和解锁资源。
发明内容
通过在一个或多个方面中提供用于促进集群计算环境内的处理的计算机程序产品,克服了现有技术的某些缺点并且提供了附加优点。该计算机程序产品包括至少一个计算机可读存储介质,该计算机可读存储介质具有与其体现的程序指令。该程序指令由处理电路可读取以使所述处理电路执行方法,方法包含由进程基于用户获取资源锁定而将锁定信息记录保存到集群计算环境的共享数据结构。锁定信息记录包括标识在执行进程的系统上获取的资源锁定的用户所有方的用户标识数据。该方法还包括由另一进程引用共享数据结构的锁定信息记录以查明标识资源锁定的用户所有方的用户标识数据以促进集群计算环境内的处理。
本文中还描述并且要求保护与一个或多个方面有关的计算机系统和计算机实现的方法。进一步,本文还描述并且可以要求保护与一个或多个方面有关的服务。
通过本文描述的技术实现附加特征和优点。本发明的其他实施例和方面在本文中详细描述,并且被认为是所要求保护的方面的部分。
附图说明
本发明的一个或多个方面被特别指出并且清楚地要求保护为在说明书结尾处的权利要求中的示例。通过以下结合附图的详细描述,本发明的上述和其他目的、特征和优点将变得清楚,其中:
图1A描述了结合和使用本发明的一个或多个方面的计算环境的一个示例;
图1B根据本发明的一个或多个方面描绘了用于图1A的计算环境的存储器的进一步细节的一个示例;
图1C描绘了根据本发明的一个或多个方面的用于图1A的计算环境的存储器的进一步细节的另一示例;
图2描绘了根据本发明的一个或多个方面的具有共享数据结构和跨集群计算环境的进程和系统的资源锁定的用户所有方的标识的集群计算环境的一个示例;
图3A至图3B描绘了示出本发明的一个或多个实施例的某些方面的工作流的一个实施例;
图4描绘了根据本发明的一个或多个方面的被保存到集群计算环境的高速缓存和共享数据结构的锁定信息记录的一个示例;
图5A至图5D根据本发明的一个或多个方面描绘了促进计算环境内的处理的一个示例;
图6A描述了结合和使用本发明的一个或多个方面的计算环境的另一个示例;
图6B描绘了根据本发明的一个或多个方面的图6A的存储器的进一步细节;
图7描绘了根据本发明的一个或多个方面的云计算环境的一个实施例;以及
图8描述了根据本发明的一个或多个方面的抽象模型层的一个示例。
具体实施方式
根据本发明的一方面,促进集群计算环境的进程与系统之间的资源锁定信息的通信。作为一个示例,集群计算环境可以是包括多个紧密耦合的系统的系统综合体环境。例如,集群计算环境可具有在集群计算环境中运行的操作系统的许多示例。在一个实施例中,该集群计算环境是被配置成表现为单个操作系统镜像(诸如,单个镜像)的计算机或系统的集群。为了访问单个操作系统镜像上的资源,可以部署应用服务器。这些服务器允许以安全方式访问资源,并且在某些情况下,允许用户锁定和解锁资源,例如,多个虚拟存储(MVSTM)资源。(注意,z/OS和MVS是国际商业机器公司在一个或多个管辖区中的商标或注册商标。)
由某些操作系统(诸如,z/OS系统)和某些应用服务器提供的锁定跟踪机制通常扩展到地址空间或进程的任务,但不扩展到进程或任务内的资源锁定的特定用户所有方。此外,针对给定系统(诸如,集群计算环境的给定逻辑分区(LPAR))获取的资源锁定通常从计算环境的另一系统(例如,另一LPAR)内不可见。此外,映射与这样的资源锁定相关联的用户ID可能不是跨LPAR可行的。
通过示例的方式,图1A描绘了结合和使用本发明的一个或多个方面的计算环境的一个实施例。在一个实施例中,计算环境基于由纽约州阿蒙克的国际商业机器公司提供的指令集架构。在名称为“z/架构工作原理”、公开号SA22-7832-12第13版,2019年9月的出版物中描述了z/架构指令集架构的实施例,其特此通过引用以其全文结合在此。然而,z/架构指令集架构仅为一个示例架构;国际商业机器公司和/或其他实体的其他架构和/或其他类型的计算环境可以包含和/或使用本发明的一个或多个方面。(z/架构和IBM是国际商业机器公司在一个或多个司法管辖区中的商标或注册商标。)
在一个示例中,计算环境10包括中央电子复合体(CEC)11。中央电子复合体11包括多个组件,例如耦合到一个或多个处理器(又名,中央处理单元(CPU))13和输入/输出(I/O)子系统14的存储器12(又名,系统存储器、主存储器、主存储器、中央存储器、存储器)。
I/O子系统14可以是中央电子复合体的部分或与其分离。它引导主存储12与输入/输出控制单元15和与中央电子复合体相连的输入/输出(I/O)设备16之间的信息流。
可以使用许多类型的I/O设备。一种特定类型是数据存储设备17。数据存储设备17可以存储一个或多个程序18、一个或多个计算机可读程序指令19、和/或数据等。该计算机可读程序指令可以被配置为用于执行本发明的多个方面的实施例的功能。
中央电子综合体11可以包括和/或耦合到可移动/不可移动、易失性/非易失性计算机系统存储介质。例如,它可以包括和/或联接到不可移动、非易失性磁介质(通常被称为“硬盘驱动器”)、用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器、和/或用于从可移动、非易失性光盘(如CD-ROM、DVD-ROM或其他光介质)读取或向其写入的光盘驱动器上。应当理解,其他硬件和/或软件组件可以与中央电子复合体11结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器和数据归档存储系统等。
进一步,中央电子复合体11可以与多个其他通用或专用计算系统环境或配置一起操作。适用于中央电子复合体11的已知的计算系统、环境和/或配置的示例包括但不限于个人计算机(PC)系统、服务器计算机系统、瘦客户端、厚客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统和包括任何上述系统或设备的分布式云计算环境等。
在一个或多个实施例中,中央电子复合体11提供逻辑分区和/或虚拟化支持。在一个实施例中,如图1B所示,存储器12包括例如一个或多个逻辑分区20、管理逻辑分区的管理程序21、以及处理器固件22。管理程序21的一个示例是由纽约阿蒙克的国际商业机器公司提供的处理器资源/系统管理器(PR/SMTM)。如本文所使用的,固件包括例如处理器的微代码。其包括例如在更高级机器代码的实现中使用的硬件级指令和/或数据结构。在一个实施例中,其包括例如通常作为微代码递送的专有代码,微代码包括受信软件或特定于底层硬件的微代码,并且控制操作系统对系统硬件的访问。(PR/SM是一个或多个管辖区域中的国际商业机器公司的商标或注册商标。)
每个逻辑分区20能够用作单独的系统。即,可以独立地重置每个逻辑分区,运行由国际商业机器公司提供的来宾操作系统23(诸如,z/OS操作系统)或其他控制代码,并且利用不同的应用程序25操作。在逻辑分区中运行的操作系统或应用程序看起来访问完全和完整的系统,但实际上,只有其部分是可用的。虽然提供z/OS操作系统作为示例,但是根据本发明的一个或多个方面,可以使用由国际商业机器公司和/或其他公司提供的其他操作系统。
存储器12耦合到CPU13(图1A),CPU13是可以被分配给逻辑分区的物理处理器资源。例如,逻辑分区20包括一个或多个逻辑处理器,逻辑处理器中的每个逻辑处理器表示可以被动态分配给逻辑分区的物理处理器资源13的全部或共享。
在又一实施例中,中央电子复合体提供虚拟机支持(有或者没有逻辑分区支持)。如图1C所示,中央电子复合体11的存储器12包括例如一个或多个虚拟机26、管理虚拟机的虚拟机管理器(诸如,管理程序27)和处理器固件28。管理程序27的一个示例是由纽约州阿蒙克的国际商业机器公司提供的管理程序。管理程序有时被称为主机。(z/VM是一个或多个管辖区域中的国际商业机器公司的商标或注册商标。)
中央电子复合体的虚拟机支持提供了操作大量虚拟机26的能力,每个虚拟机都能够与不同的应用程序29操作并且运行来宾操作系统30,例如操作系统。每个虚拟机26能够用作单独的系统。即,每个虚拟机可以被独立地重置、运行客户端操作系统、以及利用不同程序来操作。在虚拟机中运行的操作系统或应用程序看起来能够访问完整和完整的系统,但实际上,只有其部分是可用的。虽然提供z/VM和Linux作为示例,但是根据本发明的一个或多个方面可以使用其他虚拟机管理器和/或操作系统。注册商标是根据来自Linux基金会(Linus Torvalds的专有被许可者,在全球基础上的标记的所有方)的子许可来使用的。
如所指出的,集群计算环境可以包括耦合在一起并且被配置为表现为单个操作系统镜像的多个系统(例如,逻辑分区或虚拟机)。在一个实施例中,为了访问单个操作系统镜像上的资源,可以部署应用服务器。在集群计算环境内,应用服务器可以支持多个用户。利用支持诸如z/OSMF、远程系统资源管理器守护进程(RSED)和远程系统资源管理器API(RSEAPI)的多个用户的应用服务器,存在用户资源锁定的内部概念。然而,由于操作系统的性质,资源锁定的用户所有方通常在获取锁定的集群计算环境的特定服务器应用外部不可见。此外,利用单个操作系统示例(例如,单个逻辑分区),客户可以同时运行相同类型的多个应用服务器。例如,支持与特定用户相关联的MVS资源锁定的远程系统浏览器(RSE)服务器可以具有同时运行的多个并发部署和版本。在用户在不同操作系统示例上运行的情况下,现有RSE实现不允许每个应用服务器上的用户知道真实资源锁定所有方。相反,用户通常仅将作业(或进程)名称视为锁定所有方,这可能使给定用户难以标识实际拥有资源锁定的用户。此外,集群计算环境(诸如,系统综合体环境)中的不同系统的应用层上的用户通常不能从彼此获取锁定信息。即,一个系统通常不知道给定资源可以被锁定,并且由另一用户在另一系统上编辑。这意味着存在资源内容可能被另一用户删除或破坏而无需警告的风险。此外,当使用诸如WLM的负载平衡器或以其他方式部署应用服务器的多个示例时,经常产生单独的进程以便支持并发用户的大负载。这驱动需要技术解决方案来监视跨集群计算环境的系统内(诸如,LPAR内)的不同进程和跨集群计算环境的不同系统(诸如,跨不同LPAR)的资源锁定。
本发明的实施例包括计算机程序产品、计算机系统和计算机实现的方法,其中在一个或多个处理器上执行的程序代码促进集群计算环境内的处理,并且更具体地,促进该集群计算环境的进程和系统之间的资源锁定信息的通信。如本领域技术人员所理解的,如在本申请中提及的程序代码可以包括软件和硬件两者。例如,在本发明的一个或多个方面中的程序代码可以包括固定功能硬件,而其他方面可以利用所描述的功能的、基于软件的实现。某些实施例可以组合两种类型的程序代码。也称为一个或多个程序的程序代码的一个示例被描述为图1B和图1C的存储器12中的应用25或29,以及在图1A的示例中的数据存储装置17中的程序18和计算机可读程序指令19。
在一个或多个实施例中,本发明包括促进进程基于用户获取资源锁定来将锁定信息记录保存到集群计算环境的共享数据结构的程序代码。锁定信息记录包括标识在执行进程的系统上获取的资源锁的用户所有方的用户标识数据。本发明的实施例还包括促进由另一进程引用共享数据结构的锁定信息记录以查明标识资源锁的用户所有方的用户标识数据以促进集群计算环境内的处理的程序代码。
在某些实施例中,锁定信息记录还包括与资源锁定相关联的作业名称以及以下一项或多项:获得资源锁定的系统的系统名称、与获得资源锁定相关联的任务控制块标识符、与获得资源锁定相关联的地址空间标识符、以及当创建锁定信息记录时的时间戳。
在本发明的一个或多个实施例中,程序代码促进基于获取资源锁定,除了将锁定信息记录保存到集群计算环境的共享数据结构之外,还将锁定信息记录保存到与进程相关联的高速缓存,以及启动针对保存到高速缓存的锁定信息记录的到期定时器。
在某些实现中,程序代码基于接收到请求查询和相关联的预期所有方数据来引用共享数据结构。预期所有方数据包括资源锁定的预期所有方信息,并且程序代码促进检查以确定保存到高速缓存的锁定信息记录的到期定时器是否已经到期。基于到期定时器没有到期,程序代码确定预期所有方数据的预期所有方信息是否匹配高速缓存中的锁定信息记录数据的对应锁定信息以验证资源锁定的用户所有方的标识。预期所有方信息包括以下至少一项:标识资源锁的预期用户所有方的用户ID或者与所获取的资源锁相关联的预期作业名称。进一步,基于预期所有方信息与高速缓存中的锁定信息记录的对应锁定信息相匹配,程序代码向请求查询提供具有用户标识数据的回复,用户标识数据标识资源锁定的用户所有方。
在一个或多个实施例中,基于预期所有方信息与为高速缓存中的锁定信息记录查明的对应锁定信息不匹配,程序代码从高速缓存删除锁定信息记录,并且从共享数据结构中取回锁定信息记录。在这种情况下,程序代码进一步确定预期所有方数据的预期所有方信息是否与从共享数据结构取回的锁定信息记录的对应锁定信息匹配,以验证资源锁定的用户所有方的标识。基于预期所有方信息与对应锁定信息相匹配,程序代码将所取回的锁定信息记录添加到高速缓存,并且向请求查询提供具有用户标识数据的回复,该用户标识数据标识资源锁定的用户所有方。
在某些实现中,基于预期所有方信息与从共享数据结构取回的锁定信息记录数据的对应锁定信息不匹配,程序代码执行进一步处理,包括:确定预期所有方数据是否包括空的预期所有方数据,并且基于预期所有方数据包括空的预期所有方数据,确定请求查询是否来自获取资源锁定的相同系统。基于请求查询来自与为用户所有方获取资源锁定不同的系统,程序代码承兑(“honor”)所取回的锁定信息记录,并且提供来自所取回的锁定信息记录的用户标识数据以回复请求查询。基于发出请求查询的系统与获取资源锁定的系统相同,程序代码从共享数据结构中删除锁定信息记录并且从高速缓存中删除锁定信息记录,以将高速缓存中的共享数据结构同步为空的预期所有方数据。
在一个或多个实施例中,基于预期所有方数据不是空预期所有方数据,程序代码的进一步处理包括:确定用户标识数据是否存在于共享数据结构中,并且基于用户标识数据不位于共享数据结构中,程序代码将预期所有方数据添加到共享数据结构作为锁定信息记录,并且将预期所有方数据添加到高速缓存作为锁定信息记录。进一步,在处理电路上执行的程序代码返回针对资源锁定的用户所有方的可用用户标识数据以回复请求查询。
在某些实现中,基于预期所有方数据不是空的预期所有方数据,并且基于用户标识数据位于共享数据结构中,程序代码促进使用预期所有方数据来更新共享数据结构中的锁定信息记录,使用预期所有方数据来更新高速缓存中的锁定信息记录,并且返回用户标识数据以回复请求查询,用户标识数据标识来自更新的锁定信息记录的资源锁定的用户所有方。
在一个实施例中,该系统是该集群计算环境的多个逻辑分区中的一个逻辑分区,并且该进程包括该集群计算环境的一个应用服务器,并且另一进程包括该集群计算环境的另一应用服务器。进一步,在一个实施例中,其他进程在获取资源锁定的相同系统上执行,或者在与获取资源锁定的系统不同的系统上执行。
本发明的各实施例与计算密不可分,并且提供明显多于现有方法在集群计算环境(诸如系统综合体环境)内进行处理。例如,本发明的实施例提供在一个或多个处理电路上执行的程序代码,以利用不同系统和进程的互连性,以及利用不同以计算为中心的数据分析和处理技术,以便促进提供标识在集群计算环境的系统上获取的资源锁定的用户所有方的用户标识数据。跨集群计算环境的进程和系统来促进资源锁定的用户所有方标识,这在程序开发期间尤其有利。所使用的计算系统的互连性以及程序代码所使用的计算机独占的数据处理技术两者都实现本发明的各个方面。进一步,本发明的各实施例提供明显多于用于标识集群计算环境内的资源锁定的任何现有方法。
在本发明的实施例中,该程序代码提供显著更多功能性,包括但不限于:1)由进程基于用户获取资源锁定而将锁定信息记录保存到该集群计算环境的共享数据结构的程序代码,其中该锁定所有方记录数据包括标识在执行该进程的系统上获取的该资源锁定的该用户所有方的用户标识数据;以及2)由另一进程引用该共享数据结构的该锁定信息记录以查明标识该资源锁定的该用户所有方的用户标识数据以促进该集群计算环境内的处理的程序代码。
图2描绘了根据本发明的一个或多个方面的集群计算环境的一个技术实现,其并入了用于跨计算环境的进程和系统标识资源锁的用户所有方的设施的一个或多个方面。
如图2所示,集群计算环境200包括多个系统201,诸如多个逻辑分区(LPAR),其中每个逻辑分区是在集群计算环境内运行的操作系统的不同实例。在一个实施例中,集群计算环境是被配置和耦合成表现为单个操作系统镜像的计算机集群,诸如大型机集群。为了访问集群计算环境内的资源,应用服务器210、220、230部署在集群计算环境200的一个或多个系统201上。仅在一个实施例中,应用服务器210、220中的一个或多个应用服务器分别包括线程池服务器212、222,以促进一个或多个用户214、224锁定和解锁集群计算环境200的资源202(诸如,数据集文件)。根据本发明的一个或多个方面,提供了数据库205,该数据库205可以由进程或应用服务器210、220、230访问,并且包括促成诸如本文中描述的集群计算环境的进程与系统之间的资源锁定信息的通信的共享数据结构。
在一个操作实施例中,用户214获得资源锁定(1),其中锁定信息(2)作为获得资源202上的锁定的部分而被生成。根据本文公开的一个或多个方面,进程(例如,应用服务器210)可以经由与相应的线程池服务器212、222相关联(在一个实施例中)的锁定信息跟踪器进程216、226、236来添加、删除或查询更新锁定信息(3)。在一个实现中,应用服务器进一步包括相应的高速缓存217、227、237,在一个实现中,高速缓存217、227、237可以包括访问协议队列218、228、238。添加、删除和查询操作可能导致对高速缓存的更新(在一个实施例中,其包含诸如本文所讨论的一个或多个锁定信息记录)以及对数据库205的更新,在一个实施例中,数据库205在由集群计算环境的其他进程和系统可访问的共享数据结构中包含一个或多个锁定信息记录。当查询高速缓存或共享数据结构(4)时,回复包含锁定信息(5),诸如锁定所有方标识(用户ID),其被返回(6)到发起请求查询的用户,以便标识拥有讨论中的资源锁定的实体。
作为一个具体示例,集群计算环境可以是系统综合体环境,其中系统201是相应的逻辑分区,其中应用服务器210、220、230在所描绘的逻辑分区内运行。在一个实施例中,应用服务器中的一个或多个应用服务器可以是或包括例如远程系统资源管理器守护进程(RSED)和/或远程系统资源管理器API(RSE API),诸如由国际商业机器公司提供的。例如,可使用支持与特定用户相关联的MVS资源锁定的远程系统浏览器(RSE)服务器,其中多个并发部署和版本同时在集群计算环境的一个或多个系统内运行。
在一个实现中,根据本发明的一个或多个方面,数据库205使用相关联的访问协议(例如,虚拟存储访问方法(VSAM))来跟踪每个系统中每个进程上的锁定所有权。虚拟存储访问方法是用于在诸如一个或多个大型机的一个或多个系统中以文件的形式组织数据的高性能访问方法,并且用于例如由国际商业机器公司提供的MVS和z/OS中。虚拟存储访问方法是与数据库205相关联使用的文件管理系统或访问协议。在一个实现中,虚拟存储访问方法允许访问和组织磁盘数据集中的记录,虚拟存储访问方法与存储在直接访问存储设备上的数据一起工作。VSAM记录或文件可以具有固定或可变长度。使用VSAM的优点在于,这种类型的数据集被设计成在具有良好并发文件输入/输出性能的单个集群计算环境(诸如,单个系统综合体)中跨不同进程和系统共享。
在本发明的一个实施例中,可以提供多种类型的应用服务器,应用服务器中的每个应用服务器可以处理资源访问和锁定管理,其中假设终端用户可以与这些类型的应用服务器中的一个或任何应用服务器一起工作。例如,对于MVS资源访问,远程系统资源管理器守护进程(RSED)和/或远程系统资源管理器API(RSEAPI)可以用于促进锁定和解锁资源。因为通常存在这种应用服务器的许多示例,所以本文公开的是服务器中的任何一个能够从任何其他服务器获取锁定所有方信息的能力,而不管服务器驻留在哪个(哪些)系统上。此外,本文公开的技术实现有利地在集群计算环境内维持良好性能,以及VSAM的完整性,从而确保安全数据结构不被破解,即使在异常发生时。
在一个实施例中,VSAM密钥序列数据集(KSDS)可以用于维护包含锁定所有方信息以及在何处和何时获取锁的锁定信息记录。在一个实现中,锁定信息记录可以包括唯一密钥,包括讨论的资源名称、用户标识数据(例如,用户ID)、获取资源锁定的系统的系统名称(sysname)、与获得资源锁定相关联的作业名称、与资源锁定相关联的任务控制块(TCB)标识符、与资源锁定相关联的地址空间标识符(ASID)以及创建锁定信息记录时的时间戳。在一个实施例中,除了用户ID和作业名称之外,锁定信息记录还可以包括其他所指出的键中的一个或多个键,或者所有上述键。在一个实现方式中,VSAM可以被顺序地写入,并且记录可被顺序地或动态地取回。
在一个实施例中,每当需要锁定时,程序代码在共享数据结构中(例如,在VSAM数据集中)添加记录。类似地,每当锁定被释放时,共享数据结构中的对应锁定信息记录(例如,对应VSAM记录)被移除。此外,例如提供查询锁定进程以查明锁是否已经由用户在该集群计算环境的另一进程或另一系统中获取。以此方式,可以查明资源锁定的真实用户所有方,而不是简单地确定与资源锁相关联的作业名称,或者根本不存在信息。此外,如本文所解释的,程序代码被配置用于处理锁定信息记录在与获取锁定的进程相关联的高速缓存中或者在数据库的共享数据结构中不同步的情况。每当标识出差异时,就公开了自动校正不同步信息的能力。当被标识时,采取可应用的动作,包括例如在适当时修改锁定信息记录、添加缺失的锁定信息记录或删除保存的锁定信息记录。
为了在集群计算环境内维持或加速性能,还在例如每个进程上实现高速缓存以跟踪锁定信息记录(包括锁定所有权信息)以及将锁定信息记录保存到共享数据结构(例如,经由VSAM接口)。在一个实施例中,相关联的高速缓存存储由每个用户拥有的资源(数据集或成员)的列表。由于共享数据结构不同步的可能性,还在高速缓存上提供用于锁定信息记录的到期定时器。当高速缓存记录处于有效时间段内时,程序代码优先在高速缓存中查找锁定信息记录。在一个实现中,高速缓存输入/输出操作可以与共享数据结构输入/输出操作(例如,VSAM I/O操作)相同。当到期定时器到期并且请求查询查找被触发时,相关联的高速缓存利用最新的共享数据结构内容来更新自身,以减轻与共享数据结构内容的任何可能的不同步问题。在一个实现中,当应用服务器是RSE API时,相关联的高速缓存也可能在当前时被使用,以及用于用户会话退出和从共享数据结构对应移除锁定信息记录(例如,移除对应的VSAM记录)。如所指出的,在一个实施例中,可以将锁定信息记录顺序地存储在共享数据结构中,并且其中,查找键指的是MVS资源,从而使得遍历共享数据结构的整个锁定信息记录来确定哪个资源属于该特定用户可能是昂贵的,可以依赖相关联的高速缓存来获得资源(例如,MVS资源)的列表,并且然后使用这些资源作为密钥来定位期望的锁定信息记录,以便:例如,允许发生期望的锁定信息记录读取、更新或删除,这有助于减少共享数据结构I/O处理时间。
在一个或多个实现中,在存在跟踪针对每个用户的锁定记录的历史的审计日志的情况下,例如,人工智能驱动的引擎可以被用来与集群计算环境并行地或在集群计算环境内运行,以便捕捉和分析数据以更好地理解用户访问。例如,在一个实施例中,可以利用人工智能处理来学习哪个资源最有可能被使用(即,锁定的)的模式,以及该资源可能被使用多久,并且然后提供基于先前用户体验的预测性锁定和解锁反馈的解决方案。例如,本发明的一些实施例可以利用IBM沃森作为学习代理。(IBM沃森是在一个或多个司法辖区中的国际商业机器公司(阿蒙克,纽约,美国)的注册商标。)在本发明的实施例中,相应程序代码的一个或多个方面可以与IBM沃森应用程序接口(API)进行接口连接以执行例如对所获得的数据的机器学习分析。在本发明的一些实施例中,相应程序代码可以与作为已知机器学习代理的部分的应用程序编程接口(API)(诸如,IBM沃森应用程序编程接口(API)(国际商业机器公司的产品))进行接口连接,以基于先前的用户数据来确定资源使用模式并且预测锁定和解锁。在一个示例中,预测锁定和解锁定信息然后可以用于增强程序开发。
举例来说,图3A至图3B描绘了示出本发明的一个或多个实施例的某些方面的工作流的一个实施例。在该工作流示例中,请求300可以是添加资源锁定302、删除资源锁定310的请求,或者查询资源锁定320的用户所有方信息的请求。该请求可以包括锁定信息301,并且在一个实施例中包括预期所有方数据302。在一个实施例中,集群计算环境中的一个或多个系统可具有运行例如远程系统浏览器(RSE)(诸如,由国际商业机器公司提供)的一个或多个进程或应用服务器,并且一个或多个进程可以具有许多线程(例如,p线程安全性),这些线程与作为(多个)锁定所有方的(多个)用户绑定,由获取进程看到。
在一个实施例中,如果进行请求查询的进程与获取的锁定的进程是相同,则可用的预期所有方数据可以是包括真实锁所有方标识的数据,如果锁定所有方驻留在相同系统(例如,相同LPAR)中的另一进程内则包括获取锁定的进程的作业名称的数据,或者当锁所有方位于集群计算环境的另一系统时不包括信息(空)。有利地,本文公开的程序代码返回来自共享数据结构查找的资源锁定的用户所有方的标识以及如果检测到异常则自校正共享数据结构记录的能力。
当接收到查询锁定所有权时,可以例如经由VSAM结合高速缓存和/或共享数据结构中的查找来利用以上指出的预期所有方数据,其中分支到多个可能情景中的适当一个情景,在此仅以示例的方式标记为情景1至6。例如,场景1可以在预期所有方数据为空时出现,并且在共享数据结构中找不到锁定信息记录(经由VSAM),意味着资源在计算环境中的任何地方被解锁,并且因此空值被返回作为查询结果。在场景2中,如果预期的所有方数据为空,但共享数据记录(例如,经由VSAM协议访问的)保持锁定信息记录,则存在两种进一步的分支情况。首先,如果这在集群计算环境中的不同系统上发生,意味着预期所有方数据为空,则依赖于呈现在共享数据结构中的所有方数据。第二,如果查询过程和锁定所有方过程在相同系统上发生这种情况,意味着资源在服务器级被解锁,但是出于某种原因,锁定信息记录先前没有被正确地删除,则访问协议(VSAM)现在将删除记录,使得其他进程将知道资源被释放。
在情形3中,如果预期所有方不为空,但是共享数据结构不包含用于锁资源的锁定信息记录,则检测到异常。在这种情况下,使用预期所有方数据将丢失的记录添加到共享数据结构。当缺少诸如本文所述的支持的进程锁定资源或文件(其将不会对共享数据结构产生任何影响),并且具有本文所公开的程序代码(例如,VSAM支持)的另一进程查询资源锁定状态时,这种情况可能发生。查询锁定状态的运行进程会将缺失的一条记录添加到共享数据结构中,以指示该文件被其他进程锁定。注意,如果预期所有方数据仅是作业名称数据,则用户标识数据字段(用户ID)可以被留下为“任何用户”。在情景4中,如果预期所有方数据不为空,并且共享数据结构保持锁定信息记录,意味着资源被锁定并且信息是同步的,则返回所有方信息(用户ID)。在情景5中,如果预期的所有方数据是作业名称,而不是实际用户ID,意味着锁是在同一系统中的另一进程上获得的,则锁定信息记录位于共享数据结构中(例如,经由VSAM访问协议),并且返回实际所有方信息(用户ID)而不是进程ID(例如,作业名称)。如果在锁定信息记录中的所有人是“任何用户”,如在场景3之后实际上,那么返回过程ID(作业名称)作为所有方信息。在场景6中,如果预期所有方数据包含实际所有方标识(用户ID),但不与共享数据结构中的相应锁定信息记录匹配,则检测到异常。在这种情况下,预期的所有方数据被写入锁定信息记录中以校正异常。这种情况可能发生在锁所有方改变的情况下,但是共享数据结构中的锁定所有方记录没有及时更新。在校正和更新记录之后,返回真实的所有方信息(用户ID)。
总之,以上场景1和4是良好使用用例,以指示在任何地方未获取锁定,或者在某个地方未获取锁定。场景2解决了集群计算环境中的跨系统情况,这使得能够看到真正的锁定所有方。如果系统相同(例如,相同LPAR),则启动自动校正以删除这样的记录。场景3解决了以下情况:应用中的一个应用不具有开启的共享数据结构支持(例如,VSAM访问协议支持),使得发起自动校正以将丢失的锁定信息添加到共享数据记录中,或者简单地针对线程拥塞,没有用新的锁定信息来更新共享数据记录。场景5使得真实所有方标识能够被另一进程获得,并且场景6是通过修改锁定信息记录来减轻不同步问题的自动校正情况。
以下参照图3A至图3B的工作流程示例进一步描述上述情形。
首先参考图3A,在请求300要添加资源锁定305的情况下,添加304资源锁定,并且将锁定信息记录添加到高速缓存306以及数据库308的共享数据结构。类似地,在请求300要释放或删除312资源锁定的情况下,则锁定信息记录从高速缓存中被删除314,以及从数据库的共享数据结构中被删除316。
在请求是如本文描述的具有相关联的预期所有方数据的请求查询320的情况下,程序代码引用针对锁定信息记录的相关联的高速缓存322。在一个实施例中,工作流包括确定与高速缓存中的锁定信息记录相关联的到期定时器是否已经到期324。如果不匹配,则处理确定预期所有方数据是否匹配高速缓存中的对应锁定信息326,并且如果匹配,则返回具有资源锁定的用户所有方信息(用户ID)的回复328。
如果针对锁定信息记录的到期定时器已经到期,或者如果预期所有方数据与高速缓存中的相应锁定信息不匹配,则从高速缓存中删除锁定信息记录330,并且处理例如使用诸如本文中描述的访问协议而从数据库的共享数据结构中定位锁定信息记录的最新版本332。该处理确定预期所有方数据是否与从数据库获得的锁定信息记录中的相应锁定信息相匹配334。如果是,则从数据库取回的锁定信息记录被添加到高速缓存336,并且返回具有所有方标识(用户ID)信息的回复338。
在预期所有方数据与从数据库取回的锁定信息记录中的对应锁定信息不匹配的情况下,则遇到自动校正情形340。图3B描述了自动校正处理的一个实施例,其取决于上述哪种情况已经发生,诸如情况2、情况3或情况6是否已经发生。
如图3B所示,在一个实施例中,自动校正处理340包括获得与请求查询相关联的预期所有方数据342,并且确定预期所有方数据是否为空预期所有方数据,即,是否为空数据344。如果“是”,则处理确定提供请求查询的系统是否是获取资源锁定的相同系统346。如果“否”,则在数据库的共享数据结构中的锁定信息记录被承兑,并且从取回的锁定信息记录返回具有所有方信息(用户ID)的回复348。
在进行请求查询的系统与获取了资源锁定的系统不同的情况346下,则处理从数据库的共享数据结构删除锁定信息记录350,并且从高速缓存删除锁定信息记录351。这承兑预期所有方数据(其为空数据)中的信息,并且自动校正数据库以及高速缓存中的共享数据结构,以使数据库和高速缓存与最新的预期所有方数据同步。
在预期所有方数据不是空数据344的情况下,则处理确定所有方信息是否位于数据库的共享数据结构中352。如果不是,则这是以上场景3的示例,并且预期所有方数据被添加到数据库的共享数据结构中作为锁定信息记录354,并且被添加到高速缓存中作为锁定信息记录356。利用可用的所有方信息358来生成回复,导致预期所有方数据被承兑,并且将数据库和高速缓存中的共享数据结构自动校正为与请求查询一起接收的预期所有方数据。在数据库的共享数据结构中找到所有方信息的情况352下,则数据库中的所有方信息与预期所有方数据不匹配,并且通过在提供具有可用所有方信息358的回复之前利用预期所有方数据来更新数据库360中和高速缓存362中的锁定信息记录来处理自动地自动纠正数据库和高速缓存,由此承兑预期所有方数据并且自动纠正数据库和高速缓存,以与随请求查询接收的信息同步。
仅通过示例的方式,图4示出了根据本发明的一个或多个方面的用于数据库的共享数据结构的锁定信息记录的一个详细实施例。图4的记录仅是一个示例,并且在一个或多个其它实施方式中,可以省略一个或多个所述内容项,和/或可以将另外的内容项包括在诸如本文公开的锁定信息记录中。在一个实现中,图4的锁定信息记录被配置为用作VSAM记录。例如,在一个实现中,VSAM的每个记录具有104字节的大小,分配的字节如图4所示。作为一个示例,字节0至53是针对记录的密钥(或数据集名称(DSN)),字节54至61(在此示例中)包含锁定所有方标识数据(用户ID),字节62至69包含在其上获取资源锁定的系统名称(sysname),字节70至77包含获取资源锁定的作业名称(或进程名称),字节75至85包含与所获得的资源锁定相关联的任务控制块标识符(或线程标识符),字节86至89包含获取资源锁定的地址空间标识符(或进程标识符),字节90至103包含例如获取资源锁定的日期和时间。再次,注意,锁定信息记录的特定内容可以根据实现而改变。在操作系统是z/OS操作系统的情况下,可以允许每个DSN(键)最多54个字符,包括对于数据集名称(包括时段)的44个字符,对于成员名称的8个字符,以及对于开放的“(‘and end’)”符号的2个字符。如果字段长度小于最大字符允许限制,则可以将剩余空白空间填充为空白空间以确保每一记录是用于访问协议的字符的期望数目,该访问协议在集群计算环境内被使用。
以下参照图5A至图5D来描述促进集群计算环境内的处理的另一实施例,因为其涉及本发明的一个或多个方面。
参照图5A,在一个实施例中,该方法包括:由进程基于用户获取资源锁定而将锁定信息记录保存到集群计算环境的共享数据结构500。锁定信息记录包括标识在执行进程的系统上获取的资源锁定的用户所有方的用户标识数据。共享数据结构的锁定信息记录由另一进程引用以查明标识资源锁定的用户所有方的用户标识数据以促进集群计算环境内的处理502。
在一个实施例中,锁定信息记录还包括与获得资源锁定相关联的作业名称,以及以下一项或多项:获得资源锁定的系统的系统名称、与资源锁定相关联的任务控制锁定标识符、与资源锁定相关联的地址空间标识符、或创建锁定信息记录时的时间戳504。
在一个实施例中,该方法进一步包括:基于获取资源锁定,除了将锁定信息记录保存到集群计算环境的共享数据结构中之外,还将锁定信息记录保存到与进程相关联的高速缓存,以及为保存到高速缓存的锁定信息记录启动到期定时器506。
如图5B所示,在一个或多个实现中,引用共享数据结构基于请求查询和相关联的预期所有方数据508。预期所有方数据包括针对资源锁定的预期所有方信息,并且该方法包括检查以确定保存到高速缓存的锁定信息记录的到期定时器是否已经到期510。基于到期定时器尚未到期,该方法包括确定预期所有方数据的预期所有方信息是否匹配高速缓存中的锁定信息记录的对应锁定信息以验证锁定信息记录512。预期所有方信息包括以下至少一项:标识资源锁定的预期用户所有方的用户ID或与所获取的资源锁定相关联的预期作业名称。进一步,该方法包括基于预期所有方信息与高速缓存中的锁定信息记录的对应锁定信息相匹配,向所述查询请求提供具有用户标识数据的回复514,该用户标识数据标识资源锁定的用户所有方。
在一个实施例中,其中基于预期所有方信息与高速缓存中的锁定信息记录的对应锁定信息不匹配516,该方法包括从高速缓存删除锁定信息记录518,以及从共享数据结构取回锁定信息记录520。进一步,该确定包括确定预期所有方数据的预期所有方信息是否与来自共享数据结构取回的锁定信息记录的对应锁定信息相匹配以验证锁定信息记录522,并且基于预期所有方信息与对应锁定信息匹配,向高速缓存添加取回的锁定信息记录,并且向请求查询提供具有用户标识数据的回复524,该用户标识数据标识资源锁定的用户所有方。
引用图5C,在一个实施例中,基于预期所有方信息与共享数据结构中的锁定信息记录的对应锁定信息不匹配,该方法包括执行进一步的记录处理526,其中进一步的处理包括:确定预期所有方数据是否包括空的预期所有方数据528,并且基于预期所有方数据包括空的预期所有方数据,确定请求查询是否来自获取了资源锁定的相同系统530。基于请求查询来自与获取了资源锁定不同的系统,该方法包括承兑所取回的锁定信息记录,并且提供来自所取回的锁定信息记录的用户标识数据以回复请求查询532。基于发出请求查询的系统与获取资源锁定的系统相同,则该方法包括从共享数据结构删除锁定信息记录,并且从高速缓存删除锁定信息记录,以将共享数据结构和高速缓存同步为空的预期所有方数据534。
在一个实施例中,其中基于预期所有方数据不同于空的预期所有方数据536,进一步处理包括:确定用户标识数据是否存在于共享数据结构538中。基于用户标识数据不位于共享数据结构中,该方法包括将预期所有方数据添加到共享数据结构作为锁定信息记录,并且将预期所有方数据添加到高速缓存作为锁定信息记录540。然后,返回针对资源锁定的用户所有方的可用的用户标识数据以回复请求查询542。
参照图5D,在一个实施例中,基于预期所有方数据不同于空的预期所有方数据,并且基于用户标识数据位于共享数据结构544中,该方法包括:使用预期所有方数据来更新共享数据结构中的锁定信息记录,并且使用预期所有方数据来更新高速缓存中的锁定信息记录546。进一步,该方法包括返回用户标识数据以回复请求查询,该用户标识数据标识来自更新的锁定信息记录的资源锁定的用户所有方548。
在一个实施例中,系统是集群计算环境的多个逻辑分区中的一个逻辑分区,并且该进程是一个应用服务器,而另一进程是另一应用服务器,并且该另一进程在获取资源锁定的相同系统上或者在与获取资源锁定的系统不同的系统上执行550。
本领域技术人员将从本文提供的描述注意到,跨集群计算环境的进程和系统来促进资源锁定的用户所有方标识,这在程序开发期间可以是特别有利的。在一个实现中,提供了允许跨集群计算环境(诸如,系统综合体环境)中的相同或不同系统(例如,逻辑分区)内的不同进程(或地址空间)访问真实锁定所有方信息的设施。在一个或多个实施例中,使用具有用于性能改善的记录校正能力的定时高速缓存查找来促进处理。在一个实施例中,使用与查询请求一起提供的预期所有方数据允许共享数据结构中的锁定信息记录被确证,并且允许在存在不一致的情况下发生数据的自动校正。例如,如果针对给定资源的共享数据结构中的锁定信息记录指示与所接收的非零的预期所有方数据不匹配的所有方或工作,则系统或设施知道共享数据结构中的锁定信息记录是不正确的,并且需要被更新。如果例如用于减少对共享数据结构的I/O的高速缓存在导致锁定所有权改变的事件之前未到期,则这种情况可能发生。
作为一个具体实现,提供了用于跟踪系统综合体环境中的每个进程和每个逻辑分区上的锁定所有权的计算机实现的设施。该计算机实现的过程包括:响应于用户对锁定的获取,利用包括记录的唯一密钥、与锁定的所有方相关联的用户标识符、与锁定相关联的系统名称、与锁定相关联的作业名称、任务控制块标识符、地址空间标识符、和/或当创建锁定信息记录时的时间戳的锁定信息来填充预定的共享数据结构中的锁定信息记录;填充与每个进程相关联的高速缓存,包括每个用户所拥有的资源列表,以及到期定时器,用于跟踪除了填充预定数据结构中的记录之外的锁定的所有权信息;响应于接收到对锁定信息的请求,使用到期定时器来确定高速缓存是否在有效时间阈值内;响应于到期定时器的到期以及查询查找被触发,使用预先确定的数据结构的最新内容来自更新高速缓存以减轻潜在的不同步问题;响应于确定高速缓存在有效持续时间内,执行确定锁定是否被用户在至少一个其他进程和/或其他逻辑分区中获取的查询,以返回(多个)锁定资源的所有方的用户标识符;响应于确定从传统方法返回的锁定所有方的用户标识符不同于使用共享数据结构的从查询锁定方法返回的锁定所有方的用户标识符,执行不同步信息的自动校正,包括修改记录、添加缺失记录或删除记录;响应于用户的当前会话的结束,使用从高速缓存获得的资源列表作为密钥从共享数据结构中移除对应的记录,以在共享数据结构中定位对应的记录;以及在审计日志中记录例如每个用户的锁定记录的历史。
引用图6A描述了结合和使用本发明的一个或多个方面的计算环境的另一个实现。在该示例中,计算环境36包括例如经由例如一个或多个总线40和/或其他连接彼此耦合的本地中央处理单元(CPU)37、存储器38以及一个或多个输入/输出设备和/或接口39。作为示例,计算环境36可以包括由纽约州阿蒙克的国际商业机器公司提供的处理器;由加利福尼亚州帕洛阿尔托的惠普公司(Hewlett Packard Co.)提供的具有11处理器的HP Superdome;和/或基于由国际商业机器公司、惠普公司、英特尔公司、甲骨文公司和/或其他公司提供的架构的其他机器。PowerPC是在至少一个管辖区域中的国际商业机器公司的商标或注册商标。安腾是英特尔公司或其子公司在美国和其他国家的商标或注册商标。
本机中央处理单元37包括一个或多个本机寄存器41,诸如在环境内处理期间使用的一个或多个通用寄存器和/或一个或多个专用寄存器。这些寄存器包括表示在任何特定时间点的环境状态的信息。
此外,本地中央处理单元37执行存储在存储器38中的指令和代码。在一个特定示例中,中央处理单元执行存储在存储器38中的仿真器代码42。该代码使在一个架构中配置的计算环境能够仿真另一架构。例如,仿真器代码42允许基于除了z/架构硬件架构之外的架构的机器(诸如,PowerPC处理器、HPSuperdome服务器或其他)仿真z/架构硬件架构,并且执行基于z/架构硬件架构开发的软件和指令。
参照图6B描述与仿真器代码42相关的进一步细节。存储在存储器38中的客户指令43包括被开发为在不同于本机CPU37的架构的架构中执行的软件指令(例如,与机器指令相关)。例如,来宾指令43可能已经被设计成基于z/架构硬件架构在处理器上执行,但取而代之的是在本地CPU 37(其可以是例如英特尔安腾11处理器)上仿真。在一个示例中,仿真器代码42包括指令提取例程44以从存储器38获得一个或多个来宾指令43,并且可选地提供对所获得的指令的本地缓冲。其还包含指令转换例程45以确定已获得的来宾指令的类型并且将来宾指令转换为一或多个对应本机指令46。该转换包括,例如,标识要由来宾指令执行的函数并且选择执行该函数的(多个)本地指令。
进一步,仿真器代码42包括仿真控制例程47,以使本机指令被执行。仿真控制例程47可以使本机CPU37执行仿真一个或多个先前获得的来宾指令的本机指令例程,并且在此执行结束时,将控制返回到指令提取例程以仿真下一来宾指令或来宾指令组的获得。本机指令46的执行可以包含将数据从存储器38加载到寄存器中;将数据从寄存器存储回到存储器;或执行如由翻译例程确定的某一类型的算术或逻辑操作。
例如,每一例程以软件实施,软件存储在存储器中并且由本机中央处理单元37执行。在其他示例中,例程或操作中的一个或多个以固件、硬件、软件或其某种组合来实现。可使用本机生CPU的寄存器41或通过使用存储器38中的位置来仿真经仿真处理器的寄存器。在各实施例中,来宾指令43、本机指令46和仿真器代码42可以驻留在同一存储器中或可分布在不同存储器设备之间。
根据本发明的方面,可以仿真的指令是本文描述的重置动态地址转换保护指令。
上文所描述的计算环境仅为可以使用的计算环境的示例。可以使用其他环境,包括但不限于非分区环境、分区环境、云环境和/或模拟环境;实施例不限于任何一个环境。尽管本文描述了计算环境的不同示例,但本发明的一个或多个方面可以与许多类型的环境一起使用。本文提供的计算环境仅为示例。
每个计算环境能够被配置成包括本发明的一个或多个方面。
一个或多个方面可以涉及云计算。
应当理解,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,可配置计算资源可以以最小的管理努力或与服务的提供方的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费方可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供方的人类交互。
广泛的网络接入:能力通过网络可获得并且通过标准机制接入,该标准机制促进异构瘦客户端平台或厚客户端平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池:提供方的计算资源被池化以使用多租户模型来服务于多个消费方,其中不同的物理和虚拟资源根据需要动态地指派和重新指派。存在位置独立性的感觉,因为消费方通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费方而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供方和消费方提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费方的能力是使用在云基础设施上运行的提供方的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费方不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):提供给消费方的能力是将消费方创建的或获取的使用由提供方支持的编程语言和工具创建的应用部署到云基础设施上。消费方不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
基础设施即服务(IaaS):提供给消费方的能力是提供处理、存储、网络和消费方能够部署和运行任意软件的其他基本计算资源,软件可以包括操作系统和应用。消费方不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础架构被多个组织共享并且支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在引用图7,描述了说明性云计算环境50。如图所示,云计算环境50包括云消费方使用的本地计算设备可以与其通信的一个或多个云计算节点52,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点52可以彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图7中所示的计算设备54A至54N的类型仅旨在是说明性的,并且计算节点52和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
现在参见图8,示出了由云计算环境50(图7)提供的功能抽象层集。应提前理解,图8中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描述,提供以下层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行85提供根据SLA预期未来需求的云计算资源的预安排和采购。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟课堂教育交付93;数据分析处理94;交易处理95;以及标识处理96。
本发明的各个方面可以是任何可能的技术细节集成度的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储媒体可以为可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储媒体不应被解释为暂态信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输媒体传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并且转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如,Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供方通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个框以及流程图和/或框图中各框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个框中规定的功能/动作的方面的指令的制品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的(多个)逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
除了上述之外,一个或多个方面可由提供客户环境的管理的服务提供方提供、提供、部署、管理、服务等。例如,服务提供方可以为一个或多个客户创建、维护、支持等执行一个或多个方面的计算机代码和/或计算机基础设施。作为回报,作为示例,服务提供方可以根据订阅和/或费用协议从客户接收支付。附加或备选地,服务提供方可以从广告内容向一个或多个第三方的销售接收支付。
在一个方面,可以部署用于执行一个或多个实施例的应用。作为一个示例,应用的部署包括提供可操作以执行一个或多个实施例的计算机基础设施。
作为又一方面,可以部署计算基础设施,包括将计算机可读代码集成到计算系统中,其中代码与计算系统组合能够执行一个或多个实施例。
作为又一方面,可以提供一种用于集成计算基础设施的过程,过程包括将计算机可读代码集成到计算机系统中。计算机系统包括计算机可读介质,其中计算机介质包括一个或多个实施例。代码与计算机系统组合能够执行一个或多个实施例。
尽管以上描述了各种实施例,但这些实施例仅是示例。例如,其他架构的计算环境可以用于合并和/或使用一个或多个方面。进一步,可以使用不同的指令或操作。此外,可以使用不同类型的寄存器和/或不同的寄存器。许多变型是可能的。
本文描述了各个方面。此外,在不背离本发明的各方面的精神的情况下,许多变型是可能的。应注意,除非另外不一致,否则本文的每个方面或特征及其变型可以与任何其他方面或特征组合。
进一步,其他类型的计算环境可以有益并且被使用。作为示例,适合于存储和/或执行程序代码的数据处理系统是可用的,其包括通过系统总线直接或间接地耦合到存储器元件的至少两个处理器。存储器元件包括例如在程序代码的实际执行期间使用的本地存储器、大容量存储器和高速缓冲存储器,该高速缓冲存储器提供至少一些程序代码的临时存储以便减少在执行期间必须从大容量存储器取回代码的次数。
输入/输出或I/O设备(包括但不限于键盘、显示器、定点设备、DASD、磁带、CD、DVD、拇指驱动器和其他存储介质等)可以直接地或通过中间的I/O控制器耦合到系统。网络适配器也可以耦合到系统,以使数据处理系统能够通过居间的私有或公共网络耦合到其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅是一些可用类型的网络适配器。
本文中使用的术语仅用于描述具体实施方式的目的,而并非旨在进行限制。如本文中使用的,除非上下文另有明确指示,否则单数形式“一”、“一个”和“该”旨在也包括复数形式。还应当理解,当在本说明书中使用术语“包括”和/或“包含”时,其指定特征、整体、步骤、操作、元素和/或组件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元素、组件和/或其组合的存在或添加。
以下权利要求中的所有装置或步骤加上功能元件的对应结构、材料、动作和等效物(如果有的话)旨在包括用于结合如具体要求保护的其他要求保护的元素来执行功能的任何结构、材料或动作。已经出于说明和描述的目的呈现了对一个或多个实施例的描述,但并不旨在是详尽的或限于所公开的形式。对于本领域普通技术人员而言,许多修改和变化将是清楚的。选择和描述实施例以便最好地解释各个方面和实际应用,并且使本领域的其他普通技术人员能够理解具有适合于预期的特定用途的不同修改的不同实施例。
Claims (19)
1.一种促进集群计算环境内的处理的计算机实现的方法,所述计算机实现的方法包括:
由进程基于用户获取资源锁定而将锁定信息记录保存到所述集群计算环境的共享数据结构中,所述锁定信息记录包括标识在执行所述进程的系统上获取的所述资源锁定的用户所有方的用户所有方标识数据;以及
由另一进程引用所述共享数据结构的所述锁定信息记录,以查明标识所述资源锁定的所述用户所有方的所述用户标识数据以促进所述集群计算环境内的处理。
2.根据权利要求1所述的方法,其中,所述锁定信息记录还包括与获得所述资源锁定相关联的作业名称、以及以下一项或多项:获得所述资源锁定的所述系统的系统名称、与所述资源锁定相关联的任务控制块标识符、与所述资源锁定相关联的地址空间标识符、或者当所述锁定信息记录被创建时的时间戳。
3.根据权利要求1所述的方法,还包括:基于获取所述资源锁定,除了将所述锁定信息记录保存到所述集群计算环境的所述共享数据结构之外,还将所述锁定信息记录保存到与所述进程相关联的高速缓存,以及针对被保存到所述高速缓存的所述锁定信息记录启动到期定时器。
4.根据权利要求3所述的方法,其中,所述引用基于请求查询和相关联的预期所有方数据,所述预期所有方数据包括针对所述资源锁定的预期所有方信息,并且所述方法包括:
检查以确定针对被保存到所述高速缓存的所述锁定信息记录的所述到期定时器是否已经到期;
基于所述到期定时器没有到期,确定所述预期所有方数据的所述预期所有方信息是否匹配所述高速缓存中的所述锁定信息记录的对应锁定信息以验证所述锁定信息记录,所述预期所有方信息包括以下至少一项:标识所述资源锁定的预期用户所有方的用户ID或者与所获取的所述资源锁定相关联的预期作业名称;以及
基于所述预期所有方信息与所述高速缓存中的所述锁定信息记录的所述对应锁定信息相匹配,向所述查询请求提供具有所述用户标识数据的回复,所述用户标识数据标识所述资源锁定的所述用户所有方。
5.根据权利要求4所述的方法,其中基于所述预期所有方信息与所述高速缓存中的所述锁定信息记录的所述对应锁定信息不匹配,所述方法包括:
从所述高速缓存中删除所述锁定信息记录;
从所述共享数据结构取回所述锁定信息记录;以及
其中,所述确定还包括:
确定所述预期所有方数据的所述预期所有方信息是否与来自所述共享数据结构的所取回的所述锁定信息记录的所述对应锁定信息相匹配以验证所述锁定信息记录;以及
基于所述预期所有方信息与所述对应锁定信息相匹配,将所取回的所述锁定信息记录添加到所述高速缓存,并且向所述请求查询提供具有所述用户标识数据的回复,所述用户标识数据标识所述资源锁定的所述用户所有方。
6.根据权利要求5所述的方法,其中,基于所述预期所有方信息与所述共享数据结构中的所述锁定信息记录的所述对应锁定信息不匹配,执行进一步的记录处理,所述进一步的记录处理包括:
确定所述预期所有方数据是否包括空的预期所有方数据;
基于所述预期所有方数据包括空的预期所有方数据,确定所述请求查询是否来自获取了所述资源锁定的相同系统;
基于所述请求查询来自与获取了所述资源锁定的不同的系统,承兑所取回的所述锁定信息记录,并且提供来自所取回的所述锁定信息记录的所述用户标识数据以回复所述请求查询;以及
基于发出请求查询的所述系统与获取所述资源锁定的所述系统相同,从所述共享数据结构中删除所述锁定信息记录并且从所述高速缓存中删除所述锁定信息记录,以将所述共享数据结构和所述高速缓存同步为所述空的预期所有方数据。
7.根据权利要求6所述的方法,其中基于所述预期所有方数据不同于空的预期所有方数据,所述进一步处理包括:
确定所述用户标识数据是否存在于所述共享数据结构中;
基于所述用户标识数据不位于所述共享数据结构中,将所述预期所有方数据添加到所述共享数据结构中作为所述锁定信息记录,并且将所述预期所有方数据添加到所述高速缓存中作为所述锁定信息记录;以及
返回针对所述资源锁定的所述用户所有方的可用用户标识数据以回复所述请求查询。
8.根据权利要求6所述的方法,其中基于所述预期所有方数据不同于空的预期所有方数据,并且基于所述用户标识数据位于所述共享数据结构中:
使用所述预期所有方数据来更新所述共享数据结构中的所述锁定信息记录,并且使用所述预期所有方数据来更新所述高速缓存中的所述锁定信息记录;以及
返回所述用户标识数据以回复所述请求查询,所述用户标识数据标识来自更新的所述锁定信息记录的所述资源锁定的所述用户所有方。
9.根据权利要求1所述的方法,其中,所述系统是所述集群计算环境的多个逻辑分区中的一个逻辑分区,并且所述进程包括一个应用服务器,并且所述另一进程包括另一应用服务器,并且其中所述另一进程在获取了所述资源锁定的相同系统上执行、或者在与获取了所述资源锁定的所述系统不同的系统上执行。
10.一种用于促进集群计算环境内的处理的计算机系统,所述计算机系统包括:
存储器;以及
处理电路,与所述存储器通信,其中所述计算机系统被配置为执行方法,所述方法包括:
由进程基于用户获取资源锁定而将锁定信息记录保存到所述集群计算环境的共享数据结构中,所述锁定信息记录包括标识在执行所述进程的系统上获取的所述资源锁定的所述用户所有方的用户标识数据;以及
由另一进程引用所述共享数据结构的所述锁定信息记录以查明标识所述资源锁定的所述用户所有方的所述用户标识数据以促进所述集群计算环境内的处理。
11.根据权利要求10所述的计算机系统,其中,所述锁定信息记录还包括与获得所述资源锁定相关联的作业名称、以及以下一项或多项:获得所述资源锁定的所述系统的系统名称、与所述资源锁定相关联的任务控制块标识符、与所述资源锁定相关联的地址空间标识符、或所述锁定信息记录被创建时的时间戳。
12.根据权利要求10所述的计算机系统,还包括,基于获取所述资源锁定,除了将所述锁定信息记录保存到所述集群计算环境的所述共享数据结构之外,还将所述锁定信息记录保存到与所述进程相关联的高速缓存,以及针对被保存到所述高速缓存的所述锁定信息记录启动到期定时器。
13.根据权利要求12所述的计算机系统,其中,所述引用基于请求查询和相关联的预期所有方数据,所述预期所有方数据包括针对所述资源锁定的预期所有方信息,并且所述方法包括:
检查以确定针对被保存到所述高速缓存的所述锁定信息记录的所述到期定时器是否已经到期;
基于所述到期定时器没有到期,确定所述预期所有方数据的所述预期所有方信息是否匹配所述高速缓存中的所述锁定信息记录的对应锁定信息以验证所述锁定信息记录,所述预期所有方信息包括以下至少一项:标识所述资源锁定的预期用户所有方的用户ID或者与所获取的所述资源锁定相关联的预期作业名称;以及
基于所述预期所有方信息与所述高速缓存中的所述锁定信息记录的所述对应锁定信息相匹配,向所述查询请求提供具有所述用户标识数据的回复,所述用户标识数据标识所述资源锁定的所述用户所有方。
14.根据权利要求13所述的计算机系统,其中,基于所述预期所有方信息与所述高速缓存中的所述锁定信息记录的所述对应锁定信息不匹配,所述方法包括:
从所述高速缓存中删除所述锁定信息记录;
从所述共享数据结构取回所述锁定信息记录;以及
其中,所述确定还包括:
确定所述预期所有方数据的所述预期所有方信息是否与来自所述共享数据结构的所取回的所述锁定信息记录的所述对应锁定信息相匹配以验证所述锁定信息记录;以及
基于所述预期所有方信息与所述对应锁定信息相匹配,将所取回的所述锁定信息记录添加到所述高速缓存,并且向所述请求查询提供具有所述用户标识数据的回复,所述用户标识数据标识所述资源锁定的所述用户所有方。
15.根据权利要求14所述的计算机系统,其中,基于所述预期所有方信息与在所述共享数据结构中取回的所述锁定信息记录的所述对应锁定信息不匹配,执行进一步的记录处理,所述进一步的记录处理包括:
确定所述预期所有方数据是否包括空的预期所有方数据;
基于所述预期所有方数据包括空的预期所有方数据,确定所述请求查询是否来自获取了所述资源锁定的相同系统;
基于所述请求查询来自与获取了所述资源锁定不同的系统,承兑所取回的所述锁定信息记录并且提供来自所取回的所述锁定信息记录的所述用户标识数据以回复所述请求查询;以及
基于发出请求查询的所述系统与获取所述资源锁定的所述系统相同,从所述共享数据结构中删除所述锁定信息记录并且从所述高速缓存中删除所述锁定信息记录,以将所述共享数据结构和所述高速缓存同步为所述空的预期所有方数据。
16.根据权利要求15所述的计算机系统,其中基于所述预期所有方数据不同于空的预期所有方数据,所述进一步处理包括:
确定所述用户标识数据是否存在于所述共享数据结构中;
基于所述用户标识数据不位于所述共享数据结构中,将所述预期所有方数据添加到所述共享数据结构中作为所述锁定信息记录,并且将所述预期所有方数据添加到所述高速缓存中作为所述锁定信息记录;以及
返回针对所述资源锁定的所述用户所有方的可用用户标识数据以回复所述请求查询。
17.根据权利要求15所述的计算机系统,其中基于所述预期的所有方数据不同于空的预期所有方数据,并且基于所述用户标识数据位于所述共享数据结构中:
使用所述预期所有方数据来更新所述共享数据结构中的所述锁定信息记录,并且使用所述预期所有方数据来更新所述高速缓存中的所述锁定信息记录;以及
返回所述用户标识数据以回复所述请求查询,所述用户标识数据标识来自更新的所述锁定信息记录的所述资源锁定的所述用户所有方。
18.一种存储在计算机可读存储介质中的计算机程序产品,包括计算机程序代码,所述计算机程序代码在由信息处理系统执行时,执行根据权利要求1至9中任一方法所述的步骤。
19.一种计算机可读存储介质,包括计算机程序代码,所述计算机程序代码在由信息处理系统执行时,执行根据权利要求1至9的任一方法所述的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/341,519 US11880350B2 (en) | 2021-06-08 | 2021-06-08 | Identifying resource lock ownership across a clustered computing environment |
US17/341,519 | 2021-06-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115454562A true CN115454562A (zh) | 2022-12-09 |
Family
ID=84285087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210652569.0A Pending CN115454562A (zh) | 2021-06-08 | 2022-06-07 | 标识跨集群计算环境的资源锁定所有权 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11880350B2 (zh) |
JP (1) | JP2022187999A (zh) |
CN (1) | CN115454562A (zh) |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2533266B2 (ja) * | 1991-06-14 | 1996-09-11 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 共用デ―タシステムにおけるデ―タ資源のロッキング方法及びシステム間のデ―タロック管理方法 |
EP2270687A2 (en) | 1995-04-11 | 2011-01-05 | Kinetech, Inc. | Identifying data in a data processing system |
US5920873A (en) * | 1996-12-06 | 1999-07-06 | International Business Machines Corporation | Data management control system for file and database |
US6105099A (en) * | 1998-11-30 | 2000-08-15 | International Business Machines Corporation | Method for synchronizing use of dual and solo locking for two competing processors responsive to membership changes |
US20020116506A1 (en) | 2001-02-20 | 2002-08-22 | Jim Lautner | Cross-MVS system serialized device control |
US7111197B2 (en) * | 2001-09-21 | 2006-09-19 | Polyserve, Inc. | System and method for journal recovery for multinode environments |
JP4012517B2 (ja) | 2003-04-29 | 2007-11-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 仮想計算機環境におけるロックの管理 |
US7403945B2 (en) * | 2004-11-01 | 2008-07-22 | Sybase, Inc. | Distributed database system providing data and space management methodology |
GB0623237D0 (en) | 2006-11-22 | 2007-01-03 | Ibm | Issuing syncpoints during execution of a batch application |
US8010832B2 (en) * | 2008-07-25 | 2011-08-30 | International Business Machines Corporation | Transitional replacement of operations performed by a central hub |
US20100057741A1 (en) * | 2008-08-29 | 2010-03-04 | International Business Management Productions | Software resource access utilizing multiple lock tables |
US8195704B2 (en) | 2009-01-06 | 2012-06-05 | International Business Machines Corporation | Validation and correction in a distributed namespace |
US8924370B2 (en) * | 2011-05-31 | 2014-12-30 | Ori Software Development Ltd. | Efficient distributed lock manager |
US9053141B2 (en) | 2011-10-31 | 2015-06-09 | International Business Machines Corporation | Serialization of access to data in multi-mainframe computing environments |
US9658899B2 (en) * | 2013-06-10 | 2017-05-23 | Amazon Technologies, Inc. | Distributed lock management in a cloud computing environment |
CN106293510B (zh) | 2016-07-21 | 2019-06-18 | 中国农业银行股份有限公司 | 一种面向多虚拟存储系统的数据共享方法及系统 |
-
2021
- 2021-06-08 US US17/341,519 patent/US11880350B2/en active Active
-
2022
- 2022-06-06 JP JP2022091431A patent/JP2022187999A/ja active Pending
- 2022-06-07 CN CN202210652569.0A patent/CN115454562A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11880350B2 (en) | 2024-01-23 |
US20220391374A1 (en) | 2022-12-08 |
JP2022187999A (ja) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10678656B2 (en) | Intelligent restore-container service offering for backup validation testing and business resiliency | |
US10083092B2 (en) | Block level backup of virtual machines for file name level based file search and restoration | |
US10572178B2 (en) | Expiration handling for block level backup of virtual machines | |
US10585760B2 (en) | File name level based file search and restoration from block level backups of virtual machines | |
US10216429B2 (en) | Performing post-processing operations for log file writes | |
US11150981B2 (en) | Fast recovery from failures in a chronologically ordered log-structured key-value storage system | |
US20190377809A1 (en) | Resolving versions in an append-only large-scale data store in distributed data management systems | |
US9229659B2 (en) | Identifying and accessing reference data in an in-memory data grid | |
US11940969B2 (en) | Managing locations of derived storage objects | |
US9298487B2 (en) | Managing virtual machine images in a distributed computing environment | |
US11372734B1 (en) | Database recovery based on workload priorities | |
US11163636B2 (en) | Chronologically ordered log-structured key-value store from failures during garbage collection | |
US11880350B2 (en) | Identifying resource lock ownership across a clustered computing environment | |
CN115485677A (zh) | 在分布式数据存储环境中的安全数据复制 | |
US11620059B1 (en) | Optimization of file system snapshot performance in hybrid storage deployments | |
US20230418960A1 (en) | Generational access to safeguarded copy source volumes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |