CN103744719B - 锁管理方法及系统、锁管理系统的配置方法及装置 - Google Patents
锁管理方法及系统、锁管理系统的配置方法及装置 Download PDFInfo
- Publication number
- CN103744719B CN103744719B CN201310746990.9A CN201310746990A CN103744719B CN 103744719 B CN103744719 B CN 103744719B CN 201310746990 A CN201310746990 A CN 201310746990A CN 103744719 B CN103744719 B CN 103744719B
- Authority
- CN
- China
- Prior art keywords
- lock
- manager
- node
- business
- lock manager
- 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
Classifications
-
- 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
- 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
-
- 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/466—Transaction processing
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施例公开了一种锁管理方法及系统、锁管理系统的配置方法及装置,涉及计算机领域,能够减少锁访问延迟,提高系统运行性能。具体方案为:根据分布式系统包含的业务执行节点的数量、所有业务执行节点上系统实例的数量以及处理进程的数量、及各个业务执行节点到分布式系统的中心控制节点的访问延迟,为每个业务执行节点设置对应的锁管理系统的层级;分别根据每个业务执行节点对应的锁管理系统的层级为每个业务执行节点至少分配一个锁管理器;为每个锁管理器配置锁级别上下文,其中锁级别上下文用于确定每个锁管理器相邻的锁管理器。本发明用于分布式系统的锁管理系统。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种锁管理方法及系统、锁管理系统的配置方法及装置。
背景技术
分布式系统中,数据被分布在多个业务执行节点中的进程共享,进程要对任意资源执行操作,都必须事先获得一个锁。不同进程间并发访问的控制由全局锁管理器来实现,全局锁管理器中记录着各个进程访问资源和持有锁的情况,并维护锁等待队列。当全局锁管理器收到锁请求时,根据锁类型、锁兼容性及锁持有状态来决定是否满足该锁请求。
现有的锁管理系统采用全局、节点锁管理器协同技术,在业务执行节点中每个系统实例上都有节点锁管理器,每个系统实例管理的进程共享锁管理器,系统实例对应的进程有了锁请求后,先发送该锁请求到节点锁管理器,如果节点锁管理器能处理该锁请求,则节点锁管理器返回锁给请求锁的进程;如果节点锁管理器无法处理该锁请求,节点锁管理器将锁请求发送到全局锁管理器,由全局锁管理器处理。
在实现上述锁管理系统的过程中,现有技术中的锁管理系统在程序开发时便决定了锁管理系统的层级,在系统出现大量锁访问请求时,锁访问延迟较高,系统运行性能无法得到保证。
发明内容
本发明的实施例提供一种锁管理方法及系统、锁管理系统的配置方法及装置,能够减少锁访问延迟,提高系统运行性能。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种分布式系统中的锁管理系统的配置方法,包括:
根据所述分布式系统包含的业务执行节点的数量、所有业务执行节点上系统实例的数量以及处理进程的数量、及各个业务执行节点到所述分布式系统的中心控制节点的访问延迟,为每个业务执行节点设置对应的锁管理系统的层级;
分别根据每个业务执行节点对应的所述锁管理系统的层级为每个业务执行节点至少分配一个锁管理器;
为所述每个锁管理器配置锁级别上下文,其中锁级别上下文用于确定所述每个锁管理器相邻的锁管理器。
结合第一方面,在第一种可能的实现方式中,所述分别根据每个业务执行节点对应的所述锁管理系统的层级为每个所述业务执行节点至少分配一个锁管理器,具体包括:
当为业务执行节点设置的锁管理系统为两个层级时,为该业务执行节点分配一个节点锁管理器及一个全局锁管理器,所述节点锁管理器的上级的锁管理器为全局锁管理器;
当为业务执行节点设置的锁管理系统的层级大于二层时,为该业务执行节点分配一个节点锁管理器、一个全局锁管理器及至少一个设置于所述节点锁管理器和全局锁管理器之间的局部锁管理器,并根据所述锁级别上下文确定每个局部锁管理器上级的锁管理器和下级的锁管理器,其中位于下级的锁管理器向位于上级的锁管理器请求锁。
结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,根据每个业务执行节点对应的所述锁管理系统的层级为每个所述业务执行节点至少分配一个锁管理器后,还包括:
当所述全局锁管理器对应的业务执行节点与至少一个系统实例所在业务执行节点不同时,为所述至少一个系统实例对应的业务执行节点设置一个层级的锁管理器。
结合第一方面或第一方面任意一种可能的实现方式,在第三种可能的实现方式中,所述锁管理上下文包括:锁层级数量、锁管理器所在层级、上级的锁管理器、下级的锁管理器、锁管理器负责的业务执行节点。
第二方面,提供一种锁管理方法,包括:
通过为业务执行节点分配的节点锁管理器接收所述业务执行节点发送的锁请求,根据所述节点锁管理器持有锁的状态向上级的锁管理器继续发送所述锁请求,或者返回所述锁请求对应的锁给所述业务执行节点;
通过所述节点锁管理器的上级的锁管理器接收所述锁请求,根据持有锁的状态向更上级的锁管理器继续发送所述锁请求,或者返回所述锁请求对应的锁给所述节点锁管理器;
按照设置的锁管理系统的层级,所述节点锁管理器以上各级锁管理器依次按照本级持有锁的状态对所述锁请求进行处理,直到所述锁请求发送至所述全局锁管理器,通过所述全局锁管理器返回所述锁请求对应的锁给所述全局锁管理器的下级的锁管理器直到返回所述锁请求对应的锁至所述业务执行节点。
结合第二方面,在第一种可能的实现方式中,所述根据所述节点锁管理器持有锁的状态向上级的锁管理器继续发送所述锁请求,或者返回所述锁请求对应的锁给所述业务执行节点,具体包括:
当所述节点锁管理器持有所述锁请求对应的锁时,通过所述节点锁管理器返回所述锁请求对应的锁至所述业务执行节点;
当所述节点锁管理器未持有所述锁请求对应的锁时,通过所述节点锁管理器向所述节点锁管理器的上级的锁管理器发送所述锁请求。
结合第二方面,在第二种可能的实现方式中,所述根据持有锁的状态向更上级的锁管理器继续发送所述锁请求,或者返回所述锁请求对应的锁给所述节点锁管理器,具体包括:
当所述节点锁管理器的上级的锁管理器持有所述锁请求对应的锁时,通过所述节点锁管理器的上级的锁管理器返回所述锁请求对应的锁至所述节点锁管理器;
当所述节点锁管理器的上级的锁管理器未持有所述锁请求对应的锁时,通过所述节点锁管理器的上级的锁管理器向更上级的锁管理器发送所述锁请求。
结合第二方面、第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:
通过所述锁管理器将需要发送给上级的锁管理器的预设数量的锁请求合并为同一个锁请求发送至所述锁管理器的上级的锁管理器。
结合第二方面、第一种或第二种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:
返回所述锁请求对应的锁时,通过所述锁管理器设置所述锁请求对应的锁的最大持有时间,当所述锁管理器的下级的锁管理器持有所述锁请求对应的锁的时间大于或等于所述最大持有时间时,通过所述锁管理器发送强制失效请求至所述锁管理器的下级的锁管理器,以便于所述锁管理器的下级的锁管理器在接收所述强制失效请求后,释放所述锁请求对应的锁。
第三方面,提供一种锁管理系统的配置装置,应用于分布式系统,包括:获取单元、分配单元及配置单元;
所述获取单元用于根据所述分布式系统包含的业务执行节点的数量、所有业务执行节点上系统实例的数量以及处理进程的数量、及各个业务执行节点到所述分布式系统的中心控制节点的访问延迟,为每个业务执行节点设置对应的锁管理系统的层级;
所述分配单元用于分别根据所述获取单元获取的每个业务执行节点对应的锁管理系统的层级为每个所述业务执行节点至少分配一个锁管理器;
所述配置单元用于为所述分配单元分配的每个锁管理器配置锁级别上下文,其中锁级别上下文用于确定所述每个锁管理器相邻的锁管理器。
结合第三方面,在第一种可能的实现方式中:
当为业务执行节点设置的锁管理器为两个层级时,所述分配单元具体用于为该业务执行节点分配一个节点锁管理器及一个全局锁管理器,所述节点锁管理器的上级的锁管理器为全局锁管理器;
或者;
当为业务执行节点设置的锁管理系统的层级大于二层时,所述分配单元具体用于为该业务执行节点分配一个节点锁管理器、一个全局锁管理器及至少一个设置于所述节点锁管理器和全局锁管理器之间的局部锁管理器,并根据所述锁级别上下文确定每个局部锁管理器上级的锁管理器和下级的锁管理器,其中位于下级的锁管理器向位于上级的锁管理器请求锁。
结合第三方面第一种可能的实现方式,在第二种可能的实现方式中,
所述分配单元还用于当所述全局锁管理器对应的业务执行节点与至少一个系统实例所在业务执行节点不同时,为所述至少一个系统实例对应的业务执行节点设置一个层级的锁管理器。
结合第三方面或第三方面任一一种可能的实现方式,在第三种可能的实现方式中,
所述锁管理上下文包括:锁层级数量、锁管理器所在层级、上级的锁管理器、下级的锁管理器、锁管理器负责的业务执行节点。
第四方面,提供一种锁管理系统,包括至少一个节点锁管理器、局部锁管理器及一个全局锁管理器,其中,每个业务执行节点对应设置的锁管理系统的层级数量的锁管理器;
所述节点锁管理器用于接收业务执行节点发送的锁请求,根据持有锁的状态向上级的锁管理器继续发送所述锁请求,或者返回所述锁请求对应的锁给所述业务执行节点;
所述局部锁管理器用于接收所述局部锁管理器的下级的锁管理器发送的锁请求,根据持有锁的状态向所述局部锁管理器的上级的锁管理器继续发送所述锁请求,或者返回所述锁请求对应的锁给所述局部锁管理器的下级的锁管理器;
所述全局锁管理器用于接收所述全局锁管理器的下级的锁管理器发送的锁请求,返回所述锁请求对应的锁给所述全局锁管理器的下级的锁管理器。
结合第四方面,在第一种可能的实现方式中:
当所述节点锁管理器持有所述锁请求对应的锁时,所述节点锁管理器具体用于返回所述锁请求对应的锁至所述业务执行节点;
当所述节点锁管理器未持有所述锁请求对应的锁时,所述节点锁管理器具体用于向所述节点锁管理器的上级的锁管理器发送所述锁请求。
结合第四方面,在第二种可能的实现方式中:
当所述局部锁管理器持有所述锁请求对应的锁时,所述局部锁管理器用于返回所述锁请求对应的锁至所述局部锁管理器的下级的锁管理器;
当所述局部锁管理器未持有所述锁请求对应的锁时,所述局部锁管理器用于向所述局部锁管理器的上级的锁管理器发送所述锁请求。
结合第四方面、第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述锁管理器还用于:
将需要发送给上级的锁管理器的预设数量的锁请求合并为同一个锁请求发送至所述锁管理器的上级的锁管理器。
结合第四方面、第一种或第二种可能的实现方式,在第四种可能的实现方式中,所述锁管理器还用于:
在返回所述锁请求对应的锁时,设置所述锁请求对应的锁的最大持有时间,当所述锁管理器的下级的锁管理器持有所述锁请求对应的锁的时间大于等于所述最大持有时间时,所述锁管理器发送强制失效请求至所述锁管理器的下级的锁管理器,以便于所述锁管理器的下级的锁管理器在接收所述强制失效请求后,释放所述锁请求对应的锁。
本发明的实施例提供的锁管理方法及系统、锁管理系统的配置方法及装置,根据业务执行节点的数量、所有业务执行节点上系统实例的数量以及处理进程的数量、及各个业务执行节点到所述分布式系统的中心控制节点的访问延迟为每个业务执行节点设置对应的锁管理系统的层级,并通过配置后的置锁管理系统进行锁管理,能够减少锁访问延迟,提高系统运行性能。
附图说明
为了更清楚地说明本发明的实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为本发明的实施例提供的一种锁管理系统的配置方法的流程示意图;
图2为本发明的实施例提供的一种锁管理系统的配置装置的结构示意图;
图3为本发明的另一实施例提供的一种锁管理方法的流程示意图;
图4为本发明的另一实施例提供的一种锁管理系统的结构示意图;
图5为本发明的另一实施例提供的另一种锁管理系统的结构示意图;
图6为本发明的又一实施例提供的一种锁管理系统的配置装置的结构示意图;
图7为本发明的又一实施例提供的一种锁管理系统的结构示意图。
具体实施方式
下面将结合本发明的实施例中的附图,对本发明的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
本发明的实施例提供一种锁管理方法及系统、锁管理系统的配置方法及装置,能够根据处理进程的数量配置锁管理系统,对处理进程的锁进行管理。本发明应用于分布式系统,分布式系统包括至少两个业务执行节点,一个中心控制节点,每个所述业务执行节点上通过至少一个处理进程运行对应的系统实例,同时通过中心控制节点来进行资源的共享与控制,当然这里的业务执行节点可以为具体的物理节点,业务执行节点上运行的系统实例可以为系统软件或应用软件,具体的操作系统或应用软件均通过业务执行节点内的若干个处理进程支撑运行,例如,在数据中心中,业务执行节点部署在标准化机柜中,不同机柜内业务执行节点通信需要通过机柜内置交换线路、分支交换设备、主干交换设备完成,而数据中心中运行的系统程序或应用程序通过系统实例的形式体现,每个系统实例通过若干个处理进程运行,具体的,本发明的实施例提供一种分布式系统中的锁管理系统的配置方法,参照图1所示,包括以下步骤:
101、锁管理系统的配置装置根据分布式系统包含的业务执行节点的数量、所有业务执行节点上系统实例的数量以及处理进程的数量、及各个业务执行节点到中心控制节点的访问延迟,为每个业务执行节点设置对应的锁管理系统的层级。
其中,每个业务执行节点上系统实例对应的所有处理进程的数量是已知的,因此,锁管理系统的配置装置获取系统实例的处理进程后,可以根据系统实例的数量获取所有的系统实例对应的处理进程,在现有技术中锁管理系统针对每个业务执行节点的锁管理器层级是预先人工配置的,因此在处理进程发生变化时不能改变业务执行节点对应的锁管理系统的层级,在锁请求访问量加大的情况下,锁访问延迟会相当严重,这里业务执行节点对应的锁管理系统的层级指的是业务执行节点对应的锁管理器的数量。
根据实际情况而言,锁管理系统的层级对不同的业务执行节点而言是不一定相同的,因此,锁管理系统的层级只能是对一个业务执行节点而言的,在同一个业务执行节点的上处理进程对应相同的锁管理系统的层级。此时,可以根据业务执行节点的数量、系统实例的数量、处理进程的数量、及各个业务执行节点到中心控制节点的访问延迟,分配合理的锁管理系统的层级,以降低锁访问延迟。
具体的分配的锁管理系统的层级可以参考每一级锁管理器与相邻锁管理器之间的延迟差值,当延迟差值大于预设的数量级时,可在该两个锁管理器之间增加一个层级的锁管理器。
102、锁管理系统的配置装置分别根据每个业务执行节点对应的所述锁管理系统的层级为每个所述业务执行节点至少分配一个锁管理器。
具体的,当步骤101中获取的锁管理系统的层级为1时,则为业务执行节点分配的锁管理器为全局锁管理器,即业务执行节点的所有处理进程只接收全局锁管理器的管理,业务执行节点只向全局锁管理器请求锁。
当步骤101中获取的锁管理系统的层级为2时,则为业务执行节点分配一个节点锁管理器和一个全局锁管理器,全局锁管理器不再对业务执行节点进行直接管理,而是直接管理节点锁管理器,节点锁管理器对业务执行节点进行直接管理,业务执行节点只向节点锁管理器请求锁,在节点锁管理器不具备请求的锁时,向全局锁管理器请求锁。
当步骤101中获取的锁管理系统的层级大于2时,则为业务执行节点分配一个节点锁管理器和一个全局锁管理器及至少一个该节点锁管理器和全局锁管理器之间的局部锁管理器(节点锁管理器的个数根据的锁管理系统的层级来定,具体的,节点锁管理器的个数等于锁管理系统的层级减2),全局锁管理器直接管理局部锁管理器,局部锁管理器直接管理节点锁管理器,节点锁管理器直接管理业务执行节点上的处理进程。
可选的,步骤102后还包括:当所述全局锁管理器对应的业务执行节点与至少一个系统实例所在业务执行节点不同时,为所述至少一个系统实例对应的业务执行节点设置一个层级的锁管理器,其中所述至少一个系统实例运行在相同的业务执行节点上。该过程是为锁管理器系统增加锁管理器的过程,即当分布式系统在新的业务执行节点上增加新的系统实例,或者原有系统实例需要增加新处理进程在新的业务执行节点上运行时,为锁管理系统增加新的层级的锁管理器,增加的锁管理器可以包括新增的节点锁管理和局部锁管理器,具体需要新增的局部锁管理器的层级数量可以根据步骤101的方法确定。
明显以上,全局锁管理器、节点锁管理器和局部锁管理均为锁管理的一种只是为了表达清楚其层级关系定义的名称,因此在本发明中锁管理可以指代全局锁管理器、节点锁管理器和局部锁管理中的任意一个,其中所有锁管理器可以通过一个锁管理器服务器实现。
103、锁管理系统的配置装置为每个锁管理器配置锁级别上下文。
具体的,锁级别上下文中应当包括锁层级数量、锁管理器所在层级、上级的锁管理器、下级的锁管理器、锁负责物理节点;还可以包括:锁缓存大小、锁上交时间、锁请求延迟和锁批量处理数量等信息。
其中,其中锁级别上下文用于确定所述每个锁管理器相邻的锁管理器,锁级别上下文至少用于确定每个锁管理器的上级的锁管理器。
例如在步骤102中当锁管理系统的层级大于3时,所述节点锁管理器和全局锁管理器之间设置至少一个局部锁管理器,锁级别上下文确定每个局部锁管理器上级的锁管理器和下级的锁管理器,其中位于下级的锁管理器向位于上级的锁管理器请求锁。
具体的,锁管理系统的配置装置根据锁级别上下文中的锁层级数量、锁管理器所在层级、上级的锁管理器、下级的锁管理器、锁负责节点等信息,确定每一个锁管理器的上级的锁管理器和下级的锁管理器。
以上每个业务执行节点对应的锁管理器系统的层级的设置是根据分布式系统包含的业务执行节点的数量、所有业务执行节点上系统实例的数量以及处理进程的数量、及各个业务执行节点到中心控制节点的访问延迟进行的。在实际的数据访问过程中锁访问处理过程是存在时延的,对于每一个业务执行节点上锁访问延迟时间是由该业务执行节点上所有系统实例包含的处理进程的数量以及业务执行节点对应的锁管理系统的层级决定的,以业务执行节点上包含一个系统实例,若该系统实例包含N个处理进程,且该业务执行节点直接通过全局锁管理器请求锁,则处理进程从全局锁管理器获取锁的延迟为t;而该业务执行节点设置有节点锁管理器时,即业务执行节点对应的锁管理系统的层级为2时,处理进程从节点锁管理器获取锁的延迟为0.1t;当N个处理进程同时请求同一个锁时,节省延迟开销百分比为(90-100/N)%,当N为10时,理想情况下设置节点锁管理器可是锁访问处理过程时间延时降低80%,以上实例仅是一种可实施的方案,当然结合实际情况处理进程的数量以及延时程度降低的效果可能不相同,但是为业务执行节点设置全局锁管理器之外的其他锁管理器时的确能够降低锁请求处理的时延,因此在设置业务执行节点对应的锁管理系统的层级时,可以综合计算分布式系统中所有业务执行节点的数量,所有业务执行节点的系统实例及处理进程的数量,并根据这些数据构建锁管理系统的模型,通过计算各个业务执行节点请求锁的时间延迟,获取一个所有业务执行节点的锁访问处理时间延迟均在预设范围内的模型,即使得该锁管理系统的模型中每个业务执行节点上锁访问处理过程时间延时均为最低或者均低于设定的时延阈值,因此业务执行节点到中心控制节点的访问延迟较大时,为对应的业务执行节点设置一定层级数量的锁管理器也就相应的可以降低该业务执行节点的锁访问时延。
以上锁管理系统的锁配置文件可以采用通常的configure(配置)文件方式实现,也可以采用XML方式实现。这里提供一个XML配置文件示例:
<?xml version=“1.0”?>{文件为xml文件}
<LOCK MANAGER>{锁管理系统}
<LEVEL>0</LEVEL>{锁管理层级为0级}
<IPADDRESS>10.0.1.3</IPADDRESS>{锁管理器对应的业务执行节点IP地址为10.0.13}
<PORT>6699</PORT>{锁管理器提供服务的访问端口为6699}
<CAPACITY>200MB</CAPACITY>{系统容量为200MB}
<UPPERLEVEL>none</UPPERLEVEL>{上一层级级为“无”}
<LOWERLEVEL>none</LOWERLEVEL>{下一层级级为“无”}
<NODES>10.0.1.5$10.0.1.6</NODES>{业务执行节点执行业务阶段}
<BATCHNUMBER>30</BATCHNUMBER>{批处理数量为30,当锁请求数量达到30条时,向上一级锁管理器发送一批锁请求}
<BATCHTIMEOUT>30ms</BATCHTIMEOUT>{批失效时间为30毫秒}
<LOCKINVALIDTIMEOUT>50ms</LOCKINVALIDTIMEOUT>{排他锁失效时间}
</LOCK MANAGER>
本发明的实施例提供的锁管理系统的配置方法,根据业务执行节点的数量、所有业务执行节点上系统实例的数量以及处理进程的数量、及各个业务执行节点到所述分布式系统的中心控制节点的访问延迟为每个业务执行节点设置对应的锁管理系统的层级,并通过配置后的置锁管理系统进行锁管理,能够减少锁访问延迟,提高系统运行性能。
本发明的实施例还提供一种锁管理系统的配置装置2,用于实现上述方法实施例提供的锁管理系统的配置方法,应用于分布式系统,所述分布式系统包括至少两个业务执行节点,一个中心控制节点,每个所述业务执行节点上通过至少一个处理进程运行对应的系统实例,同时通过中心控制节点来进行资源的共享与控制,具体的,参照图2所示,包括:获取单元21、分配单元22及配置单元23;
获取单元21用于根据所述分布式系统包含的业务执行节点的数量、所有业务执行节点上系统实例的数量以及处理进程的数量、及各个业务执行节点到所述分布式系统的中心控制节点的访问延迟,为每个业务执行节点设置对应的锁管理系统的层级;
所述分配单元22用于分别根据所述获取单元21获取的每个业务执行节点对应的锁管理系统的层级为每个所述业务执行节点至少分配一个锁管理器;
所述配置单元23用于为所述分配单元22分配的每个锁管理器配置锁级别上下文,其中锁级别上下文用于确定所述每个锁管理器相邻的锁管理器。
具体的,当为业务执行节点设置的锁管理系统为两个层级时,分配单元22具体用于为该业务执行节点分配一个节点锁管理器及一个全局锁管理器,所述节点锁管理器的上级的锁管理器为全局锁管理器;
或者;
当为业务执行节点设置的锁管理系统的层级大于二层时,分配单元22具体用于为该业务执行节点分配一个节点锁管理器、一个全局锁管理器及至少一个设置于所述节点锁管理器和全局锁管理器之间的局部锁管理器,并根据所述锁级别上下文确定为每个局部锁管理器的上级的锁管理器和下级的锁管理器,其中位于下级的锁管理器向位于上级的锁管理器请求锁。
可选的,所述分配单元22还用于当所述全局锁管理器对应的业务执行节点与至少一个系统实例所在业务执行节点不同时,为所述至少一个系统实例对应的业务执行节点设置一个层级的锁管理器。
其中,锁管理上下文包括:锁层级数量、锁管理器所在层级、上级的锁管理器、下级的锁管理器、锁负责节点。
本发明的实施例提供的锁管理系统的配置装置,,根据业务执行节点的数量、所有业务执行节点上系统实例的数量以及处理进程的数量、及各个业务执行节点到所述分布式系统的中心控制节点的访问延迟为每个业务执行节点设置对应的锁管理系统的层级,并通过配置后的置锁管理系统进行锁管理,能够减少锁访问延迟,提高系统运行性能。
本发明的实施例还提供一种锁管理方法,应用于上述锁管理系统的配置方法实施例配置的锁管理系统,具体的,参照图3所示,包括以下步骤:
301、锁管理系统通过为业务执行节点分配的节点锁管理器接收所述业务执行节点发送的锁请求。
当处理进程需要访问分布式系统的数据时,需要一个锁作为处理进程访问分布式系统的数据的许可,此时,处理进程会先搜索本身是否持有锁,当处理进程未持有锁的时候,处理进程在业务执行节点上向该处理进程的锁管理器发送锁请求,该锁请求包括处理进程需要的锁的信息,如种类等。
302、锁管理系统根据所述节点锁管理器持有锁的状态向上级的锁管理器继续发送所述锁请求,或者返回所述锁请求对应的锁给所述业务执行节点。
节点锁管理器接收到处理进程发送的锁请求后,会搜索本身是否持有该锁请求对应的锁,当节点锁管理器未持有该锁请求对应的锁时,节点锁管理器向该节点锁管理器的上级的锁管理器发送锁请求;当节点锁管理器持有该锁请求对应的锁时(锁管理器本身不会持有锁,持有锁的为处理进程,锁管理器可能管理多个处理进程,当某个进程持有锁时,这里的“节点锁管理器持有该锁请求对应的锁”指的是锁管理器有此处理进程持有锁的信息,即锁管理器的注册信息表明锁请求对应的锁注册)进行检测,当该锁请求对应的锁为共享锁时,则该节点锁管理器直接返回锁请求对应的锁给业务执行节点;当该锁请求对应的锁为排他锁时,则节点锁管理器需要等待持有该锁请求对应的锁的处理进程释放该锁请求对应的锁之后,返回锁请求对应的锁给业务执行节点,在相同的锁模式下,直接按照上述的方式进行锁请求,当节点锁管理器持有锁与锁请求为不同锁模式时,需要判断锁模式的兼容性,并根据锁模式的兼容性判断锁的持有状况并返回对应的锁,表1中提供了一种现有技术中锁模式兼容性矩阵示例,其中X表示锁模式不兼容,ACCESS SHARE表示共享访问,ROWSHARE表示行共享,ROWEXCLUSIVE表示行排它,SHARE ROW EXCLUSIVE表示共享行排它,EXCLUSIVE表示排它,ACCESS EXCLUSIVE表示独占访问,参照表1,ACCESS SHARE锁模式与ACCESS SHARE,ROW SHARE,ROW EXCLUSIVE,SHARE ROW EXCLUSIVE,EXCLUSIVE锁模式兼容,而ACCESS SHARE锁模式与ACCESS EXCLUSIVE锁模式互斥。
表1
可选的,每个锁管理器可以维持一个锁请求处理窗口,用于将需要发送给上级的锁管理器的预设数量的锁请求合并为同一个锁请求发送至所述锁管理器的上级的锁管理器。这样上级管理器收到的只需要接收一次就可以获取所有的锁请求。
303、锁管理系统通过节点锁管理器的上级的锁管理器接收锁请求,根据持有锁的状态向更上级锁管理器继续发送所述锁请求,或者返回所述锁请求对应的锁给所述节点锁管理器。
304、锁管理系统按照设置的锁管理系统的层级,通过所述节点锁管理器以上各级锁管理器依次按照本级持有锁的状态对所述锁请求进行处理,直到所述锁请求发送至所述全局锁管理器,锁管理系统通过全局锁管理器返回锁请求对应的锁给全局锁管理器的下级的锁管理器直到返回锁请求对应的锁至业务执行节点。
当任意一级锁管理器收到其下级的锁管理器发送的锁请求的时候,都会搜索本身是否持有该锁请求对应的锁,当锁管理器持有锁请求对应的锁时,锁管理器返回锁请求对应的锁至下级的锁管理器;当锁管理器未持有锁请求对应的锁时,锁管理器向锁管理器的上级的锁管理器发送锁请求,由于全局锁管理器持有所有的锁,因此,当全局锁管理器收到其下级的锁管理器发送的锁请求的时候,必然能够返回锁请求对应的锁。
可选的,对排他锁而言,只有持有该锁的处理进程释放了该排他锁,业务执行节点上其他处理进程才能获取该排他锁,为了降低业务执行节点上处理进程持有排他锁但不使用而造成的延迟,锁管理器在返回锁请求对应的锁时,设置锁请求对应的锁的最大持有时间,当锁管理器的下级的锁管理器持有锁请求对应的锁的时间大于等于最大持有时间时,锁管理器发送强制失效请求至锁管理器的下级的锁管理器,以便于锁管理器的下级的锁管理器在接收强制失效请求后,释放锁请求对应的锁,这样,可以降低处理进程持有排他锁但不使用而造成的延迟。
本发明的实施例提供的锁管理方法,由于预先根据系统实例及处理进程配置锁管理系统的层级,能够减少锁访问延迟,提高系统运行性能。进一步的,该方法能够将多个锁请求合并为一个锁请求,并且设置排他锁的最大持有时间,提高了锁请求的处理速度和效率。
本发明的实施例还提供一种锁管理系统4,使用上述方法实施例提供的锁管理方法,参照图4所示,包括至少一个节点锁管理器41、局部锁管理器42及一个全局锁管理器43,其中,每个业务执行节点对应设置的锁管理系统的层级数量的锁管理器;
其中,全局锁管理器直接管理的下级的锁管理器可以是一个也可以是多个,可以是局部锁管理器或节点锁管理器,也可以是业务执行节点,同理,局部锁管理器的下级的锁管理器可以是一个也可以是多个,可以是局部锁管理器,也可以是节点锁管理器。
节点锁管理器41用于接收处理进程51通过业务执行节点A发送的锁请求,根据持有锁的状态向上级的锁管理器继续发送锁请求,或者返回锁请求对应的锁给业务执行节点A;
具体的,当节点锁管理器41持有锁请求对应的锁时,节点锁管理器41具体用于返回锁请求对应的锁至业务执行节点A;
当节点锁管理器41未持有锁请求对应的锁时,节点锁管理器41具体用于向节点锁管理器41的上级的锁管理器发送锁请求。
局部锁管理器42用于接收局部锁管理器42的下级的锁管理器发送的锁请求,根据持有锁的状态向局部锁管理器42的上级的锁管理器继续发送锁请求,或者返回锁请求对应的锁给局部锁管理器42的下级的锁管理器;
具体的,当局部锁管理器42持有锁请求对应的锁时,局部锁管理器42用于返回锁请求对应的锁至局部锁管理器42的下级的锁管理器;
当局部锁管理器42未持有锁请求对应的锁时,局部锁管理器42用于向局部锁管理器42的上级的锁管理器发送锁请求。
全局锁管理器43用于接收全局锁管理器43的下级的锁管理器发送的锁请求,返回锁请求对应的锁给全局锁管理器43的下级的锁管理器。
可选的,将需要发送给上级的锁管理器的预设数量的锁请求合并为同一个锁请求发送至所述锁管理器的上级的锁管理器。
进一步可选的,锁管理器还用于在返回锁请求对应的锁时,设置锁请求对应的锁的最大持有时间,当锁管理器的下级的锁管理器持有锁请求对应的锁的时间大于等于最大持有时间时,锁管理器发送强制失效请求至锁管理器的下级的锁管理器,以便于锁管理器的下级的锁管理器在接收强制失效请求后,释放锁请求对应的锁。
本发明的实施例提供的锁管理系统,由于预先根据系统实例及处理进程配置锁管理系统的层级,能够减少锁访问延迟,提高系统运行性能。进一步的,该方法能够将多个锁请求合并为一个锁请求,并且设置排他锁的最大持有时间,提高了锁请求的处理速度和效率。
参照图5所示,锁管理系统对业务执行节点B、C和D的锁请求进行管理,以业务执行节点B的处理进程a发送一个排他锁的锁请求或一个共享锁的锁请求为例进行说明(排他锁指的是仅能为一个处理进程持有的锁,共享锁指可以为多个处理进程持有锁),该锁管理系统的层级为3,即对业务执行节点B,其具有一个节点锁管理器41a,节点锁管理器41a的上级的锁管理器为局部锁管理器42,局部锁管理器42的上级的锁管理器为全局锁管理器43,图中还示出了业务执行节点C的节点锁管理器41b,业务执行节点C的节点锁管理器41c。
首先,以共享锁的请求为例,处理进程a通过业务执行节点B向节点锁管理器41a发送共享锁锁请求,节点锁管理器41a搜索本身是否持有该共享锁,若搜索发现持有共享锁,则直接返回该共享锁;若节点锁管理器41a不持有共享锁,而持有排他锁则该共享锁请求进入等待队列,待排他锁释放后,向上一级的锁管理器局部锁管理器42发送共享锁锁请求,若节点锁管理器41a也不持有排他锁则直接向上一级的锁管理器局部锁管理器42发送共享锁锁请求;此时节点锁管理器41a可以维持一个锁请求处理窗口,一个时间段内的多个共享锁请求合并为同一个锁请求发送至局部锁管理器42。
局部锁管理器42搜索本身是否持有该共享锁,若搜索发现持有共享锁,则直接返回该共享锁;若局部锁管理器42不持有共享锁,而持有排他锁则该共享锁请求进入等待队列,待排他锁释放后,向上一级的锁管理器全局锁管理器43发送共享锁锁请求,若局部锁管理器42也不持有排他锁则直接向上一级的锁管理器全局锁管理器43发送共享锁锁请求;此时局部锁管理器42可以维持一个锁请求处理窗口,一个时间段内的多个共享锁请求合并为同一个锁请求发送至全局锁管理器43。
全局锁管理器43搜索本身是否持有排他锁,若搜索发现持有排他锁,则该共享锁请求进入等待队列,待排他锁释放后,返回共享锁给局部锁管理器42,若全局锁管理器43不持有排他锁则直接向局部锁管理器42返回共享锁;局部锁管理器42将该共享锁返回给节点锁管理器41a,节点锁管理器41a将该共享锁返回给业务执行节点B。
以排他锁的请求为例,处理进程a通过业务执行节点B向节点锁管理器41a发送排他锁锁请求,节点锁管理器41a搜索本身是否持有该排他锁,若节点锁管理器41a持有排他锁且没有其他处理进程持有排他锁,则直接返回排他锁;若节点锁管理器41a持有排他锁,并且其他处理进程处理进程b也持有排他锁,则等待处理进程b持有的排他锁释放后返回排他锁至处理进程a,若节点锁管理器41a持有共享锁,则该排他锁锁请求进入等待队列,待共享锁释放后,向上一级的锁管理器局部锁管理器42发送排他锁锁请求;
局部锁管理器42搜索本身是否持有该排他锁,若局部锁管理器42持有排他锁且没有其他处理进程持有排他锁,则直接返回排他锁;若局部锁管理器42持有排他锁,并且其他处理进程处理进程b也持有排他锁,则等待处理进程b持有的排他锁释放后返回排他锁至处理进程a,若局部锁管理器42持有共享锁,则该排他锁锁请求进入等待队列,待共享锁释放后,向上一级的锁管理器全局锁管理器43发送排他锁锁请求;当然由于本发明中提供了强制失效机制,因此可选的若局部锁管理器42持有排他锁,并且其他处理进程处理进程b也持有排他锁,则局部锁管理器42可以向业务执行节点C对应的节点锁管理器41b发送强制失效请求,此时处理进程b持有的排他锁释放后返回排他锁;类似的若局部锁管理器42持有共享锁,并且该共享锁被分配给节点锁管理器41b的处理进程b使用时,局部锁管理器42可以向业务执行节点C对应的节点锁管理器41b发送强制失效请求,待共享锁释放后,向上一级的锁管理器全局锁管理器43发送排他锁锁请求;当然此时局部锁管理器42可以维持一个锁请求处理窗口,一个时间段内的多个排她锁请求合并为同一个锁请求发送至全局锁管理器43。
全局锁管理器43搜索本身是否持有排他锁,若全局锁管理器43持有排他锁且没有其他处理进程持有排他锁,则直接返回排他锁;若节点锁管理器41c也持有排他锁并在业务执行节点D的处理进程c使用,则等待节点锁管理器41c持有的排他锁释放后返回排他锁,若全局锁管理器43持有共享锁,则该排他锁锁请求进入等待队列,待共享锁释放后,向局部锁管理器42返回排他锁;局部锁管理器42将该排他锁返回给节点锁管理器41a,节点锁管理器41a将该排他锁返回给业务执行节点B;当然由于本发明中提供了强制失效机制,因此在全局锁管理器43的锁请求处理过程中,若节点锁管理器41c也持有排他锁,则全局锁管理器43可以向业务执行节点D对应的节点锁管理器41c发送强制失效请求,此时处理进程c持有的排他锁释放后返回排他锁;类似的若全局锁管理器43持有共享锁,并且该共享锁被分配给节点锁管理器41c的处理进程c使用时,全局锁管理器43可以向业务执行节点d对应的节点锁管理器41c发送强制失效请求,待共享锁释放后,返回请求的排他锁。
可以理解的是,以上每个节点锁管理器对应的业务执行节点上通过处理进程运行至少一个系统实例,因此每个处理进程、系统实例在处理过程中的锁请求都能通过相应的节点锁管理器申请,具体申请的方法不再赘述。这样,处理进程能够快速的获取需要的锁,节约了锁管理系统的时间,降低系统锁访问延迟。
本发明的实施例还提供一种锁管理系统的配置装置6,参照图6所示该锁管理系统的配置装置6包括:至少一个处理器61、数据总线62、存储器63及通信端口64,至少一个处理器61、存储器63和通信端口64通过数据总线62连接并完成相互间的通信,其中:
该数据总线62可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该数据总线62可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器63用于存储可执行程序代码及相应的数据,该程序代码包括计算机操作指令。存储器63可能包含高速RAM存储器,也可能还包括非易失性存储器。
处理器61可能是一个中央处理器CPU,或者是特定集成电路ASIC,或者是被配置成实施本发明实施例的一个或多个集成电路。
通信端口64,用于实现锁管理系统的配置装置6与外界的数据交换。
处理器61,还用于调用存储器63中的程序代码,用以执行上述装置实施例中获取单元21、分配单元22和配置单元23的操作,具体描述参照图2对应的装置实施例,这里不再赘述。
本发明的实施例提供的锁管理系统的配置装置,根据业务执行节点的数量、所有业务执行节点上系统实例的数量以及处理进程的数量、及各个业务执行节点到所述分布式系统的中心控制节点的访问延迟为每个业务执行节点设置对应的锁管理系统的层级,并通过配置后的置锁管理系统进行锁管理,能够减少锁访问延迟,提高系统运行性能。
本发明的实施例还提供一种锁管理系统7,参照图7所示,该锁管理系统7包括:至少一个处理器71、数据总线72、存储器73及通信端口74,至少一个处理器71、存储器73和通信端口74通过数据总线72连接并完成相互间的通信,其中:
该数据总线72可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该数据总线72可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器73用于存储可执行程序代码及相应的数据,该程序代码包括计算机操作指令。存储器73可能包含高速RAM存储器,也可能还包括非易失性存储器。
处理器71可能是一个中央处理器CPU,或者是特定集成电路ASIC,或者是被配置成实施本发明实施例的一个或多个集成电路。
通信端口74,用于锁管理系统7与外界的数据交换。
处理器71,还用于调用存储器73中的程序代码,用以执行上述装置实施例中至少一个节点锁管理器41、局部锁管理器42及一个全局锁管理器43的操作,具体描述参照图4对应的装置实施例,这里不再赘述。
锁管理系统7由于预先根据系统实例及处理进程配置锁管理系统的层级,能够降低锁管理系统的资源的浪费率。进一步的,该方法能够将多个锁请求合并为一个锁请求,并且设置排他锁的最大持有时间,提高了锁请求的处理速度和效率。
本发明的实施例提供的锁管理方法及系统,由于根据系统实例及处理进程配置锁管理系统的层级,能够减少锁访问延迟,提高系统运行性能。进一步的,该方法能够将多个锁请求合并为一个锁请求,并且设置排他锁的最大持有时间,提高了锁请求的处理速度和效率。
本发明的实施例具体用于一种分布式的数据库系统,以云计算和虚拟计算环境下的数据库系统为例,该数据库系统需要为大量用户提供按需供应的数据库处理能力,负载处理能力要求高,业务执行节点数量较多;
业务执行节点上各系统实例的处理进程需要访问数据库的数据时,需要一个锁作为处理进程访问分布式系统的数据的许可,具体的可以通过本发明所述的锁管理系统进行所请求的处理,上述业务执行节点的锁管理采用数据库系统中的锁管理模块进行锁管理系统的配置,该锁管理模块可以为本发明上述实施例中的锁管理系统的配置装置。其中锁管理系统对锁请求的处理方法及锁管理模块对锁管理系统的配制方法参照上述的方法和装置实施例的详述,这里不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (18)
1.一种分布式系统中的锁管理系统的配置方法,其特征在于,包括:
根据所述分布式系统包含的业务执行节点的数量、所有业务执行节点上系统实例的数量以及处理进程的数量、及各个业务执行节点到所述分布式系统的中心控制节点的访问延迟,为每个业务执行节点设置对应的锁管理系统的层级;
分别根据每个业务执行节点对应的所述锁管理系统的层级为每个业务执行节点至少分配一个锁管理器;
为所述每个锁管理器配置锁级别上下文,其中锁级别上下文用于确定所述每个锁管理器相邻的锁管理器。
2.根据权利要求1所述的方法,其特征在于,所述分别根据每个业务执行节点对应的所述锁管理系统的层级为每个所述业务执行节点至少分配一个锁管理器,具体包括:
当为业务执行节点设置的锁管理系统为两个层级时,为该业务执行节点分配一个节点锁管理器及一个全局锁管理器,所述节点锁管理器的上级的锁管理器为全局锁管理器;
当为业务执行节点设置的锁管理系统的层级大于二层时,为该业务执行节点分配一个节点锁管理器、一个全局锁管理器及至少一个设置于所述节点锁管理器和全局锁管理器之间的局部锁管理器,并根据所述锁级别上下文确定每个局部锁管理器上级的锁管理器和下级的锁管理器,其中位于下级的锁管理器向位于上级的锁管理器请求锁。
3.根据权利要求2所述的方法,其特征在于,根据每个业务执行节点对应的所述锁管理系统的层级为每个所述业务执行节点至少分配一个锁管理器后,还包括:
当所述全局锁管理器对应的业务执行节点与至少一个系统实例所在业务执行节点不同时,为所述至少一个系统实例对应的业务执行节点设置一个层级的锁管理器。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述锁管理上下文包括:锁层级数量、锁管理器所在层级、上级的锁管理器、下级的锁管理器、锁管理器负责的业务执行节点。
5.一种锁管理系统的配置装置,应用于分布式系统,其特征在于,包括:获取单元、分配单元及配置单元;
所述获取单元用于根据所述分布式系统包含的业务执行节点的数量、所有业务执行节点上系统实例的数量以及处理进程的数量、及各个业务执行节点到所述分布式系统的中心控制节点的访问延迟,为每个业务执行节点设置对应的锁管理系统的层级;
所述分配单元用于分别根据所述获取单元获取的每个业务执行节点对应的锁管理系统的层级为每个所述业务执行节点至少分配一个锁管理器;
所述配置单元用于为所述分配单元分配的每个锁管理器配置锁级别上下文,其中锁级别上下文用于确定所述每个锁管理器相邻的锁管理器。
6.根据权利要求5所述的装置,其特征在于:
当为业务执行节点设置的锁管理系统为两个层级时,所述分配单元具体用于为该业务执行节点分配一个节点锁管理器及一个全局锁管理器,所述节点锁管理器的上级的锁管理器为全局锁管理器;
或者;
当为业务执行节点设置的锁管理系统的层级大于二层时,所述分配单元具体用于为该业务执行节点分配一个节点锁管理器、一个全局锁管理器及至少一个设置于所述节点锁管理器和全局锁管理器之间的局部锁管理器,并根据所述锁级别上下文确定每个局部锁管理器上级的锁管理器和下级的锁管理器,其中位于下级的锁管理器向位于上级的锁管理器请求锁。
7.根据权利要求6所述的装置,其特征在于,
所述分配单元还用于当所述全局锁管理器对应的业务执行节点与至少一个系统实例所在业务执行节点不同时,为所述至少一个系统实例对应的业务执行节点设置一个层级的锁管理器。
8.根据权利要求5或7任一项所述的装置,其特征在于,所述锁管理上下文包括:锁层级数量、锁管理器所在层级、上级的锁管理器、下级的锁管理器、锁管理器负责的业务执行节点。
9.一种锁管理系统,其特征在于,包括至少一个节点锁管理器、局部锁管理器及一个全局锁管理器,其中,每个业务执行节点对应设置的锁管理系统的层级数量的锁管理器;
所述节点锁管理器用于接收业务执行节点发送的锁请求,根据持有锁的状态向上级的锁管理器继续发送所述锁请求,或者返回所述锁请求对应的锁给所述业务执行节点;
所述局部锁管理器用于接收所述局部锁管理器的下级的锁管理器发送的锁请求,根据持有锁的状态向所述局部锁管理器的上级的锁管理器继续发送所述锁请求,或者返回所述锁请求对应的锁给所述局部锁管理器的下级的锁管理器;
所述全局锁管理器用于接收所述全局锁管理器的下级的锁管理器发送的锁请求,返回所述锁请求对应的锁给所述全局锁管理器的下级的锁管理器。
10.根据权利要求9所述的锁管理系统,其特征在于:
当所述节点锁管理器持有所述锁请求对应的锁时,所述节点锁管理器具体用于返回所述锁请求对应的锁至所述业务执行节点;
当所述节点锁管理器未持有所述锁请求对应的锁时,所述节点锁管理器具体用于向所述节点锁管理器的上级的锁管理器发送所述锁请求。
11.根据权利要求9所述的锁管理系统,其特征在于:
当所述局部锁管理器持有所述锁请求对应的锁时,所述局部锁管理器用于返回所述锁请求对应的锁至所述局部锁管理器的下级的锁管理器;
当所述局部锁管理器未持有所述锁请求对应的锁时,所述局部锁管理器用于向所述局部锁管理器的上级的锁管理器发送所述锁请求。
12.根据权利要求9所述的锁管理系统,其特征在于,所述锁管理器还用于:
将需要发送给上级的锁管理器的预设数量的锁请求合并为同一个锁请求发送至所述锁管理器的上级的锁管理器。
13.根据权利要求9所述的锁管理系统,其特征在于,所述锁管理器还用于:
在返回所述锁请求对应的锁时,设置所述锁请求对应的锁的最大持有时间,当所述锁管理器的下级的锁管理器持有所述锁请求对应的锁的时间大于等于所述最大持有时间时,所述锁管理器发送强制失效请求至所述锁管理器的下级的锁管理器,以便于所述锁管理器的下级的锁管理器在接收所述强制失效请求后,释放所述锁请求对应的锁。
14.一种如权利要求10-13任一项所述的锁管理系统的锁管理方法,其特征在于,包括:
通过为业务执行节点分配的节点锁管理器接收所述业务执行节点发送的锁请求,根据所述节点锁管理器持有锁的状态向上级的锁管理器继续发送所述锁请求,或者返回所述锁请求对应的锁给所述业务执行节点;
通过所述节点锁管理器的上级的锁管理器接收所述锁请求,根据持有锁的状态向更上级的锁管理器继续发送所述锁请求,或者返回所述锁请求对应的锁给所述节点锁管理器;
按照设置的锁管理系统的层级,通过所述节点锁管理器以上各级锁管理器依次按照本级持有锁的状态对所述锁请求进行处理,直到所述锁请求发送至所述全局锁管理器,通过所述全局锁管理器返回所述锁请求对应的锁给所述全局锁管理器的下级的锁管理器直到返回所述锁请求对应的锁至所述业务执行节点。
15.根据权利要求14所述的方法,其特征在于,所述根据所述节点锁管理器持有锁的状态向上级的锁管理器继续发送所述锁请求,或者返回所述锁请求对应的锁给所述业务执行节点,具体包括:
当所述节点锁管理器持有所述锁请求对应的锁时,通过所述节点锁管理器返回所述锁请求对应的锁至所述业务执行节点;
当所述节点锁管理器未持有所述锁请求对应的锁时,通过所述节点锁管理器向所述节点锁管理器的上级的锁管理器发送所述锁请求。
16.根据权利要求14所述的方法,其特征在于,所述根据持有锁的状态向更上级的锁管理器继续发送所述锁请求,或者返回所述锁请求对应的锁给所述节点锁管理器,具体包括:
当所述节点锁管理器的上级的锁管理器持有所述锁请求对应的锁时,通过所述节点锁管理器的上级的锁管理器返回所述锁请求对应的锁至所述节点锁管理器;
当所述节点锁管理器的上级的锁管理器未持有所述锁请求对应的锁时,通过所述节点锁管理器的上级的锁管理器向更上级的锁管理器发送所述锁请求。
17.根据权利要求14所述的方法,其特征在于,所述方法还包括:
通过所述锁管理器将需要发送给上级的锁管理器的预设数量的锁请求合并为同一个锁请求发送至所述锁管理器的上级的锁管理器。
18.根据权利要求14所述的方法,其特征在于,所述方法还包括:
返回所述锁请求对应的锁时,通过所述锁管理器设置所述锁请求对应的锁的最大持有时间,当所述锁管理器的下级的锁管理器持有所述锁请求对应的锁的时间大于或等于所述最大持有时间时,通过所述锁管理器发送强制失效请求至所述锁管理器的下级的锁管理器,以便于所述锁管理器的下级的锁管理器在接收所述强制失效请求后,释放所述锁请求对应的锁。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310746990.9A CN103744719B (zh) | 2013-12-30 | 2013-12-30 | 锁管理方法及系统、锁管理系统的配置方法及装置 |
EP14876054.9A EP3009930B1 (en) | 2013-12-30 | 2014-06-25 | Lock management method and system, and lock management system configuration method and device |
PCT/CN2014/080679 WO2015100973A1 (zh) | 2013-12-30 | 2014-06-25 | 锁管理方法及系统、锁管理系统的配置方法及装置 |
US14/995,789 US10042678B2 (en) | 2013-12-30 | 2016-01-14 | Lock management method and system, method and apparatus for configuring lock management system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310746990.9A CN103744719B (zh) | 2013-12-30 | 2013-12-30 | 锁管理方法及系统、锁管理系统的配置方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103744719A CN103744719A (zh) | 2014-04-23 |
CN103744719B true CN103744719B (zh) | 2017-12-29 |
Family
ID=50501739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310746990.9A Active CN103744719B (zh) | 2013-12-30 | 2013-12-30 | 锁管理方法及系统、锁管理系统的配置方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10042678B2 (zh) |
EP (1) | EP3009930B1 (zh) |
CN (1) | CN103744719B (zh) |
WO (1) | WO2015100973A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744719B (zh) * | 2013-12-30 | 2017-12-29 | 华为技术有限公司 | 锁管理方法及系统、锁管理系统的配置方法及装置 |
CN104239418B (zh) * | 2014-08-19 | 2018-01-19 | 天津南大通用数据技术股份有限公司 | 支持分布式数据库的分布锁方法以及分布式数据库系统 |
US10671565B2 (en) | 2015-04-24 | 2020-06-02 | Quest Software Inc. | Partitioning target data to improve data replication performance |
US9658794B2 (en) * | 2015-05-08 | 2017-05-23 | Sonicwall Inc. | Two stage memory allocation using a cache |
CN107145396B (zh) * | 2016-03-01 | 2021-03-09 | 阿里巴巴集团控股有限公司 | 分布式锁实现方法和设备 |
CN106598746B (zh) * | 2016-12-09 | 2021-04-23 | 北京奇虎科技有限公司 | 分布式系统中全局锁的实现方法及装置 |
US10769128B2 (en) * | 2017-01-31 | 2020-09-08 | Salesforce.Com, Inc. | Delegated key-level locking for a transactional multi-version key-value store |
CN108459913B (zh) * | 2017-12-26 | 2022-06-10 | 创新先进技术有限公司 | 数据并行处理方法、装置及服务器 |
CN110633274B (zh) * | 2018-06-22 | 2022-07-15 | 北京神州泰岳软件股份有限公司 | 一种告警管理方法和装置 |
CN109344136A (zh) * | 2018-12-13 | 2019-02-15 | 浪潮(北京)电子信息产业有限公司 | 一种共享文件系统的访问方法、装置及设备 |
CN110262898B (zh) * | 2019-06-19 | 2021-01-29 | 广州华多网络科技有限公司 | 一种业务请求的处理方法及客户端 |
CN110716944B (zh) * | 2019-09-12 | 2022-10-04 | 苏宁云计算有限公司 | 数据截断方法和装置 |
CN111158880B (zh) * | 2019-12-31 | 2024-04-09 | 易票联支付有限公司 | 一种分布式定时任务调度方法、系统、装置及存储介质 |
CN113254226B (zh) * | 2021-06-23 | 2021-09-24 | 北京易鲸捷信息技术有限公司 | 用于非对称业务场景的非对称分布式锁系统及实现方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5596754A (en) * | 1992-10-29 | 1997-01-21 | Digital Equipment Corporation | Method for performing private lock management |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5699500A (en) * | 1995-06-01 | 1997-12-16 | Ncr Corporation | Reliable datagram service provider for fast messaging in a clustered environment |
US5933824A (en) * | 1996-12-23 | 1999-08-03 | Lsi Logic Corporation | Methods and apparatus for locking files within a clustered storage environment |
US8086579B1 (en) * | 2002-01-22 | 2011-12-27 | Oracle International Corporation | Semantic response to lock requests to reduce coherence overhead in multi-node systems |
US7093230B2 (en) * | 2002-07-24 | 2006-08-15 | Sun Microsystems, Inc. | Lock management thread pools for distributed data systems |
US7739245B1 (en) * | 2002-09-30 | 2010-06-15 | Symantec Operating Corporation | Block locking in a multi-node environment |
US7289992B2 (en) * | 2003-05-01 | 2007-10-30 | International Business Machines Corporation | Method, system, and program for lock and transaction management |
US7376744B2 (en) * | 2003-05-09 | 2008-05-20 | Oracle International Corporation | Using local locks for global synchronization in multi-node systems |
US9086973B2 (en) * | 2009-06-09 | 2015-07-21 | Hyperion Core, Inc. | System and method for a cache in a multi-core processor |
US20120066191A1 (en) * | 2010-09-10 | 2012-03-15 | International Business Machines Corporation | Optimized concurrent file input/output in a clustered file system |
US8868748B2 (en) * | 2010-10-11 | 2014-10-21 | International Business Machines Corporation | Two-level management of locks on shared resources |
US8924370B2 (en) * | 2011-05-31 | 2014-12-30 | Ori Software Development Ltd. | Efficient distributed lock manager |
CN103036717B (zh) * | 2012-12-12 | 2015-11-04 | 北京邮电大学 | 分布式数据的一致性维护系统和方法 |
CN103064898B (zh) * | 2012-12-17 | 2016-12-28 | 华为技术有限公司 | 事务加锁、解锁方法及装置 |
CN103744719B (zh) * | 2013-12-30 | 2017-12-29 | 华为技术有限公司 | 锁管理方法及系统、锁管理系统的配置方法及装置 |
US10169367B2 (en) * | 2014-06-06 | 2019-01-01 | Panzura, Inc. | Managing opportunistic locks in a distributed file system |
US9792294B2 (en) * | 2014-07-02 | 2017-10-17 | Panzura, Inc | Using byte-range locks to manage multiple concurrent accesses to a file in a distributed filesystem |
-
2013
- 2013-12-30 CN CN201310746990.9A patent/CN103744719B/zh active Active
-
2014
- 2014-06-25 EP EP14876054.9A patent/EP3009930B1/en active Active
- 2014-06-25 WO PCT/CN2014/080679 patent/WO2015100973A1/zh active Application Filing
-
2016
- 2016-01-14 US US14/995,789 patent/US10042678B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5596754A (en) * | 1992-10-29 | 1997-01-21 | Digital Equipment Corporation | Method for performing private lock management |
Also Published As
Publication number | Publication date |
---|---|
US10042678B2 (en) | 2018-08-07 |
EP3009930B1 (en) | 2019-12-11 |
WO2015100973A1 (zh) | 2015-07-09 |
EP3009930A1 (en) | 2016-04-20 |
US20160132364A1 (en) | 2016-05-12 |
CN103744719A (zh) | 2014-04-23 |
EP3009930A4 (en) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103744719B (zh) | 锁管理方法及系统、锁管理系统的配置方法及装置 | |
US9864759B2 (en) | System and method for providing scatter/gather data processing in a middleware environment | |
CN111585887B (zh) | 基于多个网络的通信方法、装置、电子设备及存储介质 | |
JP2010044552A (ja) | リクエスト処理方法及び計算機システム | |
CN104679594B (zh) | 一种中间件分布式计算方法 | |
US10025630B2 (en) | Operating programs on a computer cluster | |
CN106385329A (zh) | 资源池的处理方法、装置和设备 | |
CN113163277A (zh) | 光网络单元带宽管理方法、装置、电子设备及存储介质 | |
EP3629160B1 (en) | Method and device for managing vnf instantiation | |
JP5503678B2 (ja) | ホスト提供システム及びホスト提供方法 | |
CN117149445B (zh) | 一种跨集群负载均衡方法及装置、设备及存储介质 | |
CN109792393A (zh) | 虚拟化离线计费系统中的软件升级 | |
CN107943423A (zh) | 云系统中存储资源的管理方法和计算机可读存储介质 | |
CN110519354A (zh) | 一种分布式对象存储系统及其业务处理方法和存储介质 | |
CN103369038A (zh) | 平台即服务PaaS管理平台及方法 | |
CN106533961A (zh) | 一种流量控制方法及装置 | |
CN104410511B (zh) | 一种服务器管理方法及系统 | |
CN106326143B (zh) | 一种缓存分配、数据访问、数据发送方法、处理器及系统 | |
CN105493444A (zh) | 一种网络功能虚拟化nfv故障管理装置、设备及方法 | |
CN104750614B (zh) | 用于管理存储器的方法和装置 | |
CN105978744A (zh) | 一种资源分配方法、装置及系统 | |
CN101431475B (zh) | 高性能的流媒体服务器的设置以及进行高性能节目读取的方法 | |
WO2004104852A1 (ja) | 負荷分散システム及び負荷分散方法 | |
US8024406B1 (en) | System and method for dispensing e-Care | |
CN116600014B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |