CN1258142C - 用于管理对资源访问的方法 - Google Patents
用于管理对资源访问的方法 Download PDFInfo
- Publication number
- CN1258142C CN1258142C CN02811032.3A CN02811032A CN1258142C CN 1258142 C CN1258142 C CN 1258142C CN 02811032 A CN02811032 A CN 02811032A CN 1258142 C CN1258142 C CN 1258142C
- Authority
- CN
- China
- Prior art keywords
- message
- holder
- locking
- requestor
- data item
- 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.)
- Expired - Lifetime
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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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)
- Multi Processors (AREA)
- Mobile Radio Communication Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供一种方法和装置,用于改进与传送数据项相关的性能,并通过将块传送消息认作锁定授权消息来获得多节点系统中的锁定。一般地,当数据项的持有者将数据项传送(例如块)传送至该数据项的请求者时,持有者将下向转换其对该数据项的锁定,并向该数据项的主管发送一条消息,表明下向转换已经被进行。随后,主管向该数据项的请求者发送一条锁定授权消息,以通知请求者其已经授予对该数据项的锁定。通过将块传送消息认作锁定授权消息,就可消除该下向转换消息及锁定授权消息,从而改进性能。
Description
技术领域
本发明涉及用于减少与请求数据项的一个实体有关的潜伏时间和信息业务(traffic)的技术,以及用于减少与该数据项有关的锁定的技术。
背景技术
为了提高可量测性,某些数据库和文件系统允许多于一个数据库或文件服务器(独立运行)来同时存取共享存储器像磁盘介质。每个数据库或文件服务器都具有用来存储共享数据项的高速缓冲存储器,像磁盘存储块。这些多节点系统此处被称作群集。与群集相关联的一个问题是和获取数据项相关的总内务操作以及与该数据项相关的锁定。
希望访问数据项的那些实体此处被称作该数据项的“请求者(Requestor)”。当前持有可访问数据项的权利的一个或多个实体此处被称作该数据项的持有者(Holder)。对于群集中的所有节点,用于记录与数据项有关的锁定的实体此处被称作数据项的主管(Master)。数据项的主管、持有者及请求者可以是单个节点上的单独进程或分离节点上的进程,或者一些是相同节点上的进程而其他是分离节点上的进程。
在一种典型的情形中,持有者在其高速缓冲存储器中持有最新版的数据项。该请求者请求一定程度的访问,从而请求对该数据项的锁定。请求者需要的锁定类型依赖于请求者希望进行的访问类型。因此,锁定请求一般会指明所希望锁定的“锁定模式”。从而,获取特定类型的锁定也可称作“获取特定模式的锁定”。例如,为了读取一条数据项,必须获得S锁定(例如共享锁定)。为了修改一条数据项,必须获得X锁定(例如专用锁定)。为了使X锁定被持有,则任何其他的持有者都可持有任何其他的锁定。然而,数个持有者可以同时持有S锁定。
对于请求者,必须交换各种消息来获得一条数据项及与该数据项相关的锁定。参考图1A和图1B,图1A是描述一个群集的方框图,其中主管100、持有者110和请求者120处于分离的节点上。而且,请求者120需要S锁定,持有者110已经具有X锁定。图1B示出可被图1A中所示情形采用的信息。图1B也示出与这些信息有关的参数。
很可能地,节点A处持有者110和节点B处请求者120之间的连接是高速连接。节点B处请求者120和节点C处主管100之间的连接是较低速的连接。
最初,持有者110具有一条数据项及该数据项的X锁定。随后,请求者120需要访问该数据项和该数据项的S锁定。为了请求访问该数据项并获得该数据项的S锁定,节点B处的请求者120向节点C处的主管100发送一条锁定请求消息。与该锁定请求消息相关的是一个存储单元和一个期望锁定模式,其中所请求的数据项最终将被传送到该存储单元中,所述期望的锁定模式表明请求者120需要S锁定。
当主管100接收到该锁定请求消息时,主管100向节点A处的持有者110发送一条消息,通知持有者110(例如通知锁定持有者)存在一个请求者120需要共享模式下的该数据项。
持有者110将把所请求的数据项传送至请求者指定的存储单元。持有者110进行一个存储器至存储器的传送,以将该数据项传递给请求者120。另外,节点A处的持有者110将下向转换其锁定模式从X锁定至S锁定,并通知主管100这种下向转换。所请求数据项(例如TBM)的传送和该下向转换消息可以并行地发送。
当主管100接收到该下向转换消息时,主管100通过向请求者120发送一个锁定授权消息来授予节点B处的请求者120一个S锁定。只有在请求者120收到该锁定授予信息之后,请求者120才可以访问该数据项。
在此情形中,潜伏时间或从最初请求(例如LRM)到数据项被使用时的时间(例如请求者120接收到该锁定授予消息)是四个小消息(例如锁定请求消息、通知锁定持有者、下向转换消息和锁定授予信息)。所有的业务是四个小消息(锁定请求消息、通知锁定持有者、下向转换消息和锁定授予信息)和一个请求数据项的传送。
为了提高在群集中操作的速度,就希望提供某些技术来减少请求者在访问其请求的数据项之前必须等待的时间量。
发明内容
本发明提供一种方法和装置,用于改进与传送数据项相关联的性能,并获得多节点系统中的锁定。为此,本发明提供一种用于管理对资源访问的方法,该方法包括计算机实施的以下步骤:从请求者向所述资源的主管发送用于所述资源锁定模式的锁定模式请求;在所述请求者处接收来自所述资源的持有者的所述资源;以及存取所述资源,以将另外要求所述锁定模式请求已经被授予的方式进行,而不需等待接收来自所述主管的快速锁定模式授权。所描述的技术适用于任何内容,只要其中具有高速缓冲存储器的实体可共享访问资源。这些内容包括但不限于文件系统和数据库系统。根据本发明的一个方面,通过使请求者将块传送消息认作锁定授予消息来获得改进的性能。从而,只要请求者收到数据项,其就可以访问该数据项而不必等待来自主管的明确锁定授权。
附图说明
借助于实例而并非限定的方式来图解本发明,在所附的附图中,相同的参考标记指代相似的元件,其中:
图1A是描述最新版数据项和与该数据项相关的锁定其高速缓冲存储器至高速缓冲存储器传送的方框图;
图1B是对应于图1A的消息脚本(script);
图2A是描述处于一个群集中单独节点处的主管、持有者和请求者的方框图;
图2B是对应于图2A的消息脚本;
图3A是描述处于相同节点的主管和请求者的方框图;
图3B是对应于图3A的消息脚本;
图4A是描述处于相同节点的主管和持有者的方框图;
图4B是对应于图4A的消息脚本;
图5A是描述多个共享锁定持有者和一个共享锁定请求者的方框图;
图5B是对应于图5A的消息脚本;
图6A是描述多个共享锁定持有者和一个专用锁定请求者的方框图;
图6B是对应于图6A的消息脚本;
图7A是描述一种情形的方框图,其中主管在接收到一条锁定假定消息之前收到一条锁定请求消息;
图7B是对应于图7A的消息脚本;
图8A是描述在数据项传送期间如何处理断连的方框图;
图8B是对应于图8A的消息脚本;
图9A是描述如何处理来自多于一个共享锁定请求者其同时锁定请求的方框图;
图9B是对应于图9A的消息脚本;
图10A是描述如何处理对锁定请求消息定时发布(timing issue)的方框图;
图10B是对应于图10A的消息脚本;
图11A描述如何处理锁定状态不匹配的方框图;
图11B是对应于图11A的消息脚本;
图12是一个计算机系统的方框图,其中本发明的一个实施例可以在该计算机系统上实施。
具体实施方式
在此描述一种用于提高数据块(例如数据项)传送性能并通过将块传送信息译为锁定授权消息在群集中获得锁定的方法和装置。在下面的描述中,为了说明的目的,给出了大量具体的细节,以给出对本发明的大致理解。但是,很明显,对本领域的技术人员来说,没有这些具体的细节本发明也可以实施。在其它的实例中,以方框图的形式示出了一些公知的结构和装置,以避免不必要地使本发明变得不清楚。
以下描述的技术在任何具有高速缓冲的实体可共享资源的范围内都可以应用。这些范围包括但不限于文件系统和数据库系统。当用在文件系统的范围内时,文件系统块可以不具有如下所述数据项标题(header)内的冗余字段,该如下所述的数据项标题是在术语传输块消息的讨论范围内。与在数据项标题中使用冗余字段相反,新的锁定方式和手段可用在与数据单元相分开的标题单元中。此外,请求的存储地址必须包括该标题和数据单元。该标题和数据单元可以通过互联的分散/聚集操作来传送。
术语
以下的术语将用于指代在以下许多情形中交换的消息,以描述本发明的实施例:
1)锁定请求消息(LRM):请求者向主管发送LRM。在一些系统中,请求者可以包含一个在LRM中的存储单元,数据项被拷贝到该请求单元中。
2)通知锁定持有者消息(ILH):主管向锁定持有者发送ILH,以便通知持有者存在一个对获取数据项锁定感兴趣(即期望访问数据项)的请求者。如果请求者希望专用锁定,则ILH可以传送至多个持有对数据项S锁定的持有者。
3)传送块消息(TBM):持有者将数据项(例如块)传送至带有TBM的请求者,其中该数据项位于持有者的高速缓冲存储器中。传送块消息的接收可被请求者理解为来自数据项持有者的锁定授权。
不仅TBM包括数据项的内容,而且持有者的锁定状态信息也包括数据项的内容。锁定状态信息可以简单地由锁定模式组成。在一些系统中,锁定状态信息另外包含在持有者高速缓冲存储器中保留的数据项版本号,或者一些数据项节点传送的显示。与该数据项相关联的信息的传送技术是将此条信息存储在数据项标题的冗余字段中。如果在接收到数据项后该请求节点可重新构建这些“冗余”的字段,则数据项标题字段被认为是“冗余的”。冗余字段的例子有数据库块地址和数据库块类型。
用于发送与数据项相关联的信息的第二种技术是使用“分散/聚集”技术来在单条基础信息中传送分离的标题和有效负载字段。例如,一个典型的写入/发送操作可用如下的访问来实现:
Send(Some_dest,Some_buffer,buffer_length);
一个矢量发送/写入采用一阵列或一序列缓冲器并将其输入一个操作,如下:
v[0].buf=buf1;
v[0].len=buflen1;
v[1].buf=buf2;
v[1].len=buflen2;
vSend(Some dest,2/*Size ofvector*/,V)
其中接收/读取如下:
v[0].buf=buf1;
v[0].len=buflen1;
v[1].buf=buf2;
v[1].len=buflen2;
vread(Some_dest,2,v)
使用这些操作的通常方式是将标题信息从有效负载中分离出来。在给定用作文件系统的例子中,锁定消息信息是buf1,实际的块将在buf2中。在API中两种操作的描述允许基础系统将两种操作所出现的转换成单个操作。如果这种技术用在消息系统中,则结果就是在线上的一条消息,这是一个很大的优点。
用于发送与数据项有关的信息的第三种技术是发送单个的状态消息(例如LSM),该单个的状态消息包括锁定状态信息,而不是包括具有TBM的锁定状态信息;然而,除非系统允许通过一个“矢量”的并行发送来传送单个的LSM和单个的TBM,否则传送单个的状态消息可能会降低协议的有效性。在支持“矢量”并行发送的这类系统中,单个的LSM将不会减少协议的有效性。
4)广播通知锁定持有者消息(BILH):主管向所有共享的锁定持有者发送BILH(例如对于特定的数据项,所有共享锁定的持有者),但除一个持有者以外,以通知共享的锁定持有者一个请求者对获取数据项的锁定感兴趣,共享的锁定持有者对该数据项持有共享锁定。
5)下向转换消息(DCM):持有者下向转换它的锁定(例如,从专用模式转换到共享模式),并通知主管锁定已经通过将DCM发送给主管而被下向转换。
6)更新锁定模式(ULM):当多于一个持有者需要通知主管:他们已经根据对数据项的请求改变/更新了其锁定模式时,持有者将ULM与锁定id及与该锁定id相关联的新的锁定模式传送给主管。
7)锁定授权消息(LGM):主管传送LGM给请求者,以通知请求者锁定已经被授予给请求者。
8)锁定状态消息(LSM):当两个实体(例如主管,请求者,持有者)意识到其各自的锁定状态并不匹配时,该两个实体将与LSM交换状态。例如,当主管收到LRM时,其中包括来自持有者的锁定状态,该来自持有者的锁定状态并不与主管具有的锁定状态相匹配,主管将向具有主管锁定状态的持有者发送LSM。然后,持有者将LSM发送回主管,其包括锁定状态,正如持有者所知道的那样。因而,主管和持有者可以对特定的数据项再同步它们的锁定状态。
锁定假定消息
如前所述,典型地,当数据项的持有者将数据项传送至数据项的请求者时,持有者将下向转换对该数据项的锁定并向该数据项的主管传送一条消息,表明下向转换已经进行。其后,主管向该数据项的请求者发送一个锁定授权消息,以通知请求者其已经被授予锁定该数据项。
相反,提供一些技术,其中请求者不必等待来自主管的锁定授权消息。请求者将来自持有者的数据项接收认为是一条隐含的锁定授权消息。借助于请求者将锁定转换消息认为是锁定授权消息,就可排除该下向转换消息和锁定授权消息,从而获得改进的性能。
最终,数据项的主管必须被通知有关是何实体对数据项持有锁定的消息。在持有者不必传送反向转换消息给主管的实例中,主管必须通过一些其它的途径来获取这条消息。根据一个实施例,为了使主管知道持有者已经下向转换了其模式锁定以及请求者已经假设一个新的锁定模式,该请求者或持有者将锁定假定消息(LAM)传送给主管。
功能综述
图2A是描述一个群集的方框图,其中主管200、持有者210和请求者220位于该群集中的分离节点处。此外,请求者220需要S锁定,持有者210已经具有X锁定。图2B示出可被图2A中所示情形采用的消息脚本。图2B也示出与这些消息有关的参数。
持有者210当前具有一条数据项和用于这个数据项的X锁定。请求者220需要访问这个数据项和数据项的S锁定。执行下面的步骤,以使请求者220可以获取访问S模式内的该数据项:
1)请求者向主管发送LRM:
为了请求访问该数据项和获取这个数据项的S锁定,请求者220向主管200发送LRM。一个存储单元和希望的锁定模式与该LRM相联,请求的数据项最终将被传输至该存储单元中,该希望的锁定模式表明请求者220需要一个S锁定。
2)主管向持有者发送ILH:
当主管200接收到LRM时,主管200给持有者210发送ILH,以通知持有者210,存在一个请求者220需要位于共享模式中的该数据项。
3)持有者向请求者发送TBM:
持有者210使用请求者的存储单元(方框220)传送具有TBM的该数据项。持有者210进行一个存储器至存储器的传送来将该数据项传递至请求者220。
请求者220的S锁定将数据项的接收认为是锁定授权,从而排除了需要等待LGM和DCM。此外,由于持有者210具有X锁定且在持有X锁定的同时没有其他的持有者可以持有任何锁定,因此一旦传递数据项,持有者210将下向转换其锁定,从X锁定至S锁定。根据一个实施例,通过改变局部保持在持有者210上的锁定消息来实现这种下向转换,但是持有者210并不必通知主管200这种具有DCM的下向转换。
4)请求者向主管发送LAM:
请求者220向主管200发送LAM,指示请求者220已经假设一个数据项的S锁定,该数据项被持有者210传递。响应于该LAM,主管200修改其对于数据项的锁定消息,以指示请求者220和持有者210两者都具有数据项的S锁定。根据本发明的另一个实施例,与请求者220向主管200发送LAM相反,持有者210可以在向请求者220发送TBM的同时,向主管200发送LAM。
更可能的是,节点处A的持有者210和节点B处的请求者220两者之间的连接是高速连接。节点B处的请求者220和节点C处的主管200两者之间的连接是较低速的连接。假设这种构造对于下述所有的情形都是成立的。
在此情形下,潜伏时间或从最初请求(例如LRM)至数据项被使用(例如完成TBM)时的时间是2个小消息和一个数据项传送(例如LRM,ILH,TBM)。所有的业务是3个小消息和一个数据项传送(例如LRM,ILH,LAM和TBM)。
相同节点处的主管和请求者
图3A是描述一个群集的方框图,其中主管310和请求者320是处于相同节点-节点B 300上的单独进程,持有者330处于单独的节点-节点A 330上。请求者320需要一个S锁定,持有者330已经具有一个X锁定。图3B示出可被图3A中所示情形采用的消息脚本。图3B也示出与这些消息有关的参数。
持有者330当前具有一条数据项和用于这个数据项的X锁定。请求者320需要访问这个数据项和该数据项的S锁定。被执行以使请求者320可以获取访问S模式内的该数据项的步骤与图2A和图2B中的相同,除了以下两点:第一,消息LRM和LAM在处于相同节点处的两个过程之间被发送,而不是在处于单独节点处的两个过程之间被发送,因此是过程调用。第二,LAM是不必要的,因为请求者320可以将主管310的锁定结构更新为下向转换持有者330锁定。
在这种情形下,潜伏时间或从最初请求(例如LRM)至数据项被使用(例如完成TBM)时的时间是一个小消息和一个数据项传送(例如ILH,TBM)。所有的业务也是一个小消息和一个数据项传送(例如ILH,TBM)。消息LRM和LAM并不被认为是潜伏时间的一部分,这是因为这些消息处于在同一节点的两个进程之间,因此被作为过程调用对待。
相同节点处的主管和持有者
图4A是描述一个群集的方框图,其中主管410和持有者420是处于相同节点-节点A(方框400)上的单独进程,请求者430处于单独节点-节点B(方框430)上。请求者430需要一个S锁定,持有者420已经具有一个X锁定。图4B示出可被图4A中所示情形采用的消息。图4B也示出与这些消息有关的参数。
持有者420当前具有一条数据项和用于这个数据项的X锁定。随后,请求者430需要访问这个数据项和该数据项的S锁定。被执行以使请求者430可以获取访问S模式内的该数据项的步骤与图2A和图2B中的相同,除了以下两点:第一,消息ILH在处于相同节点处的两个进程之间被发送,而不是在处于单独节点处的两个进程之间被发送。第二,LAM从请求者430至主管410是不必要的。原因在于在持有者420收到ILH后,持有者420可以下向转换持有者的局部锁定模式,同时持有者420也可以更新主管410锁定结构中请求者430的锁定模式。
在这种情形下,潜伏时间或从最初请求(例如LRM)至数据项被使用(例如完成TBM)时的时间是两个小消息和一个数据项传送(例如LRM,LAM,TBM)。所有的业务也是两个小消息和一个数据项传送(例如,LRM,LAM,TBM)。如果LAM被消除,则潜伏时间是一个小消息和一个数据项传送(例如LRM,TBM),而且所有的业务也是一个小消息和一个数据项传送(例如LRM,TBM)。消息ILH并不被认为是潜伏时间的一部分,这是因为ILH处于在同一节点的两个进程之间,因此被作为过程调用对待。
S锁定的多个共享锁定持有者和请求者
图5A是描述一个群集的方框图,其中主管500,两个持有者(方框510和530)和请求者520处于一个群集的分离节点上。此外,请求者520需要一个S锁定,持有者(方框510和530)已经具有S锁定。该两个S锁定持有者(方框510和530)不必放弃其各自的S锁定而使请求者520也获得一个S锁定。图5B示出可被图5A中所示情形采用的消息脚本。图5B也示出与这些消息有关的参数。被执行以使请求者520可以获取访问S模式内的该数据项的步骤与图2A和图2B中的相同,除了主管500仅接收处于节点A和节点C上的其中一个共享锁定持有者(方框510和520),以发送至ILH。
如图5A所示,主管500向持有者510发送ILH。主管500可使用各种方法来接收持有者(510或530)发送ILH。两种可能的情形如下:
1)接收S锁定的最新被授予者,因为它最可能具有在高速缓冲存储器中的数据项;或
2)如果在与主管相同的同一节点处存在一个S锁定持有者,则接收处于与主管相同节点上的该S锁定持有者,从而减少所有的业务。上述用于接收持有者发送ILH的可能适用于存在多个持有者的其他情形。从这儿开始,在图5A和图5B中的这些步骤分别与图2A和图2B中的相同。
X锁定的多个共享锁定持有者和请求者
图6A是描述一个群集的方框图,其中主管600,三个持有者(方框610、620和630)和一个请求者640处于一个群集中的分离节点上。请求者640需要一个X锁定,三个持有者(方框610、620和630)已经具有S锁定。为了使请求者640获得一个X锁定,该三个持有者(方框610、620和630)需要放弃其各自的S锁定。图6B示出可被图6A中所示情形采用的消息脚本。图6B也示出与这些消息有关的参数。
以下步骤被执行以便于请求者640能够获得访问X模式内的数据项:
1)请求者向主管发送LRM:
为了请求访问数据项并获取这个数据项的X锁定,请求者方框640传送LRM给主管600。一个存储单元和一个期望锁定模式与LRM相联,其中请求的数据项最终被传送至该存储单元内,该期望的锁定模式指示请求者640需要S锁定。
2)主管向所有但除其中一个的持有者发送BILH:
当主管600收到LRM时,主管600同时发送BILH给所有的持有者(方框610,620)但除一个(持有者630)外,以通知其他的持有者(方框610,620),存在一个请求者640需要专用模式的数据项。
3)将响应ULM的持有者通知主管:
通知到的持有者(方框610,620)解除它们各自的S锁定并响应具有ULM的主管600,表明其锁定已经被解除(例如持有者610和620)。ULM被该通知到的持有者(方框610,620)大约同时传送至主管600。
4)主管向最后持有者发送ILH:
当主管600收到最后一个ULM时,主管600传送ILH给最后一个S锁定持有者,其中在持有者630的这种情况时,通知该最后的持有者630,存在一个请求者640需要专用模式(例如X锁定)的数据项。
5)最后的持有者向请求者发送TBM:
最后的持有者630使用该请求者的存储单元(方框640)来传送具有TBM的请求数据项。这个最后的持有者630进行一个存储器至存储器的传送来将数据项传输至请求者640。X锁定的请求者640将数据项的接收认为是锁定授权,从而消除了LGM和DCM。此外,由于持有者630具有一个S锁定,且没有其他的持有者可在持有X锁定的同时持有任何其他的锁定,因此一旦将数据项传送至请求者640,该最后的持有者630就将解除其S锁定。
6)请求者向主管发送LAM:
请求者640传送LAM给主管600,表明请求者640已经假定一个用于数据项的X锁定,其中该数据项被传送至请求者640。
在此情形下,潜伏时间或从最初请求(例如LRM)至数据项被使用(例如完成TBM)时的时间是4个小消息和一个数据项传送(例如LRM,BILH,ULM,ILH,TBM)。所有的业务依赖于S锁定持有者的数目。
在锁定假定消息之前主管接收锁定请求消息
图7A是描述一个群集的方框图,其中主管700,持有者720和请求者720处于一个群集中的分离节点上。此外,请求者720需要一个X锁定,持有者710已经具有一个X锁定。图7B示出可被图7A中所示情形采用的消息脚本。图7B也示出与这些消息有关的参数。持有者710当前具有一条数据项和用于这个数据项的X锁定。随后,请求者720需要访问该数据项及用于该数据项的X锁定。
下面步骤被执行以便请求者720能够获取访问X模式中的该数据项:
1)请求者向主管发送LRM:
为了请求访问这个数据项并获得用于这个数据项的X锁定,请求者720向主管700发送LRM。一个存储单元和一个期望的锁定模式与LRM相关,请求的数据项将被最终转移到该数据单元内,该期望的锁定模式表明请求者720需要一个X锁定。
2)主管向持有者发送ILH:
当主管700接收LRM时,主管700发送ILH给持有者710以通知持有者710存在一个请求者720需要专用模式下的数据项。
3)持有者向请求者发送TBM:
持有者710使用请求者的存储单元(方框720)传送带有TBM的请求数据项。持有者710进行一个存储器至存储器的传送以将数据项传送到请求者720。该X锁定的请求者710将数据项的接收认为是锁定授权,从而消除了LGM和DCM。此外,由于持有者710具有一个X锁定且在持有X锁定的同时没有任何其它的持有者可以持有任何其它的锁定,因此一旦传送该数据项持有者710将解除它的X锁定。该X锁定的持有者710将不再通知具有DCM的主管700的解除。
4)请求者向主管发送LAM,但是主管在LRM之后接收到LAM:
a)请求者720向主管700发送LAM,表明请求者720已经假定一个用于数据项的X锁定,其中该数据项被传送至请求者720。
b)然而,在主管700接收到请求者720传送的LAM之前,持有者710不再认为是持有者,其传送LRM来再次请求用于这个相同数据项的X锁定。
5)主管向持有者发送LSM:
当主管700收到来自持有者710的LRM(参考图7A中的消息4b)时,对于所涉及的数据项,主管700确定在节点C(方框700)处的主管的锁定记录和在节点A(方框710)处的持有者的锁定记录之间存在着失配。此时,主管700等待LAM来表明新的持有者720处于节点B处。然而直至主管700确实地收到该LAM,主管的锁定记录(方框700)仍旧示出该持有者710处于节点A处。为了同步这些锁定记录,主管700向处于节点A的持有者710发出一个与主管记录锁定模式一起的LSM。
6)持有者向主管发送LSM:
当持有者710接收到来自主管700的LSM时,持有者710确定出对于该数据项,持有者的记录锁定模式(方框710)与主管的记录锁定模式(方框700)不同步。通过向主管700发出一个LSM,持有者710响应该确定,其中与用于该数据项的持有者记录锁定模式(方框710)一起发送该LSM。当主管700接收到来自持有者710的LSM时,主管700和持有者710将相对于与该数据项相关联的锁定模式而被同步。
当主管接收到来自请求者720的LAM时,主管700改变其锁定信息以表明该请求者720具有X锁定,并向请求者720发送ILH以通知新的持有者(前请求者)720,新的请求者(前持有者)720的需要一个锁定。从此后数据处理将以正常的方式继续。
虽然步骤5和6产生正确的结果,步骤5和6并不是必要的。当主管700接收到LRM(4b),主管700可以确定正确的锁定状态以及隐含地更新主管700的局部锁定状态。这对于热块尤为重要由于前持有者710在TBM(3)之后立即发送一个请求的可能性很高。
在数据传送期间断开
图8A是描述一个群集的方框图,其中主管800,持有者810和请求者820位于一个群集中的分离节点处。此外,数据项的传输并没有到达请求者820。为了说明本发明的这个实施例起见,不考虑锁定模式。图8B示出可被图8A中所示情形采用的消息脚本。图8B也示出与这些消息有关的参数。持有者810当前具有一条数据项和用于这个数据项的X锁定。随后,请求者820需要访问该数据项及用于该数据项的X锁定。下面步骤被执行以便请求者820能够获取访问X模式中的该数据项:
1)请求者向主管发送LRM:
为了请求访问这个数据项并获得用于这个数据项的S锁定,请求者820向主管800发送LRM。一个存储单元和一个期望的锁定模式与LRM相关,请求的数据项将被最终转移到该数据单元内。
2)主管向持有者发送ILH:
当主管800接收LRM时,主管800发送ILH给持有者810以通知持有者810存在一个请求者820需要指示锁定模式下的数据项。
3)持有者向请求者发送TBM:
持有者810使用请求者的存储单元(方框820)传送带有TBM的请求数据项。然而,由于某些错误,所请求数据项的传送并不完全。从而,该锁定的请求者820并不能将数据项的接收认为是锁定授权。此外,持有者810不向主管800发出一个LAM来表明持有者820已经假定该锁定。
根据一个实施例,这种类型的出错情况(error situation)通过使主管800包括所有的ILH消息来被寻址(address),主管当前对锁定模式的理解由ILH发送至的实体来持有。例如,如果主管800处的消息仍旧表明持有者810具有对一资源的专有锁定,则主管800将在另一节点请求对该资源的一个锁定时向持有者810发出一个ILH。主管800将包括该ILH数据项,该ILH数据项表明主管800认为持有者810对该资源具有一个X锁定。
如果持有者810接收到一个具有锁定状态的ILH消息,其中该锁定状态与持有者810的锁定状态记录并不匹配,则持有者810就可以拒绝该ILH,并更新主管800的用于该数据项的持有者锁定模式状态。例如,通过发出一个LSM至主管800,持有者810可能响应一个表明X锁定模式的ILH,以表示持有者810已经降级了其锁定模式。当请求者820确定TBM并未到来时,请求者820将通过再次将LRM发送至主管800来进行重试。
多重S锁定请求者
图9A是描述一个群集的方框图,其中主管900,持有者910和两个请求者(方框920和930)位于一个群集的分离节点处。此外,请求者920和930需要S锁定,持有者910已经具有X锁定。请求者920和930在大约相同的时间发出它们的S锁定请求,主管900在大约相同的时间接收到这些S锁定请求。图9B示出可被图9A中所示情形采用的消息脚本。图9B也示出与这些消息有关的参数。
下面步骤被执行以便请求者920和930能够获取访问S模式下的该数据项:
1)请求者向主管发送LRM:
为了请求访问这个数据项并获得用于这个数据项的S锁定,请求者920和930向主管900发送LRM。存储单元和一个期望的锁定模式与LRM相联,请求的数据项将被最终转移到该数据单元内,该期望的锁定模式表明请求者920和930需要S锁定。主管大约在相同的时间接收到来自请求者920和930的LRM。
2)主管向持有者发送ILH:
当主管900接收到LRM时,主管900传送ILH给持有者910以通知持有者910存在两个请求者920和930需要共享模式下的该数据项。对于每个请求者920和930,与向持有者910发出单独的ILH相反,主管900通过包括存储单元来将这些请求分批成一个ILH,对于一个ILH中的请求者920和930,数据项需要被复制到该一个ILH内。
3)持有者向请求者发送TBM:
持有者910使用请求者的存储单元(方框920和930)传送带有TBM的请求数据项。持有者910进行一个存储器至存储器的传送以将数据项传送到请求者920和930。
该S锁定的请求者920和930将数据项的接收认为是锁定授权,从而消除了需要等待LGM和DCM。此外,由于持有者910具有一个X锁定且在持有X锁定的同时没有任何其它的持有者可以持有任何其它的锁定,因此一旦传送该数据项,持有者910将下向转换其锁定,从X锁定转换成S锁定。根据一个实施例,这种下向转换通过改变局部保持在持有者910上的锁定消息来进行,但持有者910并不通知主管900这种具有DCM的下向转换。
4)请求者向主管发送LAM:
请求者920和930向主管900发出LAM,表明请求者920和930已经假定其对于该数据项各自的S锁定,其中该数据项被持有者910传送。响应于该LAM,主管900接收到其用于该数据项的锁定消息,以表明请求者920、930和持有者910具有对该数据项的S锁定。
在此情形下,潜伏时间或从最初请求(例如LRM)至数据项被使用(例如完成TBM)时的时间是2个小消息和一个数据项传送(例如LRM,ILH,TBM)。所有的业务是5个小消息和一个数据项传送(例如两个LRM,一个ILH,两个LAM和两个TBM)。
锁定请求消息的定时发布
图10A是描述一个群集的方框图,其中主管1000,持有者1010和请求者1020位于一个群集中的分离节点处。持有者1010具有一个S锁定,并需要将锁定模式提升至X锁定。而且,请求者1020也需要一个X锁定。在这种情形下,感兴趣的一点是主管1000将接收来自请求者1020的LRM,其后不久接收来自持有者1010的LRM,请求提升持有者1010的锁定模式从S升至X。图10B示出可被图10A中所示情形采用的消息脚本。图10B也示出与这些消息有关的参数。
持有者1010当前具有一个数据项和用于这个数据项的S锁定。持有者1010和请求者1020两者都需要以专用的模式来访问这个数据项,从而需要用于该数据项的X锁定。下面步骤被执行以便请求者1020能够获取访问X模式中的该数据项。
1a)请求者向主管发送LRM:
为了请求访问这个数据项并获得用于这个数据项的X锁定,请求者1020向主管1000发送LRM。一个存储单元和一个期望的锁定模式与LRM相联,请求的数据项将被最终转移到该数据单元内,该期望的锁定模式表明请求者1020需要X锁定。
1b)持有者向主管发送LRM以将锁定从S提升至X:
为了获取数据项的专用模式,其中持有者1010已经处于S模式,持有者1010向主管1000发出一个LRM,请求将此数据项的锁定模式从S提升至X。然而,主管1000在接收到持有者1010的LRM之前已经接收到请求者1020的LRM。
2)主管向持有者发送ILH:
当主管1000接收到来自请求者1020的LRM时,主管1000传送ILH给持有者1010以通知持有者1010存在一个请求者1020需要专用模式下的该数据项。持有者1010认为在其自身和请求者1020之间存在着差异。
3)持有者向请求者发送TBM:
持有者1010使用请求者的存储单元(方框1020)传送带有TBM的请求数据项。持有者1010进行一个存储器至存储器的传送以将数据项传送到请求者1020。
该锁定的请求者1020将数据项的接收认为是锁定授权,从而消除了需要等待LGM和DCM。而且,由于持有者1010具有一个X锁定且在持有X锁定的同时没有任何其它的持有者可以持有任何其它的锁定,因此一旦传送该数据项至请求者1020,持有者1010将放弃其锁定。该X锁定的持有者1010不再通知主管1000:持有者1010已经放弃了其具有DCM的锁定。
4)持有者向主管重发LRM:
此时,持有者1010不再是一个持有者,它通过向主管1000发送另一个LRM来再次尝试以获得用于该数据项的X锁定。但是,请求者1020已经具有一个用于此数据项的X锁定。因此,此时,先前的持有者1010被作为类似于其他任何新的持有者来对待,而且先前的持有者1010其新的请求将被排列在任何其他等待的请求之后。
5)请求者向主管发送LAM:
请求者1020向主管1000发送LAM,表明请求者1020已经假定一个数据项的X锁定,其中该数据项被持有者1010传送。响应于该LAM,主管1000修改该数据项的锁定消息,以表明先前的持有者1010不再具有此数据项的锁定,以及请求者1020具有该相同数据项的X锁定。在主管1000已经收到来自请求者1020的LAM后,主管1000将认为节点A 1010类似于其他任何的请求者,其中节点A 1010当前是请求者;从而主管1000将向代表节点A 1010的节点B 1020发出一个ILH。
在此情形下,潜伏时间或从最初请求(例如LRM)至数据项被使用(例如完成TBM)时的时间是2个小消息和一个数据项传送(例如LRM,ILH,TBM)。所有的业务是3个小消息和一个数据项传送(例如LRM,ILH,LAM和TBM)。
锁定状态的不匹配
图11A是描述一个群集的方框图,其中主管1100,620,持有者(方框1110和1120)和请求者1130位于一个群集中的分离节点处。两个持有者(方框1110和1120)已经具有S锁定。持有者1110请求将锁定模式从S提升到X。此外,请求者1130需要X锁定。为了使请求者1130获取X锁定,两个持有者(方框1110和1120)需要放弃他们各自的S锁定。图11B示出可被图11A中所示情形采用的消息脚本。图11B也示出与这些消息有关的参数。
下面步骤被执行以便请求者1130能够获取访问X模式下的该数据项。
1)请求者向主管发送LRM,持有者也向主管发送LRM:
为了请求访问这个数据项并获得用于这个数据项的X锁定,请求者1130向主管1100发送LRM。一个存储单元和一个期望的锁定模式与LRM相联,请求的数据项将被最终转移到该数据单元内,该期望的锁定模式表明请求者1130需要X锁定。
几乎同时,持有者1110也向主管1100发出一个LRM,请求持有者1110的锁定从S提升至X。然而,依照这种情形,持有者1110发出的LRM会被延迟到达主管1100。在持有者1110发出LRM时,该LRM将包含当前的锁定模式和持有者1110的期望锁定模式。
2)主管向除一个持有者外所有的持有者发送BILH:
当持有者1100接收到LRM时,主管1100同时向除一个持有者(持有1120)之外的所有持有者(方框1110)发送BILH,以通知其它的持有者(方框1110)存在一个请求者1130需要该专用模式下的数据项。
3)将响应于ULM的持有者通知给主管:
被通知的持有者1110解除持有者1110持有的S锁定,并响应回复具有ULM的主管1100,表明持有者1110已经解除该锁定。持有者1110将向主管1100发送ULM。由于主管1100相对于其担负的所有实体保持锁定模式,因此主管1100将更新存在于其上的持有者1110的锁定模式,来表明当主管1100接收到来自持有者1110的LRM时持有者1110已经解除该锁定(例如,零)。
4)主管向最后的持有者发送ILH:
当主管1100接收到ULM时,主管1100传送ILH给最后的S锁持有者,在这种情况下该最后的S锁定持有者是持有者1120,以通知该最后的持有者1120存在一个请求者1130需要专用模式(例如X锁定)下的该数据项。
5)最后的持有者向请求者发送TBM:
最后的持有者1120使用请求者的存储单元(方框1130)传送带有TBM的请求数据项。该最后的持有者1120进行一个存储器至存储器的传送以将数据项传送到请求者1130。该X锁定的请求者1130将数据项的接收认为是锁定授权,从而消除了LGM和DCM。而且,由于持有者1120具有一个S锁定且在持有X锁定的同时没有任何其它的持有者可以持有任何其它的锁定,因此一旦传送该数据项至请求者1130,该最后的持有者1120将解除其S锁定。
6)请求者向主管发送LAM:
请求者1130发送LAM给主管1100,表明请求者1130已经假定用于该数据项的X锁定,其中该数据项被转移到请求者1130。
7)主管接收来自先前持有者的LRM:
此时,来自先前持有者1110的LRM到达主管1100。该主管1100认为持有者1110具有一个解除或零的锁定模式。然而,持有者1110发出的LRM表明持有者1110的当前模式是S,这是因为在持有者1110发送LRM时,持有者1110的锁定模式是S。因此,主管1100和持有者1110将通过交换锁定状态消息(例如,LSM)来进行彼此更新。
8)主管向先前持有者发送LSM:
主管1100向具有依照主管1100理解的锁定模式的持有者1110发送LSM。
9)先前的持有者向主管发送LSM:
持有者1110向具有依照持有者1110理解的锁定模式的主管1100发送LSM。然后,对于该最初请求数据项的锁定,主管1100和持有者1110将关于该模式被同步。
硬件综述
图12是一个图解计算机系统1200的方框图,本发明的一个实施例基于此系统可以实施。计算机系统1200包括用于通信信息的总线1202或其他通信机构,以及与总线1202相耦合、用于处理信息的处理器1204。计算机系统1200还包括主存储器1206,像随机访问存储器(RAM)或其他动态存储器,耦合在总线1202上来存储被处理器1204执行的信息和指令。在处理器1204将要执行的指令的进行期间,主存储器1206也可用于存储暂时变量或其他的中间信息。计算机系统1200还包括只读存储器(ROM)1208或其他耦合在总线1202上、用于存储静态信息和处理器1204指令的静态存储器。存储设备1210像磁盘或光盘被设置且耦合在总线1202上以存储信息和指令。
计算机系统1200可通过总线1201耦合在显示器1212上,像阴极射线管(CRT),用于向计算机用户显示信息。输入设备1214,包括字母数字和其他键,耦合到总线1202上,用来向处理器1204交流信息和命令选择。另一种用户输入设备是光标控制1216,像鼠标、跟踪球,或光标方向键,用来向处理器1204交流方向信息和命令选择,并用来控制光标在显示器1212上的移动。这种输入设备一般具有两个坐标轴—第一轴(例如X)和第二轴(例如Y)内的两个自由度,其允许该设备在一个平面内限定位置。
本发明涉及计算机系统1200的使用,以降低与声脉冲信号(ping)相关的总内务操作(overhead)。根据本发明的一个实施例,与声脉冲信号相关的总内务操作被响应于处理器1204的计算机系统1200降低,该处理器执行包含在主存储器1206内的一个或多个序列的一个或多个指令。这些指令可以从另外的计算机可读介质像存储设备1210读入主存储器1206内。包含在主存储器1206内的指令序列的执行促使处理器1204进行下述的处理步骤。在可替代的实施例中,可以采用硬线电路替代或与软件指令相结合来实施本发明。因此,本发明的实施例并不限于硬线电路和软件的任何特定组合。
此处使用的术语“计算机可读介质”指的是可向处理器1204提供指令进行执行的任何介质。这种介质可以采用多种形式,包括但并不限于非易失介质、易失介质和传输介质。非易失介质包括例如光盘或磁盘,例如存储设备1210。易失介质包括动态存储器像主存储器1206。传输介质包括同轴电缆、铜线和光纤,包括含有总线1202的导线。传输介质也可采用声波或光波的形式,像在无线电波和红外数据通信期间产生的那些声波或光波。
常用形式的计算机可读介质包括例如软盘、软磁盘、硬盘、磁带或任何其他的磁介质、CD-ROM、任何其他的光学介质、穿孔卡、纸带、任何其他具有孔形状的物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其他的存储器芯片或盒式磁盘、如下所述的载波、或者任何其他计算机可读取的介质。
各种形式的计算机可读介质可用于向处理器1204携带一个或多个序列的一个或多个指令来进行执行。例如,这些指令可以最初在远端计算机的磁盘上进行。远端的计算机可将这些指令下载到其动态存储器内,然后使用调制解调器通过电话线来发送这些指令。当地计算机系统1200的调制解调器接收电话线上的数据,并采用红外发射器将数据转换成红外信号。红外探测器能够接收到在该红外信号中携带的数据,适宜的电路将该数据置于总线1202上。总线1202将数据携带至主存储器1206,处理器1204从该主存储器1206得到这些指令并执行这些指令。主存储器1206收到的指令可以在处理器1204执行之前或之后随机地存储在存储设备1210上。
计算机系统1200属于一种共享磁盘系统,其中对于计算机系统1200和一个或多个其他的CPU(例如CPU 1251),位于一个或多个存储设备(例如磁盘驱动器1255)上的数据都是可访问的。在图示的系统中,借助于一种系统局域网1253可提供对磁盘驱动器1255的共享访问。但是,各种结构都可以替代地用来提供共享访问。
计算机系统1200还包括耦合在总线1202上的通信接口1218。通信接口1218提供一种与网络链路1220耦合的双向数据通信,该网络链路1220连接在局域网1222上。例如,通信接口1218可以是一个综合业务数字网(ISDN)卡或一个调制解调器,以提供与相应类似的电话线的数据通信连接。作为另一个实例,通信接口1218可以是一个局域网(LAN)卡,以提供一种与兼容LAN的数据通信连接。无线线路也可以实施。在任何的这种实施中,通信接口1218发送并接收电、电磁或光信号,这些信号携带有表示各种类型信息的数字数据流。
网络链路1220一般通过一个或多个网络来提供与其他数据设备的数据通信。例如,网络链路1220可以通过局域网1222提供与主机1224的连接,或者通过互联网服务供应商(ISP)1226的操作与数据设备相连接。ISP 1226反过来又经由现在通常称作“互联网”的全球分组数据通信网络1228来提供数据通信服务。局域网1222和互联网1228两者都采用携带数字数据流的电、电磁或光信号。通过各种网络的信号和网络链路1220上及穿过通信接口1218的信号向/从计算机系统1200携带数字数据,这些信号是传输信息的载波的示范性例子。
计算机系统1200能够借助于网络、网络链路1220及通信接口1218发送包括程序代码的信息并接收包括程序代码的数据。在互联网的例子中,服务器1230可以借助于互联网1228、ISP 1226、局域网1222和通信端口1218来传输用于应用程序的请求代码。
当接收到代码时,该接收到的代码可以被处理器1204执行和/或存储在存储设备1210或其他的非易失存储器内以用于后面的执行。这样,计算机系统1200可以获得载波形式的应用代码。
在前述的说明中,已经参考具体的实施方式描述了本发明。但是,很显然,可以在不脱离本发明的更宽精神和范围内对本发明作出各种改进和改变。因此,这些说明和附图应当是示例性而不是限制性的。
Claims (14)
1.一种用于管理对资源访问的方法,所述方法包括计算机实施的以下步骤:
从请求者向所述资源的主管发送用于所述资源锁定模式的锁定模式请求;
在所述请求者处接收来自所述资源的持有者的所述资源;
以及
存取所述资源,以将另外要求所述锁定模式请求已经被授予的方式进行,而不需等待接收来自所述主管的快速锁定模式授权。
2.根据权利要求1所述的方法,还包括计算机实施的以下步骤:
检测在所述请求者处接收所述资源的步骤是否将发生;以及
如果所述请求者确实接收到所述资源,则从所述请求者发送一条锁定假定消息到所述主管,以通知所述主管:所述请求者已经假定关于所述资源的所述锁定模式。
3.一种用于管理对资源访问的方法,所述方法包括计算机实施的以下步骤:
在持有者处接收一条请求者需要所述资源的通知锁定持有者消息,其中所述持有者当前持有所述资源以及所述资源的第一锁定模式;
响应于收到所述通知锁定持有者消息,将所述资源传送至所述请求者,而不将一状态消息发送至所述资源的主管,其中所述状态消息是一条下向转换消息或一条解除锁定消息;以及
更新由所述持有者保持的一锁定模式记录,以表明所述持有者已经从所述第一锁定模式下向转换为所述资源的第二锁定模式。
4.根据权利要求3所述的方法,还包括计算机实施的以下步骤:
向所述主管发送一条更新锁定消息,其中所述更新锁定消息表明所述资源的所述第二锁定模式。
5.根据权利要求3所述的方法,还包括计算机实施的以下步骤:
在所述持有者处接收一条来自发送者的消息;其中所述消息包括所述资源的第三锁定模式;
检测所述第一锁定模式与所述第三锁定模式不匹配;以及
向所述发送者发送一条锁定状态消息;其中所述锁定状态消息包括所述第一锁定模式。
6.根据权利要求3所述的方法,还包括计算机实施的以下步骤:
在所述持有者处接收一单批通知锁定持有者消息,所述消息包含所述资源传送至多个请求者所需要的所有信息;以及
将所述资源传送至所述多个请求者。
7.根据权利要求3所述的方法,还包括计算机实施的以下步骤:
将来自所述持有者的一条锁定访问消息发送至一主管。
8.一种用于管理对资源访问的方法,所述方法包括计算机实施的以下步骤:
在一主管处接收一条请求消息,所述请求消息表明一请求者需要多个资源中的一特定资源,其中所述主管保持对应于所述多个资源的多个锁定模式记录;
从所述主管向一持有者发送一条通知锁定持有者消息,以向所述持有者表明所述请求者需要所述特定资源;
从所述请求者接收一条锁定访问消息,其中所述锁定访问消息表明所述请求者已经假定关于所述特定资源的锁定模式;以及
响应于收到所述锁定访问消息,进行对所述多个锁定模式记录中一特定锁定模式记录的更新;其中所述更新表明所述请求者已经假定所述特定资源的锁定模式。
9.根据权利要求8所述的方法,其中响应于收到多个锁定模式记录响应于收到所述锁定访问消息,所述计算机实施的对所述多个锁定模式记录中一特定锁定模式记录进行更新的步骤先于从关于所述特定资源的所述持有者收到任何状态消息之前进行;
其中所述状态消息是一条下向转换消息或一条解除锁定消息。
10.根据权利要求8所述的方法,其中响应于收到多个锁定模式记录响应于收到所述锁定访问消息,进行所述计算机实施的对所述多个锁定模式记录中一特定锁定模式记录的更新,而不从关于所述特定资源的所述持有者收到状态消息;
其中所述状态消息是一条下向转换消息或一条解除锁定消息。
11.根据权利要求8所述的方法,还包括计算机实施的以下步骤:
在所述主管处接收多个请求消息,所述请求消息表明多个请求者需要所述特定资源;以及
从所述主管发送所述通知锁定持有者消息给所述持有者,其中所述通知锁定持有者消息包含来自所述多个请求消息的所有信息,所述多个请求消息对于所述持有者将所述特定资源传送至所述多个请求者是必要的。
12.根据权利要求8所述的方法,还包括计算机实施的以下步骤:
在所述主管处接收来自一发送者的消息;其中所述消息包括所述特定资源的第二锁定模式;
检测所述锁定模式与所述第二锁定模式不匹配;以及
向所述发送者发送一条锁定状态消息;其中所述锁定状态消息包括所述锁定模式。
13.根据权利要求8所述的方法,还包括计算机实施的以下步骤:
在所述主管处接收第二请求消息;其中所述请求消息和所述第二请求消息都包含专用锁定模式下对所述资源的请求;以及
排列所述第二请求消息直到所述主管收到来自所述请求者的所述锁定访问消息。
14.根据权利要求8所述的方法,还包括计算机实施的以下步骤:
从多个持有者中指定一个持有者,其中所述多个持有者都具有对所述特定资源各自的锁定模式;
向除所述一个持有者外的所述多个持有者发送多个广播通知锁定持有者信息,表明所述请求者需要所述特定资源;
从除所述一个持有者外的所述多个持有者接收多个更新锁定消息;其中所述多个更新锁定消息表明所述多个持有者各自的锁定模式;
其中,在从所述主管向所述持有者发送所述通知锁定持有者消息的步骤中,所述通知锁定持有者消息从所述主管被发送到所述一个持有者,以向所述一个持有者表明所述请求者需要所述特定资源;以及
其中,在进行所述多个锁定模式记录中一个特定锁定模式更新的步骤中,所述更新响应于收到所述锁定访问消息而不需收到一条状态消息来进行;其中所述状态消息是一条下向转换消息或一条解除锁定消息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/871,853 US7107319B2 (en) | 2001-05-31 | 2001-05-31 | Method and apparatus for reducing latency and message traffic during data and lock transfer in a multi-node system |
US09/871,853 | 2001-05-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1513139A CN1513139A (zh) | 2004-07-14 |
CN1258142C true CN1258142C (zh) | 2006-05-31 |
Family
ID=25358293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN02811032.3A Expired - Lifetime CN1258142C (zh) | 2001-05-31 | 2002-05-08 | 用于管理对资源访问的方法 |
Country Status (10)
Country | Link |
---|---|
US (1) | US7107319B2 (zh) |
EP (1) | EP1390847B1 (zh) |
JP (1) | JP4098233B2 (zh) |
CN (1) | CN1258142C (zh) |
AT (1) | ATE399341T1 (zh) |
AU (1) | AU2002308664B2 (zh) |
CA (1) | CA2447973C (zh) |
DE (1) | DE60227251D1 (zh) |
HK (1) | HK1058712A1 (zh) |
WO (1) | WO2002099658A2 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7076510B2 (en) * | 2001-07-12 | 2006-07-11 | Brown William P | Software raid methods and apparatuses including server usage based write delegation |
US7266722B2 (en) * | 2001-09-21 | 2007-09-04 | Hewlett-Packard Development Company, L.P. | System and method for efficient lock recovery |
US8495131B2 (en) * | 2002-10-08 | 2013-07-23 | International Business Machines Corporation | Method, system, and program for managing locks enabling access to a shared resource |
US7496574B2 (en) * | 2003-05-01 | 2009-02-24 | International Business Machines Corporation | Managing locks and transactions |
US7289992B2 (en) * | 2003-05-01 | 2007-10-30 | International Business Machines Corporation | Method, system, and program for lock and transaction management |
US7660829B2 (en) * | 2003-05-30 | 2010-02-09 | Microsoft Corporation | System and method for delegating file system operations |
US7647595B2 (en) * | 2003-10-29 | 2010-01-12 | Oracle International Corporation | Efficient event notification in clustered computing environments |
US20050155011A1 (en) * | 2004-01-12 | 2005-07-14 | Stephan Heik | Method and system for restricting access in a distributed job environment |
US7627573B2 (en) * | 2004-03-27 | 2009-12-01 | Cisco Technology, Inc. | Bypassing native storage operations by communicating protected data within locking messages using a lock manager independent of the storage mechanism |
US7403945B2 (en) * | 2004-11-01 | 2008-07-22 | Sybase, Inc. | Distributed database system providing data and space management methodology |
US20060136508A1 (en) * | 2004-12-16 | 2006-06-22 | Sam Idicula | Techniques for providing locks for file operations in a database management system |
US7716260B2 (en) * | 2004-12-16 | 2010-05-11 | Oracle International Corporation | Techniques for transaction semantics for a database server performing file operations |
US7548918B2 (en) * | 2004-12-16 | 2009-06-16 | Oracle International Corporation | Techniques for maintaining consistency for different requestors of files in a database management system |
US7627574B2 (en) * | 2004-12-16 | 2009-12-01 | Oracle International Corporation | Infrastructure for performing file operations by a database server |
US7551617B2 (en) | 2005-02-08 | 2009-06-23 | Cisco Technology, Inc. | Multi-threaded packet processing architecture with global packet memory, packet recirculation, and coprocessor |
US7809675B2 (en) * | 2005-06-29 | 2010-10-05 | Oracle International Corporation | Sharing state information among a plurality of file operation servers |
JP4784928B2 (ja) * | 2005-08-24 | 2011-10-05 | 株式会社リコー | 情報処理装置、情報処理システム、情報処理方法、及び、情報処理プログラムとその記録媒体 |
GB0518516D0 (en) * | 2005-09-10 | 2005-10-19 | Ibm | Managing a resource lock |
US7739426B1 (en) | 2005-10-31 | 2010-06-15 | Cisco Technology, Inc. | Descriptor transfer logic |
US7610304B2 (en) * | 2005-12-05 | 2009-10-27 | Oracle International Corporation | Techniques for performing file operations involving a link at a database management system |
US20090158298A1 (en) * | 2007-12-12 | 2009-06-18 | Abhishek Saxena | Database system and eventing infrastructure |
JP2009199344A (ja) * | 2008-02-21 | 2009-09-03 | Toshiba Corp | データ処理装置 |
US8543773B2 (en) * | 2008-08-25 | 2013-09-24 | International Business Machines Corporation | Distributed shared memory |
CN113971151B (zh) * | 2021-10-28 | 2024-07-26 | 上海兆芯集成电路股份有限公司 | 串行传输控制器及其数据传输方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1991003024A1 (en) | 1989-08-14 | 1991-03-07 | Microsoft Corporation | Method and system for opportunistic locking in a networked computer system |
US5285528A (en) * | 1991-02-22 | 1994-02-08 | International Business Machines Corporation | Data structures and algorithms for managing lock states of addressable element ranges |
JP2533266B2 (ja) * | 1991-06-14 | 1996-09-11 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 共用デ―タシステムにおけるデ―タ資源のロッキング方法及びシステム間のデ―タロック管理方法 |
EP0569605A1 (de) | 1992-05-06 | 1993-11-18 | International Business Machines Corporation | Verfahren zur Zugriffsverwaltung und -steuerung mehrerer Rechner auf gemeinsame Daten |
US5596754A (en) | 1992-10-29 | 1997-01-21 | Digital Equipment Corporation | Method for performing private lock management |
US5454108A (en) * | 1994-01-26 | 1995-09-26 | International Business Machines Corporation | Distributed lock manager using a passive, state-full control-server |
US6353836B1 (en) * | 1998-02-13 | 2002-03-05 | Oracle Corporation | Method and apparatus for transferring data from the cache of one node to the cache of another node |
US6405274B1 (en) * | 1998-12-30 | 2002-06-11 | Oracle Corporation | Anticipatory lock mode conversions in a lock management system |
US6453404B1 (en) * | 1999-05-27 | 2002-09-17 | Microsoft Corporation | Distributed data cache with memory allocation model |
US7389293B2 (en) * | 2000-12-20 | 2008-06-17 | Oracle International Corporation | Remastering for asymmetric clusters in high-load scenarios |
US6587921B2 (en) * | 2001-05-07 | 2003-07-01 | International Business Machines Corporation | Method and apparatus for cache synchronization in a clustered environment |
US7376744B2 (en) * | 2003-05-09 | 2008-05-20 | Oracle International Corporation | Using local locks for global synchronization in multi-node systems |
-
2001
- 2001-05-31 US US09/871,853 patent/US7107319B2/en not_active Expired - Lifetime
-
2002
- 2002-05-08 CN CN02811032.3A patent/CN1258142C/zh not_active Expired - Lifetime
- 2002-05-08 AT AT02776557T patent/ATE399341T1/de not_active IP Right Cessation
- 2002-05-08 CA CA2447973A patent/CA2447973C/en not_active Expired - Lifetime
- 2002-05-08 AU AU2002308664A patent/AU2002308664B2/en not_active Expired
- 2002-05-08 WO PCT/US2002/014710 patent/WO2002099658A2/en active IP Right Grant
- 2002-05-08 EP EP02776557A patent/EP1390847B1/en not_active Expired - Lifetime
- 2002-05-08 JP JP2003502703A patent/JP4098233B2/ja not_active Expired - Lifetime
- 2002-05-08 DE DE60227251T patent/DE60227251D1/de not_active Expired - Lifetime
-
2004
- 2004-02-26 HK HK04101379A patent/HK1058712A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
ATE399341T1 (de) | 2008-07-15 |
US20020184216A1 (en) | 2002-12-05 |
US7107319B2 (en) | 2006-09-12 |
EP1390847A2 (en) | 2004-02-25 |
JP4098233B2 (ja) | 2008-06-11 |
EP1390847B1 (en) | 2008-06-25 |
AU2002308664B2 (en) | 2007-06-28 |
CA2447973C (en) | 2010-04-13 |
DE60227251D1 (de) | 2008-08-07 |
WO2002099658A3 (en) | 2003-04-24 |
CA2447973A1 (en) | 2002-12-12 |
HK1058712A1 (en) | 2004-05-28 |
JP2004529443A (ja) | 2004-09-24 |
CN1513139A (zh) | 2004-07-14 |
WO2002099658A2 (en) | 2002-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1258142C (zh) | 用于管理对资源访问的方法 | |
CN1311365C (zh) | 分布式共享磁盘系统中的磁盘写操作 | |
CN1242593C (zh) | 源地址选择系统、路由器装置、通信节点和源地址选择方法 | |
CN1178436C (zh) | 电子消息传递系统 | |
CN1290041C (zh) | 用于改进文件管理的方法和装置 | |
CN1260090A (zh) | 因特网上的数据高速缓冲存储器 | |
CN1679003A (zh) | 启用远程直接存储器存取的网络接口控制器切换和切回支持 | |
CN1486094A (zh) | 用于采用负载均衡的移动通信的方法和装置 | |
CN1503526A (zh) | 地址转换装置和地址转换规则的管理方法 | |
CN1534514A (zh) | 适用于位置感知的架构和系统 | |
CN1204504C (zh) | 文件传送系统、中继设备、和文件传送方法 | |
CN1174319C (zh) | 数据结构管理装置、数据结构管理系统和方法 | |
CN1640089A (zh) | 用于NGIO/InfiniBandTM应用的远程密钥验证的方法和机制 | |
CN1925462A (zh) | 高速缓存系统 | |
CN101064641A (zh) | 对Web服务资源的基于属性的索引和/或查询方法及系统 | |
CN1719831A (zh) | 基于集群路由器结构的高可用分布式边界网关协议系统 | |
CN101061476A (zh) | 在线初始镜像同步及存储区域网络中的镜像同步验证 | |
CN1443323A (zh) | 控制集群计算环境的系统通信量的方法、系统和程序产品 | |
CN1698337A (zh) | 利用卸载单元处理tcp连接数据 | |
CN101064878A (zh) | 一种实现内容过滤的移动终端、系统、网络实体及方法 | |
CN1292531A (zh) | 信息管理系统和方法 | |
CN1620783A (zh) | 用于在通信环上同时管理多个令牌的方法和系统 | |
CN1732664A (zh) | iSCSI的服务质量 | |
CN1119001C (zh) | 数据发送装置及其方法 | |
CN1184786C (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 | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20060531 |