群集计算系统中改变的快速应用程序通知的方法和系统技术方案

技术编号:2849674 阅读:271 留言:0更新日期:2012-04-11 18:40
借助于群集计算系统的改变的快速通知,应用程序可以快速地恢复并且会话可以被快速地再平衡,其中通过群集计算系统为系统状态改变公布多个事件。当与服务相关的资源经历诸如终止或开始/重新开始的状态改变时,立即公布通知事件。通知事件包含信息以使得订阅者能够基于匹配会话签名来识别受状态改变影响的特定会话,并且相应地响应。这允许当资源失败时,会话被快速地中断并且正在进行的处理被快速地终止,并且允许当资源重新开始时,快速地再平衡工作。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般地涉及群集计算系统,并且更具体地,涉及用于使用事件来实现群集系统中的状态改变的快速通知的技术。
技术介绍
群集计算系统群集计算系统是用于提供对一组客户应用程序的处理的互连计算元件的集合。每个计算元件被称为节点。节点可以是互连到其它计算机的计算机,或互连到网格中的其它刀片式服务器的刀片式服务器。能够共享地存取存储器(例如,能够共享地磁盘存取一组磁盘驱动器或非易失存储器)并且经由互连件连接的群集计算系统中的一组节点,在此称为工作群集。群集计算系统被用来容放群集服务器。服务器是集成的软件构件和用于在处理器上执行该集成的软件构件的计算资源(诸如存储器、节点、以及节点上的进程)分配的组合,其中,软件和计算资源的组合用于为该服务器的客户机提供特定类型的功能。服务器的一个例子是数据库服务器。在数据库管理的其他功能之中,数据库服务器管理并且促进对特定数据库的存取,处理客户机对存取数据库的请求。来自群集计算系统中的多个节点的资源可以被分配,以运行服务器的软件。该服务器的特定节点的资源的每个分配,在此被称为“服务器实例(instance)”或实例。数据库服务器可以是群集的,其中,服务器实例可以总称为群集。数据库服务器的每个实例促进对同一数据库的存取,其中,数据的完整性由全局锁管理器管理。用于根据服务级(service level)来管理应用程序的服务服务是数据库工作量管理的特征,其划分在数据库中执行的总体工作,以根据服务级来管理工作。资源根据服务级和优先级被分配给服务。服务被衡量和管理以有效地按需要交付资源容量。资源高可用性服务级使用群集的冗余部分的可靠性。服务是用于管理工作量的逻辑抽象。服务可以用于将在数据库群集中执行的工作划分成相互脱节的类(class)。每个服务可以用共同属性、服务级阈值、和优先级来表示逻辑业务功能(例如,工作量)。服务的分组基于工作的属性,工作可以包括将被调用的应用功能、应用功能执行的优先级、将被管理的作业类、或者在作业类的应用功能中使用的数据范围。例如,电子-商务套件可以为每项职责定义服务,诸如总分类帐、应收帐款、定单登记等。服务提供单系统映象以管理竞争应用程序,并且服务允许每个工作量被分离的作为一个单位来管理。服务可以跨越网格中的多个群集或群集中的多个服务器实例,并且单个服务器实例可以支持多个服务。中间层和客户机/服务器应用程序可以通过,例如,将服务指定为连接的部分来使用服务。例如,应用程序服务器数据源可以被设定为发送到服务。此外,服务器端工作将服务名称设定为工作量定义的一部分。例如,作业类使用的服务在作业类被创建时被定义,并且在执行期间,作业被分配给作业类并且作业类在服务内运行。数据库会话为了使客户机与数据库群集上的数据库服务器的相互作用,为客户机建立会话。会话(诸如数据库会话)是为客户机到服务器建立的特定连接,诸如数据库实例,客户机通过其发出一系列请求(例如,执行数据库语句的请求)。对于建立在数据库实例上的每个数据库会话,保持反映数据库会话的当前状态的会话状态数据。这样的信息包括,例如,为其建立会话的客户机的身份、以及客户机使用的服务、由执行数据库会话内的软件的进程生成的临时变量值。应用程序可以从连接池“借用”连接,并且在会话结束时将连接放回到连接池中。一般地,会话是用数据库来执行工作的媒介(vehicle)。每个会话都可以具有其自己的数据库进程或者可以共享数据库进程,后者称为多路复用。高可用性在群集计算系统中出现了某些改变,其降低了高可用性并且导致客户应用程序浪费时间。一般地,这样的改变可以被分类为“停止(down)”改变、“发生(up)”改变、或“非重新开始”改变。当服务、服务器实例、或节点机器(通常为“部件”)终止或“停止”时出现停止改变。当服务、服务器实例、或节点起始或“发生”时出现发生改变。当服务、实例、或节点不再开始时出现“非重新开始”改变。某些改变可以影响现有的会话以及当前没有使用但是已经被创建并与服务、实例、或节点相关的连接。当群集系统的状态改变时,应用程序在其经由会话与群集系统的相互作用中浪费相当大量的时间和资源。特别地,当群集系统的状态改变时,群集数据库的客户应用程序浪费时间和资源。例如,当会话正在使用的节点或服务器实例“停止”时,应用程序可以不被长时间中断。特别地,如果节点或网络不能关闭会话套接字(socket),则应用程序等待来自局部TCP/IP堆栈的TCP/IP超时错误。对于另一个例子,当新服务、节点、或实例变得可用时,即“发生”时,工作可以不在支持服务的所有实例中被分配。换句话说,由于当服务、节点、或实例可用时不与其连接,时间被浪费。时间和资源被浪费的另一种方式是,当客户机保持再次尝试与不会变得备用或者还没有重新开始的部件通信时。一般地,当节点停止时,传统系统的性能非常差。应用程序会话可以等待多达两个小时以被中断。一般地,当失败的系统实体被恢复(即,已经发生的实体)时,传统系统在分配工作给恢复的实体方面性能差。因此,传统系统提供了降低的可用性,并且潜在地减少了服务次数,而可用性和服务次数正是本系统所能提供的。而且,使用传统系统,在失败部件修复或恢复之后,传统的冷故障切换(cold-failover)系统通常将整个工作量的低效运行提供给恢复的实体,而不是提供群集中的部件的补充物间的负荷平衡。在运行时期间,会话通常在涉及相应的数据库服务器实例的四个状态中的一个中。会话可以(1)主动地连接至实例,即,建立与实例的会话;(2)主动地发出命令给实例,诸如发出SQL语句;(3)被动地被阻塞,等待对发出的SQL语句的响应;以及(4)处理先前的请求,例如,SQL语句。状态(1)不同于其它状态,因为客户机正在进入TCP/IP堆栈。在其它状态中,客户机在TCP/IP堆栈内部。当群集系统的状态改变时,服务器的客户机在其经由会话与群集系统的相互作用中,浪费相当大量的时间和资源。特别地,当数据库群集的状态改变时,群集数据库的客户应用程序浪费时间和资源。例如,当新服务、节点、或实例变得可用时,即“发生”时,工作可以不在支持服务的所有实例间被分配。换句话说,由于当实例或节点上的服务变得可用时而不与其连接,时间被浪费。时间和资源被浪费的另一种方式是,当客户机保持再次尝试与不会变得备用(即,与死节点通信)或还没有重新开始的部件通信时。例如,当会话正在使用的节点或服务器实例“停止”时,应用程序可以不被长时间(即,通常为两小时)中断。特别地,如果节点或网络不能关闭会话套接字,则应用程序等待来自局部TCP/IP堆栈的TCP/IP超时错误。情况(1)可以通过使用通常可用的虚拟IP地址来缓和。这是因为客户机在TCP/IP堆栈的外部。因此,当节点停止时,IP地址故障切换到不同节点。然而,当节点重新发生时,不存在寻址系统状态的改变的类似的解决方案。一般地,大多数问题当会话在状态(2)、(3)、或(4)中时出现。当会话在状态(3)中时,当应用程序和/或会话必须等待问题解决时,出现大多数浪费的时间。甚至更糟糕的,大约90%的时间,应用程序在状态(3)中。此外,使用连接池客户机,由于通过提供到应用程序的死连接,时间被浪费。一般地,当失败的或其它终止的系统实体被恢复时,传统系统在分配工本文档来自技高网...

【技术保护点】
一种用于传送关于群集计算环境的改变的方法,所述群集计算环境包括用于容放服务器实例的多个互连节点,所述方法包括以下计算机可执行的步骤:接收与在群集中执行的工作相关的资源的状态改变的指示;响应于所述群集中的所述状态改变,立即生成 识别所述资源的第一数据和指示所述资源的状态的第二数据;将所述第一数据和第二数据公布给一组一个或多个订阅者;并且其中,所述第一数据被订阅者用来基于响应于建立与所述群集的会话而生成并且用于识别与所述会话相关的资源的识别信息,来识 别受所述状态改变影响的与所述群集的一个或多个会话。

【技术特征摘要】
【国外来华专利技术】US 2003-8-14 60/495,368;US 2003-9-3 60/500,096;US 1.一种用于传送关于群集计算环境的改变的方法,所述群集计算环境包括用于容放服务器实例的多个互连节点,所述方法包括以下计算机可执行的步骤接收与在群集中执行的工作相关的资源的状态改变的指示;响应于所述群集中的所述状态改变,立即生成识别所述资源的第一数据和指示所述资源的状态的第二数据;将所述第一数据和第二数据公布给一组一个或多个订阅者;并且其中,所述第一数据被订阅者用来基于响应于建立与所述群集的会话而生成并且用于识别与所述会话相关的资源的识别信息,来识别受所述状态改变影响的与所述群集的一个或多个会话。2.根据权利要求1所述的方法,其中,在所述事件中被识别的所述资源的所述状态来自以下组中的一项,所述组由(a)所述资源的终止,(b)所述资源的开始,和(c)不能够重新开始所述资源组成。3.根据权利要求1所述的方法,其中,所述群集是数据库群集,并且其中,所述资源在所述第一数据中通过识别受所述状态改变影响的所述数据库群集而被识别。4.根据权利要求3所述的方法,其中,所述工作与服务相关,并且其中,所述资源在所述第一数据中通过识别受所述状态改变影响的所述服务而被进一步识别。5.根据权利要求4所述的方法,其中,所述资源的所述位置在所述第一数据中通过识别受所述状态改变影响的实例和节点而被进一步识别。6.根据权利要求3所述的方法,进一步包括以下计算机可执行的步骤基于使与所述会话相关的所述识别信息和识别所述资源的所述第一数据相匹配,识别与受所述状态改变影响的所述数据库群集的一个或多个会话。7.根据权利要求6所述的方法,进一步包括以下计算机可执行的步骤中断所述一个或多个会话。8.根据权利要求1所述的方法,其中,所述资源在所述第一数据中通过识别受所述状态改变影响的节点而被识别。9.根据权利要求1所述的方法,其中,所述工作与服务相关,并且其中,所述资源在所述第一数据中通过识别服务已经在特定实例终止,并且通过识别所述服务已经终止的所述特定实例而被识别。10.根据权利要求1所述的方法,其中,所述工作与服务相关,并且其中,所述资源在所述第一数据中通过识别整个服务已经终止,并且通过识别已经终止的所述服务而被识别。11.根据权利要求1所述的方法,其中,所述资源在所述第一数据中通过识别特定实例已经终止,并且通过识别已经终止的所述特定实例而被识别。12.根据权利要求1所述的方法,其中,所述资源在所述第一数据中通过识别所有的所述实例已经终止,并且通过识别所述实例与其相关的所述群集而被识别。13.根据权利要求1所述的方法,其中,所述工作与服务相关,并且其中,所述资源在所述第一数据中通过识别服务已经在特定实例开始,并且通过识别所述服务已经在其上开始的所述特定实例而被识别。14.根据权利要求13所述的方法,其中,所述资源在所述第一数据中通过识别支持已经开始的所述服务的实例的数量而被识别。15.根据权利要求1所述的方法,其中,所述工作与服务相关,并且其中,所述资源在所述第一数据中通过识别服务已经在任意实例上开始,并且通过识别已经开始的所述服务而被识别。16.根据权利要求15所述的方法,其中,所述资源在所述第一数据中通过识别支持已经开始的所述服务的实例的数量而被识别。17.根据权利要求1所述的方法,其中,所述资源在所述第一数据中通过识别特定实例已经开始,并且通过识别已经开始的所述实例而被识别。18.根据权利要求1所述的方法,其中,所述资源在所述第一数据中通过识别实例已经开始,并且通过识别所述实例与其相关的所述群集而被识别。19.根据权利要求1所述的方法,其中,所述资源在所述第一数据中通过识别节点已经终止,并且通过识别已经终止的所述节点而被识别。20.根据权利要求1所述的方法,其中,所述公布的步骤包括通过进程来公布所述第一数据和第二数据,其中所述进程并不是用于管理所述群集的群集件的一部分。21.根据权利要求1所述的方法,其中,所述第一数据和第二数据的订阅者是连接池管理器,所述连接池管理器通过基于所述第一数据和第二数据将连接重新分配给所述群集,来响应所述状态改变。22.根据权利要求1所述的方法,其中,所述第一数据和第二数据的订阅者是客户应用程序,所述客户应用程序通过基于所述第一数据和第二数据请求在受所述状态改变影响的所述工作的所述群集内的重新分配,来响应所述状态改变。23.根据权利要求1所述的方法,其中,所述第一数据和第二数据的订阅者是成批作业,所述成批作业通过基于所述状态改变调用所述群集内的例程的执行,来响应所述第一数据和第二数据。24.根据权利要求1所述的方法,其中,所述工作与服务相关,并且其中,所述资源在所述第一数据中通过识别所述服务没有重新开始使得订阅应用程序重试以使用所述服务被中断而被识别。25.一种计算机可读介质,承载有一个或多个指令序列,当所述指令序列由一个或多个处理器执行时,使所述一个或多个处理器执行在权利要...

【专利技术属性】
技术研发人员:卡罗尔科尔雷恩
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1