容错分布式锁定管理制造技术

技术编号:2824781 阅读:173 留言:0更新日期:2012-04-11 18:40
本文揭示管理及调节对分布式数据的存取的分布式事务与锁定管理技术。提供一种锁定管理器模块以调节具有多个节点的系统中的应用程序对资源的存取,所述多个节点分别以通信方式耦合到网络。所述模块可被配置成容错式。在一个实施例中,模块使用全有序输送装置对各节点之间的消息接发施加全排序协议。所述模块可利用所述网络的多播能力(例如实现多播的以太网或其他网络特性)。所述模块针对每个资源均包含一队列,所述队列识别拥有所述资源的分布式锁定的节点。可跨越分布式配置中的所述节点复制每个队列。

【技术实现步骤摘要】
【国外来华专利技术】相关申请案交叉参照本申请案主张优先于2005年4月13日提出申请且名称为“无死锁的容错锁定管理器(Deadlock-Free Fault Tolerant Lock Manager)”的第60/671,373号美国临时申请案,及2005年11月8日提出申请且名称为“容错分布式锁定管理(Fault Tolerant DistributedLock Management)”的第11/270,196号美国申请案。此外,本申请案还涉及2005年11月30日提出申请且名称为“分布式系统的随处更新复本(Update-AnywhereReplication Of Distributed Systems)”的第11/292,055号美国申请案。所述每个申请案的全文均以引用的方式并入本文中。
本专利技术涉及分布式系统,且更具体来说,涉及分布式互斥协议。
技术介绍
现代计算机系统通常由处理数据的CPU、与其他计算机系统通信的联网接口、及一个或多个持久性存储单元组成。所述系统可(例如)因电源故障、程序错误或硬件故障等原因而停止处理。这种故障一般称为进程故障。持久性存储单元能够在修理所述故障时保持数据完整。一组所述计算机系统可经联网以形成群集。尽管网络一般是可靠的,但偶然故障可能出现而中断某些节点或节点组之间的通信。这种通信中断一般称为网络分割。每个节点均运行进行读取及写入数据二者的事务性存储系统(数据管理系统)。某些这种数据由在不同节点上操作的应用程序同时存取。为保证数据一致性,分布式事务与锁定管理技术用于管理及调节对所述数据的存取。然而,常规的分布式事务与锁定管理技术与多个问题相关联。例如,常规系统通常会带来差的锁定转移性能。更详细地说,在数个程序争夺相同的共享资源时,必须尽可能快地将存取授权从一个程序及/或节点转移到下一个。存取授权必须保证公平度,以便所有程序均最终具有存取所述资源的机会,从而从活锁提供自由度。现有的分布式存储器锁定算法假设有序单播(也称为点对点)消息接发层(例如TCP/IP)的原始性,且通常通过跨越所述节点对通信路径施加虚拟分级树拓扑来尝试优化对消息业务的使用。尽管在所属
已实现改进,但随群集中的节点数量增加,消息业务与相关联处理成本及延时的增加会导致所有这些算法的性能随-->节点数增加超过相对小的数量而急剧降级。常规系统还容易受到网络或进程故障的影响。网络、计算机系统和运行于所述计算机系统上的进程会偶尔发生故障。在这种情形中,常规算法或停止工作(例如停止对所有节点授予锁定)或不正确地工作(例如,算法不能提供与其在无故障环境中所提供的相同保证或语义,例如,在尚未释放锁定时将所述锁定授予相同的节点)。常规系统还会为资源所有权转移带来差的可缩放性。在多数常规算法中,N个资源的获取及释放会要求大量消息(最坏的情形是N*M,其中M是节点数,但最好的情形通常是log(N)或log(M))以将锁定的所有权从一个节点成功转移到另一个。另外,分级锁定所有权转移会要求许多消息。在多数常规算法中,对分级锁定(还称为多颗粒锁定)的支持对每次获取分布式资源所有权均要求多个消息。因此,需要更好的分布式事务与锁定管理技术。
技术实现思路
本专利技术的一个实施例提供一种具有多个节点的分布式锁定管理系统,所述节点分别以通信方式耦合到网络。所述系统在每个节点处均包含数据库,其用于存储由在一个或多个所述节点处操作的应用程序使用的资源。所述系统还在每个节点处包含容错分布式锁定管理器(FTDLM)模块,其用于调节所述应用程序对资源的存取。FTDLM模块针对每个资源具有一队列,所述队列用于识别拥有所述资源的分布式锁定的节点。跨越所述节点复制每个队列。系统还在每个节点处包含全序输送装置模块,其用于以通信方式将所述节点耦合到网络并对节点之间的消息接发施加全排序协议。全序输送装置模块可集成到FTDLM模块中,或单独存在。在一个特定情形中,存储于任一数据库中的资源可由在不同节点上操作的应用程序同时存取,且在甚至面临进程故障或网络分割时仍维持数据一致性。FTDLM模块中的队列可以是(例如)FIFO队列,且每个对应资源的分布式锁定所有权被转移到所述队列中以FIFO次序识别的等待节点。全序输送装置模块可实施为(例如)扩展虚拟同步输送装置。在一个特定情形中,全序输送装置模块利用网络的多播能力,以便以排序保证传递消息。在另一特定情形中,如果节点拥有资源的分布式锁定,且无其他节点等待所述资源,则FTDLM模块允许所述资源上的无限量事务同时或连续运行。在另一特定情形中,如果节点X拥有资源的分布式锁定,且其他节点正等待所述资源,则FTDLM模块允许所述资源上的预定数量的未决事务运行及提交,且随后释放对分布式锁定的所有权。在一个这种情形中,一旦FTDLM模块释放对分布式锁定的所有权则将节点X放置在所述队列中,且在其他节点完成对所述资源的使用后,节点X即刻重新获取对所述分布式锁定的所有权。在将对资源的分布式锁定所有权转移到节点时,FTDLM模块可允许正等待所述资源的所有事务同时执行。在提交在正使用分布式锁定的节点处的所有事务后,FTDLM模块可保持对所述节点处所述锁定的所有权,直到或除非另一节点请求所述分布式锁-->定。FTDLM模块可使用调度来确保以一定的公平度将资源存取分布在所述节点上。在正常的正向处理期间,可在瞬时存储器中更新所述队列。在一个这种情形中,所述队列是FIFO队列,且在检测到故障或从故障中恢复时将每个队列的顶部要素复制到持久性存储装置中及从持久性存储装置中读取。FTDLM模块可经配置以通过单个多播消息中数个分布式锁定的分批入队及出队而在一个安全的全有序广播中跨越各节点获取及释放多个分布式锁定。在一个这种情形中,使用单个多播消息进行分级锁定所有权转移。所述系统可利用全序输送装置的扩展虚拟同步语义以实施基于成员关系定额的故障恢复系统,其中在每个节点处本地保留达成一致的成员关系。本专利技术的另一实施例提供一种用于调节具有多个节点的系统中的应用程序对资源的存取的分布式锁定管理器模块,其中所述多个节点分别以通信方式耦合到网络。所述模块针对每个资源包含一队列,所述队列识别拥有所述资源的分布式锁定的节点。可跨越所述节点复制每个队列。所述模块还包含(或以操作方式耦合到)全序输送装置模块,其用于以通信方式将其节点耦合到网络,及对各节点之间的消息接发施加全排序协议。基于本地保留的成员关系,所述模块还可包含定额计算状态机,其耦合到所述全序输送装置模块以在甚至面临网络分割及进程故障时仍保证互斥。所述模块还可包含n个锁定队列状态机,其中n是资源数,每个锁定队列状态机均用于维持所述队列并起始分布式锁定的所有权转移。所述模块还可包含锁定管理器状态机,其用于为请求存取一个或多个资源的应用程序获取分布式锁定,并通知适合的锁定队列状态机处理所述请求。所述模块可包含持久性存储装置,其用于在检测到故障或从故障中恢复时存储指示当前的锁定所有权的队列要素。在一个这种实施例中,且在其中所有节点同时失效的情况下,所述模块进一步配置具有FPMS(正向处理成员组)能力,借此每个进入及退出定额状态的节点保留一组可达到的节点,因此尽管完全丢失瞬时状态仍能实现故障恢复。在一个这种情形中,初始的先本文档来自技高网
...

