CN116670662A - 在分布式文件系统中管理锁协调器重新平衡 - Google Patents
在分布式文件系统中管理锁协调器重新平衡 Download PDFInfo
- Publication number
- CN116670662A CN116670662A CN202180083039.2A CN202180083039A CN116670662A CN 116670662 A CN116670662 A CN 116670662A CN 202180083039 A CN202180083039 A CN 202180083039A CN 116670662 A CN116670662 A CN 116670662A
- Authority
- CN
- China
- Prior art keywords
- lock
- locks
- node
- group
- thread
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/604—Details relating to cache allocation
Abstract
本文中提供了在分布式文件系统中管理锁协调器重新平衡。节点设备的集群的节点设备可以包括处理器和存储可执行指令的存储器,可执行指令在由处理器执行时,促进操作的执行。操作可以包括确定节点设备的集群之间的群组改变的发生以及基于群组改变的发生来执行探测函数。此外,操作还包括基于指示第一锁的重新断言的探测函数的结果重新断言锁的群组的第一锁。锁的群组的除了第一锁之外的第二锁不基于探测函数的结果而被重新断言。节点设备的集群可以作为分布式文件系统操作。
Description
对相关申请的交叉引用
本申请要求对2020年12月17日提交并且以“在分布式文件系统中管理锁协调器重新平衡”命名的第17/124,694号美国非临时申请的优先权,其在本文中全文引入。
技术领域
主题公开总体上关于分布式文件系统。更具体地,主题公开关于在分布式文件系统中管理锁协调器重新平衡,例如,在锁协调器重新平衡的过程中促进延迟的锁断言和高速缓存无效。
背景技术
分布式存储系统和/或对象存储系统可以在实现高扩展性,可用性,以及服务性的同时提供各种各样的存储设备。分布式文件系统(还被称为分布式存储系统和/或分布式对象存储系统)的操作可以包括锁机制以维持相关联的共享文件的数据一致性。在对分布式文件系统中的节点做出了改变(节点被移除、节点被添加、第一节点被移除并且第二节点被添加,等等)时。锁的协调需要在分布式文件系统内被重新分配。在该过程中,分布式文件系统可以被临时锁定直到群组改变过程完成。因此,挂起操作将会被暂停,这影响分布式文件系统的性能,导致负面的端用户体验。
上面描述的关于传统存储系统的上下文仅仅旨在提供当前技术的概述并且不旨在穷举。基于以下详细描述的审查,其他上下文描述,以及本文中描述的各种非限制性实施例的一些实施例的对应的优势可以变得更加明显。
发明内容
下文呈现所公开的主题的简化概要以提供对各种实施例的一些方面的基本理解。该概述不是各种实施例的广泛概述。其既不旨在标识各种实施例的关键或重要的元素,也不旨在描绘各种实施例的范围。其唯一目的是以流线型形式呈现本公开的一些概念,作为稍后呈现的更详细描述的前序。
在实施例中,在文本中提供的是节点设备的集群的第一节点设备。第一节点设备可以包括处理器和存储可执行指令的存储器,可执行指令在由处理器执行时,促进操作的执行。操作可以包括确定节点设备的集群之间的群组改变的发生并且基于群组改变的发生来执行探测函数。此外,操作可以包括基于指示第一锁的重新断言的探测函数的结果来重新断言锁的群组的第一锁。锁的群组的、除了第一锁之外的第二锁不基于探测函数的结果而被重新断言。节点设备的集群可以作为分布式文件系统操作。
根据示例,重新断言第一锁可以包括确定锁丢失回调线程使用第一锁的相应锁并且与线程相关联的相应高速缓存可用于无效。
在一些实现中,操作可以包括在重新断言第一锁之前,响应于探测函数而接收数值的集合。数值的集合的第一数值指示没有高速缓存要被无效。数值的集合的第二数值指示锁丢失回调线程不利用锁并且与线程相关联的相应高速缓存可用于无效。数值的集合的第三数值指示锁丢失回调线程利用锁并且与线程相关联的相应高速缓存可用于无效。对这些实现进一步地,操作可以包括确定第二锁与第一数值和第二数值相关联以及确定第一锁与第三数值相关联。
根据一些实现,确定群组改变的发生可以包括确定现有节点设备从节点设备的集群的移除。备选地,确定群组改变的发生可以包括确定新节点设备向节点设备的集群的添加。在一些情况下,确定新节点设备向节点设备的集群的添加可以包括确定现有节点设备的移除和新节点设备的添加两者。
在示例中,在两个线程在相同的资源上保持排它锁时不兼容锁被创建。在另一示例中,执行探测函数可以包括在绕过节点设备的集群中、包括的协调器节点时执行区域函数。根据另一示例,操作可以包括丢弃与第二锁相关联的块高速缓存和索引节点高速缓存。
根据一些实现,锁的群组的锁与节点设备的集群之间的锁协调器节点相关联。对这些实现进一步地,操作包括使所定义的锁类型能够追踪,所定义的锁类型针对来自锁协调器节点的每个资源而被请求。
另一关于方法的实施例可以包括由包括处理器和节点设备的群组的部分群组的第一节点设备查明群组改变已经在节点设备的群组处发生。此外,方法可以包括基于指示第一锁的重新断言的探测函数的结果,由第一节点设备重新断言锁的群组的第一锁。探测函数基于查明群组改变已经发生而被执行。方法还可以包括基于指示第二锁的重新断言不被需要的探测函数的结果,由第一节点设备丢弃锁的群组的第二锁。第一锁和第二锁是锁的群组的不同锁。
根据一些实现,重新断言第一锁可以包括确定锁丢失回调线程使用第一锁的相应锁并且与线程相关联的相应高速缓存可用于无效。
在一些实现中,丢弃第二锁可以包括确定锁丢失回调线程不使用第一锁的相应锁并且与线程相关联的相应高速缓存可用于无效。备选地或附加地,丢弃第二锁可以包括确定没有高速缓存要被无效。
方法可以包括,在重新断言之前,执行探测函数包括基于一个或多个区域函数的执行来绕过节点设备的群组中包括的协调器节点。在示例中,锁的群组是分布式文件系统中的排它锁。
群组改变可以包括添加到节点设备的群组的附加节点和节点从节点设备的群组的移除中的至少一个。
另一实施例关于非暂态机器可读介质,包括可执行指令,可执行指令在由处理器执行时,促进操作的执行。操作可以包括基于确定群组改变在节点设备的集群处正在发生来执行探测函数,节点设备的集群被配置为分布式文件系统操作。探测函数评估相应锁和资源的群组的相关联的高速缓存。操作还可以包括基于探测函数的结果来确定相应锁的锁的第一集合要被重新断言。此外,操作可以包括重新断言锁的第一集合,其中相应锁的、与锁的第一集合不同的锁的第二集合不基于探测函数的结果而被重新断言。
重新断言锁的第一集合可以包括确定锁丢失回调线程使用锁的第一集合的相应锁并且与线程相关联的相应高速缓存可用于无效。执行探测函数可以包括在绕过节点设备的集群中包括的协调器节点时执行区域函数。
根据一些实现,在重新断言锁的第一集合之前,操作包括响应于探测函数而接收数值的集合。数值的集合的第一数值指示没有高速缓存要被无效。数值的集合的第二数值指示锁丢失回调线程不利用锁并且与线程相关联的相应高速缓存可用于无效。数值的集合的第三数值指示锁丢失回调线程利用锁并且与线程相关联的相应高速缓存可用于无效。此外,操作可以包括确定锁的第二集合与第一数值和第二数值相关联以及确定锁的第一集合与第三数值相关联。
为了完成前述和相关目的,公开的主题随后包括以下更充分地描述的特征中的一个或多个特征。下面的描述和附图详细地阐述本主题的某些说明性方面。然而,这些方面仅指示可以使用主题的原理的各种方式中的一些方式。在结合附图考虑时,公开的主题的其他方面,优点和新颖特征由下面的详细描述将变得明显。还应当理解,该详细描述可以包括除了本概要中描述的实施例之外的附加或备选实施例。
附图说明
各种非限制性实施例参考附图被进一步描述,其中:
图1图示了根据本文中描述的一个或多个实施例的计算设备的示例集群;
图2A图示了根据本文中描述的一个或多个实施例的、在群组改变之前分布式文件系统中原始集群的资源分配的示例非限制性框图;
图2B图示了根据本文中描述的一个或多个实施例的、在节点已经被添加之后分布式文件系统中所改变的集群的资源分配的示例非限制性框图;
图2C图示了根据本文中描述的一个或多个实施例的、在节点已经被移除之后分布式文件系统中所改变的集群的资源分配的示例非限制性框图;
图3图示了根据本文中描述的一个或多个实施例的、针对在群组改变之后应当被满足的延迟的锁重新断言的条件的示例非限制性计算机实现的方法的流程图;
图4图示了根据本文中描述的一个或多个实施例的、管理锁协调器重新平衡的示例非限制性计算机实现的方法的流程图;
图5图示了根据本文中描述的一个或多个实施例的、在群组改变之后实现延迟的锁断言和高速缓存无效的示例非限制性计算机实现的方法的流程图;
图6图示了根据本文中描述的一个或多个实施例的、在群组改变之后选择性地重新断言锁的示例非限制性计算机实现的方法的流程图;
图7图示了根据本文中描述的一个或多个实施例的、在群组改变之后重新断言锁的第一集合和不重新断言锁的第二集合的示例非限制性计算机实现的方法的流程图;
图8图示了根据本文中描述的一个或多个实施例的、用于在分布式文件系统中管理锁资源的示例非限制性节点设备。
图9图示了在其中文本中描述的一个或多个实施例可以被促进的示例非限制性计算环境。
图10图示了在其中文本中描述的一个或多个实施例可以被促进的示例非限制性网络环境。
具体实施方法
现在下文中参考示出了示例实施例的附图来更全面地描述一个或多个实施例。在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对各种实施例的透彻理解。然而,可以实践各种实施例而没有这些具体细节。在其他实例中,以框图形式示出了公知的结构和设备,以促进描述各种实施例。
示例实施例指向在锁协调器重新平衡的过程中促进延迟的锁断言和高速缓存无效,例如基于群组改变。如在本文中描述的,基于群组改变的检测,基于是否有高速缓存要无效,以及如果有高速缓存要无效则是否锁丢失回调线程需要锁来无效高速缓存来返回数值的群组的一个的探测函数可以被执行。如果锁丢失回调线程需要锁来无效高速缓存,锁可以被重新断言。否则,锁不被重新断言。
可以选择性地引入本文中公开的锁重新断言技术的一个示例计算平台是由Inc提供的ISILON/>集群。可以理解的是/>集群是很多可选的集群计算技术的一个技术,其中的任何集群计算技术可以引入本公开的教导。
图1图示了计算设备的示例集群,根据本文中描述的一个或多个实施例。图1包括数据节点设备的集群102,在图1中指代存储节点104(1)、104(2)…104(M),其中M是正整数。每个存储节点104(1)、104(2)…104(M)可以包括计算设备。存储节点104(1)、104(2)…104(M)可以被配置为响应于来自客户端108的请求而服务对象。进一步地,通常存储节点104(1)、104(2)…104(M)中的一个节点可以托管集群控制器虚拟机(未在图1中示出),使该节点成为管理集群102的集群控制器节点。存储节点104(1)、104(2)…104(M)可以经由包括接口和协议(例如但不限于,以太网块106)的合适的数据通信链接相互耦合。
客户端108可以向集群102发送数据系统相关的请求,客户端102通常可以被配置为一个大型对象命名空间。集群102可以维持无限制数目的对象(例如,高达万亿的对象或更多)。对于该端,节点例如存储节点104(2)通常包括端口112,客户端108通过端口112连接到集群102。针对请求经由各种协议提供示例端口112,协议包括但不限于SMB(服务器消息块)、FTP(文件传输协议)、HTTP/HTTPS(超文本传输协议),以及NFS(网络文件系统);进一步地,SSH(安全外壳)允许例如管理相关的请求。
每个节点,诸如节点104(2),可以包括操作系统114的实例(例如,或其他操作系统)。每个节点,诸如节点104(2),还可以包括CPU 112,RAM 124,以及存储设备例如磁盘126。RAM 124和磁盘126可以包括,例如,易失性存储器、非易失性存储器、硬盘驱动、固态驱动或其他类型的存储设备。进一步地,在多个存储节点104(1)至104(M)处的RAM 124和磁盘126,以及附属于集群102的其他存储设备可以用于共同支持为集群102提供共享存储位置的逻辑磁盘。
需要注意的是集群部署可以是任何大小。取决于特别的组织的需求,一些集群可以包括五个或更少的节点,而大型集群可以包括大得多的数目的节点。在本文中公开的技术可以被包括在任何大小的集群中。
在非限制性示例中,在群组改变的过程中,分布式文件系统在发起器高速缓存大小与锁协调器重新平衡之间具有张力。大型高速缓存改进文件系统操作期间的延迟。然而,发起器高速缓存中的每个项由来自双层锁系统的锁保护,该双层锁系统高速缓存在发起器节点上。在锁协调器重新平衡的过程中,新的锁协调器必须被通知这些被高速缓存的锁的每一个锁。这称为在节点上重新断言被高速缓存的锁。大量数目的被高速缓存的锁可以导致群组改变期间不可接受的系统挂起(例如,系统被临时锁定)。在本文中提供的实施例试图通过针对几乎所有锁来延迟锁通知直到群组改变已经完成之后来克服上面记录的挑战。这允许在降低群组改变时间的同时增加发起器高速缓存大小。
在更多的细节中,实现双层分布式锁定系统(称为“lk”)。双层分布式锁定系统意味着针对资源的锁由给定节点(称为协调器)协调,协调器可以代表节点(称为发起器)上的线程向发起器节点请求锁。因此,在线程要求锁以执行在资源上的工作时,请求可能不仅仅需要前往它的本地发起器,还需要在锁可以被授予并且线程可以被解除之前从节点被发送到针对该资源的集群范围的协调器。
图2A图示了根据本文中描述的一个或多个实施例的在群组改变之前分布式文件系统中原始集群200的资源分配的示例非限制性框图。该示例图示了在群组改变之前的四节点集群(第一节点、第二节点、第三节点,以及第四节点)。每个节点的大小表示节点的资源的数目。然而,这仅仅是为了示例意图并且分布式文件系统不限于四节点和针对每个节点图示的相应数目的资源。此外,针对每个节点可以评估多个资源,其可以取决于节点的存储空间能力、节点的处理资源,节点的高速缓存存储和/或系统存储资源,等等。因此,一些节点相比处理更少资源的其他节点可以处理更多用于协调锁的责任(例如,协调更多的锁)。
图2B图示了根据本文中描述的一个或多个实施例的在节点已经被添加之后分布式文件系统中所改变的集群202的资源分配的示例非限制性框图。更具体地,图2B图示了节点已经被添加到原始集群200之后的资源分配。在该情况下,第五节点已经被添加。虽然被图示为添加单个节点,在一些情况下可以添加多于一个节点。
图2C图示了根据本文中描述的一个或多个实施例的、在节点已经被移除之后分布式文件系统中所改变的集群204的资源分配的示例非限制性框图。更具体地,图2C图示了节点已经从原始集群200被移除之后的资源分配。在该情况下,第六节点已经被移除。虽然被图示为移除单个节点,在一些情况下可以移除多于一个节点。进一步地,根据一些实现,一个或多个节点可以被添加和/或一个或多个节点可以从原始集群(或后续集群)被移除。之前分配给被移除节点的资源可以被重新分配给剩余节点。
传统地,已经考虑了针对群组改变的调整的各种方式。例如,在节点停止运行时,保持运行的协调器上的任何锁不被移动的情况下,已经应用了一致性哈希。一致性哈希的实现可以减少必须被发送的锁通知的数目。在另一示例中,在通知过程期间,可以丢弃在高速缓存他们自身时,当前未保护其他高速缓存状态的任何锁。针对群组改变的调整的另一方式是排空服务(drain service)。在群组改变之前,利用排空服务,显著地降低了被高速缓存的数据的大小和被高速缓存的锁的数目。然而,这仅在如果群组改变能够被预期的情况下工作并且,因此未有助于节点之间非预期的套接字(socket)断连的情况。
公开的实施例可以针对几乎所有锁而延迟锁通知直到群组改变已经完成之后。因此,公开的实施例可以在降低群组改变时间的同时增加发起器高速缓存大小。
图3图示了根据本文中描述的一个或多个实施例的、在群组改变之后应当被满足的延迟的锁重新断言的条件的示例非限制性计算机实现的方法300的流程图。
更详细地,在302处,文件系统锁在群组改变时被重新断言。因此,基于群组改变被安排发生,或正在发生的确定结果,可以执行文件系统锁的重新断言。这样的断言可以保证在群组改变之后,在系统中没有两个线程保持不兼容锁(例如,两个具有在相同的资源上的排它锁的线程)。该相同的保证可以在304处通过实现延迟的锁重新断言来提供。
延迟的锁重新断言可以通过满足各种条件来实现。例如,如在306处指示的计算机实现的方法300,第一条件可以是没有线程将重新获取在群组改变之前被高速缓存的锁直到锁已经被重新断言。如在308处指示的,第二条件可以是没有由被高速缓存的锁所保护的高速缓存将被评估直到锁已经被重新获取。第三条件,如在310处指示的,可以是如果另一节点在群组改变的时间和锁被重新断言的时间之间占用了不兼容锁,则在任何线程获取该锁之前高速缓存将被丢弃。
锁协调器可以在群组改变与重新断言之间的窗口中追踪针对每个资源占用的最强的锁,以使锁协调器可以通知发起器节点它需要丢弃它的高速缓存。
传统地,在锁协调器要求锁发起器放弃它的锁时,发起器以两个步骤来无效任何由该锁保护的高速缓存。第一,发起器调用探测函数,该探测函数指示是否需要任何高速缓存无效。如果必须无效任意高速缓存,然后锁系统调用第二函数(锁丢失回调,llcb)来无效该高速缓存。这两个函数之间的关键差异是在探测函数期间,运行探针的线程不保持要被释放的锁。而在llcb期间,线程保持锁。由于在任何线程获取到锁之前,高速缓存要被摧毁,这在失败的锁断言期间无效高速缓存时是不可接受的。
为了解决该问题,根据本文中提供的各种实施例,探测函数被修改为返回三个可能的数值而不是两个可能的数值。第一数值是没有高速缓存要无效。第二数值是存在高速缓存要无效,但是llcb线程不要求锁。第三数值是存在高速缓存要无效,并且llcb线程要求锁。
第三数值的返回应当是稀有的。大多数块高速缓存和索引节点高速缓存可以被丢弃而不保持保护该高速缓存的锁。例外是在丢弃锁的过程中数据必须被冲刷到磁盘的情况(例如,聚结器(coalescer)),或高速缓存以非平凡的方式由多个锁保护的情况(例如,/>重排游标块(restripe cursor block))。
通过实现本文中提供的具有该改进的探测函数的实施例,可以如关于图4讨论的一样修改在群组改变期间的锁重新断言,图4图示了根据本文中描述的一个或多个实施例的、管理锁协调器重新平衡的示例非限制性计算机实现的方法400的流程图。
在计算机实现的方法的402处,包括处理器的系统可以在群组改变的过程中运行(或执行)所有探测函数。这些区域函数应当比每个锁发送到协调器以重新断言该锁的消息更快。此外,在404处,系统可以重新断言probe()返回指示存在高速缓存要无效,并且llcb线程要求锁的数值(例如,上面讨论的第三数值)的所有锁。
在计算机实现的方法400的406处,系统可以使最强的锁类型(共享的、排它的,等)能够追踪,最强的锁类型针对来自锁协调器节点的每个资源而被请求。在408处,系统可以完成群组改变。
图5图示了根据本文中描述的一个或多个实施例的、在群组改变之后实现延迟的锁断言和高速缓存无效的示例非限制性计算机实现的方法500的流程图。
在群组改变之后,在502处,系统(例如,经由发起器节点)将在文件系统操作继续的同时继续重新断言锁。在504处,由活动文件系统线程请求的任何锁将会针对重新断言而被按照优先级排序。
在重新断言失败时,在506处系统(例如,经由锁发起器)可以使用探测函数之前返回的数值来确定是否调用llcb。然后系统将在508处丢弃被高速缓存的锁。一旦锁已经被丢弃,它可以由标准锁请求正常地获取。一旦所有节点已经完成所有被高速缓存的锁的断言,协调器将会被通知以丢弃它们的锁类型追踪。
图6图示了根据本文中描述的一个或多个实施例的、在群组改变之后选择性地重新断言锁的示例非限制性计算机实现的方法600的流程图。
当包括处理器和节点设备的群组的部分群组的第一节点设备查明群组改变已经在节点设备的群组处发生时,计算机实现的方法600在602处开始。确定结果可以在群组改变发生之前、群组改变过程中、或者群组改变完成之后做出。群组改变可以包括添加到节点设备的群组的附加节点和节点从节点设备的群组的移除中的至少一个。
在604处,第一节点设备可以基于指示第一锁的重新断言的探测函数的结果来重新断言锁的群组的第一锁。锁的群组可以是分布式文件系统中的排它锁。探测函数可以由第一节点设备在查明群组改变已经在602处发生时或之后执行。执行探测函数可以包括绕过节点设备的群组中包括的协调器节点。
根据一些实现,重新断言第一锁可以包括确定锁丢失回调线程使用第一锁的相应锁并且与线程相关联的相应高速缓存可用于无效。
锁的群组的第二锁可以由第一节点设备丢弃。例如,锁的群组的第二锁可以基于指示不需要第二锁的重新断言的探测函数的结果而被丢弃。第一锁和第二锁是锁的群组的不同锁。在一些实现中,丢弃第二锁可以包括确定锁丢失回调线程不使用第一锁的相应锁并且与线程相关联的相应高速缓存可用于无效。备选地或附加地,丢弃第二锁可以包括确定没有高速缓存要被无效。
图7图示了根据本文中描述的一个或多个实施例的、在群组改变之后重新断言锁的第一集合和不重新断言锁的第二集合的示例非限制性计算机实现的方法700的流程图。
在被配置为作为分布式文件系统操作的节点设备的集群的节点设备检测到节点设备的集群之间的群组改变的发生时,计算机实现的方法700在702处开始。在确定群组改变的发生时或之后,在704处,第一节点设备执行探测函数。执行探测函数可以包括在绕过节点设备的集群中包括的协调器节点时执行区域函数。
在706处,来自数值的群组的数值作为探测函数的结果而被接收。探测函数可以返回三个数值中的一个数值。例如,第一数值可以提供指示不存在高速缓存要无效的第一信息。第二数值可以提供存在高速缓存要无效,但是llcb线程不要求锁的第二信息。第三数值可以提供指示存在高速缓存要无效,并且llcb线程要求锁的第三信息。要注意的是虽然所讨论的关于第一数值、第二数值、第三数值、第一信息、第二信息,以及第三信息等等在本文中用于将数值和/或信息从彼此区分开但是不意味着指示数值和/或信息的特别的顺序。
如708处所指示的,基于是第一数值或第二数值的数值,不重新断言与第一数值或第二数值相关联的一个或多个锁。此外,在710处,基于是第三数值的数值,第一节点设备重新断言与第三数值相关联的一个或多个锁。不基于探测函数的结果重新断言与锁的第一集合不同的相应锁的锁的第二集合。
图8图示了根据本文中描述的一个或多个实施例的、用于在分布式文件系统中管理锁资源的示例非限制性节点设备800。节点设备800可以包括图1的计算设备的组件和/或功能的一个或多个和/或计算机实现的方法,并且反之亦然。
本公开中所解释的设备(例如,节点设备800等)、系统、装置,和/或过程的各方面可以构成在(多个)机器(例如,体现在与一个或多个机器相关联的一个或多个计算机可读介质(或媒介)中)内体现的(多个)机器可执行组件。这样的(多个)组件在由一个或多个机器(例如,(多个)计算机,(多个)计算设备,(多个)虚拟机等)执行时可以使(多个)机器执行所描述的操作。
在各种实施例中,节点设备800可以是包括处理器和/或可以能够与有线和/或无线网络有效和/或可操作地通信的组件、机器、设备、设施、装置,和/或仪器的任何类型。可以包括节点设备800的组件、机器、设备、设施、装置,和/或仪器可以包括平板计算设备、手持设备、服务器类计算机器和/或数据库、膝上型计算机、笔记本计算机、台式计算机、蜂窝电话、智能电话、消费电器和/或仪器、工业和/或商业设备、手持设备、数字助理、多媒体互联网使能电话,多媒体播放器等。
节点设备800可以包括分析组件802、探测组件804、锁协调器管理器组件806、发射器/接收器组件808、至少一个存储器810、至少一个处理器812,以及至少一个数据存储库814。分析组件802可以确定在分布式文件系统的两个或更多个节点之间是否已经发生(或正在发生)群组改变。例如,分析组件802可以确定一个或多个现有节点设备从节点设备的集群的移除和/或一个或多个新节点设备向节点设备的集群的添加。
探测组件804可以被配置为执行(或实现由其他组件来执行)探测函数。探测函数可以是比每个锁传统地发送到协调器以重新断言该锁的消息更快的区域函数。探测函数指示是否需要任何高速缓存无效。如果一些高速缓存要被无效,则第二函数(称为锁丢失回调或llcb)被调用以无效该高速缓存。在探测函数的过程中,线程不保持要被释放的锁而运行探针。而在llcb的过程中,线程保持锁。在llcb的过程中保持锁在失败的锁断言过程中无效高速缓存时是不可接受的,因为在任何线程获取到锁之前高速缓存应当被摧毁。
因此,如本文中讨论的,由探测组件804执行的探测函数可以返回三个可能数值中的一个数值(如相比与传统的探测函数相关联的仅仅两个数值)。第一数值可以指示不存在高速缓存要无效。第二数值可以指示存在高速缓存要无效并且llcb线程不需要锁。第三数值可以指示存在高速缓存要无效并且llcb线程需要锁。返回第三数值可以是稀有的因为大多数块高速缓存和索引节点高速缓存可以被丢弃而不保持保护该高速缓存的锁。例外包括在丢弃锁的过程中数据必须被冲刷到磁盘的情况或高速缓存以非平凡(notrivial)的方式由多个锁保护的情况。
在返回第三数值(例如,存在高速缓存要无效并且llcb线程需要锁)时或之后,锁协调器管理器组件806可以在群组改变过程中(或之后)重新断言锁。为了选择性地重新断言锁,锁协调器管理器组件806可以重新断言探测函数返回第三数值(在llcb线程上要求锁)的所有锁。此外,锁协调器管理器组件806可以使最强的锁类型(共享的、排它的,等)能够追踪,最强的锁类型针对来自锁协调器的每个资源而被请求。之后,群组改变完成。
在群组改变之后,发起器节点可以在文件系统操作继续的同时继续重新断言锁。由活动文件系统线程请求的任何锁将会针对重新断言而被按照优先级排序。在重新断言失败时,锁发起器可以使用probe()(例如,探测函数)之前返回的数值来确定是否调用llcb,并且然后将丢弃被高速缓存的锁。一旦锁已经被丢弃,它可以由标准锁请求正常地获取。一旦所有节点已经完成所有被高速缓存的锁的断言,协调器将会被通知以丢弃它们的锁类型追踪。
至少一个存储器810可以操作地连接到至少一个处理器812。至少一个存储器810可以存储可执行指令和/或计算机可执行组件(例如,分析组件802、探测组件804、锁协调器管理器组件806、发射器/接收器组件808,等等),可执行指令和/或计算机可执行组件在由至少一个处理器812执行时可以促进操作的执行(例如,所讨论的关于各种方法和/或本文中讨论的系统的操作)。此外,至少一个处理器812可以被利用以执行存储在至少一个存储器810中的计算机可执行组件(例如,分析组件802、探测组件804、锁协调器管理器组件806、发射器/接收器组件808,等等)。
例如,至少一个存储器810可以在本文中讨论的分布式文件系统中的群组改变之后存储与选择性重新断言的锁相关联的协议。此外,至少一个存储器810可以促进动作以控制节点设备800和其他节点设备、一个或多个文件存储系统、一个或多个设备之间的通信,以使节点设备800使用被存储的协议和/或算法来实现本文中描述的分布式文件系统的改进的总体性能。
应当理解的是本文中描述的数据存储(例如,存储器)组件可以是易失性存储器或非易失性存储器,或可以包括易失性和非易失性存储器两者。作为非限制性示例,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM),或闪存。易失性存储器可以包括用作外部高速缓存存储器的随机存取存储器(RAM)。作为非限制性示例,RAM有多种可用形式例如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM),以及直接Rambus RAM(DRRAM)。所公开方面的存储器旨在包括但不限于这些和其它合适类型的存储器。
至少一个处理器812可以促进关于分布式文件系统中的管理锁协调器重新平衡的信息的相应分析,例如,在分布式文件系统中的锁协调器重新平衡中促进延迟的锁断言和高速缓存无效。至少一个处理器812可以是专用于分析和/或生成所接收的信息的处理器、控制节点设备800的一个或多个组件的处理器,和/或分析和生成所接收的信息并且控制节点设备800的一个或多个组件两者的处理器。
发射器/接收器组件808可以被配置成向例如节点、探测函数,和/或通信设备发送和/或从其接收数据。通过发射器/接收器组件808,节点设备800可以同时发送和接收数据,可以在不同时间发送和接收数据,或其组合。
参考本文中提供的流程图,将更好地理解可以根据所公开的主题实现的方法。虽然出于简化说明的目的,将所述方法展示并且描述为一系列框,但应理解并且了解的是,所公开的方面不受框的数目或顺序限制,因为一些框可以以不同顺序出现和/或与本文所描绘和描述的其它框大体上同时出现。此外,实现所公开的方法并不要求所有图示的框。要理解的是,可以通过软件,硬件,其组合或任何其它合适手段(例如,设备、系统、进程,组件等)来实施与框相关联的功能性。另外,还应当理解的是,所公开的方法能够存储在制品上以促进将这些方法运输和转移到各种装置。本领域技术人员将理解和认识到,这些方法可以备选地表示为一系列相互关联的状态或事件,例如在状态图中。
如本文中使用的,术语“存储设备”、“节点设备”、“第一节点设备”、“存储集群节点”,“存储系统”等(例如,节点设备),可以包括例如用于存储数据的私有或公共云计算系统以及用于存储包括虚拟基础设施和不包括虚拟基础设施的数据的系统。术语“I/O请求”(或简称为“I/O”)可以指读取和/或写入数据的请求。
在本文中使用的术语“云”可以指节点集群(例如,网络服务器的集合),例如在分布式对象存储系统内的节点集群,其通信地和/或操作地彼此耦合,并且托管用于服务用户请求的应用的集合。通常,云计算资源可以经由大多数任何有线和/或无线通信网络与用户设备通信,以提供对基于云且未本地存储(例如,在用户设备上)的服务的访问。典型的云计算环境可以包括聚集在一起的多个层,这些层彼此交互以为端用户提供资源。
进一步地,术语“存储设备”可以指任何非易失性存储器(NVM)设备,包括硬盘驱动器(HDD)、闪存设备(例如,NAND闪存设备),以及下一代NVM设备,其中的任何设备都可以本地和/或远程访问(例如,经由存储器附接网络(SAN))。在一些实施例中,术语“存储设备”还可以指包括一个或多个存储设备的存储阵列。在各种实施例中,术语“对象”是指可以跨一个或多个存储设备而被存储并且使用I/O请求访问的任意大小的用户数据的集合。
此外,存储集群可以包括一个或多个存储设备。例如,分布式存储系统可以包括经由网络与存储集群通信的一个或多个客户端。网络可以包括各种类型的通信网络或其组合,包括但不限于使用例如以太网、互联网小型计算机系统接口(iSCSI)、光纤信道(FC),和/或无线协议的协议的网络。客户端可以包括用户应用、应用服务器,数据管理工具和/或测试系统。
如本文中利用的“实体”、“客户端”、“用户”,和/或“应用”可以指可以向存储系统发送I/O请求的任何系统或人。例如,实体可以是一个或多个计算机、互联网、一个或多个系统、一个或多个商业企业、一个或多个计算机、一个或多个计算机程序、一个或多个机器、机械、一个或多个动作者、一个或多个用户、一个或多个消费者、一个或多个人类等等,以下根据上下文称为实体或多个实体。
为了提供针对公开的主题的各个方面的上下文,图9和以下讨论旨在提供其中可以实现公开的主题的各种方面的合适的环境的简要一般描述。
参考图9,用于实现上述主题的各方面的示例环境910包括计算机912。计算机912可以包括处理单元914、系统存储器916,以及系统总线918。系统总线918将包括但不限于系统存储器916的系统组件耦合到处理单元914。处理单元914可以是任何可用处理器中的任何处理器。多核微处理器和其它多处理器体系结构也可以用作处理单元914。
系统总线918可以是数种类型的(多个)总线结构中的任意总线,包括存储器总线或存储器控制器、外围总线或外部总线,和/或使用可用总线体系结构的任何种类的局部总线,包括但不限于8位总线、工业标准体系结构(ISA)、微通道体系结构(MSA)、扩展ISA(EISA)、智能驱动电子设备(IDE)、VESA局部总线(VLB)、外围组件互连(PCI)、通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储卡国际协会总线(PCMCIA),以及小型计算机系统接口(SCSI)。
系统存储器916包括易失性存储器920和非易失性存储器922。包括例如在启动过程中在计算机912内的元素之间传送信息的基本例程的基本输入/输出系统(BIOS)被存储在非易失性存储器922中。作为非限制性说明,非易失性存储器922可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM),或闪存。易失性存储器920可以包括用作外部高速缓存存储器的随机存取存储器(RAM)。作为非限制性说明,RAM有多种可用形式例如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM),以及直接Rambus RAM(DRRAM)。
计算机912还包括可移动/不可移动、易失性/非易失性计算机存储介质。图9图示了例如磁盘存储924。磁盘存储924包括但不限于设备如磁性磁盘驱动、软盘驱动、磁带驱动、Jaz驱动、Zip驱动、LS-100驱动,闪存卡,或记忆棒。此外,磁盘存储924可以包括单独的存储介质或与其它存储介质组合的存储介质,其它存储介质包括但不限于光盘驱动例如光盘ROM设备(CD-ROM)、CD可记录驱动(CD-R驱动),CD可重写驱动(CD-RW驱动)或数字多功能盘ROM驱动(DVD-ROM)。为了促进将磁盘存储器924连接到系统总线918,通常使用例如接口926的可移动或不可移动接口。
应当理解的是,图9描述了用作用户和在合适的操作环境910中描述的基本计算机资源之间的中介的软件。这种软件包括操作系统928。可以存储在磁盘存储924上的操作系统928用作控制和分配计算机912的资源。系统应用930通过存储在系统存储器916中或在磁盘存储924上的程序模块932和程序数据934利用由操作系统928对资源的管理。应当理解的是,主题公开的一个或多个实施例可以利用各种操作系统或操作系统的组合来实现。
用户通过(多个)输入设备936向计算机912中输入命令或信息。输入设备936包括但不限于诸如鼠标、跟踪球、指示笔、触摸板、键盘、麦克风、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、TV调谐卡、数字照相机、数字视频照相机,网络照相机等定点设备。这些和其它输入设备经由(多个)接口端口938通过系统总线918连接到处理单元914。(多个)接口端口938包括例如串行端口、并行端口、游戏端口,以及通用串行总线(USB)。(多个)输出设备940使用与(多个)输入设备936相同类型的端口中的一些端口。因此,例如,USB端口可以用于向计算机912提供输入,并且将信息从计算机912向输出设备940输出。提供输出适配器942是为了说明在其它输出设备940中有一些输出设备940需要特殊适配器,例如监视器,扬声器和打印机。作为非限制性说明,输出适配器942包括提供输出设备940和系统总线918之间的连接手段的视频和声卡。应当注意的是,其它设备和/或设备系统提供输入和输出能力两者,例如(多个)远程计算机944。
计算机912可以使用到例如(多个)远程计算机944的一个或多个远程计算机的逻辑连接在网络化环境中操作。(多个)远程计算机944可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的应用,对等设备或其它公共网络节点等,并且通常包括相对于计算机912描述的元素的许多元素或所有元素。为了简洁的目的,仅将存储器存储设备946与(多个)远程计算机944示出。(多个)远程计算机944通过网络接口948逻辑连接到计算机912,然后经由通信连接950物理连接。网络接口948包括例如局域网(LAN)和广域网(WAN)的通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜分布式数据接口(CDDI)、以太网/IEEE802.3,令牌环/IEEE802.5等。WAN技术包括但不限于点对点链路,诸如综合业务数字网(ISDN)及其变型的电路交换网、分组交换网,以及数字用户线(DSL)。
(多个)通信连接950是指用于将网络接口948连接到系统总线918的硬件/软件。虽然为了清楚说明通信连接950在计算机912的内部被示出,但是它也可以在计算机912的外部。仅出于例示性目的,连接到网络接口948所需的硬件/软件包括内部和外部技术,例如包括常规电话级调制解调器,电缆调制解调器和DSL调制解调器的调制解调器,ISDN适配器和以太网卡。
图10是所公开的主题可与其交互的样本计算环境1000的示意性框图。样本计算环境1000包括一个或多个客户端1002。(多个)客户端1002可以是硬件和/或软件(例如,线程、进程、计算设备)。样本计算环境1000还包括一个或多个服务器1004。(多个)服务器1004也可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器1004可以容纳线程以通过采用如本文中描述的例如一个或多个实施例来执行变换。客户端1002与服务器1004之间的一种可能的通信可以是适于在两个或更多个计算机进程之间传送的数据分组的形式。样本计算环境1000包括可以用于促进(多个)客户端1002与(多个)服务器1004之间的通信的通信框架1006。(多个)客户端1002操作地连接到可用于存储(多个)客户端1002本地的信息的一个或多个客户端数据存储库1008。类似地,(多个)服务器1004操作地连接到可以用于存储服务器1004的本地信息的一个或多个服务器数据存储库1010。
贯穿本说明书对“一个实施例”,或“实施例”的引用意味着结合该实施例描述的特定特征,结构或特性被包括在至少一个实施例中。因此,短语“在一个实施例中”、“在一个方面中”,或“在实施例中”在贯穿本说明书的各种位置中的出现不必然都指同一实施例。此外,特定特征、结构、或特性可以在一个或多个实施例中以任何合适的方式组合。
如本公开中使用的,在一些实施例中,术语“组件”、“系统”、“接口”,“管理器”等旨在指代,或包括,计算机相关实体或与具有一个或多个特定功能的操作装置相关的实体,其中该实体可以是硬件、硬件和软件的组合、软件、或执行中的软件,和/或固件中的一者。作为示例,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行程序、执行的线程、计算机可执行指令,程序和/或计算机。作为非限制性说明,在服务器上运行的应用和服务器两者都可以是组件。
一个或多个组件可以驻留在进程和/或执行的线程内,并且组件可以位于一个计算机上和/或分布在两个或多个计算机之间。此外,这些组件可以从其上存储有各种数据结构的各种计算机可读介质执行。组件可以经由本地和/或远程进程进行通信,例如根据具有一个或多个数据分组的信号(例如,来自一个组件的数据,该组件与本地系统,分布式系统中的另一组件交互,和/或经由该信号跨越例如互联网的网络与其他系统交互)。作为另一示例,组件可以是具有由电气或电子电路操作的机械部件提供的特定功能的装置,其由一个或多个处理器执行的软件应用或固件应用操作,其中处理器可以在装置的内部或外部并且可以执行软件或固件应用的至少部分。又一示例,组件可以是通过没有机械部件的电子组件提供特定功能的装置,电子组件可以包括其中的处理器以执行至少部分地赋予电子组件的功能的软件或固件。在一方面,组件可以经由虚拟机(例如云计算系统内的)来仿真电子组件。虽然已经将各种组件说明为单独的组件,但将了解的是在不脱离示例实施例的情况下,可以将多个组件实现为单个组件,或将单个组件实现为多个组件。
词语“示例”或“例示性”在本文中用于表示用作实例或说明。本文中被描述为“示例”或“例示性”的任何实施例或设计并非一定要被理解比其他实施例或设计优选或有利。相反,词语“示例”或“例示性”的使用旨在以具体形式呈现概念。如本申请中所使用的,术语“或者”旨在表示包括性的“或者”而非排它性的“或者”。也就是说,除非另外规定或者从上下文是清楚的,否则“X采用A或B”旨在表示自然包括性排列中的任一项。也就是,如果X采用A;X采用B;或X采用A和B二者,则“X采用A或B”在上述实例的任何实例下满足。另外,本申请和所附权利要求中使用的冠词“一”和“一个”通常应当理解为表示“一个或多个”,除非另外指出或者从上下文清楚地指向单数形式。
推论还可以指用于从事件和/或数据的集合构成更高级事件的技术。这样的推论导致从观察到的事件和/或存储的事件数据的集合构造新的事件或动作,事件是否在时间上紧密相关,以及事件和数据是否来自一个或几个事件和数据源。各种分类方案和/或系统(例如,支持向量机、神经网络、专家系统、贝叶斯信念网络,模糊逻辑和数据融合引擎)可以结合执行与公开的主题相关的自动和/或推论动作来使用。
此外,各种实施例可以被实现为方法、装置、或制品,其使用标准编程和/或工程技术来产生软件、固件、硬件,或其任何组合以控制计算机来实现公开的主题。本文所使用的术语“制品”旨在涵盖从任何计算机可读设备、机器可读设备、计算机可读载体、计算机可读介质、机器可读介质、计算机可读(或机器可读)存储/通信介质可访问的计算机程序。例如,计算机可读存储介质可以包括但不限于氡接入存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、固态驱动器(SSD)或其他固态存储技术、磁存储设备,例如硬盘;软盘;(多个)磁条;光盘(例如,光盘(CD)、数字视频盘(DVD)、蓝光光盘(BD));智能卡;闪存设备(例如,卡、棒、键驱动);和/或仿真存储设备和/或任何上述计算机可读介质的虚拟设备。当然,本领域技术人员将认识到,可以对该配置进行许多修改而不脱离各种实施例的范围或精神。
在一个或多个示例实施例中,既不应假定所公开的实施例和/或方面对其他公开的实施例和/或方面具有排它性,也不应该假定设备和/或结构对示例实施例或多个实施例中它的所描绘的元素具有排它性,除非上下文有相反的明确说明。本公开的范围通常旨在包括对所描述的实施例进行修改,并且在适当的情况下从其他所描述的实施例中添加内容,在适当的情况下在所描述的实施例之间的互操作性,以及在适当的情况下从一个或多个实施例中添加(多个)组件或从任何所描述的一个或多个实施例中减去(多个)组件,在适当的情况下将元素(或实施例)聚集到实现总体功能的单一设备,或在适当的情况下将单一设备的功能分配到多个设备。另外,本文中所描绘的装置或元素(例如,组件)的并入,组合或修改或如上所述利用本文中未明确描绘但在领域中已知或通过本文中所公开的上下文使变得对领域的一般技术人员清楚的设备,结构或其子集修改也视为在本发明的范围内。
包括摘要中所描述的内容的本主题公开的说明实施例的以上描述并不旨在穷举或将所公开的实施例限制为所公开的精确形式。尽管出于说明的目的在本文中描述了具体的实施例和示例,但是如相关领域的技术人员可以认识到的,在这样的实施例和示例的范围内考虑的各种修改是可能的。
在这点上,虽然本文已结合各种实施例和对应的图描述了主题,但在适用的情况下,应理解的是,可以使用其它类似的实施例或可以对所描述的实施例进行修改和添加以用于执行所公开主题的相同,类似,备选或替代功能而不背离本发明。因此,所公开的主题不应限于本文所描述的任何单个实施例,而是应根据下文所附权利要求书的广度和范围来解释。
Claims (20)
1.一种系统,包括:
处理器;以及
存储器,所述存储器存储可执行指令,所述可执行指令在由所述处理器执行时,促进操作的执行,所述操作包括:
确定节点设备的集群之间的群组改变的发生;
基于所述群组改变的所述发生来执行探测函数;以及
基于指示第一锁的重新断言的所述探测函数的结果来重新断言锁的群组的所述第一锁,其中所述锁的群组的、除了所述第一锁之外的第二锁没有基于所述探测函数的所述结果而被重新断言。
2.根据权利要求1所述的系统,其中重新断言所述第一锁包括:确定锁丢失回调线程使用所述第一锁的相应锁并且与线程相关联的相应高速缓存能够用于无效。
3.根据权利要求1所述的系统,其中所述操作还包括:
在重新断言所述第一锁之前,响应于所述探测函数而接收数值的集合,其中所述数值的集合的第一数值指示没有高速缓存要被无效,其中所述数值的集合的第二数值指示锁丢失回调线程没有利用锁并且与线程相关联的相应高速缓存能够用于无效,并且其中所述数值的集合的第三数值指示所述锁丢失回调线程利用所述锁并且与所述线程相关联的相应高速缓存能够用于无效;
确定所述第二锁与所述第一数值和所述第二数值相关联;以及
确定所述第一锁与所述第三数值相关联。
4.根据权利要求1所述的系统,其中确定所述群组改变的所述发生包括:
确定现有节点设备从所述节点设备的集群的移除;
确定新节点设备向所述节点设备的集群的添加;或者
确定所述现有节点设备的所述移除和所述新节点设备的所述添加两者。
5.根据权利要求1所述的系统,其中在两个线程在相同的资源上保持排它锁时,不兼容锁被创建。
6.根据权利要求1所述的系统,其中执行所述探测函数包括:在绕过所述节点设备的集群中包括的协调器节点时,执行区域函数。
7.根据权利要求1所述的系统,其中所述操作还包括:
丢弃与所述第二锁相关联的块高速缓存和索引节点高速缓存。
8.根据权利要求1所述的系统,其中所述锁的群组的锁与所述节点设备的集群之间的锁协调器节点相关联,并且其中所述操作还包括:
使所定义的锁类型能够追踪,所述所定义的锁类型针对来自所述锁协调器节点的每个资源而被请求。
9.根据权利要求1所述的系统,其中所述节点设备的集群作为分布式文件系统操作。
10.一种方法,包括:
由包括处理器和节点设备的群组的部分的第一节点设备查明群组改变已经在所述节点设备的群组处发生;
基于指示第一锁的重新断言的探测函数的结果,由所述第一节点设备重新断言锁的群组的所述第一锁,其中所述探测函数基于所述查明而被执行;以及
基于指示第二锁的所述重新断言不被需要的所述探测函数的所述结果,由所述第一节点设备丢弃所述锁的群组的所述第二锁,其中所述第一锁和所述第二锁是所述锁的群组的不同锁。
11.根据权利要求10所述的方法,其中所述重新断言所述第一锁包括:确定锁丢失回调线程使用所述第一锁的相应锁并且与线程相关联的相应高速缓存能够用于无效。
12.根据权利要求10所述的方法,其中丢弃所述第二锁包括:确定锁丢失回调线程不使用所述第一锁的相应锁并且与线程相关联的相应高速缓存能够用于无效。
13.根据权利要求10所述的方法,其中丢弃所述第二锁包括:确定没有高速缓存要被无效。
14.根据权利要求10所述的方法,还包括:
在所述重新断言之前,执行所述探测函数包括:基于一个或多个区域函数的执行来绕过所述节点设备的群组中所包括的协调器节点。
15.根据权利要求10所述的方法,其中所述锁的群组是分布式文件系统中的排它锁。
16.根据权利要求10所述的方法,其中所述群组改变包括添加到所述节点设备的群组的附加节点和节点从所述节点设备的群组的移除中的至少一个。
17.一种非暂态机器可读介质,包括可执行指令,所述可执行指令在由处理器执行时,促进操作的执行,包括:
基于群组改变在节点设备的集群处正在发生的确定来执行探测函数,所述节点设备的集群被配置为作为分布式文件系统操作,其中所述探测函数评估相应锁和资源的群组的相关联的高速缓存;
基于所述探测函数的结果来确定所述相应锁的锁的第一集合要被重新断言;以及
重新断言所述锁的第一集合,其中所述相应锁的、与所述锁的第一集合不同的锁的第二集合不基于所述探测函数的所述结果而被重新断言。
18.根据权利要求17所述的非暂态机器可读介质,其中重新断言所述锁的第一集合包括:确定锁丢失回调线程使用所述锁的第一集合的相应锁并且与线程相关联的相应高速缓存能够用于无效。
19.根据权利要求17所述的非暂态机器可读介质,其中执行所述探测函数包括:在绕过所述节点设备的集群中所包括的协调器节点时执行区域函数。
20.根据权利要求17所述的非暂态机器可读介质,其中所述操作还包括:
在重新断言所述锁的第一集合之前,响应于所述探测函数而接收数值的集合,其中所述数值的集合的第一数值指示没有高速缓存要被无效,其中所述数值的集合的第二数值指示锁丢失回调线程没有利用锁并且与线程相关联的相应高速缓存能够用于无效,并且其中所述数值的集合的第三数值指示所述锁丢失回调线程利用所述锁并且与所述线程相关联的所述相应高速缓存能够用于无效;
确定所述锁的第二集合与所述第一数值和所述第二数值相关联;以及
确定所述锁的第一集合与所述第三数值相关联。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/124,694 US11409670B2 (en) | 2020-12-17 | 2020-12-17 | Managing lock coordinator rebalance in distributed file systems |
US17/124,694 | 2020-12-17 | ||
PCT/US2021/028999 WO2022132215A1 (en) | 2020-12-17 | 2021-04-23 | Managing lock coordinator rebalance in distributed file systems |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116670662A true CN116670662A (zh) | 2023-08-29 |
Family
ID=75919414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180083039.2A Pending CN116670662A (zh) | 2020-12-17 | 2021-04-23 | 在分布式文件系统中管理锁协调器重新平衡 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11409670B2 (zh) |
CN (1) | CN116670662A (zh) |
DE (1) | DE112021006506T5 (zh) |
WO (1) | WO2022132215A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11789924B2 (en) * | 2021-10-14 | 2023-10-17 | Vast Data Ltd. | Lock metadata re-balancing upon storage expansion |
US11892977B2 (en) | 2021-10-14 | 2024-02-06 | Vast Data Ltd. | Stored entity metadata re-balancing upon storage expansion |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6775703B1 (en) * | 2000-05-01 | 2004-08-10 | International Business Machines Corporation | Lease based safety protocol for distributed system with multiple networks |
US7124131B2 (en) * | 2003-04-29 | 2006-10-17 | International Business Machines Corporation | Discipline for lock reassertion in a distributed file system |
US9747323B1 (en) | 2014-12-30 | 2017-08-29 | EMC IP Holding Company LLC | Method for reconstruction of a distributed lock state after a node addition or removal using a consistent hash |
-
2020
- 2020-12-17 US US17/124,694 patent/US11409670B2/en active Active
-
2021
- 2021-04-23 WO PCT/US2021/028999 patent/WO2022132215A1/en active Application Filing
- 2021-04-23 CN CN202180083039.2A patent/CN116670662A/zh active Pending
- 2021-04-23 DE DE112021006506.8T patent/DE112021006506T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
DE112021006506T5 (de) | 2023-11-23 |
US11409670B2 (en) | 2022-08-09 |
US20220197830A1 (en) | 2022-06-23 |
WO2022132215A1 (en) | 2022-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6381801B2 (ja) | 格納クライアントファイルシステム用格納ボリュームの動的スケーリング | |
US8151062B2 (en) | Consistency models in a distributed store | |
CN116670662A (zh) | 在分布式文件系统中管理锁协调器重新平衡 | |
EP3497586A1 (en) | Discovery of calling application for control of file hydration behavior | |
US11157191B2 (en) | Intra-device notational data movement system | |
US9473572B2 (en) | Selecting a target server for a workload with a lowest adjusted cost based on component values | |
US11216316B1 (en) | Facilitating object deletion based on delete lock contention in distributed file systems | |
US11334487B2 (en) | Cache sharing in virtual clusters | |
US10594620B1 (en) | Bit vector analysis for resource placement in a distributed system | |
US11669498B2 (en) | Facilitating exclusive local locks on a distributed file system | |
US10789002B1 (en) | Hybrid data deduplication for elastic cloud storage devices | |
US11915060B2 (en) | Graphics processing management system | |
US11321205B2 (en) | Enterprise-scale time series graphite backend infrastructure | |
US10394472B1 (en) | Classification and identification from raw data within a memory domain | |
US11340964B2 (en) | Systems and methods for efficient management of advanced functions in software defined storage systems | |
US10318191B1 (en) | Migration and transformation of data storage in a replicated environment | |
US10949322B2 (en) | Collecting performance metrics of a device | |
US10929385B2 (en) | Multi-level data deduplication for elastic cloud storage devices | |
CN113553314A (zh) | 一种超融合系统的服务处理方法、装置、设备及介质 | |
US9160610B1 (en) | Method and apparatus for coordinating service execution within a shared file system environment to optimize cluster performance | |
WO2018188416A1 (zh) | 一种数据搜索的方法、装置和相关设备 | |
US11537714B2 (en) | Facilitating antivirus scan filing locking based on cluster lock mechanism in distributed file systems | |
US11726882B2 (en) | System control processor data mirroring system | |
KR20190116034A (ko) | 네트워크 인터페이스 장치 및 그 네트워크 인터페이스 장치의 데이터 처리 방법 | |
US20220138243A1 (en) | Personalizing unstructured data according to user permissions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |