CN101189581B - 用于处理与锁定相关的不一致的方法 - Google Patents
用于处理与锁定相关的不一致的方法 Download PDFInfo
- Publication number
- CN101189581B CN101189581B CN200680020071.1A CN200680020071A CN101189581B CN 101189581 B CN101189581 B CN 101189581B CN 200680020071 A CN200680020071 A CN 200680020071A CN 101189581 B CN101189581 B CN 101189581B
- Authority
- CN
- China
- Prior art keywords
- node
- resource
- lock
- inconsistent
- locking
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000012937 correction Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 4
- 238000010257 thawing Methods 0.000 claims description 3
- 230000001915 proofreading effect Effects 0.000 claims 5
- 230000002596 correlated effect Effects 0.000 claims 1
- 230000008859 change Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 43
- 238000004891 communication Methods 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 230000015572 biosynthetic process Effects 0.000 description 7
- 238000005755 formation reaction Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000005055 memory storage Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 229920002457 flexible plastic Polymers 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/522—Manager
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本文描述用于处理与锁定相关的不一致的技术。如上文所提到,这些不一致发生于与相同资源相关的两组或更多组锁定信息传达关于在所述资源上请求及/或授权的锁定的不一致信息时。大体地说,所述技术涉及使本地存储的关于资源的锁定信息被发送到所述资源的主节点。所述资源的主节点将由此接收到的锁定信息与由所述主节点维持的锁定信息作比较。基于所述比较,所述主节点确定如何解决与锁定相关的不一致,并将消息发送到那些需要为所述资源改变其本地锁定信息的节点。一旦已使所有锁定信息变得一致,就使所述资源变得可供存取。因为无需重新启动节点便可以解决与锁定相关的不一致,所以资源的可用性得到改进。
Description
技术领域
本发明涉及锁定管理,且更具体地说涉及处理多节点系统中的与锁定相关的不一致。
背景技术
在计算机程序的执行期间,计算机使用例如存储器、调制解调器和打印机等资源。这些资源中的许多仅由任何给定计算机程序周期性地地使用。例如,相对于使用字处理应用程序来创建文档的时间量,字处理应用程序要求打印机打印文档的时间量通常很少。如果存取打印机的唯一方法只是单一的字处理应用程序,则打印机将在多数时间内处于闲置状态。
为充分利用资源,已经开发出其中运行于许多计算机装置或“节点”上的进程可以共享资源的计算机网络。因此,用户可购买可以连接到具有许多计算机的网络的单个打印机,而不是必须为每台计算机均购买一台打印机。所述网络上的每台计算机中的进程只有在所述进程需要打印机时才存取打印机。
如上所述,尽管资源可以共享,但许多资源在任何给定时间均不可由多于一个进程使用。例如,多数打印机不能一次打印多于一个文档。其他资源(例如存储媒体的数据块或存储在存储媒体上的表格)可由多个进程以某些方式(例如读取)同时存取,但由仅一个进程以其他方式(例如写入)一次存取。因此,已经开发出控制对资源的存取的机构。
一个这种机构称为锁定。锁定是指示已向特定进程授予关于所述资源的某些权利的数据结构。存在许多类型的锁定。某些类型的锁定可由许多进程共享,而其他类型的锁定则防止对相同资源授权任何其他锁定。
在进程可在资源上执行操作之前,要求所述进程获得向所述进程授予在所述资源上执行所需操作的权利的锁定。为获得锁定,进程将对锁定的请求传输到锁定管理器。锁定管理器是负责授权、排队及记录一个或多个资源上的锁定的进程。为管理资源在网络系统中的使用,将于在所述网络中的一个或多个节点上执行锁定管理器。正在执行管理对特定资源的存取的锁定管理器的节点称为所述资源的“主节点”(或简称“主机”)。
根据一个现有技术实施方案,锁定管理器实施两种类型的对象:资源对象和锁定。资源对象是与实际资源相对应的数据结构。使用锁定管理器的应用程序在实际资源和资源对象之间建立映射。每个资源对象均具有两个队列:已授权队列和转换队列。已授权队列是已授权的锁定的无序列表。转换队列是已提出请求但尚未授权的锁定的偏序列表。通常,对锁定的请求实际上是转换请求,其中持有锁定的进程正请求将其持有的锁定从一种锁定模式转换为不同的锁定模式。
锁定是识别进程和锁定模式的数据结构。锁定管理器将锁定附加到资源对象的已授权队列以指示已向所述锁定中识别的进程授权对应于所述锁定所附加的资源对象的资源上的锁定中所指示的锁定类型。
图1是图解说明典型的锁定管理器106的方块图。锁定管理器106是经配置以管理存储于存储器108中的资源对象100的进程。所述资源对象包含已授权队列102和转换队列104。锁定管理器106已将三个锁定110、112和114附加到已授权队列102,且将一个转换请求130附加到转换队列104。
所有的锁定和转换请求均具有进程ID部分和锁定模式部分。锁定110的进程ID部分116指示进程PROC_1拥有锁定110,且锁定110的锁定模式部分118指示锁定110是排他锁定。锁定112的进程ID部分120指示锁定112由进程PROC 2拥有,且锁定112的锁定模式部分122指示锁定112是NULL模式锁定。锁定114的进程ID部分124指示锁定114由进程PROC_3拥有,且锁定114的锁定模式部分126指示锁定114是NULL锁定。转换请求130的进程ID部分132指示转换请求130与进程PROC_4相关联,且转换请求130的锁定模式部分136指示PROC_4当前持有对所述资源的NULL模式锁定。除了锁定模式部分136以外,转换请求130还具有指示PROC_4正请求排他模式锁定的已请求模式部分134。
锁定管理器106已将锁定110、112和114附加到已授权队列102,指示PROC_1当前具有对应于资源对象110的资源的唯一所有权。锁定管理器106已将转换请求130附加到转换队列104上,指示PROC_4已提出请求但尚未被授权对与资源对象100相关联的资源的排他模式锁定。
资源对象的转换队列是持有所有未完成(未授权)锁定请求的偏序列表。如果任何未完成锁定请求尚未被授权,则所述未授权锁定请求的一者将位于所述转换队列的“头部”。即使当前的已授权锁定不阻止锁定管理器授权特定锁定请求,如果所述转换队列非空,则所述锁定请求仍将放置在所述转换队列上。这种策略可阻止“活锁”,其中系统中的一个进程不能继续进行而其他进程则可以。
在联网计算机系统中,正持有及请求对特定资源的锁定的某些或全部进程可位于与所述资源的主节点不同的节点上。当正在执行请求对资源的锁定的进程的节点不是所述资源的主节点时,必须在节点之间传输锁定请求。促进这种节点间消息所必须花费的计算功率与节点内通信所要求的功率密切相关。另外,节点间通信通常比节点内通信要慢。此外,由此产生的节点间通信量会减少可用于其他类型的节点间通信量的通过量,当所述节点间通信量是在网络的工作站之间时这将更为重要。
一种用于减少关于锁定操作的节点间通信量的技术涉及在许多节点上散布资源对象的阴影,从而有效地将所述资源对象转变为分布式对象。例如,此技术的一种实施方案已在2003年6月3日发布的美国专利第6,574,654号中有所阐述,其内容以引用的方式并入本文中。
通过在许多节点上散布资源对象的阴影,可开发多处理系统的处理能力,使得每个具有阴影资源对象的节点均可用于执行关于所述资源的锁定操作。此外,因为分布了资源的锁定管理工作负荷,所以针对所述资源执行锁定管理所要求的处理负荷与其中必须在单个节点处执行针对资源的所有锁定操作的锁定管理系统中相比不太可能使节点超负荷。
通过使用阴影资源对象方法,资源的主资源对象将锁定授权给位于节点上的阴影资源对象,其中想要存取所述资源的进程位于所述节点上。每个阴影资源对象依次将对所述资源的锁定授权给与所述阴影资源对象位于相同节点上的进程。主资源对象也可为运行于主节点上的要求存取所述主资源对象所拥有的资源的进程充当阴影资源对象。
每个阴影资源对象所拥有的锁定确定所述阴影资源对象允许授权给进程的锁定的类型。如果阴影资源对象所拥有的锁定不向所述阴影资源对象授予由与阴影资源对象位于相同节点上的进程所请求的锁定的权利,则所述阴影资源对象可请求从主资源对象升级的锁定。
因为使用资源的进程不必直接地与主资源对象通信,所以分布式锁定管理系统所要求的节点间通信量可小于为每个资源采用单个集中式资源对象的锁定管理系统所要求的节点间通信量。具体来说,当阴影资源对象拥有允许所述阴影资源对象执行所请求的锁定操作而无需与主资源对象通信的锁定时,可避免节点间通信量。
当使用阴影锁定对象时,可在多个节点上反映与单个资源相关的锁定信息。例如,可在本地阴影资源对象和主资源对象上反映同一锁定请求。在这种情况下,主节点具有所述请求的“全局了解”。也就是说,主节点了解哪个节点已做出锁定请求,且已请求哪种锁定模式。相反,本地阴影资源对象具有所述请求的“本地了解”。具体来说,所述本地资源对象可识别出哪个本地进程已请求锁定,以及所述进程已请求哪种锁定模式。
对任何给定资源,关于对资源保存及请求的锁定的信息在存取所述资源的节点群集中应保持一致,除了在消息通过所述节点之间的一小段时间间隔之外。然而,由于各种原因(例如丢失消息、故障等),在阴影和主节点之间的入队锁定信息中可存在不一致。这种不一致在本文中称为“与锁定相关的不一致”。
与锁定相关的不一致的一个实例是如下情况:其中主资源对象指示已将排他锁定授权给节点A,但节点A的阴影锁定资源指示节点A仍在等待所述授权。作为另一实例,节点B可正在请求对资源的排他模式(“EX模式”)锁定,但主节点可能完全不了解所述请求。像这样的不一致可导致暂停情况。
在更严峻的情况下,两个节点可均“认为”其已被授权对同一资源的排他模式。这种类型的与锁定相关的不一致可导致资源中的讹误。
当发现与锁定相关的不一致时,必须采取措施来解决所述不一致。在数据库服务器群集的背景下,解决与锁定相关的不一致通常涉及执行某种形式的资源重配置操作。例如,这种重配置操作可涉及重新启动位于所述群集的一个或多个节点上的数据库服务器。不幸地,重新启动数据库服务器的过程可对系统性能造成明显的不利影响。
这部分中阐述的方法是可推行的方法,但不必须是先前已构思或已推行的方法。因此,除非另外指示,否则不应假设这部分中阐述的任何方法如现有技术仅由其在此部分中的包含来限定。
发明内容
附图说明
在附图图式中以实例方式而非限定方式图解说明本发明,且在附图中相同参考编号均指类似的元件,在附图中:
图1是可用来记录关于资源的请求的资源对象的方块图;
图2是用于根据本发明实施例处理与锁定相关的不一致的流程图;及
图3是可在其上实施本文所述技术的计算机系统的方块图。
具体实施方式
在下文说明中,为便于解释,列举大量具体细节以提供对本发明的透彻理解。然而,应了解,不需要这些具体细节也可以实行本发明。在其他实例中,以方块图形式显示熟知的结构和装置以避免不必要地模糊本发明。
概述
本文阐述用于处理与锁定相关的不一致的技术。如上文提到,这些不一致发生于关于相同资源的两组或更多组锁定信息传达关于请求及/或授权对所述资源的锁定的不一致信息时。大体地说,所述技术涉及使关于资源的本地存储锁定信息发送到所述资源的主节点。所述资源的主节点将以此接收到的锁定信息与由所述主节点维持的锁定信息作比较。基于所述比较,主节点确定如何解决与锁定相关的不一致,并将消息发送到那些需要为所述资源改变其本地锁定信息的节点上。一旦所有锁定信息已变得一致,就可以存取所述资源。因为无需重新启动节点便可以解决与锁定相关的不一致,所以资源的可用性得到改进。
与锁定相关的不一致
与锁定相关的不一致可由多种情况导致。例如,当锁定相关消息丢失时可导致与锁定相关的不一致。在这种情况下,锁定相关消息的发送方将通常已基于已经发送所述消息来更新其锁定信息,但由预期接收方维持的锁定信息将不会反映所述消息。
例如,如果锁定请求消息在其从请求节点到主节点的传输期间丢失,那么请求节点上的本地锁定信息将反映锁定已被请求,但是主节点上的全局锁定信息将不会具有所述请求的迹象。相反,如果锁定授权消息在其从主节点到请求节点的传输期间丢失,那么主节点上的全局锁定信息将反映锁定已被授权,但是请求节点上的本地锁定信息将不会反映所述锁定授权。
锁定相关消息的丢失仅仅是将导致与锁定相关的不一致的情况的一个实例。导致与锁定相关的不一致的其他情况包括存储器讹误、不合适的资源清理操作等。本文所述用于处理与锁定相关的不一致的技术并不限于所述不一致的任何特定原因或原因组。
检测与锁定相关的不一致
与锁定相关的不一致的存在可以多种方式来检测。例如,根据一个实施例,在节点之间交换的消息不但指示所述节点正请求及/或授权的锁定,而且还指示“当前锁定状态”信息。由节点发送的当前锁定状态信息指示由所述节点维持的锁定信息的当前状态。例如,如果节点N1上对资源R1的阴影锁定对象指示已经向节点N1授权对R1的排他锁定,那么从节点N1发送到资源R1的主机的消息将指示N1相信其持有对R1的排他锁定。
当节点从另一节点接收含有对资源的当前锁定状态信息的消息时,所述接收节点可将所述锁定状态信息与其自身对所述资源的锁定信息作比较。例如,假设针对资源R1的主节点N2从节点N1接收指示N1相信其持有对资源R1的排他锁定的消息。则主节点N2可以检查资源R1的主资源对象。如果资源R1的主资源对象不指示节点N1持有对资源R1的排他锁定,则存在与锁定相关的不一致。
资源的主节点可以不是最初检测不一致的节点。例如,假设节点N1从主节点N2接收指示N2相信N1持有对资源R1的排他锁定的消息。则节点N1可检查其对资源R1的阴影资源对象。如果资源R1的阴影资源对象不指示节点N1持有对资源R1的排他锁定,则存在与锁定相关的不一致。
另一种自动检测与锁定相关的不一致的方式是让每个请求节点跟踪在发送锁定请求后而未接收到对所述请求的响应时经过了多少时间。如果经过了超过阈值时间量而未接收到响应,那么所述请求节点可起始暂停解决操作。作为暂停解决操作的一部分,锁定管理系统可以检验是否存在任何关于所请求资源的与锁定相关的不一致。
这些仅仅是用于自动地检测与锁定相关的不一致的方式的几个实例。根据一个实施例,锁定管理系统包含用于自动地识别指示可能的与锁定相关的不一致的条件并起始不关闭任何节点即可处理所述不一致的操作的机构。现在将更详细地阐述用于处理与锁定相关的不一致的技术。
处理不一致
参见图2,其为用于根据本发明实施例处理与锁定相关的不一致的流程图。出于解释的目的,将假设在由节点N1维持的关于资源R1的本地锁定信息与由主节点N2维持的针对资源R1的信息之间存在不一致。
在步骤200中,检测与锁定相关的不一致。如上文提到,可以使用各种机构来检测与锁定相关的不一致,且本文所述用于处理这种不一致的技术并不限于任何特定检测机构。根据用来检测不一致的机构,检测所述不一致的节点可以是主节点N2或某一其他节点。根据一个实施例,当检测与锁定相关的不一致的节点不是主节点N2时,检测所述与锁定相关的不一致的节点向主节点N2通知所述与锁定相关的不一致。
在步骤202中,主节点N2向系统中的所有节点广播“冻结”消息。所述冻结消息向节点通知在校正动作之前资源的锁定相关活动已被中止。
根据一个实施例,所有节点均向主节点N2发送确认消息来指示其接收到冻结消息。另外,具有关于资源R1的本地锁定信息的节点(“所涉及的节点”)向主节点N2发送本地锁定状态消息(步骤204)。每个感兴趣的节点发送的本地锁定状态消息反映由所述节点为资源R1维持的本地锁定信息。因此,节点N1将向节点N2发送指示节点N1所具有的对资源R1的本地锁定信息的本地锁定状态消息。
本地锁定状态消息可与确认消息分开发送,或者在既确认接收到冻结消息又传送为资源R1维持的本地锁定信息的组合消息中发送。
当已经从所有节点接收到确认消息,且已经从所有所涉及节点接收到本地锁定信息时,主节点N2指出需要做出哪些改变来解决不一致。在本实例中,假设主节点N2已经向节点N1授权对资源R1的排他锁定,但是所述节点N1仍然相信其仅持有对资源R1的共享锁定。在这个实例中,主节点N2可以确定,可以通过使节点N1改变其本地锁定信息以指示节点N1具有对资源R1的排他锁定来校正不一致。
在步骤208中,主节点N2校正任何需要在主节点N2上校正的锁定信息,并将校正请求发送到所有需要改变其本地锁定信息的节点(“需要校正的节点”)。在本实例中,主资源对象上的信息不需要做出变化。然而,需要校正节点N1上的本地锁定信息。因此,主节点N2向节点N1发送校正请求以便节点N1改变其本地锁定信息以指示节点N1具有对资源R1的排他锁定。
在步骤210中,需要校正的节点接收校正请求并做出校正。在做出校正之后,需要校正的节点将校正执行消息发送回主节点。在本实例中,节点N1更新其本地锁定信息来指示其持有对资源R1的排他锁定,并向主节点N2发送校正执行消息来指示节点N1已经校正其本地锁定信息。
在步骤212中,当主节点从所有需要校正的节点接收校正执行消息时,主节点向所有节点广播“解冻”消息。当节点接收到所述解冻消息时,所述节点了解对资源R1的锁定相关操作可以重新开始。
独立协调者实施例
在前面的实例中,主节点负责判定做出何种校正,并协调所述校正。然而,在所述实例中由主节点执行的任务也可以替代由一个或多个其他节点来执行。换句话说,资源的主节点不必是用来解决资源的与锁定相关的不一致的操作的“协调者节点”。
例如,可以将检测与锁定相关的不一致的节点指定为不一致解决操作的协调者。在这种实施例中,检测与锁定相关的不一致的节点将是广播冻结消息、接收本地锁定信息、确定如何解决不一致等的节点。检测与锁定相关的不一致的节点还将从主节点接收关于全局资源对象状态的信息。所述协调者节点将确定如何基于从所涉及节点接收的本地锁定信息及从主节点接收的全局锁定信息来校正不一致。
在其他实施例中,由主节点执行的任务可散布在数个节点中间。例如,检测与锁定相关的不一致的节点可以负责广播冻结消息,而主节点则仍然负责接收锁定信息及决定如何解决不一致。因此,本文所阐述的技术并不限于负责执行特定任务的特定节点。
与锁定相关的不一致校正的手动起始
在上文所述的实施例中,响应于检测指示可能存在与锁定相关的不一致的条件的过程来自动地执行与锁定相关的不一致校正。然而,在自动地检测这种不一致之前,数据库用户可能会注意到导致用户相信可能存在与锁定相关的不一致的行为。
所以,根据一个实施例,锁定管理系统经配置以包含一种机构,通过这种机构用户可以手动地起始与锁定相关的不一致校正操作。所述机构可包含(例如)允许用户指定用以执行校正操作的资源或资源组的控制。所述控制可以是(例如)图形用户接口控制、命令行解释程序等。本发明并不限于任何用于接收用来起始不一致校正操作的用户输入的特定机构。
硬件概述
图3是图解说明可在其上实施本发明实施例的计算机系统300的方块图。计算机系统300包含总线302或其他用于传送信息的通信机构,及与总线302耦合的用于处理信息的处理器304。计算机系统300还包含主存储器306,例如随机存取存储器(RAM)或其他动态存储装置,其耦合到总线302来用于存储将由处理器304来执行的信息和指令。主存储器306也可以用来存储临时变量或在其他在执行将由处理器304执行的指令期间所使用的中间信息。计算机系统300进一步包含只读存储器(ROM)308,或其他耦合到总线302来用于存储处理器304的静态信息及指令的静态存储装置。提供存储装置310(例如,磁盘或光盘)并将其耦合到总线302来用于存储信息及指令。
计算机系统300可经由总线302耦合到显示器312(例如,阴极射线管(CRT)),来用于向计算机用户显示信息。输入装置314(其包含字母数字键和其他键)耦合到总线302,来用于将信息和命令选择传送到处理器304。另一种类型的用户输入装置是光标控制器316(例如,鼠标、轨迹球、或光标方向键),其用于将方向信息和命令选择传送到处理器304且用于控制显示器312上的光标移动。这种输入装置通常在两个轴(第一轴(例如,x)及第二轴(例如,y))上具有两个自由度,来允许装置指定在平面中的位置。
本发明涉及用于实施本文所述技术的计算机系统300的使用。根据本发明的一个实施例,所述技术由计算机系统300响应于处理器304而执行,其中处理器304执行主存储器306中包含的一个或多个指令的一个或多个序列。可以从另一机器可读媒体(例如,存储装置310)将这种指令读入主存储器306。主存储器306中所包含的指令序列的执行会导致处理器304执行本文所述的处理步骤。在替代实施例中,可以使用硬连线电路来取代软件指令或与软件指令组合使用来实施本发明。因此,本发明的实施例并不限于硬件电路与软件的任何具体组合。
本文所用术语“机器可读媒体”涉及任何参与提供导致机器以指定方式操作的数据的媒体。在使用计算机系统300实施的实施例中,涉及各种机器可读媒体以(例如)将指令提供给处理器304供执行。这种媒体可采取许多形式,其包括但不限于:非易失性媒体、易失性媒体及传输媒体。非易失性媒体包含(例如)光盘或磁盘,例如存储装置310。易失性媒体包含动态存储器,例如主存储器306。传输媒体包含同轴电缆、铜导线及光纤,其中包含构成总线302的导线。传输媒体也可以采用声波或光波的形式,例如在无线电波及红外线数据通信期间产生的那些声波或光波。
机器可读媒体的常见形式包含:例如,软盘、软磁盘、硬盘、磁带或任何其他磁性媒体、CD-ROM、任何其他光学媒体、穿孔卡片、纸带、任何其他具有孔图案的物理媒体、RAM、PROM、及EPROM、快闪EPROM、任何其他存储器芯片或盒式磁盘、如下文中阐述的载波、或任何其他可由计算机进行读取的媒体。
可涉及各种形式的机器可读媒体以将一个或多个指令的一个或多个序列携载到处理器304供执行。例如,所述指令可以首先携载于远程计算机的磁盘上。所述远程计算机可以将所述指令载入到其动态存储器内,并通过电话线使用调制解调器发送所述指令。计算机系统300本地的调制解调器可在电话线上接收数据并使用红外线发射机将所述数据转换为红外线信号。红外线检测器可接收携载于所述红外线信号中的数据,且适合的电路可将所述数据置于总线302上。总线302将数据携载到主存储器306,且处理器304从主存储器306处检索指令并执行所述指令。主存储器306接收的指令可视需要地在由处理器304执行之前或之后存储在存储装置310上。
计算机系统300还包含耦合到总线302的通信接口318。通信接口318提供耦合到网络链路320的双向数据通信,其中网络链路320连接到本地网络322。例如,通信接口318可以是整合服务数字网络(ISDN)卡或调制解调器,来将数据通信连接提供给相应类型的电话线。作为另一实例,通信接口318可以是局域网络(LAN)卡,来将数据通信连接提供给兼容的LAN。也可以实施无线链路。在任何此种实施方案中,通信接口318发送并接收电信号、电磁信号或光信号,所述信号携载代表各种类型的信息的数字数据流。
网络链路320通常通过一个或多个网络向其它数据装置提供数据通信。例如,网络链路320可以通过局域网络322向主机计算机324或因特网服务提供商(ISP)326操作的数据设备提供连接。ISP 326依次通过世界范围的包数据通信网络(目前一般称作“因特网”328)提供数据通信服务。局域网络322及因特网328二者均使用携载数字数据流的电信号、电磁信号或光信号。通过各种网络的信号及网络链路320上并通过通信接口318的信号(其携载往来于计算机系统300的数字数据)是输送信息的载波的实例性形式。
计算机系统300可通过网络、网络链路320及通信接口318发送消息及接收数据(其中包含程序代码)。在因特网的实例中,服务器330可通过因特网328、ISP 326、局域网络322及通信接口318传输应用程序的所请求代码。
所接收代码可以随着其接收而由处理器304处理,及/或存储在存储装置310中或其他非易失性存储装置中以供随后执行。以此方式,计算机系统300可以载波形式获得应用程序代码。
在前面的说明中,已经参考各种可根据不同实施方案而改变的具体细节阐述本发明的实施例。因此,本发明及本申请者意欲作为本发明实质的唯一及排他标识是以发出此权利要求书的具体形式从本申请案发出的一组包含任何后续修正的权利要求项。针对所述权利要求书中所包含的术语所明确陈述的任何定义应如权利要求书中所使用来决定这些术语的含义。因此,权利要求书中未明确论述的任何限制、元件、特性、特征、优点或属性不应以任何方式限制本权利要求书的范围。因此,应将本说明书及图式视为具有例证意义而非限制意义。
Claims (10)
1.一种用于在其中多个节点单独地维持与资源相关的锁定信息的系统中处理涉及所述资源的与锁定相关的不一致的方法,所述方法包括:
使所述多个节点向特定节点发送与所述资源相关的锁定信息;
基于从所述多个节点接收的所述锁定信息,所述特定节点做出关于如何校正所述与锁定相关的不一致的决定;
基于关于如何校正所述与锁定相关的不一致的所述决定,所述特定节点向一组一个或多个需要校正的节点发送校正请求,以使所述需要校正的节点校正所述需要校正的节点为所述资源维持的锁定信息;及
响应于所述校正请求,所述需要校正的节点校正所述需要校正的节点为所述资源维持的所述锁定信息;其中所述与锁定相关的不一致不需要重新启动所述需要校正的节点即可得到解决。
2.如权利要求1所述的方法,其中所述特定节点是维持所述资源的主资源对象的主节点。
3.如权利要求2所述的方法,其进一步包括:基于关于如何校正所述与锁定相关的不一致的所述决定,所述主节点改变在所述主节点上为所述资源维持的全局锁定信息。
4.如权利要求1所述的方法,其中:
所述多个节点包含维持所述资源的主资源对象的主节点;及
所述特定节点是不同于所述主节点的节点。
5.如权利要求1所述的方法,其中所述多个节点属于包含一个或多个不具有与所述资源相关的锁定信息的节点的系统,所述方法进一步包括:
响应于检测到指示所述与锁定相关的不一致的条件,向所述系统中的所有节点广播停止与所述资源相关联的锁定相关活动的冻结消息;及
在解决所述与锁定相关的不一致之后,向所述系统中的所有节点广播重新开始与所述资源相关联的锁定相关活动的解冻消息。
6.如权利要求5所述的方法,其中所述使所述多个节点向特定节点发送与所述资源相关的锁定信息的步骤包含使所述多个节点通过发送包含与所述资源相关的锁定信息的确认消息来响应所述冻结消息。
7.如权利要求5所述的方法,其中所述特定节点直到所述系统中的所有节点均已确认所述冻结消息时才做出关于如何校正所述与锁定相关的不一致的决定。
8.如权利要求5所述的方法,其中所述特定节点直到所述特定节点已经从所述系统中为所述资源维持锁定信息的所有节点接收到锁定信息时才做出关于如何校正所述与锁定相关的不一致的决定。
9.如权利要求1所述的方法,其中所述使所述多个节点向特定节点发送与所述资源相关的锁定信息的步骤包含:
使得多节点数据库系统中的当前具有与所述资源有关的本地锁定信息的所有节点向所述资源的所述特定节点发送有关于所述所有节点的本地锁定信息的当前状态的消息。
10.如权利要求1所述的方法,其进一步包括自动地检测指示所述与锁定相关的不一致的条件,其中响应于检测到所述条件来执行所述使所述多个节点发送锁定信息的步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/156,318 | 2005-06-16 | ||
US11/156,318 US7315910B2 (en) | 2005-06-16 | 2005-06-16 | Techniques for handling lock-related inconsistencies |
PCT/US2006/022501 WO2006138168A2 (en) | 2005-06-16 | 2006-06-09 | Techniques for handling lock-related inconsistencies |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101189581A CN101189581A (zh) | 2008-05-28 |
CN101189581B true CN101189581B (zh) | 2010-08-18 |
Family
ID=37499647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680020071.1A Active CN101189581B (zh) | 2005-06-16 | 2006-06-09 | 用于处理与锁定相关的不一致的方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7315910B2 (zh) |
EP (1) | EP1891525B1 (zh) |
JP (1) | JP4607999B2 (zh) |
CN (1) | CN101189581B (zh) |
AU (1) | AU2006259651B2 (zh) |
CA (1) | CA2606457C (zh) |
DE (1) | DE602006010858D1 (zh) |
HK (1) | HK1109939A1 (zh) |
WO (1) | WO2006138168A2 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725660B2 (en) * | 2007-07-26 | 2010-05-25 | International Business Machines Corporation | Directory for multi-node coherent bus |
US8429657B2 (en) | 2008-04-28 | 2013-04-23 | Oracle International Corporation | Global avoidance of hang states via priority inheritance in multi-node computing system |
CN101464884B (zh) * | 2008-12-31 | 2011-09-28 | 阿里巴巴集团控股有限公司 | 一种分布式任务系统及应用该系统的数据处理方法 |
US8868748B2 (en) | 2010-10-11 | 2014-10-21 | International Business Machines Corporation | Two-level management of locks on shared resources |
CN102298539A (zh) * | 2011-06-07 | 2011-12-28 | 华东师范大学 | 一种用于分布式并行处理的共享资源调度方法及系统 |
CN103248667B (zh) * | 2012-02-14 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种分布式系统的资源访问方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339427A (en) * | 1992-03-30 | 1994-08-16 | International Business Machines Corporation | Method and apparatus for distributed locking of shared data, employing a central coupling facility |
EP0665495A2 (en) * | 1994-01-26 | 1995-08-02 | International Business Machines Corporation | A distributed lock manager using a passive, state-full control-server |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4949239A (en) * | 1987-05-01 | 1990-08-14 | Digital Equipment Corporation | System for implementing multiple lock indicators on synchronous pended bus in multiprocessor computer system |
US6574654B1 (en) | 1996-06-24 | 2003-06-03 | Oracle Corporation | Method and apparatus for lock caching |
US6931430B1 (en) * | 1998-05-13 | 2005-08-16 | Thomas W. Lynch | Maintaining coherency in a symbiotic computing system and method of operation thereof |
US6480918B1 (en) * | 1998-12-22 | 2002-11-12 | International Business Machines Corporation | Lingering locks with fairness control for multi-node computer systems |
US6301676B1 (en) * | 1999-01-22 | 2001-10-09 | Sun Microsystems, Inc. | Robust and recoverable interprocess locks |
US6529906B1 (en) | 2000-01-28 | 2003-03-04 | Oracle Corporation | Techniques for DLM optimization with re-mastering events |
US6920454B1 (en) | 2000-01-28 | 2005-07-19 | Oracle International Corporation | Techniques for DLM optimization with transferring lock information |
US6751616B1 (en) | 2000-01-28 | 2004-06-15 | Oracle International Corp. | Techniques for DLM optimization with re-mapping responsibility for lock management |
US6961865B1 (en) * | 2001-05-24 | 2005-11-01 | Oracle International Corporation | Techniques for resuming a transaction after an error |
US6970872B1 (en) * | 2002-07-23 | 2005-11-29 | Oracle International Corporation | Techniques for reducing latency in a multi-node system when obtaining a resource that does not reside in cache |
US7216346B2 (en) * | 2002-12-31 | 2007-05-08 | International Business Machines Corporation | Method and apparatus for managing thread execution in a multithread application |
-
2005
- 2005-06-16 US US11/156,318 patent/US7315910B2/en active Active
-
2006
- 2006-06-09 CA CA2606457A patent/CA2606457C/en active Active
- 2006-06-09 EP EP06772706A patent/EP1891525B1/en active Active
- 2006-06-09 CN CN200680020071.1A patent/CN101189581B/zh active Active
- 2006-06-09 DE DE602006010858T patent/DE602006010858D1/de active Active
- 2006-06-09 JP JP2008516952A patent/JP4607999B2/ja active Active
- 2006-06-09 WO PCT/US2006/022501 patent/WO2006138168A2/en active Application Filing
- 2006-06-09 AU AU2006259651A patent/AU2006259651B2/en active Active
-
2008
- 2008-04-10 HK HK08104016.4A patent/HK1109939A1/xx unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339427A (en) * | 1992-03-30 | 1994-08-16 | International Business Machines Corporation | Method and apparatus for distributed locking of shared data, employing a central coupling facility |
EP0665495A2 (en) * | 1994-01-26 | 1995-08-02 | International Business Machines Corporation | A distributed lock manager using a passive, state-full control-server |
Also Published As
Publication number | Publication date |
---|---|
WO2006138168A3 (en) | 2007-03-08 |
WO2006138168A2 (en) | 2006-12-28 |
US7315910B2 (en) | 2008-01-01 |
US20060288144A1 (en) | 2006-12-21 |
EP1891525A2 (en) | 2008-02-27 |
HK1109939A1 (en) | 2008-06-27 |
CN101189581A (zh) | 2008-05-28 |
CA2606457C (en) | 2011-07-26 |
JP4607999B2 (ja) | 2011-01-05 |
DE602006010858D1 (de) | 2010-01-14 |
EP1891525B1 (en) | 2009-12-02 |
AU2006259651B2 (en) | 2010-01-07 |
AU2006259651A1 (en) | 2006-12-28 |
CA2606457A1 (en) | 2006-12-28 |
JP2008544371A (ja) | 2008-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8301779B2 (en) | Mechanisms for obtaining access to shared resources using a single timestamp technique | |
CN101595668B (zh) | 建立协调定时网络中的服务器之间的逻辑路径的方法和系统 | |
US6539446B1 (en) | Resource locking approach | |
CN101375250B (zh) | 用于管理数据库系统中锁定请求的方法 | |
CN101390055B (zh) | 对锁管理资源的先期改变 | |
US7823008B2 (en) | Maintaining consistency in a remote copy data storage system | |
US20070043726A1 (en) | Affinity-based recovery/failover in a cluster environment | |
CN101189581B (zh) | 用于处理与锁定相关的不一致的方法 | |
US7792977B1 (en) | Method for fencing shared resources from cluster nodes | |
WO2005124547A1 (en) | Techniques for achieving higher availability of resources during reconfiguration of a cluster | |
JP7101231B2 (ja) | データ分散保存方法および装置 | |
JP2002543491A (ja) | 分散コンピューティング環境のための通信アーキテクチャ | |
US20090182787A1 (en) | Recovery Administration of Global Transaction Participants | |
US7913050B2 (en) | Fencing using a hierarchical relationship | |
US20060149791A1 (en) | Database-driven distributed recovery | |
US6594702B1 (en) | Managing the size and accessibility of a name service | |
CN112835885B (zh) | 一种分布式表格存储的处理方法、装置及系统 | |
CN102959529A (zh) | 用于缓存的网络的广播协议 | |
US7379989B2 (en) | Method for dual agent processes and dual active server processes | |
US8180846B1 (en) | Method and apparatus for obtaining agent status in a network management application | |
CN101523352A (zh) | 用于并发控制的持久锁/资源 | |
CN114285807B (zh) | 一种报文信息管理方法、装置、服务器和存储介质 | |
CN114844910B (zh) | 分布式存储系统的数据传输方法、系统、设备及介质 | |
US8103715B1 (en) | Approach for managing mobile agents in networks | |
US10489340B2 (en) | Distributed computing system and distributed processing method |
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 |