【技术保护点】
一种分布式锁定管理系统,其包含多个分别以通信方式耦合到网络的节点,所述系统包括:每个节点处的数据库,其用于存储由在所述节点的一者或多者处操作的应用程序所使用的资源;每个节点处的容错分布式锁定管理器(FTDLM)模块,其用于调节所述应用程序对所述资源的存取,所述FTDLM模块针对每个资源均具有一队列,所述队列识别拥有所述资源的分布式锁定的节点,其中跨越所述节点复制每个队列;及每个节点处的全序输送装置模块,其用于以通信方式将所述节点耦合到所述网络,并对各节点之间的消息接发施加全排序协议。

【技术特征摘要】
【国外来华专利技术】US 2005-4-13 60/671,373;US 2005-11-8 11/270,1961、一种分布式锁定管理系统,其包含多个分别以通信方式耦合到网络的节点,所述系统包括:每个节点处的数据库,其用于存储由在所述节点的一者或多者处操作的应用程序所使用的资源;每个节点处的容错分布式锁定管理器(FTDLM)模块,其用于调节所述应用程序对所述资源的存取,所述FTDLM模块针对每个资源均具有一队列,所述队列识别拥有所述资源的分布式锁定的节点,其中跨越所述节点复制每个队列;及每个节点处的全序输送装置模块,其用于以通信方式将所述节点耦合到所述网络,并对各节点之间的消息接发施加全排序协议。2、如权利要求1所述的系统,其中所述FTDLM模块中的所述队列是FIFO队列,且每个对应资源的分布式锁定所有权被转移到所述队列中以FIFO次序识别的等待节点。3、如权利要求1所述的系统,其中所述全序输送装置模块被实施为扩展虚拟同步输送装置。4、如权利要求1所述的系统,其中所述全序输送装置模块利用所述网络的多播能力以确保依序传递消息。5、如权利要求1所述的系统,其中如果节点拥有资源的分布式锁定,且无其他节点正等待所述资源,则所述FTDLM模块允许所述资源上无限制数量的事务同时或连续运行。6、如权利要求1所述的系统,其中如果节点X拥有资源的分布式锁定,且其他节点正等待所述资源,则所述FTDLM模块允许所述资源上的预定数量的未决事务运行及提交,且随后释放对所述分布式锁定的所有权。7、如权利要求6所述的系统,其中一旦所述FTDLM模块释放对所述分布式锁定的所有权,则将所述节点X放置在所述队列中,且在其他节点完成对所述资源的使用后,节点X重新获取对所述分布式锁定的所有权。8、如权利要求1所述的系统,其中在资源的分布式锁定所有权被转移到节点时,所述FTDLM模块允许所有等待所述资源的事务同时执行。9、如权利要求1所述的系统,其中将所述全序输送装置模块集成到所述FTDLM模块中。10、如权利要求1所述的系统,其中在正使用分布式锁定的节点处提交所有事务后,所述FTDLM模块将对所述锁定的所有权保持在所述节点处,直到或除非另一节点请求所述分布式锁定。11、如权利要求1所述的系统,其中所述FTDLM模块使用调度以确保以一定的公平度将资源存取分布在所述节点之间。12、如权利要求1所述的系统,其中所述FTDLM模块允许N个事务在释放分布式锁定之前运行。13、如权利要求1所述的系统,其中在正常的正向处理期间在瞬时存储器中更新所述队列。14、如权利要求13所述的系统,其中所述队列是FIFO队列,且当检测到故障或从故障中恢复时,每个队列的顶部要素被复制到持久性存储装置中及从所述持久性存储装置中读取。15、如权利要求1所述的系统,其中所述FTDLM模块能够通过单个多播消息中数个分布式锁定的分批入队及出队而在一个安全的全有序广播中跨越节点获取及释放多个分布式锁定。16、如权利要求15所述的系统,其中所述单个多播消息用于分级锁定所有权转移。17、如权利要求1所述的系统,其中存储于任何一个数据库中的资源可由操作于不同节点上的应用程序同时存取,且甚至在面临进程故障或网络分割时仍维持数据一致性。18、如权利要求1所述的系统,其中所述系统利用所述全序输送装置的扩展虚拟同步语义以实施基于成员关系定额的故障恢复系统,其中达成一致的成员关系被本地保留于每个节点处。19、如权利要求1所述的系统,其中所述FTDLM模块进一步包括:定额计算状态机,其耦合到所述全序输送装置模块,用于基于本地保留的成员关系在甚至面临网络分割及进程故障时仍保证互斥;n个锁定队列状态机,其中n是资源数量,每个锁定队列状态机用于维持所述队列并起始分布式锁定的所有权转移;及锁定管理器状态机,其用于为请求存取所述资源的一者或多者的应用程序获取分布式锁定,及通知适当的锁定队列状态机处理所述请求。20、一种分布式锁定管理器模块,其用于调节包含多个节点的系统中的应用程序对资源的存取,所述多个节点分别以通信方式耦...

【专利技术属性】
技术研发人员:卡尔胡弗雷德里克A小汤普金斯迈克尔泰克塞拉
申请(专利权)人:普罗格雷斯软件公司
类型:发明
国别省市:US[]

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

1