CN1928828A - 用于执行恢复的方法和系统 - Google Patents

用于执行恢复的方法和系统 Download PDF

Info

Publication number
CN1928828A
CN1928828A CNA2006101063709A CN200610106370A CN1928828A CN 1928828 A CN1928828 A CN 1928828A CN A2006101063709 A CNA2006101063709 A CN A2006101063709A CN 200610106370 A CN200610106370 A CN 200610106370A CN 1928828 A CN1928828 A CN 1928828A
Authority
CN
China
Prior art keywords
processing unit
recovery
recovery operation
processor
carry out
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.)
Granted
Application number
CNA2006101063709A
Other languages
English (en)
Other versions
CN100456250C (zh
Inventor
马丁·陶伯特
约汉·S·特罗特
安德列亚斯·科勒
肯尼斯·J·奥克斯
乌尔里希·海尔米奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1928828A publication Critical patent/CN1928828A/zh
Application granted granted Critical
Publication of CN100456250C publication Critical patent/CN100456250C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种用于在非同质多处理器环境中并行执行恢复的方法和系统。该方法规定了如何决定要执行哪些恢复操作以及在哪些处理器上执行的准则。如果有多个恢复操作等待执行,则目标是在多个处理器上并行执行这些恢复操作。与一个处理器进行所有要求的恢复的传统方法相比,这种方法的效率高得多。此外,在大型非同质系统中,由于技术限制,可能根本不存在这种能够进行完全恢复的单个处理器。本发明的方法还规定了并行执行恢复的多个处理器如何能够在避免死锁情况的同时访问共享资源的规则和机制。这包括对当前被另一个处理器所拥有的资源进行访问。

Description

用于执行恢复的方法和系统
技术领域
本发明总体上涉及计算机系统,具体地,涉及多处理计算机系统。更具体地,本发明涉及用于在非同质(non-homogeneous)多处理器环境中执行恢复的方法和系统。
背景技术
在现代计算中,由于将多个处理器组合增加了处理带宽并且普遍提高了吞吐量、可靠性和可服务性,因此多处理器计算机系统正在日益变得重要。多处理计算系统使用多个处理元件进行独立任务,这些处理元件可以包括链接在网络中的多个单独的处理器,或者,在协调环境中协同运行的多个软件进程或线程。
许多早期的多处理器系统包括多个单独的计算机系统,称为划分系统(partitioned system)。近来,多处理器系统由一个或多个计算机系统构成,该一个或多个计算机系统在逻辑上被划分,从而表现为多个独立的计算机系统。例如,可以将具有八个处理器的单个系统配置为,将所述八个处理器(或者一个或多个处理器的多个组)中的每一个视为用于处理目的的单独系统。这些虚拟系统中的每一个都应该具有其自己的操作系统副本,从而可以独立地对这些虚拟系统中的每一个分配任务,或者,这些虚拟系统中的每一个可以作为一处理集群一起运行,这提供了高速处理并提高了可靠性。
国际商业机器公司(IBM)的zSeries服务器已经在多处理计算机系统方面取得了广泛的商业上的成功。这些服务器提供了在“任务关键环境(mission critical environments)”方面所需要的性能、可扩展性以及可靠性。这些服务器运行公司应用(corporate applications),如企业资源规划(ERP)、商业智能(business intelligence,BI)以及高性能电子商务设施。这些系统的适当运行对于机构运行会是关键的,因此,最重要的方面在于,它们高效地并尽可能无差错地运行,并且对问题进行快速分析并从系统错误中恢复是至关重要的。注意,在IBM zSeries服务器上的逻辑划分意味着将实际处理器虚拟化。这表示可以将系统配置为,将这些虚拟处理器(或者一个或多个虚拟处理器的多个组)中的每一个视为用于处理目的的单独系统。
如IBM zSeries服务器的大型多处理器系统保持了数据结构方面的大状态空间。通常,对许多这些结构进行共享。系统中的每个任务对整体状态的一(小)部分进行修改。由于硬件或代码错误所致,这样的任务可能会产生对状态的错误或不完全的修改。状态空间的这个项可能影响系统的单个或多个部件。无论如何,都需要有效的恢复操作,以恢复连贯性。
传统的方法是首先在系统范围内收集等待执行的恢复操作。然后,单个处理器执行恢复,而其它受影响的处理器保持在安全状态。尽管这种方法适合于小型并且同质的系统,但是,其通常不能应用于大型非同质系统。其中有两个原因:
要求单个处理器在技术上能够进行所有恢复操作。但是,在大型系统中,通常不是所有处理器都具有相同的性能。一般不存在能够进行所有可能类型的恢复操作的单个处理器。
在大型系统中,由于在进行恢复期间,所有受错误影响的处理器都不对外界请求作出响应,因此整体恢复执行时间是一个问题。因此,为了使恢复执行时间保持最小,要求对受影响的处理器并行执行恢复。
发明内容
本发明的一个目的是提供一种用于在非同质多处理器环境中并行执行恢复的方法。
本发明的另一个目的是提供一种用于在非同质多处理器环境中的恢复进程中使用的方法和系统,这种方法和系统规定了如何决定要执行哪些恢复操作以及使用哪个处理器进行恢复操作的准则。
本发明的另一个目的是提供一种用于在非同质多处理器环境中的恢复进程中使用的、并行执行恢复的多个处理器如何能够在避免死锁情况的同时访问共享资源的规则和机制。
利用用于在非同质多处理器环境中并行执行恢复的方法和系统来实现这些和其他目的。该方法规定了如何决定要执行哪个恢复操作以及在哪个处理器上执行的准则。如果有多个恢复操作等待执行,则目标是在多个处理器上并行执行这些恢复操作。与一个处理器进行所有需要的恢复的传统方法相比,这种方法效率高得多。此外,在大型非同质系统中,由于技术限制,可能根本不存在这种能够进行完全恢复的单个处理器。本发明的方法还规定了并行执行恢复的多个处理器如何能够在避免死锁情况的同时访问共享资源的规则和机制。这包括对当前由另一个处理器拥有的资源进行访问。
考虑到以下参照附图(规定并示出了本发明的优选实施例)而给出的详细说明,本发明的益处和优点将变得显而易见。
附图说明
图1例示了本发明可以通过其使用的多处理器计算系统。
图2示出了可以在本发明的优选实施例中使用的任务控制块。
具体实施方式
图1例示了多处理器计算机系统100,它一般包括多个主计算机110、112、114,也被称为“主机”。利用主机链接116将主机110、112、114相互连接,主机链接116可以包括,例如,耦合链接(Coupling Links)、内部耦合通道(Internal Coupling Channels)、集成集群总线(IntegratedCluster Bus)或者其它适合的链接。除了像例示的示例中那样使用三个主机110、112、114以外,在另选实施例中,也可以使用一个、两个、四个或者更多个主机。系统100还包括定时器118和耦合设备120。
每个主机110、112、114本身是多处理器系统。每个主机110、112、114可以利用相同(或不同)类型的数字处理单元来实施。在一个特定示例中,每个主机110、112、114包括运行一个或多个z操作系统(z/OS)的IBM zSeries Parallel Sysplex服务器,如zSeries 900。合适的数字处理单元的另一个示例是运行OS/390的IBM S/390服务器。主机110、112、114运行一个或多个生成数据对象的应用程序,这些数据对象被存储在主机110、112、114中的一个或多个之外或之内。数据对象可以包括新数据或者对旧数据的更新。主机应用程序可以包括,例如,IMS和DB2。主机110、112、114运行包括相应的I/O例程115a、115b、115c的软件。注意,在系统100中可以使用其它类型的主机。具体地说,主机可以包括任何合适的数字处理单元,例如,大型计算机、计算机工作站、服务器计算机、个人计算机、超级计算机、微处理器或者其它合适的机器。
系统100还包括被耦合到主机110、112、114中的每一个的定时器118,以使主机110、112、114的定时同步。在一个示例中,定时器118可以是IBM Sysplex.定时器。另选地,在将主机110、112、114之一中的定时器用于使主机110、112、114的定时同步的情况下,可以省略单独的定时器118。
通过相应的连接器122、124、126,将耦合设备120耦合到每个主机110、112、114。连接器122、124、126可以是例如,系统间耦合(ISC)或者内部耦合总线(ICB)连接器。耦合设备120包括由主机110、112、114共享的高速缓冲存储器128(“cache”),并且,还包括处理器130。在一个特定示例中,耦合设备120是IBM z900 model 100耦合设备。其它合适的耦合设备的示例包括IBM model 9674 C04和C05,以及IBMmodel 9672 R06。另选地,可以将耦合设备120包括在服务器中,如主机110、112、114中的一个。
作为示例,用于这个另选实施例的某些合适的服务器包括具有内部耦合设备或用作耦合设备的逻辑划分功能的IBM z900和S/390服务器。另选地,可以将耦合设备120实现于任何其它合适的服务器中。作为示例,耦合设备120中的处理器130可以运行z/OS。另选地,可以使用任何合适的共享存储器代替耦合设备120。由于可以由主机110、112、114对高速缓冲存储器128进行访问,因此高速缓冲存储器128是主机级的高速缓冲存储器。高速缓冲存储器128受主机110、112、114的控制,如果需要,甚至可以将高速缓冲存储器128包含在一个主机中。
如上所述,如IBM zSeries服务器的大型多处理器系统保持了数据结构方面的大状态空间。通常,这些结构中的许多被共享。系统中的每个任务修改整体状态中的一(小)部分。由于硬件或编码错误,这种任务可能会对状态进行错误的或不完全的修改。状态空间的这个项可能影响系统的单个或多个部件。无论如何,都需要有效的恢复操作,以恢复连贯性。
传统的方法是首先在系统范围内收集等待执行的恢复操作。然后,单个处理器执行恢复,而其它受影响的处理器保持在安全状态。尽管这种方法适合于小型同质的系统,但是,它通常不能应用于大型非同质系统。其中有两个原因:
要求单个处理器在技术上能够进行所有恢复操作。但是,在大型系统中,通常不是所有处理器都具有相同的性能。一般不存在能够进行所有可能类型的恢复操作的单个处理器。
在大型系统中,由于在进行恢复的同时,受错误影响的所有处理器都不能对外部请求做出响应,因此,总体恢复执行时间是个问题。因此,为了保持恢复执行时间最小,要求对受影响的处理器并行执行恢复。
本发明提供了一种用于在非同质多处理器环境中并行执行恢复的方法。这种方法有两个主要方面:
1.调度恢复操作:哪个处理器执行哪个恢复操作?
2.访问由其它处理器拥有的共享资源
调度恢复操作
在大型系统中,由于技术限制,某些处理器可能不能执行需要的恢复操作。例如,这可能是由于它们不能访问整个状态空间,或者,由于它们不能访问特定硬件。因此,甚至可能要求,对于在一个处理器上检测到的错误,到目前为止没有受到影响的、具有所要求的性能的其它处理器必须进行恢复操作。
影响共享资源的错误经常使多个处理器在短时间内检测该状况。从而,需要确定受影响的处理器中的哪一个需要进行哪个所要求的恢复操作。过去,这种情况的一个问题是,无法对(正在被修改的进程中的)状态空间的哪个部分当前是活动的(active)进行快速判断。在错误的情况下,不得不将整个状态空间假设为不一致。因此,为了恢复一致的状态空间,进行恢复的处理器不得不对活动性进行费时的扫描。
访问共享资源
为了对错误进行恢复操作,处理器通常访问若干个共享数据结构。这提出了两个问题:
共享数据结构可能处于正在被也受这个错误影响的第二处理器上运行的功能任务所改变的过程中。在某些情况下,这个第二处理器不能只释放共享的数据结构。现在需要判断在哪种情况下,允许执行恢复的处理器访问该结构,尽管该结构目前正由另一个处理器所拥有。
在大型系统中,并发访问的串行化会导致长的整体恢复执行时间。
本发明解决在非同质多处理器环境中并行执行恢复的每个上述方面。
1.调度恢复操作:
本方法规定了如何决定进行哪种恢复操作,以及在哪个处理器上进行。如果多个恢复操作等待执行,则目标是在多个处理器上并行地执行它们。这比一个处理器进行所有需要的恢复的传统方法效率高得多。此外,在大型非同质系统中,由于技术限制,这种能够进行完全恢复的单个处理器也许根本不存在。
访问由其它处理器拥有的共享资源:
该方法规定了并行执行恢复的多个处理器如何能够在避免死锁情况的同时,对共享资源进行访问。这包括对当前由另一个处理器拥有的资源进行访问。
以下将更为详细地对本发明的这些方面中的每一个进行讨论。
调度恢复操作
从错误中恢复会要求执行多个恢复操作。在错误影响多个处理器的情况下,情况总是这样。对于这些单独操作中的每一个,需要决定系统中的哪个处理器应该执行这个操作。参照以下表1:
                          表1
  用于调度/恢复操作的策略1.如果仅能够通过一个处理器完成恢复操作,则使用该处理器2.引入其中能够占用不同类型的多个资源的顺序3.如果多于一个处理器能够执行恢复操作,则:i.先到,先服务ii.一次一个
恢复操作可能涉及只有一个特定处理器在技术上能够进行恢复的资源。这样的静态分配明显地且唯一地指定了要执行恢复操作的处理器。恢复方法触发适当的处理器,以执行它们那部分恢复。在单独恢复操作之间有任何相关性的情况下,本方法还考虑了按照正确的顺序执行恢复操作。
如果多个处理器在技术上能够执行恢复操作,则可以采用动态调度方案。在将要进行恢复通知给适当的处理器之后,根据具体操作的性质,有两种可能的不同策略:
1.先到,先服务:
进入恢复的第一个处理器同时对所有等待的请求一起进行处理。没有给得到通知的其它处理器留下要做的事情。如果在与执行单个请求相比不(显著)增加执行时间的情况下,能够在单个处理器上一起执行多个请求,则这个方案是合适的。
一次一个:
进入恢复的每个处理器只执行等待的请求中的一个。这导致了多个处理器并行地执行请求。在处理器完成了恢复操作之后,检查是否还有等待的请求。如果是,则执行另一个请求。如果不能够在与执行单个请求相比不显著增加执行时间的情况下在单个处理器上一起执行多个请求,则这个方案是合适的。
访问共享资源
访问并且锁定多个共享资源会导致死锁状态或明显的延迟。在错误发生之后,尤其如此,并且,资源在进入功能码(functional code)路径之前被锁定。在恢复操作期间,也需要至少对这些资源进行访问,但是,经常以与功能路径中不同的顺序进行访问。参照以下表2:
                     表2
  用于访问资源的策略1.只访问尽可能少的共享资源2.访问由其它处理器拥有的共享资源-如果其它处理器处在不访问该资源的安全状态,则可以进行
避免恢复方法中的挂起和延迟有三个方面:
1.只访问尽可能少的共享资源:
在大型系统中执行的任务通常只改变整体状态空间中很有限的量。使用簿记机制(bookkeeping mechanism)允许对小数据结构内的任务保持当前的活动状态(任务控制块(Task Control Block,TCB))。在任务正常结束时,对状态空间的所有修改都处在一致状态,并且,TCB是空的,即,这表示在状态空间上没有活动。在任何给定时间,当任务失败(由于硬件或编码故障)时,TCB表示出处于修改进程中的所有项。对于恢复而言,这允许将策略从“进行扫描以发现需要恢复什么”变到“查询使用了使用”的方法。这就将在恢复期间需要访问的共享资源的数量限制到绝对最小值。
引入可以占用不同类型的多个资源的顺序:
为了通过处理器如何确实占用多个资源来避免死锁,将资源分类为不同类型并且规定类型的顺序。当占用多个资源时,允许每个处理器对每个类型锁定至多一个资源,并且必须服从规定的资源类型顺序。
访问其它处理器所拥有的共享资源:
如果其它处理器处于不访问资源的安全状态,并且准备利用该资源进行随后工作,尽管其状态已经改变,则可以进行对当前由另一个处理器拥有的共享资源的访问。这可以使用任何对这种安全处理器状态的合适定义、资源访问规则以及任何适当的查询机制进行。
图4示出了可以在实施本发明时使用的任务控制块(TCB)。更具体地说,优选地,对多处理器主机110、112和114的每个处理单元(PU)分配至少一个TCB,并且TCB将包含关于下列方面的信息:
在执行任务时由PU使用的数据结构。
PU任务状态的足迹(footprint)信息。
如果出现错误,则PU将在TCB中存储错误类型、错误代码以及扩展错误信息等。
对在PU上运行的每个任务分配TCB。例如,在IBM zSeries服务器上,PU可以以两种模式执行,即i390模式或Millicode模式,由此,当利用这种服务器实施本发明时,优选地对每个PU分配两个TCB。对于I390模式和Millicode模式,对每个PU规定唯一的TCB使得:通过保持资源分别使用,能够使得当处理器在处理功能的同时切换模式时可能出现的的任务交错更大。图2中示出了这种结构。
关键TCB字段定义
1.TCB代码字段202:用于识别TCB控制块类型的唯一静态十六进制值。
2.PU#字段204:拥有TCB的物理PU号码。
3.模式字段206:用于Millicode码或I390模式的标识符
4.控制块隙(slot)阵列:三个16元素的阵列,包括:
控制块掩码(CBM)阵列212:用于CBC和CBA阵列中的字段的合法(valid)标志的位有效掩码。
控制块码(CBC)阵列214:包含被锁定或正在被锁定的控制块的控制块代码。
控制块地址(CBA)阵列216:包含被锁定或正在被锁定的控制块的控制块地址。
任务足迹字段220:在PU上执行的当前任务步骤的指示符
错误代码字段222:由失败任务存储的唯一的错误数据。
扩展错误信息字段224:由失败任务存储的附加数据,以有助于恢复或解决问题。
尽管很清楚,这里所披露的本发明目标在于满足上述目的,但是,本领域的技术人员应该明白,可以提出许多修改和实施例,并且,所附权利要求旨在涵盖落入本发明的真正的精神和范围内的所有这样的修改和实施例。

Claims (14)

1.一种在包括多个处理单元的多处理器系统中并行执行恢复的方法,所述方法包括如下步骤:
调度恢复操作,包括提供用于确定要进行哪些恢复操作以及在哪些处理单元上进行的准则的步骤;
提供对共享资源的访问,包括提供用于确定并行执行恢复的多个处理单元如何能够访问共享资源的规则的步骤;以及
按照所述准则和规则,选择和使用处理单元中的一个或多个,以进行所调度的恢复操作。
2.如权利要求1所述的方法,其中:
所述调度步骤包括调度一组恢复操作的步骤;并且
所述选择和使用步骤包括以下步骤:
i)选择多个处理单元,所选择的处理单元在不同时刻进入恢复进程,以及
ii)使用进入恢复进程的第一处理单元来执行所述的一组恢复操作中的全部操作。
3.如权利要求1所述的方法,还包括对处理单元能够占有不同类型的多个资源的顺序进行识别的步骤,其中,允许每个处理单元一次针对每种类型锁定至多一个资源。
4.如权利要求1所述的方法,其中:
所述调度步骤包括调度多个恢复操作的步骤;并且
所述选择和使用步骤包括以下步骤:
i)选择多个处理单元,所选择的处理单元在不同时刻进入恢复进程,以及
ii)当所选择的处理单元中的每一个进入恢复进程时,该处理单元执行所述多个所述恢复操作中的一个。
5.如权利要求4所述的方法,其中,所述选择和使用步骤还包括下述的进一步的步骤,即,当所选择的处理单元中的一个完成了恢复操作中的一个时,所选择的处理单元中的所述一个执行所述多个恢复操作中的另一个。
6.如权利要求1所述的方法,其中,所述多处理器系统还包括多个任务控制块,并且,提供对共享资源的访问的步骤包括以下步骤:
在任务控制块中识别正在被处理单元修改的资源;以及
当处理单元中的一个失败时,查询任务控制块,以识别正在被所述失败处理单元修改的资源,从而减少在恢复期间需要访问的共享资源的数量。
7.如权利要求6所述的方法,其中,对于处理单元中的每一个,任务控制块中的相关一个对所有正在被处理单元修改的共享资源进行识别。
8.一种恢复系统,用于在包括多个处理单元的多处理器系统中并行执行恢复,所述恢复系统包括:
用于调度恢复操作的装置,包括用于提供确定要进行哪些恢复操作以及在哪些处理单元上进行的准则的装置;
用于提供对共享资源的访问的装置,包括提供要确定并行执行恢复的多个处理单元如何能够访问共享资源的规则的装置;以及
用于按照所述准则和规则,选择并使用一个或多个处理单元,以便进行所调度的恢复操作的装置。
9.如权利要求8所述的恢复系统,其中:
所述调度装置包括用于调度一组恢复操作的装置;并且
所述用于选择和使用的装置包括:
i)用于选择多个处理单元的装置,所选择的处理单元在不同时刻进入恢复进程,以及
ii)用于使用进入恢复进程的第一处理单元来执行所述的一组恢复操作中的全部操作的装置。
10.如权利要求8所述的恢复系统,其中:
所述调度装置包括用于调度多个恢复操作的装置;并且
所述用于选择和使用的装置包括:
i)用于选择多个处理单元的装置,所选择的处理单元在不同时刻进入恢复进程,以及
ii)用于对所选择的处理单元进行操作的装置,其中,当选择的处理单元中的每一个进入恢复进程时,该处理单元执行所述多个所述恢复操作中的一个恢复操作。
11.如权利要求10所述的恢复系统,其中,所述用于选择和使用的装置还包括用于对所选择的处理单元进行操作的装置,其中,当所选择的处理单元中的一个完成了恢复操作中的一个时,所选择的处理单元中的所述一个执行所述多个恢复操作中的另一个。
12.如权利要求8所述的恢复系统,其中,所述多处理器系统还包括多个任务控制块,并且,用于提供对共享资源的访问的装置包括:
用于在任务控制块中识别正在被处理单元修改的资源的装置;以及
用于当处理单元中的一个失败时检查任务控制块,以识别正在被所述失败处理单元修改的资源,从而减少在恢复期间需要访问的共享资源的数量的装置。
13.如权利要求12所述的恢复系统,其中,对于处理单元中的每一个,任务控制块中的相关一个对所有正在被处理单元修改的共享资源进行识别。
14.一种机器可读的程序存储装置,有形地包含机器可执行的指令的程序,以便执行前述的方法权利要求中的任何一个方法的方法步骤。
CNB2006101063709A 2005-09-09 2006-07-14 用于执行恢复的方法和系统 Active CN100456250C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/223,725 US7502957B2 (en) 2005-09-09 2005-09-09 Method and system to execute recovery in non-homogeneous multi processor environments
US11/223,725 2005-09-09

Publications (2)

Publication Number Publication Date
CN1928828A true CN1928828A (zh) 2007-03-14
CN100456250C CN100456250C (zh) 2009-01-28

Family

ID=37856709

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101063709A Active CN100456250C (zh) 2005-09-09 2006-07-14 用于执行恢复的方法和系统

Country Status (2)

Country Link
US (2) US7502957B2 (zh)
CN (1) CN100456250C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108734574A (zh) * 2017-04-19 2018-11-02 中思博安科技(北京)有限公司 一种区块链的跨链操作方法及区块链管理系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721148B2 (en) * 2006-06-29 2010-05-18 Intel Corporation Method and apparatus for redirection of machine check interrupts in multithreaded systems
US9971650B2 (en) 2016-06-06 2018-05-15 International Business Machines Corporation Parallel data collection and recovery for failing virtual computer processing system
US11086686B2 (en) * 2018-09-28 2021-08-10 International Business Machines Corporation Dynamic logical partition provisioning

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4338023A (en) * 1980-01-28 1982-07-06 Xerox Corporation Job recovery hierarchy in a reproduction machine
US4371754A (en) * 1980-11-19 1983-02-01 Rockwell International Corporation Automatic fault recovery system for a multiple processor telecommunications switching control
US4823256A (en) * 1984-06-22 1989-04-18 American Telephone And Telegraph Company, At&T Bell Laboratories Reconfigurable dual processor system
US4742447A (en) 1986-01-16 1988-05-03 International Business Machines Corporation Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
US5761413A (en) 1987-12-22 1998-06-02 Sun Microsystems, Inc. Fault containment system for multiprocessor with shared memory
EP0343646B1 (en) 1988-05-26 1995-12-13 Hitachi, Ltd. Task execution control method for a multiprocessor system with enhanced post/wait procedure
US5815651A (en) * 1991-10-17 1998-09-29 Digital Equipment Corporation Method and apparatus for CPU failure recovery in symmetric multi-processing systems
US5590281A (en) 1991-10-28 1996-12-31 The United States Of Americas As Represented By The Secretary Of The Navy Asynchronous bidirectional application program processes interface for a distributed heterogeneous multiprocessor system
US5313584A (en) * 1991-11-25 1994-05-17 Unisys Corporation Multiple I/O processor system
US5339408A (en) * 1992-12-30 1994-08-16 Digital Equipment Corporation Method and apparatus for reducing checking costs in fault tolerant processors
JPH06250916A (ja) 1993-02-26 1994-09-09 Fujitsu Ltd 共有メモリの排他制御方法
JP3345626B2 (ja) * 1994-09-29 2002-11-18 富士通株式会社 マルチプロセッサシステムにおけるプロセッサ異常対策装置およびマルチプロセッサシステムにおけるプロセッサ異常対策方法
JP3447404B2 (ja) * 1994-12-08 2003-09-16 日本電気株式会社 マルチプロセッサシステム
WO1996033459A1 (en) 1995-04-18 1996-10-24 International Business Machines Corporation High available error self-recovering shared cache for multiprocessor systems
DE59605364D1 (de) 1995-07-21 2000-07-06 Siemens Ag Rechnersystem
US5768572A (en) 1996-02-05 1998-06-16 International Business Machines Corporation Timer state control optimized for frequent cancel and reset operations
JPH09251443A (ja) * 1996-03-18 1997-09-22 Hitachi Ltd 情報処理システムのプロセッサ障害回復処理方法
US6061711A (en) * 1996-08-19 2000-05-09 Samsung Electronics, Inc. Efficient context saving and restoring in a multi-tasking computing system environment
US5903717A (en) * 1997-04-02 1999-05-11 General Dynamics Information Systems, Inc. Fault tolerant computer system
US5842208A (en) 1997-04-09 1998-11-24 International Business Machines Corporation High performance recover/build index system by unloading database files in parallel
US6199179B1 (en) 1998-06-10 2001-03-06 Compaq Computer Corporation Method and apparatus for failure recovery in a multi-processor computer system
US6748438B2 (en) 1997-11-17 2004-06-08 International Business Machines Corporation Method and apparatus for accessing shared resources with asymmetric safety in a multiprocessing system
JPH11203254A (ja) * 1998-01-14 1999-07-30 Nec Corp 共有プロセス制御装置及びプログラムを記録した機械読み取り可能な記録媒体
US6148414A (en) * 1998-09-24 2000-11-14 Seek Systems, Inc. Methods and systems for implementing shared disk array management functions
JP2000181890A (ja) * 1998-12-15 2000-06-30 Fujitsu Ltd マルチプロセッサ交換機及びその主プロセッサ切替方法
US6301676B1 (en) * 1999-01-22 2001-10-09 Sun Microsystems, Inc. Robust and recoverable interprocess locks
US6675175B2 (en) 1999-02-19 2004-01-06 International Business Machines Corporation Method and system for sharing catalogs in a multiprocessing system utilizing a shared processor
JP3710649B2 (ja) * 1999-06-28 2005-10-26 富士通株式会社 マルチプロセッサシステム
US6516429B1 (en) * 1999-11-04 2003-02-04 International Business Machines Corporation Method and apparatus for run-time deconfiguration of a processor in a symmetrical multi-processing system
US6625749B1 (en) * 1999-12-21 2003-09-23 Intel Corporation Firmware mechanism for correcting soft errors
US6594785B1 (en) 2000-04-28 2003-07-15 Unisys Corporation System and method for fault handling and recovery in a multi-processing system having hardware resources shared between multiple partitions
US6823472B1 (en) 2000-05-11 2004-11-23 Lsi Logic Corporation Shared resource manager for multiprocessor computer system
EP1182569B8 (en) 2000-08-21 2011-07-06 Texas Instruments Incorporated TLB lock and unlock operation
EP1182571B1 (en) 2000-08-21 2011-01-26 Texas Instruments Incorporated TLB operations based on shared bit
EP1215577B1 (en) 2000-08-21 2012-02-22 Texas Instruments Incorporated Fault management and recovery based on task-ID
US6757769B1 (en) * 2000-11-28 2004-06-29 Emc Corporation Cooperative lock override procedure
US7124224B2 (en) * 2000-12-22 2006-10-17 Intel Corporation Method and apparatus for shared resource management in a multiprocessing system
US6834385B2 (en) 2001-01-04 2004-12-21 International Business Machines Corporation System and method for utilizing dispatch queues in a multiprocessor data processing system
JP4394298B2 (ja) * 2001-02-20 2010-01-06 日本電気株式会社 マルチプロセッサシステムとその共有メモリ制御方法、及び共有メモリ制御プログラム
US6708284B2 (en) * 2001-03-30 2004-03-16 Intel Corporation Method and apparatus for improving reliability in microprocessors
US7305421B2 (en) 2001-07-16 2007-12-04 Sap Ag Parallelized redo-only logging and recovery for highly available main memory database systems
WO2003045035A2 (en) 2001-11-15 2003-05-30 Unisys Corporation Dialog recovery and acknowledgement accumulation in a multi-computer system
US6826656B2 (en) 2002-01-28 2004-11-30 International Business Machines Corporation Reducing power in a snooping cache based multiprocessor environment
US6845470B2 (en) 2002-02-27 2005-01-18 International Business Machines Corporation Method and system to identify a memory corruption source within a multiprocessor system
US6981079B2 (en) * 2002-03-21 2005-12-27 International Business Machines Corporation Critical datapath error handling in a multiprocessor architecture
KR100453228B1 (ko) * 2002-03-21 2004-10-15 한국전자통신연구원 공유 디스크 파일 시스템의 저널링 및 회복 방법
US6886064B2 (en) 2002-03-28 2005-04-26 International Business Machines Corporation Computer system serialization control method involving unlocking global lock of one partition, after completion of machine check analysis regardless of state of other partition locks
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
US6842825B2 (en) 2002-08-07 2005-01-11 International Business Machines Corporation Adjusting timestamps to preserve update timing information for cached data objects
US7055060B2 (en) * 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor
US7111196B2 (en) * 2003-05-12 2006-09-19 International Business Machines Corporation System and method for providing processor recovery in a multi-core system
US7343515B1 (en) * 2004-09-30 2008-03-11 Unisys Corporation System and method for performing error recovery in a data processing system having multiple processing partitions

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108734574A (zh) * 2017-04-19 2018-11-02 中思博安科技(北京)有限公司 一种区块链的跨链操作方法及区块链管理系统
CN108734574B (zh) * 2017-04-19 2021-07-23 中思博安科技(北京)有限公司 一种区块链的跨链操作方法及区块链管理系统

