CN106462472B - 使用多个租赁服务器获取资源租赁 - Google Patents
使用多个租赁服务器获取资源租赁 Download PDFInfo
- Publication number
- CN106462472B CN106462472B CN201580033737.6A CN201580033737A CN106462472B CN 106462472 B CN106462472 B CN 106462472B CN 201580033737 A CN201580033737 A CN 201580033737A CN 106462472 B CN106462472 B CN 106462472B
- Authority
- CN
- China
- Prior art keywords
- lease
- servers
- act
- resource
- computing entity
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/827—Aggregation of resource allocation or reservation requests
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
在多个租赁服务器能够向资源授权租赁的情况下获得针对资源的租赁。计算实体通过使得租赁请求被发送到至少大部分(并且可能全部)租赁服务器中的每一个,来尝试获得针对资源的租赁。作为响应,计算实体接收对租赁请求的一个或多个响应。如果计算实体从能够授权对资源的租赁的大多数租赁服务器接收到租赁的授权,则确定计算实体获取了针对该资源的租赁。另一方面,如果计算实体从少于大多数的租赁服务器接收到租赁的授权,则确定计算实体未能获取针对该资源的租赁。
Description
背景
计算技术正在变得越来越分布式。锁服务器通常被用于通过提供分布式锁来同步和协调分布式系统中的状态。分布式锁定的一种这样的应用是在分布式系统中的领导者选取。通常,锁服务器本身是高度可用的服务,并且锁服务器在各种副本之间复制锁定状态。然而,锁服务器的各种副本共置于同一数据中心或区域内。如果数据中心或区域临时断线(并因此不可用),或者如果存在导致锁服务的DNS查找失败的网络问题,则这可能导致依赖于该锁服务器的所有其他从属服务向锁提供服务或规定领导者选取的可用性损失。
一种常规技术使用大多数协议来建立锁。在该技术中,存在多个锁服务器,每个锁服务器维护资源的一个副本。为了使计算系统建立对该资源的锁定,计算系统必须从大多数锁服务器获得锁。当计算系统完成了资源时,计算系统随后理想地释放在该资源上的所有获得的锁。
本文要求保护的主题不限于解决任何缺点或仅在诸如上述环境这样的环境中操作的各实施例。相反,提供该背景仅用于例示其中可实施所述一些实施例的一个示例性技术领域。
概述
本文描述的至少一些实施例涉及在多个租赁服务器能够向资源授权租赁的情况下获得对资源的租赁。计算实体(诸如应用、组件、模块等)通过使租赁请求被发送到至少大多数(并且可能全部)的租赁服务器中的每一个来尝试获得对资源的租赁。作为响应,计算实体接收对租赁请求的一个或多个响应。
如果计算实体从能够向资源授权租赁的租赁服务器中的大多数接收到租赁的授权,则确定计算实体获取了对资源的租赁。另一方面,如果计算实体从少于大多数的租赁服务器接收到租赁的授权,则确定计算实体未能获取对资源的租赁。在一些实施例中,在后一种情况下,计算实体可放弃少数已获得的(多个)租赁。
提供本概述以便以简化的形式介绍将在以下的详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。
附图简述
为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中例示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:
图1例示了其中可采用本文描述的原理的示例计算系统;
图2例示了包括多个计算实体的环境,所述多个计算实体可向多个租赁服务器提交请求以便使用已取得的租赁来获得对资源的主租赁;
图3例示了用于尝试获得对资源的主租赁的方法的流程图;
图4例示了用于放弃主租赁的方法的流程图,所述方法在计算实体完成资源并且想要放弃主租赁时应用,以使得该资源可被其他实体使用;以及
图5例示了用于为主租赁的期满作准备的方法的流程图,其发生在计算实体已不能续订租赁而导致主租赁的期满临近时。
详细描述
本文描述的至少一些实施例涉及在多个租赁服务器能够向资源授权租赁的情况下获得资源上的主锁定。计算实体(诸如应用、组件、模块等)通过使租赁请求被发送到至少大多数(并且可能全部)的租赁服务器中的每一个来尝试获得资源上的主租赁。作为响应,计算实体接收对租赁请求的一个或多个响应。如果计算实体从能够向资源授权租赁的租赁服务器中的大多数接收到对租赁的授权,则确定计算实体获取了资源上的主租赁。另一方面,如果计算实体从少于大多数的租赁服务器接收到对租赁的授权,则确定计算实体未能获取资源上的主租赁。在一些实施例中,在后一种情况下,计算实体可放弃少数已获得的(多个)租赁。在本说明书中,在各个租赁服务器向资源授权租赁的情况下,使用术语“租赁”(当没有用术语“主”修饰时)。然而,根据本文所描述的原理,就接收针对单个租赁的租赁本身而言不足以使计算系统对任何租赁采取动作。相反,当接收到足够数量的这些租赁时,计算系统确定它具有资源上的“主租赁”,这允许计算系统对资源采取动作。
将参考图1描述对计算系统的一些介绍性讨论。然后,将参考后续附图来描述其他实施例。
计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理且有形的处理器以及其上能具有可由处理器执行的计算机可执行指令的物理且有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。
如图1所例示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性的、非易失性的、或两者的某种组合。术语“存储器”也可在此用来指示诸如物理存储介质这样的非易失性大容量存储器。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如本文中所使用的,术语“可执行模块”或“可执行组件”可指可在计算系统上执行的软件对象、例程或方法。此处所描述的不同组件、模块、引擎以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。
在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可以存储在计算系统100的存储器104中。计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。
本文中描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本文中描述的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或者可用于存储以计算机可执行指令或数据结构的形式的期望程序代码手段且可由通用或专用计算机访问的任何其他有形介质。
“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括可用于携带计算机可执行指令或数据结构形式的期望程序代码装置并可被通用或专用计算机访问的网络和/或数据链路。上述的组合应当也被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码资料可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可以在网络接口模块(例如,“NIC”)内的RAM中被缓冲,然后最终被传输至计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
图2例示出了包括多个计算实体的环境200,所述多个计算实体可向多个租赁服务器220提交租赁请求以便使用已取得的对资源的租赁来获得对资源的主租赁。作为示例,资源可以是数据库、表、条目、文件、许可、任务或可使用访问控制的任何其他计算资源。
常规的租赁通常允许具有租赁的计算实体对在租赁范围内的资源执行操作。与锁不同,租赁具有期满时间。期满时间通常最初被设置为在获得租赁之后的预定的间隔。此外,在期满时间之前,租赁可被续订,从而推迟期满时间。如果以相对频繁的间隔成功地执行续订,则租赁的期满时间可能被无限期地推迟。然而,根据本文所描述的原理,计算系统不认为自己具有对资源执行操作的许可(即,主租赁),直到其接收到足够数量的租赁。
在该特定示例中,多个计算实体210被例示为包括三个计算实体211至213。然而,省略号214表示可适用本文所描述的较宽泛的原理,而不管计算实体210的数目。可以存在少至一个计算实体,其曾经寻求对资源230的主租赁。然而,当存在可能寻求对资源230的主租赁的多个计算实体时,本文所描述的原理更为有用,因为租赁旨在防止多个计算实体对资源执行不一致的动作。在其中资源230将可公开或广泛获得的一些环境中,可存在可能寻求对资源230的主租赁的可枚举数目的潜在计算实体。
每个计算实体可以是可由诸如图1的计算系统100的计算系统表示的并且能够访问资源的任何实体。例如,计算实体可以是能够在计算系统上运行的进程、线程、模块、组件、对象等。计算实体还可表示整个计算系统,诸如图1的计算系统100。
在该特定示例中,例示了五个租赁服务器221至225。然而,只要存在多个租赁服务器,省略号226就表示本文所描述的较宽泛的原理不限于租赁服务器220的数目。每个租赁服务器220能够向特定的资源230授权租赁。可以如上述针对图1的计算系统100那样来构建并操作租赁服务器220的每一个。
可以存在资源230的任何数量的重复的副本。一个极端是,可以存在资源230的单个副本。或者,每个租赁服务器220可具有资源230的一个重复的副本。无论租赁服务器220的位置如何,本文所描述的原理都将适用。它们可位于单个位置(例如,单个数据中心),或者它们可在不同的数据中心中分布。
在该例示的示例中,存在能够针对资源230授权租赁的五个租赁服务器。然而,同一组租赁服务器也可能对其他资源授权租赁。本文所描述的原理不限于获得针对单个资源的主租赁。此外,不同组的租赁服务器可被用来针对不同的资源授权租赁。因此,本文所描述的原理不限于当获得针对不同资源的主租赁时是否将使用同一组租赁服务器或不同组的租赁服务器。
在本说明书中,将描述其中主租赁是独占主租赁的示例实现。当计算实体具有独占主租赁(诸如写入主租赁)时,没有其他计算实体可具有类似类型的独占主租赁。通常,当计算实体要编辑资源时,该计算实体获得独占租赁。在编辑环境中,不能存在两个计算实体以确保一致性的安全方式同时编辑资源。
然而,还存在其他种类的租赁。例如,存在读取租赁。在许多情况下,期望从资源读取的实体完全可以接受从可能已经经历较新近编辑的资源的最近版本读取。在这种情况下,即使另一实体具有写入锁定,一个计算实体也可获得读取租赁。或者,多个计算实体可在资源上保持并发的读取租赁。还有许多其他类型的可能租赁,诸如1)写入租赁,其中其他读取租赁被禁止,2)写入租赁,其中其他读取租赁被有条件地限制(例如,限于多个读取器、特定的读取器或其他限制)等等。
在下面的描述中,计算实体通过推断出可以基于从多个租赁服务器接收到的多个租赁来安全地假设该计算实体具有主租赁从而获得主租赁。然而,获得的主租赁的类型将取决于所请求的租赁类型。例如,如果计算实体期望读取但不编辑资源230,则计算实体可从租赁服务器请求读取主租赁。接收租赁请求的租赁服务器220作出关于在所请求的资源上授权所请求类型的租赁是否安全的独立决策。然而,如上文所提及的,下面的示例将讨论独占主租赁作为所获得的主租赁的示例。
图3例示了用于尝试获得对资源的主租赁的方法300的流程图。由于方法300可以在图2的环境200的上下文中执行,所以将频繁参考图2和图3来描述方法300。
在确定尝试获得资源的主租赁将被执行后(动作301),启用方法300。例如,在图2的环境200的上下文中,假设一个特定的示例,其中计算实体211确定将尝试获取针对资源230的主租赁。
响应于所述确定(动作301)将尝试针对资源的主租赁,计算实体请求(动作302)在能够向资源授权所请求租赁的至少大多数(并且可能全部)租赁服务器中的每一个上获得针对资源的对应的租赁。例如,假设计算实体211期望用于编辑访问的独占主租赁。计算实体211将导致针对相应租赁的请求被发送到大多数租赁服务器220中的每一个。例如,在存在五个租赁服务器220的情况下,计算实体211将向至少三个(但也许四个或五个)租赁服务器220中的每一个发送租赁请求。在特定示例中,假设租赁服务器向四个租赁服务器221、222、223和224中的每一个发送租赁请求,但不向租赁服务器225发送请求。例如,计算实体211也许知道租赁服务器225停机以进行维护。
因此,计算实体可从一个或多个租赁服务器中的每一个接收回响应。然后,计算实体可基于接收到的响应来确定其是否已成功获取主租赁。例如,如果计算实体从多个租赁服务器中的至少大多数接收到授权的租赁(在判定框303中为“是”),则计算实体可确定成功获得主租赁(动作304)。另一方面,如果计算实体没有接收到来自大多数租赁服务器授权的租赁(判定框303中的“否”),则计算实体确定未成功获得主租赁(动作305)。
例如,在特定示例中,回想计算实体211向四个租赁服务器221、222、223和224中的每一个提交租赁请求。现在假设计算实体211被四个租赁服务器221、222、223和224中的每一个授权所请求的租赁,或者可能已经由三个租赁服务器221、222和223中的每一个授权了所请求的租赁。在任一情况下,计算实体211确定获取了资源230的主租赁。
这是在独占主租赁(和相应地所请求的独占租赁)的情况下的安全确定,因为不多于一个计算实体可以从能够授权该租赁的大多数租赁服务器成功地获得资源上的并发租赁的授权。例如,假设在计算实体211正请求资源230上的独占主租赁的同时,计算实体212同样想要资源230上的独占主租赁。如果大多数租赁服务器220已向计算实体211授权了独占租赁,则大多数租赁服务器220将运用逻辑来防止将非一致的独占租赁授权给计算实体212。因此,计算实体212至多将从少数租赁服务器220成功获得租赁的授权,并因此将不能获得主租赁。因此,假设只有遵守多数决定原则过程的那些计算实体才能够获得租赁的授予,于是一个安全的假设便是,在从能够授权资源的独占租赁的租赁服务器中的大多数接收到针对该资源的大多数独占租赁后,可以获得主租赁。
获得主租赁的计算实体将定期尝试续订每一个所获得的租赁(动作306)。每当通过能够授权资源上的租赁的大多数租赁服务器续订租赁,主租赁就保持在原处,并且将保持在原处至少直到从大多数租赁服务器获得的最近租赁的期满间隔为止(或直到主租赁被明确放弃)。
例如,假设租赁在2.5小时内有效,并且每小时请求续订。这对于尝试续订租赁的周期相比租赁的期满间隔更加频繁而言是有帮助的,以便提高主租赁能够保持较长时间段的机会,而不管任何给定的租赁服务器的性能损失。
在该示例中,假设计算实体211在午夜首先从租赁服务器221、222和223获取租赁。这意味着计算实体211在午夜获取到主租赁。主租赁被保证直到上午2:30,除非主租赁在该时间之前被放弃。
在上午1:00,计算实体211根据动作306尝试通过租赁服务器221、222和223续订租赁。在从所有租赁服务器221、222和223(即五个租赁服务器220中的大多数)接收到续订的情况下,主租赁保持在原处。现在,主租赁被保证直到上午3:30,除非主租赁在该时间之前被放弃。
在上午2:00,计算实体221再次尝试通过租赁服务器221、222和223续订租赁。现在,计算实体221仅通过租赁服务器221和222接收续订,租赁服务器221和222仅是多个租赁服务器220中的少数。然而,由于尚未到上午3:30,所以主租赁仍保持在原处,但主租赁的期满时间仍在上午3:30。
在上午3:00,计算实体221再次尝试通过租赁服务器221、222和223续订租赁。如果计算实体211随后通过所有三个租赁服务器221、222和223接收到续订,则主租赁保持在原处。现在,主租赁被保证直到上午05:30,除非主租赁在该时间之前被放弃。另一方面,在上午3:00续订时,如果只有两个租赁服务器221和222将授权租赁续订的话,则主租赁保持在原处直到上午3:30,此后主租赁不再能被假设成可用于计算实体221。
为了提高对主租赁的访问的一致性以及提高租赁服务器故障和通信失败时的故障恢复性,计算实体还可尝试(动作307)从不对应于最初所获得的租赁的租赁服务器220的那些租赁服务器处获得租赁。来检查相同的示例,探寻如何获得改进的故障恢复性。
再次,假设租赁在2.5小时内有效,并且每小时请求续订。如先前的示例,假设计算实体211在午夜首先从租赁服务器221、222和223获取租赁。租赁服务器224在午夜不工作,并且租赁服务器225为了维护而停机。这意味着计算实体211在午夜获取到主租赁。主租赁被保证直到上午2:30,除非主租赁在该时间之前被放弃。
在上午1:00,计算实体211根据动作306尝试通过租赁服务器221、222和223续订租赁。然而,计算实体221还尝试从租赁服务器224和225获得租赁。租赁服务器225现在完成了维护,并且计算实体211这次的确向租赁服务器225发送租赁请求。因此,除了通过租赁服务器221、222和223续订租赁之外,计算实体221还从租赁服务器225接收到租赁的授权。然而,租赁服务器224却不响应,因为它仍然不工作。因此,计算实体221已经从五个租赁服务器220中的四个(即绝对多数)接收到租赁的授权。因此,主租赁被保证直到上午3:30,除非主租赁在该时间之前被放弃。
在上午2:00,计算实体221再次尝试通过租赁服务器221、222、223和225续订租赁。现在,计算实体221通过从服务器221、222和225接收到续订。如在先前的示例,租赁服务器223没有响应上午2:00的续订请求。然而,另外三个租赁服务器(大多数)的确作出了响应。因此,主租赁仍然保持在原处,并且不会早于上午4:30到期,除非在此之前被放弃。注意,尽管租赁服务器224在上午2:00仍保持不响应,但这是真的。
在上午3:00,计算实体221再次尝试通过租赁服务器221、222、223和225续订租赁(动作306),并且还尝试从租赁服务器224获得主租赁。仅租赁服务器221和222授权续订。租赁服务器223的停机时间被延长。此外,租赁服务器225的维护出现了导致其不响应的问题。然而,计算实体从租赁服务器224接收到租赁的授权。因此,主租赁被保证直到上午5:30,除非主租赁在该时间之前被放弃。因此,不管一些租赁服务器的瞬时问题,计算实体甚至都从未被置于主租赁不能被延长的境地,并且当然没有被置于逼近期满时间的境地。相反,期满时间被简单地延后,而不会有主租赁丢失的风险。
在这个例子中,所获得的租赁的续订的周期与试图从尚未授权过租赁的租赁服务器获得租赁的周期相同。在每种情况下,在该实施例中的周期为一小时。然而,这些周期可以不同。此外,该周期不需要被固定。作为示例,延长主租赁期满的续订已不成功的时间越长,周期可能就变得越来越频繁。
此时,仍推迟对该方法的描述直到确定没有获得主租赁之后(在图3中的动作305之后)。该描述将在讨论图4和图5之后提出。图4例示了用于放弃主租赁的方法的流程图,所述方法在计算实体完成资源并且想要放弃主租赁以使得该资源可被其他实体使用时应用。图5例示了用于为主租赁的期满作准备的方法500的流程图。这发生在计算实体已不能续订租赁时,导致主租赁的期满临近。
根据图4的方法400,计算实体确定将通过在多个租赁服务器中的至少大多数上放弃租赁来放弃主租赁(动作401)。作为示例,计算实体可确定与资源相关联的所有获得的租赁将被放弃。作为响应,计算实体标识(动作402)一个或多个其他计算实体同样是资源上的租赁的主动请求者。结果,计算实体向租赁请求者中的至少另一个通知放弃(动作403),并且与租赁服务器通信以放弃租赁(动作404)。
例如,假设资源230为计算实体211、212和213中的每一个高度所需。再次,假设租赁在2.5小时内有效,并且每小时请求续订。如先前的示例,假设计算实体211在午夜首先从租赁服务器221、222和223获取租赁。在该示例中,假设计算实体211不能从租赁服务器224获得对租赁的授权,因为租赁服务器224响应于在上午12:01的租赁请求而向计算实体212授权租赁。此外,假设计算实体211不能从租赁服务器225获得对租赁的授权,因为租赁服务器225响应于在上午12:02的租赁请求而向计算实体212授权了租赁。在这种情况下,在图3的动作304中,计算实体211确定其具有主租赁,并且在动作305中,计算实体212和223各自确定它们不具有主租赁。
现在假设计算实体211其实只需要5分钟的主租赁。在上午12:05,计算实体确定要放弃主租赁(动作401),确定计算实体212和213都是资源上的租赁的主动请求者(动作402),向计算实体212或213中的至少一个发送即将发生的或最近放弃的通知(动作403),并且还通过与适当的租赁服务器通信来放弃租赁(动作404)。然后,计算实体212可在通知之后不久以及放弃之后不久发送租赁请求,从而改善对资源的访问以及资源230的利用效率。计算实体211可应用策略来确定向计算实体212或213中的哪一个(或两者)发送通知,是否一个在另一个之后通知等等。
图5例示了用于为主租赁的期满正准备的方法500的流程图。该方法当计算实体检测到(动作501)租赁服务器的至少大多数租赁将期满或已期满时发生。例如,就拿主租赁设置为在上午3:30到期的先前示例的情形来说。回想,计算实体211最初在午夜从租赁服务器221、222和223获取租赁,并且能够在上午1:00续订这些租赁,从而将主租赁的期满时间延长到上午3:30(在该时间之前没有放弃)。计算实体211不能在上午2:00或上午3:00续订大多数的租赁,因此计算实体211可以计划在上午3:30之后主租赁将不再可用。
在确定至少大多数租赁将会或者已经期满(动作501)之后,计算实体标识主动请求租赁(动作502),并且向主动请求者通知租赁的可用性(动作503)。例如,假设计算实体211在上午3:30得知计算实体212已经在请求资源230上的租赁。然后,计算实体211可向计算实体212通知资源上的租赁的可用性。这再次导致计算实体212来请求并且可能快速获取大多数租赁以及资源230上的主租赁。因此,资源的利用效率得到提高。
到目前为止,已经描述了获得大多数所请求的租赁的情况(在判定框303中为“是”)。现在,将描述其中获得了少于大多数(即,少数)租赁的实施例。当然,在仅接收少数租赁的情况下,计算实体确定没有获得到主租赁(动作305)。在这种情况下,计算实体可确定(动作308)由于未能获得主租赁,所获得的少数租赁中的至少一个(并且可能全部)将被放弃。然后,计算实体放弃所获得的少数租赁(动作309)。
例如,再次假设资源230为计算实体211、212和213中的每一个高度所需。再次,假设租赁在2.5小时内有效,并且每一小时请求续订。如先前的示例,假设计算实体211在午夜首先从租赁服务器221、222和223获取租赁。在该示例中,假设计算实体211不能从租赁服务器224获得对租赁的授权,因为租赁服务器224响应于在上午12:01的租赁请求而向计算实体212授权租赁。此外,假设计算实体211不能从租赁服务器225获得对租赁的授权,因为租赁服务器225响应于在上午12:02的租赁请求而向计算实体213授权了租赁。在图3的情况下,计算实体212将放弃从租赁服务器224获得的租赁(在由计算实体212执行时的动作308)。同样,计算实体213将放弃从租赁服务器225获得的租赁(同样是当由计算实体213执行时的动作308)。因此,当计算实体211试图在上午1:00获取租赁时(在动作307中),计算实体211将更有可能从租赁服务器214和215接收授权的租赁,并且由此更有可能利用动作307的意图来改善所获得的主租赁对租赁服务器故障的故障恢复性。
作为进一步的改进,计算实体可向主租赁持有者通知放弃(动作310)。在前面的示例中,这将允许持有主租赁的计算实体211在上午1:00之前知晓可以从租赁服务器224和225新获得租赁。因此,计算实体211可比下一计划时间早得多地从租赁服务器224和225请求租赁。这提高了主租赁持有者在获得主租赁后不必激烈竞争以获得大多数租赁的机会。这提高了主租赁的稳定性,并且同样提高了主租赁对一个或多个租赁服务器的不可用的故障恢复性。
因此,本文描述的原理提供了用于在具有能够在该资源上授权租赁的多个租赁服务器的资源上获取控制租赁的应变和稳定机制。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。
Claims (16)
1.一种用于获得对资源的主租赁的方法,所述方法包括:
计算实体向多个租赁服务器中的至少大多数中的每一个租赁服务器发送获得针对所述资源的租赁的请求的动作,所述每一个租赁服务器能够授权对所述资源的租赁;
所述计算实体从一个或多个租赁服务器中的每一个接收授权租赁的动作;
确定是否从所述多个租赁服务器中的大多数接收到一个或多个授权租赁的动作;以及
响应于所发送的请求,当所述计算实体从所述多个租赁服务器中的至少大多数接收到所述一个或多个授权租赁时,确定所述计算实体获得针对所述资源的主租赁的动作。
2.根据权利要求1所述的方法,其特征在于,所述请求被发送到所述多个租赁服务器中的全部。
3.根据权利要求1所述的方法,其特征在于,进一步包括:
通过在所述多个租赁服务器中的至少大多数上放弃所述租赁来确定所述主租赁将被放弃或已被放弃的动作。
4.根据权利要求3所述的方法,其特征在于,进一步包括:
向至少一个其他租赁请求者通知放弃的动作。
5.根据权利要求1所述的方法,其特征在于,进一步包括:
检测所述多个租赁服务器的租赁中的至少大多数将立即期满或已经期满的动作。
6.根据权利要求5所述的方法,其特征在于,进一步包括:
向至少一个其他租赁请求者通知期满的动作。
7.根据权利要求1所述的方法,其特征在于,进一步包括:
定期尝试续订每个所获得的租赁的动作。
8.根据权利要求1所述的方法,其特征在于,所获得的租赁仅来自所述多个租赁服务器中的大多数,所述方法还包括:
定期尝试从所述多个租赁服务器中不对应于最初所获得的租赁的那些租赁服务器获得租赁的动作。
9.根据权利要求8所述的方法,其特征在于,其中尝试获得所述租赁的周期比在没有获得主租赁的情况下所使用的最小时间更频繁,并且随后的放弃被指定为在所述最小时间之后发生。
10.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
在所述发送动作之前,确定将针对资源尝试主租赁的动作。
11.一种用于尝试获得对资源的主租赁的方法,所述方法包括:
计算实体向多个租赁服务器中的至少大多数中的每一个租赁服务器发送获得针对所述资源的租赁的请求的动作,所述每一个租赁服务器能够授权针对所述资源的租赁;
所述计算实体从一个或多个租赁服务器中的每一个接收授权租赁的动作;
确定是否从所述多个租赁服务器中的大多数接收到一个或多个授权租赁的动作;
确定由于在所述多个租赁服务器中的少数中获得授权租赁因而所述计算实体没有获得针对所述资源的主租赁的动作;以及
确定所获得的租赁中的少数中的至少一个租赁由于未能获得所述主租赁而将被放弃或已被放弃的动作。
12.如权利要求11所述的方法,其特征在于,还包括:
向至少一个其他租赁请求者通知放弃的动作。
13.根据权利要求11所述的方法,其特征在于,所获得的租赁中的少数中的所述至少一个租赁是所获得的租赁中的所述少数的全部。
14.如权利要求11所述的方法,其特征在于,还包括:
通过释放所获得的租赁中的少数中的所述至少一个租赁而放弃的动作。
15.如权利要求14所述的方法,其特征在于,还包括:
确定所述放弃动作的时间的动作,所述时间是至少最小时间。
16.根据权利要求15所述的方法,其特征在于,所述时间被随机选择。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/312,107 | 2014-06-23 | ||
US14/312,107 US9742692B2 (en) | 2014-06-23 | 2014-06-23 | Acquiring resource lease using multiple lease servers |
PCT/US2015/036627 WO2015200117A1 (en) | 2014-06-23 | 2015-06-19 | Acquiring resource lease using multiple lease servers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106462472A CN106462472A (zh) | 2017-02-22 |
CN106462472B true CN106462472B (zh) | 2020-12-11 |
Family
ID=53541911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580033737.6A Active CN106462472B (zh) | 2014-06-23 | 2015-06-19 | 使用多个租赁服务器获取资源租赁 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9742692B2 (zh) |
EP (1) | EP3158446B1 (zh) |
CN (1) | CN106462472B (zh) |
WO (1) | WO2015200117A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10114712B2 (en) * | 2016-06-29 | 2018-10-30 | Microsoft Technology Licensing, Llc | Failure detection via implicit leases in distributed computing systems |
US10055315B2 (en) | 2016-06-29 | 2018-08-21 | Microsoft Technology Licensing, Llc | Failure monitoring in distributed computing systems |
CN109979109B (zh) * | 2019-03-13 | 2021-04-27 | 上海网之易璀璨网络科技有限公司 | 租赁服务器的处理方法、处理器、终端及存储介质 |
US10860387B2 (en) | 2019-03-15 | 2020-12-08 | Red Hat, Inc. | Dynamic distributed work allocation |
US11372690B2 (en) * | 2019-10-03 | 2022-06-28 | Microsoft Technology Licensing, Llc | Multi-phase distributed task coordination |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567115A (zh) * | 2010-12-23 | 2012-07-11 | 伊姆西公司 | 基于云的系统中的信息技术资源分配和利用跟踪 |
CN103164811A (zh) * | 2011-12-14 | 2013-06-19 | 苹果公司 | 用于资产租赁管理的系统和方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6237009B1 (en) * | 1996-10-11 | 2001-05-22 | Sun Microsystems, Inc. | Lease renewal service |
US5999712A (en) * | 1997-10-21 | 1999-12-07 | Sun Microsystems, Inc. | Determining cluster membership in a distributed computer system |
US7774469B2 (en) * | 1999-03-26 | 2010-08-10 | Massa Michael T | Consistent cluster operational data in a server cluster using a quorum of replicas |
US6401120B1 (en) * | 1999-03-26 | 2002-06-04 | Microsoft Corporation | Method and system for consistent cluster operational data in a server cluster using a quorum of replicas |
US6513084B1 (en) | 1999-06-29 | 2003-01-28 | Microsoft Corporation | Arbitration of state changes |
US6862613B1 (en) * | 2000-01-10 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus for managing operations of clustered computer systems |
US7117246B2 (en) * | 2000-02-22 | 2006-10-03 | Sendmail, Inc. | Electronic mail system with methodology providing distributed message store |
US6950874B2 (en) * | 2000-12-15 | 2005-09-27 | International Business Machines Corporation | Method and system for management of resource leases in an application framework system |
US6708175B2 (en) * | 2001-06-06 | 2004-03-16 | International Business Machines Corporation | Program support for disk fencing in a shared disk parallel file system across storage area network |
US7194543B2 (en) * | 2001-11-12 | 2007-03-20 | Mci, Llc | System and method for creating and managing survivable, service hosting networks |
US7246255B1 (en) | 2003-01-17 | 2007-07-17 | Unisys Corporation | Method for shortening the resynchronization time following failure in a computer system utilizing separate servers for redundancy |
TWI416901B (zh) * | 2005-11-30 | 2013-11-21 | Ibm | 故障容忍之異動處理系統 |
US8560524B2 (en) | 2008-10-30 | 2013-10-15 | Hewlett-Packard Development Company, L.P. | Allocating priorities to prevent deadlocks in a storage system |
US8914469B2 (en) * | 2009-12-11 | 2014-12-16 | International Business Machines Corporation | Negotiating agreements within a cloud computing environment |
US8688666B1 (en) | 2010-08-27 | 2014-04-01 | Amazon Technologies, Inc. | Multi-blob consistency for atomic data transactions |
US8694647B2 (en) | 2011-03-18 | 2014-04-08 | Microsoft Corporation | Read-only operations processing in a paxos replication system |
US8595546B2 (en) * | 2011-10-28 | 2013-11-26 | Zettaset, Inc. | Split brain resistant failover in high availability clusters |
US8930952B2 (en) | 2012-03-21 | 2015-01-06 | International Business Machines Corporation | Efficient lock hand-off in a symmetric multiprocessing system |
-
2014
- 2014-06-23 US US14/312,107 patent/US9742692B2/en active Active
-
2015
- 2015-06-19 CN CN201580033737.6A patent/CN106462472B/zh active Active
- 2015-06-19 EP EP15736712.9A patent/EP3158446B1/en active Active
- 2015-06-19 WO PCT/US2015/036627 patent/WO2015200117A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567115A (zh) * | 2010-12-23 | 2012-07-11 | 伊姆西公司 | 基于云的系统中的信息技术资源分配和利用跟踪 |
CN103164811A (zh) * | 2011-12-14 | 2013-06-19 | 苹果公司 | 用于资产租赁管理的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106462472A (zh) | 2017-02-22 |
EP3158446A1 (en) | 2017-04-26 |
US9742692B2 (en) | 2017-08-22 |
US20150372946A1 (en) | 2015-12-24 |
WO2015200117A1 (en) | 2015-12-30 |
EP3158446B1 (en) | 2018-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8352658B2 (en) | Fabric based lock manager service | |
CN106462472B (zh) | 使用多个租赁服务器获取资源租赁 | |
RU2595755C2 (ru) | Восстановление после сбоя кластерного клиента | |
US7448077B2 (en) | File level security for a metadata controller in a storage area network | |
US9218299B2 (en) | Recovering data segment contents in a distributed shared memory | |
US8095657B2 (en) | First thread lock management for distributed data systems | |
US10437788B2 (en) | Automatic detection, retry, and resolution of errors in data synchronization | |
CN107077403B (zh) | 用于用户授权的备份服务器、方法及计算机程序产品 | |
US20030220923A1 (en) | Mechanism for running parallel application programs on metadata controller nodes | |
WO2017114262A1 (zh) | 一种管理分布式存储系统的方法及分布式存储系统 | |
US8140622B2 (en) | Parallel metadata service in storage area network environment | |
US20030220943A1 (en) | Recovery of a single metadata controller failure in a storage area network environment | |
KR20190070332A (ko) | 내결함성 자동 시크릿 로테이션 기법 | |
US11240302B1 (en) | Live migration of log-based consistency mechanisms for data stores | |
US11138198B2 (en) | Handling of unresponsive read only instances in a reader farm system | |
US20210382636A1 (en) | Customizable lock management for distributed resources | |
EP2989744B1 (en) | Encryption solution for protecting file systems in multi-host clusters | |
CN114650292B (zh) | 一种跨域数据传输方法、装置及存储介质 | |
KR20230174931A (ko) | 다중 운영 체제를 구비한 시스템 및 그 동작 방법 | |
CN117632523A (zh) | 分布式锁的管理方法、装置、计算设备集群及存储介质 | |
CN115202884A (zh) | 基于轮询的高性能系统的加解读写锁的方法及应用 | |
WO2017171810A1 (en) | Multi-credential authentication |
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 |