Also Published As

Publication number Publication date
CN100456250C (zh) 2009-01-28
US7502957B2 (en) 2009-03-10
US20090138758A1 (en) 2009-05-28
US7765429B2 (en) 2010-07-27
US20070061618A1 (en) 2007-03-15

Similar Documents

Publication Publication Date Title
US10885012B2 (en) System and method for large-scale data processing using an application-independent framework
US10860556B2 (en) Scalable index build techniques for column stores
US8095512B2 (en) Managing database resources used for optimizing query execution on a parallel computer system
US8510538B1 (en) System and method for limiting the impact of stragglers in large-scale parallel data processing
US20090320023A1 (en) Process Migration Based on Service Availability in a Multi-Node Environment
US8051422B2 (en) Resource assignment method for query partioning based on processing cost of each partition
CN1841330A (zh) 用于管理多节点smp系统的方法和系统
CN1503942A (zh) 包含准备操作的群集计算机系统中的资源动作
CN1914597A (zh) 处理单元的动态加载和卸载
CN1664804A (zh) 减少远程存储器对多节点计算机中共享数据的访问的机构
US9329937B1 (en) High availability architecture
CN101031897A (zh) 在次序混乱的dma命令队列中建立命令次序
US8027972B2 (en) Nodal data normalization
Valvåg et al. Cogset: a high performance MapReduce engine
CN110231977B (zh) 数据库的处理方法、装置、存储介质及电子装置
CN100456250C (zh) 用于执行恢复的方法和系统
US20090319662A1 (en) Process Migration Based on Exception Handling in a Multi-Node Environment
CN1304950C (zh) 多处理器数据处理系统中对分区指派处理器的方法和系统
US7752497B2 (en) Method and system to detect errors in computer systems by using state tracking
US7996585B2 (en) Method and system for state tracking and recovery in multiprocessing computing systems
CN1041566C (zh) 超标量处理器系统中分配和执行非顺序指令的方法和系统
US8352947B2 (en) Method to automatically redirect SRB routines to a zIIP eligible enclave
CN1776627A (zh) 在同时多线程处理机中用于线程同步的方法和系统
CN1577313A (zh) 微处理器和网格计算系统
CN1928827A (zh) 多处理器环境中从控制块挂起恢复的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant