CN106575245B - 随通信故障的分布式工作负载重新分配 - Google Patents

随通信故障的分布式工作负载重新分配 Download PDF

Info

Publication number
CN106575245B
CN106575245B CN201580043214.XA CN201580043214A CN106575245B CN 106575245 B CN106575245 B CN 106575245B CN 201580043214 A CN201580043214 A CN 201580043214A CN 106575245 B CN106575245 B CN 106575245B
Authority
CN
China
Prior art keywords
identifier
node
workload
access request
target data
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
Application number
CN201580043214.XA
Other languages
English (en)
Other versions
CN106575245A (zh
Inventor
D·克鲁泽
朱奇波
D·戴恩
V·彼得
L·S·科波鲁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106575245A publication Critical patent/CN106575245A/zh
Application granted granted Critical
Publication of CN106575245B publication Critical patent/CN106575245B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Small-Scale Networks (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

生成标识符与各种***和方法一起使用,以便标识其中工作负载已经被重新分配给新节点以及其中工作负载在节点之间的故障期间仍然在由旧节点处理的情形。主节点可以将工作负载分配给工作者节点。工作者节点发送用以访问目标数据的请求。该请求可以与标识节点和工作负载的生成标识符和工作负载标识符相关联。在某个时刻,主节点与工作者节点之间发生故障。主节点将工作负载重新分配给另一工作者节点。新的工作者节点以不同的生成标识符访问目标数据,以向存储***指示工作负载已经被重新分配。旧工作者节点从存储***接收工作负载已经被重新分配的指示,并且停止处理工作负载。

Description

随通信故障的分布式工作负载重新分配
背景技术
集群环境(例如,工作负载分布在多个机器上的环境)通常用于提供分布式工作负载的故障转移和高可用性处理。集群环境允许将工作负载分发给作为环境的部分的一个或多个节点。集群环境可以充当客户端、服务器或两者。在集群中,工作负载可以由主节点分发给组成集群的工作者节点。工作者节点可以发布对于由存储***存储的目标数据的访问请求。如果在主节点与工作者节点之间发生错误,则工作者节点可以在没有主节点的知识的情况下继续处理工作负载。此外,主节点可以在没有工作者节点的知识的情况下将工作负载重新分配给不同的节点。
一些示例正是关于这些和其他考虑而给出。此外,虽然已经讨论了相对具体的问题,但是应当理解,这些示例不应当限于解决背景技术中所确定的具体问题。
发明内容
提供本发明内容以便以简化形式介绍将在以下详细描述部分中进一步描述的一些概念。本发明内容不旨在识别所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本文中公开的***和方法提供了其中标识工作负载已经被重新分配给新节点以及其中工作负载仍然由旧节点处理的情形的机制。根据一些方面,主节点向工作者节点分配工作负载。主节点可以随工作负载传送生成标识符和工作负载标识符。当处理工作负载时,工作者节点向存储集群中的节点发送用以访问目标数据的访问请求。在示例中,生成标识符和工作负载标识符用于标识节点和/或请求资源的相关工作负载。生成标识符和/或工作负载标识符可以与请求一起提供。当节点访问目标数据时,生成标识符和/或工作负载标识符被存储在永久性存储装置中并且与所请求的目标数据相关联。
在节点完成工作负载的执行之前,可能发生导致主节点失去与工作者节点的通信的故障。例如,节点可能重启,硬件故障可能发生,通信链路可能失败等。在这种情况下,主节点不知道工作者节点的状态。然而,工作者节点仍然可以访问存储***,并且可以继续处理工作负载并发布文件访问请求。在故障期间,主节点可以将工作负载重新分配给新的工作者节点。在一些示例中,主节点还可以传送不同的生成标识符连同工作负载标识符和工作负载。当新工作者节点开始处理工作负载时,其向存储集群中的节点发送访问目标数据的访问请求。在一些示例中,可以与请求一起提供新的生成标识符和/或工作负载标识符。新的生成标识符可以指示比旧的生成标识符高的优先级。当新节点访问目标数据时,新的生成标识符被存储在永久性存储装置中并且与所请求的目标数据相关联。生成标识符允许管理请求的存储***确定工作负载已经被重新分配给新节点。这样做允许存储***向旧节点指示已经重新分配工作负载。因此,旧节点可以停止处理工作负载。此外,如果旧节点尚未从存储***接收到重新分配指示,则旧节点确保没有重新分配工作负载。
在其他示例中,新的生成标识符可以指示比旧的生成标识符低的优先级,或者新节点可以发布“许可性的”访问请求。在这两种情况下,在旧节点仍然在处理工作负载的同时,新节点并不开始处理工作负载。相反,新节点可以接收旧节点仍然在工作的指示,并且作为结果,新节点可以周期性地发布随后的访问请求,以便一旦旧节点已经完成处理则最终获得访问。这样做允许旧节点继续处理工作负载,而不是中断操作并且在新节点上重新开始工作负载。
示例可以被实现为计算机过程、计算***或者实现为制造品,诸如计算机程序产品或计算机可读介质。计算机程序产品可以是计算机***可读的并且编码用于执行计算机过程的计算机程序指令的计算机存储介质。
附图说明
参考以下附图描述非限制性和非穷尽性示例。
图1示出了可以用于实现本文中描述的示例的***。
图2示出了可以用于实现本文中描述的示例的***。
图3是与存储***通信的节点的操作流程。
图4是将工作负载分配给其他节点的节点的操作流程。
图5是与节点通信的存储***的操作流程。
图6是示出可以实践本发明的各方面的计算设备的示例的框图。
图7A和7B是可以实践本发明的各方面的移动计算设备的简化框图。
图8是可以实践本发明的各方面的分布式计算***的简化框图。
具体实施方式
下面参考附图更全面地描述各个方面,附图形成了本文的一部分并且示出了具体的示例性方面。然而,示例可以以许多不同的形式实现,并且不应当被解释为限于本文中所阐述的示例。因此,示例可以采取硬件实现、或者完全软件实现、或者组合软件和硬件方面的实现的形式。因此,下面的详细描述不应当被理解为是限制性的。
本公开的示例涉及通过使存储***能够在其工作负载已经被重新分配时通知节点来提供分布式工作负载的高可用性处理。在示例中,存储***可以是本地设备、网络附接的存储设备、分布式文件服务器或者计算环境中的任何其他类型的存储***。节点可以是集群的一部分,在集群中“工作者”节点处理由“主”节点分配的工作负载。在一些示例中,集群可以包括多个层,其中较低分层的工作者节点从较高分层的主节点接收工作负载分配。在其他示例中,集群可以仅具有一个层,其中每个节点可以表现为工作者节点、主节点或两者。
在示例中,可以向工作者节点分配来自主节点的工作负载。工作者节点继而可以充当下级工作者节点的主节点,并且作为结果,可以进一步将工作负载分发给其下级工作者节点中的一个。节点可以经由网络连接。本领域技术人员将理解,本文中公开的***和方法可以在任何其他类型的环境中使用,例如但不限于虚拟网络。
数据可以在多个请求者之间共享。如本文中所使用的,请求者可以包括请求访问目标数据的任何节点、应用、工作负载、线程或者其它过程或实体。尽管可以关于充当请求者的“应用”或“客户端”或“节点”或“工作负载”来描述本文中描述的示例,但是本公开不限于此。当请求者访问目标数据时,目标数据可以被加锁,从而禁止其他请求者访问它,直到该锁被释放。对目标数据加锁可以用于防止冲突,即防止在访问请求者已经执行了其操作之前由另一请求者修改目标数据。通常,当锁被准许时,在一些示例中,该锁可以被另一请求者抢占。例如,存储***可以使用由请求者在访问请求中呈现或引用的工作负载标识符来维护锁定。
在一些情况下,当发生影响主节点与工作者节点的通信的故障时,主节点可能变得不知道工作者节点的状态。例如,故障可能是主节点与工作者节点之间的通信问题的结果,或者是工作者节点的重启的结果。因此,工作者节点可能正在正常运行并且因此仍然处理工作负载,或者工作者节点可能已经经历了故障并且不再处理工作负载。此外,工作者节点可能仍然可以访问由存储***存储的文件信息。例如,存储***可以是经由与主节点不同的网络路径可访问的。
由于故障,主节点可以将工作负载重新分配给另一工作者节点。因此,新的工作者节点可以请求访问被旧的工作者节点锁定或者先前锁定的数据。在一些示例中,存储***可以确定与来自新节点的访问请求相关联的工作负载标识符与旧节点在目标数据上放置的锁相匹配。然后,存储***打破旧的锁,并且对目标数据放置新的锁。
然而,如果旧节点仍然在处理工作负载,则来自旧节点的对目标数据的访问请求将导致上述相同的行为。存储***将确定旧节点的访问请求与工作负载标识符相关联,打破新节点的锁,并且对旧节点的目标数据放置另一锁。因此,两个节点可能继续为相同的目标数据重新获取锁,而并不知道其他节点的存在。这可能会对群集的性能产生负面影响。例如,这可能导致工作负载的延迟处理或中断,这些中断需要工作负载处理重新启动,而不是允许旧节点完成处理,例如中断视频编码工作负载,视频编码工作负载然后必须重新开始编码处理。本文中公开的***和方法提供了用于标识工作负载已经被重新分配给新节点以及工作负载仍然由旧节点处理的情况的机制,从而减轻在故障之后对工作负载处理的影响。
图1示出了可以用于实现一些示例的***100。***100包括节点102、104和106以及存储***108。在所示示例中,节点102充当节点104和106的主节点。节点104和106充当工作者节点并且处理由节点102分配给它们的工作负载。存储***108存储由节点104和106访问的信息。尽管在图1中仅示出了与存储***108通信的节点104和106,但是在其他示例中,可以存在多于两个的节点,这些节点充当工作者节点并且访问来自存储***108的信息。另外,虽然图1中仅示出了相对于节点104和106充当主节点的节点102,但是在其他示例中,可以有多于一个主节点向工作者节点分配工作负载。
根据一个示例,节点102、104和106用于提供分布式工作负载的高可用性处理。这是通过以下方式来实现的:在主节点102与工作者节点104和106之间发生故障的情况下,利用节点102、104和106以及存储***108上的部件在各个节点之间划分工作负载并且重新分发工作。如下面更详细地描述的,在节点的工作负载被重新分配时提供给节点的重新分配通知允许节点集群提供分布式工作负载的高可用性处理。在示例中,节点104和106可以使用服务器消息块(SMB)2.0/3.0协议来与存储***108通信。
为了说明一个实例,节点102可以向节点106分配第一工作负载。第一工作负载可以与第一生成标识符和/或第一工作负载标识符相关联,其可以与第一工作负载一起被传送给节点106。节点106开始处理第一工作负载,以根据需要发送对存储***108所存储的目标数据的文件访问请求。文件访问请求可以包括或引用生成标识符和/或工作负载标识符,诸如第一生成标识符和第一工作负载标识符。
存储***108接收对目标数据的访问请求。在一些示例中,存储***108可以确定目标数据是否被锁定并且因此与不同的生成标识符和/或工作负载标识符相关联。如果目标数据被锁定,则存储***108可以拒绝文件访问请求,可以打破该锁,或者可以根据所采用的协议采取其他动作。
在确定请求应当被准许时,生成标识符和/或工作负载标识符可以由存储***108存储在永久性存储装置中。当生成标识符和/或工作负载标识符存储在永久性存储装置中时,它们在本文中可以被称为存储生成标识符和存储工作负载标识符。在一些示例中,可以在准许访问请求之前或之后锁定目标数据。此外,锁可以被配置成在请求中的所有操作完成时被释放(从而允许其他节点访问目标数据)。锁可以在规定时间段之后或在规定时间段和请求中的所有操作完成的时间二者中较短的时间时过期。在其他示例中,锁定可以向节点提供对目标数据的排他性访问,直到客户端释放锁或直到发生打破锁的事件。例如,根据SMB协议,可以向节点106提供来自存储***108的排他性OpLock。节点106可以假定其是唯一可以访问目标数据的节点,并且节点106可以本地缓存所有目标数据,并且在将改变提交给存储***108之前缓存对目标数据的所有改变。如果另一节点/工作负载尝试打开相同的目标数据,则存储***108向节点106发送消息(被称为中断(break)或撤销(revocation)),其使先前给予节点106的排他性OpLock无效。然后,节点106刷新对目标数据的所有改变,并且将它们提交给存储***108。
在某个时刻,节点102可能经历与节点106的通信故障。在一些示例中,该故障可能导致断开连接、硬件故障或重启等。作为故障的结果,节点102通过生成第二生成标识符来将第一工作负载重新分配给节点104。第二生成标识符、第一工作负载标识符和第一工作负载被传送到节点104。在一些示例中,节点102可以在将第一工作负载重新分配给节点104之前等待预定量的时间。
节点104开始处理第一工作负载,以根据需要发送对存储***108所存储的目标数据的文件访问请求。文件访问请求可以包括或引用生成标识符和/或工作负载标识符,诸如第二生成标识符和第一工作负载标识符。
存储***108接收文件访问请求。如果目标数据被锁定(例如,由节点106使用相同的工作负载标识符),则存储***108确定第二生成标识符是否表示比存储生成标识符高的优先级。如果第二生成标识符指示比存储生成标识符高的优先级,则存储***108打破节点106放置在目标数据上的锁,为节点104锁定目标数据,并且准许访问请求。如果第二生成标识符没有指示较高优先级,则存储***108可以向节点104指示目标数据被锁定。此外,该指示还可以通知节点104目标数据被节点106锁定。如果第二生成标识符指示比存储生成标识符高的优先级,则存储***108用第二生成标识符替换存储生成标识符。
在一些示例中,由节点104发布的访问请求可以是许可性的,这表示节点104不是期望存储***108打破对目标数据的较低优先级的锁,而是指示在目标数据被锁定或使用时较高优先级的访问请求不应该被准许。例如,存储***108不是打破节点106对目标数据的锁,而是拒绝来自节点104的许可性访问请求,并且取而代之提供节点106仍然在处理第一工作负载的通知。即使节点106不能与节点102通信,节点106仍然继续处理工作负载,只要节点106能够与存储***108通信。因此,工作负载的执行没有被节点104中断。节点104然后可以周期性地向存储***108发送后续的许可性访问请求,以便一旦节点106完成就获得对目标数据的访问。第一生成标识符可以由存储***108保留为存储生成标识符,直到来自节点104的更高优先级文件访问请求被准许,之后可以将第二生成标识符存储为存储生成标识符。
在其他示例中,由节点102生成的第二生成标识符可以指示比第一生成标识符低的优先级。因此,节点104发送的文件访问请求被拒绝,而目标数据仍然被节点106使用。如果节点106正在处理工作负载并且仍然能够访问存储***108,则较低优先级生成标识符允许节点106继续处理工作负载而不被节点104中断。节点104可以继续向存储***108发送周期性的访问请求。在最终获得对目标数据的访问时,节点104可以向节点102指示其成功。节点102然后生成第三生成标识符,其指示比第一生成标识符高的优先级,并且节点102将第三生成标识符传送给节点104。节点104然后可以在后续的文件访问请求中使用第三生成标识符而不是第二生成标识符。在节点104使用第三生成标识符成功地访问目标数据之后,存储***108可以保留第三生成标识符作为存储生成标识符。
尽管节点102和106之间存在通信故障,节点106可以继续处理第一工作负载。在第一工作负载被重新分配给节点104并且节点104已经被存储***108准许对目标数据的访问之后,节点106可以做出对目标数据的文件访问请求。文件访问请求可以包括或引用第一生成标识符。在接收到文件访问请求时,存储***108评估与文件访问请求相关联的生成标识符。存储***108确定与文件访问请求相关联的第一生成标识符指示比存储生成标识符低的优先级。因此,存储***108拒绝文件访问请求,并且向节点106指示其工作负载已经被重新分配给另一节点。在一些示例中,该指示可以通知节点106工作负载已经被重新分配给节点104。节点106然后可以停止处理第一工作负载。
在其他示例中,节点104在充当工作者节点时也可以充当主节点。节点104可以向其层内的另一节点(例如,节点106)分配第二工作负载。第二工作负载可以与第二工作负载标识符和第四生成标识符相关联。在该示例中,第四生成标识符、第二工作负载标识符和第二工作负载被传送给节点106。节点106开始处理第二工作负载,以根据需要发送对由存储***108存储的目标数据的文件访问请求。文件访问请求可以包括或引用生成标识符和/或工作负载标识符,诸如第四生成标识符和第二工作负载标识符。如上所述,存储***108将第四生成标识符存储在永久性存储装置中并且准许访问请求。
在某个时刻,节点104可能经历与节点106的通信故障。作为故障的结果,节点104通过生成第五生成标识符来将第二工作负载重新分配给其层内的新节点(未示出)。然后将第五生成标识符、第二工作负载标识符和第二工作负载传送给新节点。该新节点开始处理第二个工作负载。
如上所述,通过提供较低优先级的第五生成标识符或者通过发出文件访问请求连同请求许可性行为的指示,重新分配可以是许可性的。在两个示例中,节点106能够在其正常操作但不能与节点104通信的情况下完成处理第二工作负载。因此,在重新分配是许可的情况下,如果节点106不再访问目标数据,例如,如果节点106已经完成处理,丢失与存储***108的连接性,或者经历了除了与节点104的通信故障之外的故障,仅在这种情况下,新节点可以获得对目标数据的访问。在第五生成标识符不指示比存储生成标识符高的优先级的情况下,一旦新节点获得对目标数据的访问,则新节点可以从节点104接收更高优先级的第六生成标识符。然后,更高优先级的生成标识符可以由存储***108来存储。
尽管节点104和106之间存在通信故障,节点106可以继续处理第二工作负载。在第二工作负载被重新分配给新节点并且新节点已经被存储***108准许对目标数据的访问之后,节点106可以做出对目标数据的文件访问请求。文件访问请求可以包括或参考第四生成标识符。在接收到文件访问请求时,存储***108评估与文件访问请求相关联的生成标识符。存储***108确定与文件访问请求相关联的第四生成标识符指示比存储生成标识符低的优先级。因此,存储***108拒绝文件访问请求,并且向节点106指示其工作负载已经被重新分配给另一节点。在一些示例中,该指示可以通知节点106工作负载已经被重新分配给新节点。节点106然后可以停止处理第二工作负载。
在另外的示例中,节点102可以将正由节点106处理的第三工作负载从节点106迁移到节点104。第三工作负载可以与第三工作负载标识符相关联。此外,第三工作负载可以已经与节点106在向存储***108发布文件访问请求时使用的第七生成标识符相关联。节点102生成第八生成标识符。第八生成标识符可以指示比第七生成标识符高的优先级。第八生成标识符、第三工作负载标识符和第三工作负载然后被传送给节点104。在迁移操作期间的某个时刻,节点102和104之间可能发生故障。因此,节点102不知道迁移操作是否成功完成以及节点104是否开始处理第三工作负载。因此,节点102不能确定节点106应该采取什么动作,例如,它应该停止还是继续处理第三工作负载。
然而,如果迁移操作成功完成,则节点104将开始处理第三工作负载,根据需要向存储***108发布文件访问请求。因此,存储***108存储相关联的第八生成标识符,并且如上所描述的准许文件访问请求。在从节点106接收到随后的文件访问请求时,存储***108确定相关联的第七生成标识符指示比存储生成标识符低的优先级,并且提供工作负载已经被重新分配的指示。该指示可以通知节点106工作负载已经被迁移到节点104。
如果迁移操作未成功完成,则节点106继续处理第三工作负载。生成标识符使集群能够确保第三工作负载由集群内的节点持续处理,而不管迁移操作是否失败。此外,在成功迁移的情况下,当节点102不能通知节点106工作负载已经被迁移到不同的节点,其经由存储***108提供替代通知渠道。
以上描述仅是图1所示的示例能够如何操作的一个示例。如下面更详细地描述的,示例可以涉及不同的步骤或操作。这些可以使用任何适当的软件或硬件部件或模块来实现。
图2示出了可以用于实现一些示例的***200。***200包括节点202、204、206、208、210、212和214。节点202充当节点204和206的主节点。节点204和206可以充当工作者节点并且处理由节点202分配给它们的工作负载。此外,节点204充当节点208和210的主节点,并且节点206充当212和214的主节点。节点204和206可以充当主节点和工作者节点。节点208和210充当工作者节点并且处理由节点204分配给它们的工作负载。类似地,节点212和214充当工作者节点并且处理由节点206分配给它们的工作负载。存储***216存储由节点208、210、212和214经由网络230访问的信息。虽然图2中仅示出了节点208、210、212和214与存储***216通信,然而在其他示例中,可以存在多于(或少于)四个节点访问由存储***216存储的文件信息,包括节点202、204和206。
如图2所示,存储***216包括节点216A和216B,其为可扩展文件服务器218提供高的可用性和冗余。在示例中,存储***216提供由节点208、210、212和214访问的可扩展文件服务器218。可扩展文件服务器218可以包括多个集群服务器,这些集群服务器可以协作以从分布式文件***220提供文件信息。分布式文件***220包括存储在物理存储装置228上的文件信息。物理存储装置228的文件***226挂载在节点216B上。在一些示例中,文件***226的格式可以是新技术文件***(NTFS)或弹性文件***(ReFS)。节点216B充当分布式文件***220的协调器,并且将文件操作(例如读出、写入和元数据操作)从分布式文件***220中继到文件***226。在一些示例中,节点216A可以直接对物理存储装置228执行文件操作,尽管节点216B可以具有排他性的写入访问,使得写入请求被节点216A转发给节点216B,而不是直接被发送给物理存储装置228。另外,生成标识符过滤器222将访问请求与生成标识符相关联,该生成标识符然后被存储在永久性存储装置224中。例如,永久性存储装置224可以包括由附接至NTFS文件***的生成标识符过滤器利用的生成标识符过滤器数据库。虽然图2中示出了两个节点,然而在其他示例中,存储***216可以包括多于两个节点或少于两个节点。
图2示出了三“层”节点和多个子组。节点202包括全局主层。节点204和206包括本地主层,节点208、210、212和214包括本地工作者层。全局主层中的节点可以将工作分发给本地主层中的节点。本地主层中的节点可以将工作分发给本地工作者层中的节点。此外,节点204、208和210包括一个子组,而节点206、212和214可以包括另一子组。因此,节点204可以在节点208和210之间分发工作负载,并且节点206可以在节点212和214之间分发工作负载。然而,作为最顶部节点的节点202负责总体工作负载分发,并且可以独立于节点204和206做出的分发决策来分发工作负载。例如,节点202可以将本地主层内的工作负载从节点204重新分配给节点206,而不管节点204是否进一步将工作负载分发给本地工作者层中的节点(例如,给节点208或210)。尽管图2仅示出了三层节点,但是在其他示例中,可以存在多于(或少于)三层,其中较高层中的节点可以向较低层中的节点分配工作负载。尽管图2描绘了每个层中的特定数量的节点,然而层可以包含变化数量的节点。
生成标识符创建可以捕获存在于节点202、204、206、208、210、212和214之间的层级式决策结构。在一个示例中,生成标识符可以是128位的标识符,该128位的标识符然后被细分成两个子部分,使得前64位表示主要标识符,后64位表示次要标识符。当在包括第二层的节点(例如,节点204和206)之间分配工作负载时,更改主要标识符。类似地,当在包括第三层的节点(例如节点208、210、212和214)之间分配工作负载时,更改次要标识符。因此,当考虑一个生成标识符与另一生成标识符的优先级时,可以不同地评估生成标识符的子部分。具有相对于另一生成标识符的主要标识符更高优先级的主要标识符的生成标识符可以被确定为具有更高优先级,而不管由次要标识符指示的优先级。类似地,可以通过比较由次要标识符指示的优先级来确定具有指示相似优先级的主要标识符的两个生成标识符的优先级关系。在其他示例中,生成标识符可以具有不同的长度,并且可以被细分成比两个部分更多或更少的部分,以便表示层级式决策结构。
如果由生成标识符的子部分指示的优先级达到最大可能编码值,则可以通过向主节点发送对更高优先级生成标识符的请求来获得随后的更高优先级生成标识符。例如,如果节点204耗尽了生成标识符的次要标识符子部分的所有可能的编码值,则节点204可以向节点202指示对于给定的主要标识符,所有可能的次要标识符已经耗尽。然后,节点202以由更高优先级主要标识符和次要标识符组成的新的生成标识符进行响应。然后,节点204可以继续更改新的生成标识符的次要标识符子部分,以便提供随后的更高优先级的生成标识符。
在其他示例中,可以通过将耗尽的子部分从最大可能编码值“翻转”回到起始值(例如,最小的可能编码值)来生成更高优先级的生成标识符。例如,如果次要标识符由无符号整数表示,则次要标识符从最大的可能编码值“翻转”为0。主要标识符不变。当比较两个标识符时,通过从生成标识符的每个相应子部分中减去另一个生成标识符的等效子部分的最后有效值来进行优先级确定。减法运算可以利用二进制补码公式,使得从翻转值中减去最大的可能编码值产生正值。由减法运算产生的负值表示较低的优先级,而正值表示较高的优先级。然后通过如上所描述的评估生成标识符的各个子部分来评估生成标识符的优先级关系。
根据示例,节点202、204、206、208、210、212和214用于提供分布式工作负载的高可用性处理。这是通过利用节点和存储***216上的部件来划分工作负载并且在主节点与工作者节点之间发生故障的情况下在各个节点之间重新分发工作来完成的。如下面更详细地描述的,当节点的工作负载被重新分配时提供给节点的重新分配通知允许节点集群提供分布式工作负载的高可用性处理。
在示例中,节点202负责将分布式工作负载划分和分配给工作者节点。节点202可以向节点204分配第一工作负载。节点204可以进一步将工作负载分发给其工作者节点之一,例如节点210。第一工作负载可以与由第一主要号码和第一次要号码组成的第一生成标识符相关联。第一工作负载还可以与第一工作负载标识符相关联。第一生成标识符、第一工作负载标识符和第一工作负载可以被传送给节点210。
节点210开始处理第一工作负载,以根据需要将对目标数据的文件访问请求发送给节点216A。访问请求可以与生成标识符和/或工作负载标识符相关联或者包括生成标识符和/或工作负载标识符。例如,当开始新的工作负载时,可以将生成标识符的指示传送给节点216A。对目标数据的访问请求可以包括要对目标数据执行的多个文件操作。操作可以是例如打开以读取/写入数据、枚举属性、租赁请求以允许本地缓存数据,或其他文件访问操作。
在一个示例中,生成标识符可以存储在_NETWORK_APP_INSTANCE_VERSION_ECP_CONTEXT结构中。_NETWORK_APP_INSTANCE_VERSION_ECP_CONTEXT结构可以如下定义:
typedef struct_NETWORK_APP_INSTANCE_VERSION_ECP_CONTEXT{
USHORT Size;
USHORT Reserved;
UINT64 VersionHigh;
UINT64 VersionLow;
}NETWORK_APP_INSTANCE_VERSION_ECP_CONTEXT,*PNETWORK_APP_INSTANCE_VERSION_ECP_CONTEXT;
在这样的示例中,可变大小可以存储与结构的大小相关的信息,变量VersionHigh可以是主要标识符,并且变量VersionLow可以是次要标识符。在一些示例中,_NETWORK_APP_INSTANCE_VERSION_ECP_CONTEXT或者包含生成标识符的另一对象或变量可以存储在永久性存储装置224中。在示例中,_NETWORK_APP_INSTANCE_VERSION_ECP_CONTEXT结构可以与用以访问资源的请求(例如,创建请求或打开请求)相关联地从节点发送给存储***。在一个示例中,生成标识符可以由正在处理工作负载或分发工作负载的节点(例如,主节点或工作者节点)来存储。在另一示例中,尽管在图2中未示出,但是节点集群可以具有存储生成标识符的中央储存库。在这样的示例中,集群中的多个节点可以访问集中式储存库。在又一示例中,生成标识符可以跨多个储存库被存储。在这样的示例中,节点集群可以采用复制算法以确保多个存储库包含相同的生成标识符。
节点216A接收对目标数据的访问请求。在确定该请求应当被准许时,生成标识符过滤器222将与来自节点210的访问请求或关联的或包括的生成标识符存储在永久性存储装置224中。在一些示例中,然后可以锁定目标数据。
在某个时刻,节点210可能经历与节点204的通信故障。该故障可能由例如断开连接、硬件故障或重启引起。作为故障的结果,节点204通过生成包括第一主要标识符和第二次要标识符的第二生成标识符来将第一工作负载重新分配给节点208。第二生成标识符、第一工作负载标识符和第一工作负载可以被传送给节点208。
节点208开始处理第一工作负载,以根据需要将对目标数据的文件访问请求发送给节点216A。文件访问请求可以包括或引用生成标识符和/或工作负载标识符,诸如第二生成标识符和第一工作负载标识符。
节点216A接收文件访问请求。如果目标数据被锁定(例如,由节点210使用相同的工作负载标识符),则可扩展文件服务器218确定第二生成标识符是否表示比存储生成标识符高的优先级。第二生成标识符和存储生成标识符二者的主要标识符指示相同的优先级,因此可扩展文件服务器218比较次要标识符。如果第二生成标识符的次要标识符指示比存储生成标识符的次要标识符高的优先级,则节点216A打破节点210对目标数据的锁定,为节点208锁定目标数据,并且准许访问请求。如果第二生成标识符的次要标识符不指示较高优先级,则节点216A可以向节点208指示目标数据被锁定。此外,该指示还可以通知节点208目标数据被节点210锁定。如果第二生成标识符指示比存储生成标识符高的优先级,则存储在永久性存储装置224中的生成标识符用第二生成标识符替代,其变成存储生成标识符。
如上所述,节点208还可以发出许可性访问请求,或者第二生成标识符的次要标识符可以指示比存储生成标识符的次要标识符低的优先级。在这两个示例中,节点210能够在其正在正常操作但不能与节点204通信的情况下完成对工作负载的处理。因此,如果节点210不再访问目标数据,例如,如果节点210已经完成处理,丢失与存储***216的连接,或者经历了除了与节点204的通信故障之外的故障,节点208可以获得对目标数据的访问。在第二生成标识符不指示比存储生成标识符更高的优先级的情况下,一旦节点208获得对目标数据的访问,则节点208可以从节点204接收更高优先级的第三生成标识符。然后,更高优先级的生成标识符可以存储在永久性存储装置224中。
尽管节点204和210之间存在通信故障,节点210可以继续处理第一工作负载。在第一工作负载被重新分配给节点208并且节点208已经被节点216A准许对目标数据的访问之后,节点210可以向节点216A发送文件访问请求。文件访问请求可以包括或引用第一生成标识符。在接收到访问请求时,可扩展文件服务器218评估与文件访问请求相关联的生成标识符。可扩展文件服务器218将确定与文件访问请求相关联的第一生成标识符指示比存储生成标识符低的优先级。因此,节点216A拒绝文件访问请求,并且向节点210指示工作负载已经被重新分配给另一节点。在一些示例中,该指示可以通知节点210工作负载已经被重新分配给节点208。节点210然后可以停止处理第一工作负载。
最终,节点204可能经历与节点202的通信故障。作为故障的结果,节点202通过生成包括第二主要标识符和第三次要标识符的第四生成标识符来将第一工作负载重新分配给节点206。第三次要标识符可以指示与第一次要标识符或第二次要标识符类似的优先级,或者它可以完全指示不同的优先级。第四生成标识符、第一工作负载标识符和第一工作负载可以被传送给节点206。节点206然后可以进一步将工作负载分发给其工作者节点之一,例如节点212。因此,第四生成标识符、第一工作负载标识符、以及到节点212的第一工作负载可以被传送给节点212。
节点212开始处理第一工作负载,以根据需要向节点216B发送对目标数据的访问请求。文件访问请求可以与生成标识符和/或工作负载标识符(诸如第四生成标识符和第一工作负载标识符)相关联或者包括生成标识符和/或工作负载标识符。
节点216B接收文件访问请求。如果目标数据被锁定(例如,由节点210使用相同的工作负载标识符),则可扩展文件服务器218确定第四生成标识符是否表示比存储生成标识符高的优先级。如果第四生成标识符的主要标识符指示比存储生成标识符的主要标识符高的优先级,则节点216B打破节点208对目标数据的锁定,为节点212锁定目标数据,并且准许访问请求。可扩展文件服务器218可以在确定主要标识符指示较高优先级时忽略次要标识符。另外,永久性存储装置224中的存储生成标识符可以用更高优先级的第四生成标识符替换。如果第四生成标识符的主要标识符不指示更高优先级,则节点216B可以向节点212指示目标数据被锁定。此外,该指示还可以通知节点212目标数据被节点208锁定。在示例中,节点212可以将这样的信息传送给节点202。
如上所述,节点212还可以发出许可性访问请求,或者第四生成标识符可以指示比存储生成标识符低的优先级。在这两个示例中,仅当节点208已经完成其访问请求和/或在一些示例中已经释放其锁定时,节点212获得对目标数据的访问。在第四生成标识符不指示比存储生成标识符高的优先级的情况下,一旦节点212获得对目标数据的访问,则节点212可以从节点202接收更高优先级的第五生成标识符。更高优先级的生成标识符存储在永久性存储装置224中。这防止节点208在一旦节点212获得对目标数据的访问时使用其较低优先级的生成标识符来重新获得访问。
尽管节点204和202之间存在通信故障,节点208仍然可以继续处理第一工作负载。在第一工作负载被重新分配给节点212并且节点212已经被节点216B准许对目标数据的访问之后,节点208可以向节点216A发送文件访问请求。文件访问请求可以包括或引用由第一主要标识符和第四次要标识符组成的第六生成标识符。第四次要标识符可以指示与第一次要标识符、第二次要标识符或第三次要标识符类似的优先级,或者它可以完全指示不同的优先级。在接收到访问请求时,可扩展文件服务器218评估与文件访问请求相关联的生成标识符。可扩展文件服务器218确定与文件访问请求相关联的第六生成标识符的主要标识符指示比存储生成标识符的主要标识符低的优先级。在示例中,可以忽略次要标识符的优先级指示,因为已经基于由生成标识符的主要标识符指示的优先级做出了更高优先级的确定。因此,节点216A拒绝文件访问请求并且向节点208指示工作负载已经被重新分配给另一节点。在一些示例中,该指示可以通知节点208工作负载已经被重新分配给节点212。节点208然后可以停止处理第一工作负载。
如可以理解的,***200的以上描述不旨在限制本文中描述的示例。图2及其描述仅用于示出一些示例的实现。因此,示例不限于图2中示出和描述的内容。
图3、图4和图5示出了根据示例的操作流程300、400和500。操作流程300、400和500可以在任何合适的计算环境中执行。例如,操作流程可以由诸如图1和2所示的环境执行。因此,对操作流程300、400和500的描述可以指代图1和图2的部件中的至少一个。然而,应当理解,图1和图2的实现是用于操作流程300、400和500的非限制性环境。
此外,尽管以特定顺序相继地示出和描述了操作流程300、400和500,但是在其他示例中,可以以不同的顺序、多次和/或并行地执行操作。此外,在一些示例中可以省略或组合一个或多个操作。另外,应当理解,除非另有说明,否则诸如“第一”等序数不意在暗示顺序或序列,而是用于区分相似的元素。例如,“第一生成标识符”不需要是初始生成标识符,而是应该被理解为不同于“第二生成标识符”。
操作流程300示出了例如与存储***通信的节点的操作。在示例中,图3所示的流程300可以由正在处理工作负载的节点(例如,节点210(图2))执行。
流程300开始于操作302,在操作302,发送对目标数据的访问请求。访问请求可以与第一生成标识符、第一工作负载标识符和第一工作负载相关联。在一个示例中,第一生成标识符可以在经由网络传输的消息中发送。在操作302中,可以在包含该请求的相同消息中传输生成标识符,或者可以在不同的消息中传输生成标识符。在这样的示例中,可以在操作302发送包含生成标识符的对象,诸如但不限于_NETWORK_APP_INSTANCE_VERSION_ECP_CONTEXT。
在一个示例中,在操作302处,可以使用接口来发送生成标识符。该接口可以是位于节点上或可用于在集群环境中操作的节点的内核级接口。在示例中,内核级接口可以由节点用来向存储***发送生成标识符。以下是在操作302可以采用内核级接口来发送应用实例标识符的非限制性示例:
Figure BDA0001223708850000191
Figure BDA0001223708850000201
Figure BDA0001223708850000211
尽管提供了特定的内核级接口,但是本领域技术人员将理解,在操作302可以采用其他接口来发送生成标识符。
流程然后继续到操作304,在操作304,接收接入响应。在决策306,确定对目标数据的访问是否被准许。可以不准许访问,这是因为例如目标数据被由工作负载标识符指示的不同工作负载锁定或在使用中,或者工作负载标识符指示相同的工作负载,但是与初始与对目标数据的另一访问请求相关联的标识符相比,第一生成标识符指示更低的优先级。在其他示例中,可以拒绝访问,这是因为如果目标数据仍然在使用中,第一访问请求指示了对目标数据的预先存在的锁定不应当被打破。
如果在决策306处准许对目标数据的访问,则流程转到操作308,在操作308,第一工作负载的执行继续。在操作308之后,操作流程结束。
如果在决策306处没有准许对目标数据的访问,则流程继续到决策310,在决策310,作出关于访问响应是否指示工作负载被重新分配的确定。
如果在决策310处接收到工作负载被重新分配的指示,则流程移到操作312,在操作312,作为所接收的指示的结果,停止第一工作负载的执行。在一些示例中,访问响应还可以指示工作负载被分配给的节点。在操作312之后,操作流程结束。
如果在决策310处没有接收到工作负载被重新分配的指示,则流程继续到操作314,在操作314,可以周期性地重新尝试访问请求,在一段时间之后返回操作302。
操作流程400示出了例如向其他节点分配工作负载的节点的操作。在示例中,流程400可以由分发工作的节点(例如,节点202(图2))执行。
流程400开始于操作402,其中第一生成标识符和第一工作负载标识符与第一工作负载相关联。在操作404,将第一生成标识符、第一工作负载标识符和第一工作负载传送到第一节点。
流程然后转到操作406,其中有故障发生。例如,故障可能是由于例如连接中断、硬件故障或重启等。在决策408处,确定是否启用许可性请求。在示例中,许可性请求允许第一节点在第一节点是正在正常操作的工作者节点但已停止与其主节点通信的情况下继续处理第一工作负载,并且第一工作负载由主节点重新分配。如所讨论的,存在可以启用许可性请求的两种方法,并且向工作者节点分配工作的的主节点的行为受以下项的影响:(a)是否启用许可性请求,和(b)是否启用许可性请求的肯定指示(例如,许可标志)。如果没有许可性请求被启用(例如,主节点不支持它们),则主节点将默认向第二节点提供具有比第一生成标识符更高优先级的第二生成标识符。如果启用许可性请求,但许可标志不被(第二节点或存储***)支持,则主节点可以向第二节点提供具有比第一生成标识符更低优先级的第二生成标识符(以便当被呈现给存储***时,第二生成标识符将不会中断由第一节点对目标数据进行的任何活动工作)。然而,如果启用许可标志,则主节点可以生成更高优先级的生成标识符但是其中设置有许可标志(或向第二节点的用于设置这样的标志的指令),并且将其提供给第二节点,使得存储***将第一节点仍在对目标数据进行任一活动工作的同时忽略较高优先级的生成标识符。这将在下面进一步讨论。
如果在决策408处确定没有启用许可性请求,则流程继续到操作410,在操作410,生成指示比第一生成标识符更高优先级的第二生成标识符,并且将其与第一工作负载相关联。在操作412中,将第二生成标识符、第一工作负载标识符和第一工作负载传送给第二节点。操作流程在操作412结束。
如果在决策408处确定启用许可性请求,则流程进行到决策414,在决策414,确定是否启用许可标志。在一些示例中,如果目标数据正在使用中或被锁定,则工作者节点启用并使用许可标志来向存储***指示文件访问请求不应当被准许,即使文件访问请求与指示较高优先级的生成标识符相关联。
如果在决策414处确定启用许可标志,则流程继续到操作416,在操作416,生成指示比第一生成标识符更高优先级的第三生成标识符,并且将其与第一工作负载相关联。在操作418,将第三生成标识符、第一工作负载标识符和第一工作负载连同许可标志或者第二节点应当在向存储***做出访问请求时设置许可标志的指示一起传送给第二节点。在操作418之后,操作流程结束。
如果在决策414处确定没有启用许可标志,则流程继续到操作420,在操作420生成指示比第一生成标识符更低优先级的第四生成标识符,并且将其与第一工作负载相关联。在操作422,将第四生成标识符、第一工作负载标识符和第一工作负载传送给第二节点。流程继续到操作424,在操作424,从第二节点最终接收指示已经成功访问目标数据的通知。流程然后继续到操作426,在操作426,生成指示比第一生成标识符更高优先级的第五生成标识符,并且将其与第一工作负载相关联。在操作428,将第五生成标识符传送给第二节点。在操作428之后,操作流程400结束。
操作流程500示出了例如与节点通信的存储***的操作。在示例中,流程500可以由存储***执行,诸如一个或多个文件服务器,例如节点216A和/或节点216B(图2)。
流程500开始于操作502,在操作502,接收对目标数据的第一访问请求。第一访问请求与第一生成标识符和第一工作负载标识符相关联。在一些示例中,第一生成标识符和/或第一工作负载标识符可以被包括作为第一访问请求的一部分。对目标数据的访问请求可以包括对目标数据执行的多个文件操作。操作可以是例如打开以读取/写入数据、枚举属性、租赁请求以允许本地缓存数据,或其他文件访问操作。在操作502之后,流程500进行到操作504,在操作504,将第一生成标识符和第一工作负载标识符存储在永久性存储装置中。
在操作506,锁定目标数据以供使用并且与第一生成标识符相关联。目标数据还可以与第一工作负载标识符相关联。流程进行到操作508,在操作508,准许对目标数据的访问。继续到操作510,接收对目标数据的第二访问请求。第二访问请求可以与第二生成标识符和/或第一工作负载标识符相关联或者引用第二生成标识符和/或第一工作负载标识符。
在决策512,确定第二生成标识符是否具有比存储的标识符更高的优先级。在一些示例中,确定可以基于对生成标识符的各种子部分(例如,主要标识符子部分和次要标识符子部分)所指示的优先级进行比较。
如果在决策512处确定第二生成标识符不指示较高优先级,则流程继续到操作514,在操作514,拒绝访问请求并且做出目标数据正在使用中的指示。在示例中,这样的指示可以包括目标数据被特定节点使用的指示。在操作514之后,操作流程结束。
如果在决策512处确定第二生成标识符具有较高优先级,则流程继续到判决516,在判决516,确定第二访问请求是否是许可性的。如果在判定516处确定第二访问请求是许可性的,则流程继续到操作518,在操作518,拒绝访问请求并且做出目标数据正在使用中的指示。在操作518之后,操作流程结束。在示例中,做出第二访问请求的节点将重新尝试第二访问请求,直到目标数据不再被锁定。
如果在决策516处确定第二访问请求不是许可性的,则操作流程500前进到操作520,在操作520,将第二生成标识符代替第一生成标识符存储在永久性存储装置中。在操作522,打破对目标数据的、与第一生成标识符相关联的锁定,并且对可以与第二生成标识符相关联的目标数据进行锁定。继续到操作524,准许访问请求。
在操作526,接收第三访问请求。第三访问请求可以与第一生成标识符和第一工作负载标识符相关联或者引用第一生成标识符和第一工作负载标识符。流程前进到操作528,在操作528,拒绝第三访问请求,因为第一生成标识符不指示比存储生成标识符高的优先级。此外,做出目标数据已经被重新分配的指示。操作流程500然后结束。
图6-8以及相关联的描述提供了可以实践本发明的示例的各种操作环境的讨论。然而,关于图6-8所示出和讨论的设备和***是为了示例和说明的目的,而不限制可以用于实践本文中所描述的本发明的示例的大量计算设备配置。
图6是示出可以实践本公开的示例的计算设备602(例如节点202、204、206、208、210、212、214、216A和216B)的物理部件的框图。下面描述的计算设备部件可以适合于上述计算设备。在基本配置中,计算设备602可以包括至少一个处理单元604和***存储器606。取决于计算设备的配置和类型,***存储器606可以包括但不限于易失性存储装置(例如,随机存取存储器)、非易失性存储装置(例如,只读存储器)、闪存或这样的存储器的任何组合。***存储器606可以包括操作***607和适于运行软件应用620(诸如与生成标识符626相关联的工作负载624)的一个或多个程序模块608。操作***607例如可以适于控制计算设备602的操作。此外,本发明的示例可以结合图形库、其他操作***或任何其他应用程序来实践,而不限于任何特定的应用或***。该基本配置在图6中用虚线622内的那些部件示出。计算设备602可以具有附加的特征或功能。例如,计算设备602还可以包括附加的数据存储设备(可移除的和/或非可移除的),例如磁盘、光盘或磁带。这样的附加存储装置在图6中用可移除存储设备609和非可移除存储设备610示出。
如上所述,多个程序模块和数据文件可以存储在***存储器606中。当在处理单元604上执行时,程序模块608(例如,与生成标识符626相关联的工作负载624)可以执行处理,包括但不限于图3、4和5中所示的操作流程300、400和500的一个或多个阶段。可以根据本发明的示例而使用的其他程序模块可以包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等。
此外,本发明的示例可以在电路中实现,包括分立电子元件、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或包含电子元件或微处理器的单个芯片。例如,本发明的示例可以经由片上***(SOC)来实现,其中图6中所示的每个或很多部件可以集成到单个集成电路上。这样的SOC器件可以包括一个或多个处理单元、图形单元、通信单元、***虚拟化单元和各种应用功能,所有这些被集成(或“烧录”)到芯片衬底上作为单个集成电路。当经由SOC操作时,本文中描述的功能可以经由在单个集成电路(芯片)上与计算设备602的其他部件集成的专用逻辑来操作。本公开的示例还可以使用能够执行诸如例如AND、OR和NOT的逻辑操作的其它技术来实践,包括但不限于机械、光学、流体和量子技术。此外,本发明的示例可以在通用计算机或任何其他电路或***中实现。
计算设备602还可以具有一个或多个输入设备612,诸如键盘、鼠标、笔、声音输入设备、触摸输入设备等。还可以包括输出设备614,诸如显示器、扬声器、打印机等。上述设备是示例,并且可以使用其它设备。计算设备602可以包括允许与其他计算设备618通信的一个或多个通信连接616。合适的通信连接616的示例包括但不限于RF发射器、接收器和/或收发器电路***;通用串行总线(USB)、并行和/或串行端口。
如本文中所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构或程序模块等信息的任何方法或技术实现的易失性和非易失性、可移除和非可移除介质。***存储器606、可移除存储设备609和非可移除存储设备610都是计算机存储介质示例(即,存储器存储装置)。计算机存储介质可以包括RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储器、磁带盒、磁带、磁盘存储装置或其它磁存储设备、或者可以用于存储信息并且可以由计算设备602访问的任何其他物品。任何这样的计算机存储介质可以是计算设备602的一部分。计算机存储介质不包括载波或其他传播的或调制数据信号。
通信介质可以通过计算机可读指令、数据结构、程序模块或调制数据信号(诸如载波或其他传输机制)中的其他数据来实现,并且包括任何信息传递介质。术语“调制数据信号”可以描述具有以能够在信号中编码信息的方式设置或改变的一个或多个特性的信号。作为示例而非限制,通信介质可以包括有线介质(诸如有线网络或直接有线连接)以及无线介质(诸如声学、射频(RF)、红外线和其他无线介质)。
图7A和7B示出了可以实践本发明的示例的移动计算设备700,例如移动电话、智能电话、平板个人计算机、膝上型计算机等。例如,移动计算设备700可以用于实现节点202、204、206、208、210、212和214。参考图7A,示出了用于实现示例的移动计算设备700的一个示例。在基本配置中,移动计算设备700是具有输入元件和输出元件二者的手持计算机。移动计算设备700通常包括显示器705和允许用户将信息输入到移动计算设备700中的一个或多个输入按钮710。移动计算设备700的显示器705还可以用作输入设备(例如,触摸屏显示器)。如果被包括,则可选的边侧输入元件715允许进一步的用户输入。边侧输入元件715可以是旋转开关、按钮或任何其他类型的手动输入元件。在替代示例中,移动计算设备700可以并入更多或更少的输入元件。例如,在一些示例中,显示器705可以不是触摸屏。在另一替选示例中,移动计算设备700是便携式电话***,诸如蜂窝电话。移动计算设备700还可以包括可选的小键盘735。可选的小键盘735可以是物理键盘或在触摸屏显示器上生成的“软”键盘。在各种示例中,输出元件包括用于示出图形用户界面(GUI)的显示器705、视觉指示器720(例如,发光二极管)和/或音频换能器725(例如扬声器)。在一些示例中,移动计算设备700包括用于向用户提供触觉反馈的振动换能器。在又一示例中,移动计算设备700包括输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,HDMI端口),用于向外部设备发送信号或从外部设备接收信号。
图7B是示出移动计算设备的一个示例的架构的框图。也就是说,移动计算设备700可以包括***(即,架构)702以实现一些示例。在一个示例中,***702被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息客户端、游戏和媒体客户端/播放器)的“智能电话”。在一些示例中,***702被集成为计算设备,诸如集成个人数字助理(PDA)和无线电话。
一个或多个应用程序766可以被加载到存储器762中并且在操作***764上或与其相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息收发程序等。***702还包括存储器762内的非易失性存储区域768。非易失性存储区域768可以用于存储在***702掉电的情况下不应该丢失的永久性信息。应用程序766可以在非易失性存储区域768中使用和存储信息,诸如电子邮件或电子邮件应用使用的其他消息等。同步应用(未示出)也驻留在***702上,并且被编程为与驻留在主机计算机上的相应同步应用交互,以保持存储在非易失性存储区域768中的信息与存储在主机计算机上的相应信息同步。应当理解,其他应用可以被加载到存储器762中并且在移动计算设备700上运行,包括与本文中所描述的生成标识符782相关联的工作负载780。
***702具有电源770,其可以被实现为一个或多个电池。电源770还可以包括外部电源,诸如AC适配器或者对电池进行补充或再充电的加电的对接支架。
***702可以包括***设备端口778,***设备端口778执行促进***702与一个或多个***设备之间的连接的功能。在操作***764的控制下进行去往和来自***设备端口772的传输。换句话说,由***设备端口778接收的通信可以经由操作***764传播给应用程序766,反之亦然。
***702还可以包括执行传输和接收射频通信的功能的无线电772。无线电772经由通信运营商或服务提供商来促进***702与“外部世界”之间的无线连接。在操作***764的控制下进行去往和来自无线电772的传输。换句话说,由无线电772接收的通信可以经由操作***764传播给应用程序766,反之亦然。
视觉指示器720可以用于提供视觉通知,和/或音频接口774可以用于经由音频换能器725产生可听通知。在所示示例中,视觉指示器720是发光二极管(LED),并且音频换能器725是扬声器。这些设备可以直接耦合到电源770,使得当被激活时,它们保持开启持续由通知机制指示的持续时间,即使处理器760和其他部件可能关闭以节省电池电力。LED可以被编程为无限期地保持开启,直到用户采取动作来指示设备的通电状态。音频接口774用于向用户提供可听信号并且从用户接收可听信号。例如,除了耦合到音频换能器725之外,音频接口774还可以耦合到麦克风以接收可听输入,诸如以便于电话交谈。根据本发明的示例,麦克风还可以用作音频传感器以便于通知的控制,如下面将描述的。***702还可以包括视频接口776,视频接口776使得车载相机730的操作能够记录静止图像、视频流等。
实现***702的移动计算设备700可以具有附加的特征或功能。例如,移动计算设备700还可以包括附加的数据存储设备(可移除和/或非可移除),诸如磁盘,光盘或磁带。这样的附加存储装置在图7B中用非易失性存储区域768示出。
由移动计算设备700产生或捕获并且经由***702存储的数据/信息可以本地存储在移动计算设备700上,如上所述,或者数据可以存储在任何数量的存储介质上,这些任何数量的存储介质可以由设备经由无线电772或者经由移动计算设备700和与移动计算设备700相关联的单独的计算设备(例如,诸如因特网等分布式计算网络中的服务器计算机)之间的有线连接来访问。应当理解,这样的数据/信息可以经由移动计算设备700经由无线电772或经由分布式计算网络来访问。类似地,可以根据公知的数据/信息传输和存储装置(包括电子邮件和协作数据/信息共享***)在计算设备之间容易地传输这样的数据/信息以供存储和使用。
图8示出了用于提供处理分布式工作负载并且处理对一个或多个客户端设备的故障的集群的***的架构的一个示例,如上所述。与节点202、204、206、208、210、212或214相关联地访问、交互或编辑的目标数据可以存储在不同的通信信道或其他存储类型中。例如,可以使用目录服务822、网络门户824、邮箱服务826、即时消息收发储存库828或社交网络站点830来存储各种文档。处理工作负载的节点(例如节点210)可以使用用于实现数据利用的这些类型的***中的任何***等,如这里所描述的。服务器820可以提供存储***216用于由通用计算设备602和移动设备700通过网络815操作的节点208、210、212和214来使用。作为示例,网络815可以包括因特网或任何其他类型的局域网或广域网,并且节点202、204、206、208、210、212和214可以被实现为包含在个人计算机、平板计算设备和/或移动计算设备700(例如,智能电话)中的计算设备602。客户端计算设备602或700的这些实施例中的任一个可以从储存库816获得内容。
本公开包括一种***,其包括至少一个处理器;存储器,在操作上连接至至少一个处理器并且包含指令,指令在由至少一个处理器执行时执行方法,方法包括:使第一生成标识符和第一工作负载标识符与第一工作负载相关联;向第一节点传送第一生成标识符、第一工作负载标识符和第一工作负载;以及在与第一节点的通信故障期间,生成第二生成标识符,使第二生成标识符与第一工作负载相关联,以及向第二节点传送第二生成标识符、第一工作负载标识符和第一工作负载,其中第二生成标识符传送与第一生成标识符不同的优先级。在示例中,通信故障包括以下中的至少一个:断开连接、硬件故障或节点的重启。另外,第二生成标识符可以传送比第一生成标识符高的优先级。在其他示例中,第二生成标识符可以传送比第一生成标识符低的优先级。在另外的示例中,***和方法包括从第二节点接收成功的指示;生成传送比第一生成标识符高的优先级的第三生成标识符;使第三生成标识符与第一工作负载相关联;以及向第二节点传送第三生成标识符。此外,传送第二生成标识符可以包括:在确定第一节点仍然正在处理第一工作负载的情况下发送第二节点不应当中断第一节点的指示。此外,在示例中,第一生成标识符和第二生成标识符均由至少两个子部分组成,至少两个子部分中的每个子部分传送优先级。此外,在示例中,对至少两个子部分中的每个子部分传送的优先级进行加权,使得由至少两个子部分之一指示的优先级抢先于由至少两个子部分中的另一子部分指示的优先级。
在其它示例中,本公开提出了一种***和方法用于:接收对目标数据的第一访问请求,目标数据由存储***存储,第一访问请求与第一生成标识符和第一工作负载标识符相关联;将第一生成标识符和第一工作负载标识符存储在永久性存储装置中作为第一存储生成标识符和第一存储工作负载标识符;准许对目标数据的第一访问请求;接收对目标数据的第二访问请求,第二访问请求与第二生成标识符和第一工作负载标识符相关联;将第二生成标识符与第一存储生成标识符相比较并且将第一工作负载标识符与第一存储工作负载标识符相比较;确定第二生成标识符指示比第一存储生成标识符高的优先级,并且第一工作负载标识符与第一存储工作负载标识符相匹配;将第二生成标识符存储在永久性存储装置中作为第二存储生成标识符;准许对目标数据的第二访问请求;接收对目标数据的第三访问请求,第三访问请求与第一生成标识符和第一工作负载标识符相关联;确定第一生成标识符指示比第二存储生成标识符低的优先级,并且第一工作负载标识符与第一存储工作负载标识符相匹配;以及拒绝对目标数据的第三访问请求。在示例中,从第一节点接收第一访问请求和第三访问请求,并且从第二节点接收第二访问请求,并且拒绝对目标数据的第三访问请求包括向第一节点提供第一工作负载已经被重新分配给第二节点的指示。在另外的示例中,拒绝第三访问请求包括提供第一生成标识符指示比第二存储生成标识符低的优先级的指示。在另外的示例中,***和方法包括从第二节点接收对目标数据的第四访问请求,第四访问请求与第三生成标识符和第一工作负载标识符相关联,并且包括该请求是许可性的指示;确定第三生成标识符指示比第二存储生成标识符高的优先级;确定存储***仍然可以与第一节点通信;以及拒绝对目标数据的第四访问请求。此外,在示例中,拒绝第四访问请求包括向第二节点提供存储***仍然可以与第一节点通信的指示。在其他示例中,***和方法包括:在准许第一访问请求时锁定目标数据;以及在准许第二访问请求之后,释放对目标数据的锁定并且从永久存储装置移除第一存储生成标识符。另外,在示例中,第一、第二和第三生成标识符每个均由至少两个子部分组成,至少两个子部分中的每个子部分传送优先级。此外,由至少两个子部分中的每个子部分传递的优先级可以被加权,使得由至少两个子部分之一指示的优先级抢先于由至少两个子部分中的另一子部分指示的优先级。
本文中的进一步描述公开了一种***和方法,用于:向存储***发送对目标数据的第一访问请求,第一访问请求与第一生成标识符相关联,并且第一工作负载标识符与在第一节点上执行的第一工作负载相关联;接收准许对目标数据的访问的第一访问响应;在接收到第一访问响应之后,向第二节点发送对目标数据的访问被准许的指示;接收第二生成标识符用于在随后的访问请求中使用;向存储***发送对目标数据的第二访问请求,第二访问请求与第二生成标识符和第一工作负载标识符相关联;以及接收准许对目标数据的访问的第二访问响应。在附加示例中,***和方法包括向存储***发送对目标数据的第三访问请求,第三访问请求与第二生成标识符和第一工作负载标识符相关联;接收拒绝对目标数据的访问的第三访问响应,该访问响应包括对第一工作负载的目标数据的访问已经被重新分配给第三节点的指示;以及作为所接收的第三访问响应的结果,停止在第一节点上执行第一工作负载。此外,在示例中,第一访问请求包括第一访问请求是许可性的指示。在其他示例中,在第一节点和第二节点之间的通信故障之后接收第三接入响应。
贯穿本说明书提及“一个示例”或“示例”,表示特定描述的特征、结构或特性被包括在至少一个示例中。因此,这样的短语的使用可以指代不仅一个示例。此外,在一个或多个示例中,所描述的特征、结构或特性可以以任何合适的方式组合。
然而,相关领域的技术人员可以认识到,可以在没有一个或多个具体细节的情况下或者利用其他的方法、资源、材料等来实践这些示例。在其他实例中,公知的结构、资源、或操作未详细示出或描述,仅仅是为了观察实施例的模糊方面。
虽然已经示出和描述了示例和应用,但是应当理解,示例不限于上述精确的配置和资源。在不脱离所要求保护的示例的范围的情况下,可以对本文中公开的方法和***的布置、操作和细节进行对本领域技术人员显而易见的各种修改、改变和变化。

Claims (20)

1.一种计算***,包括:
至少一个处理器;
存储器,操作地连接至所述至少一个处理器并且包含指令,所述指令在由所述至少一个处理器执行时执行方法,所述方法包括:
由主节点使第一生成标识符和第一工作负载标识符与第一工作负载相关联,其中所述第一生成标识符传送与第一工作者节点相关联的初始优先级;
向所述第一工作者节点传送所述第一生成标识符、所述第一工作负载标识符和所述第一工作负载;以及
在与所述第一工作者节点的通信故障期间,生成第二生成标识符,使所述第二生成标识符与所述第一工作负载相关联,并且向第二工作者节点传送所述第二生成标识符、所述第一工作负载标识符和所述第一工作负载,其中所述第二生成标识符传送与所述第一生成标识符不同的优先级。
2.根据权利要求1所述的计算***,其中所述通信故障包括节点的重启、断开连接或硬件故障中的至少一项。
3.根据权利要求1所述的计算***,其中所述第二生成标识符传送比所述第一生成标识符高的优先级。
4.根据权利要求1所述的计算***,其中所述第二生成标识符传送比所述第一生成标识符低的优先级。
5.根据权利要求4所述的计算***,还包括:
从所述第二工作者节点接收成功的指示;
生成传送比所述第一生成标识符高的优先级的第三生成标识符;
使所述第三生成标识符与所述第一工作负载相关联;以及
向所述第二工作者节点传送所述第三生成标识符。
6.根据权利要求1所述的计算***,其中传送所述第二生成标识符包括:在确定所述第一工作者节点仍然正在处理所述第一工作负载的情况下发送所述第二工作者节点不应当中断所述第一工作者节点的指示。
7.根据权利要求1所述的计算***,其中所述第一生成标识符和所述第二生成标识符均包括至少两个子部分,所述至少两个子部分中的每个子部分传送优先级。
8.根据权利要求7所述的计算***,其中由所述至少两个子部分中的每个子部分传送的所述优先级被加权,使得由所述至少两个子部分中的一个子部分对优先级的指示抢先于由所述至少两个子部分中的另一子部分所指示的优先级。
9.一种计算机实现的方法,所述方法包括:
接收对目标数据的第一访问请求,所述目标数据由存储***存储,并且所述第一访问请求与第一生成标识符和第一工作负载标识符相关联;
将所述第一生成标识符和所述第一工作负载标识符存储在所述存储***的永久性存储装置中作为第一存储生成标识符和第二存储工作负载标识符;
准许对所述目标数据的所述第一访问请求;
接收对所述目标数据的第二访问请求,所述第二访问请求与第二生成标识符和所述第一工作负载标识符相关联;
将所述第二生成标识符与所述第一存储生成标识符相比较并且将所述第一工作负载标识符与所述第一存储工作负载标识符相比较;
确定所述第二生成标识符指示比所述第一存储生成标识符高的优先级并且所述第一工作负载标识符与所述第一存储工作负载标识符相匹配;
将所述第二生成标识符存储在永久性存储装置中作为第二存储生成标识符;
准许对所述目标数据的所述第二访问请求;
接收对所述目标数据的第三访问请求,所述第三访问请求与所述第一生成标识符和所述第一工作负载标识符相关联;
确定所述第一生成标识符指示比所述第二存储生成标识符低的优先级并且所述第一工作负载标识符与所述第一存储工作负载标识符相匹配;以及
拒绝对所述目标数据的所述第三访问请求。
10.根据权利要求9所述的方法,其中所述第一访问请求和所述第三访问请求从第一节点接收,并且所述第二访问请求从第二节点接收,并且拒绝对所述目标数据的所述第三访问请求包括:向所述第一节点提供所述第一工作负载已经被重新分配给所述第二节点的指示。
11.根据权利要求9所述的方法,其中拒绝所述第三访问请求包括:提供所述第一生成标识符指示比所述第二存储生成标识符低的优先级的指示。
12.根据权利要求9所述的方法,其中所述第三访问请求从第一节点接收,并且其中所述方法还包括:
从第二节点接收对所述目标数据的第四访问请求,所述第四访问请求与第三生成标识符和所述第一工作负载标识符相关联,并且包括所述请求是许可性的指示;
确定所述第三生成标识符指示比所述第二存储生成标识符高的优先级;
确定所述存储***仍然能够与所述第一节点通信;以及
拒绝对所述目标数据的所述第四访问请求。
13.根据权利要求12所述的方法,其中拒绝所述第四访问请求包括:向所述第二节点提供所述存储***仍然能够与所述第一节点通信的指示。
14.根据权利要求9所述的方法,还包括:
在准许所述第一访问请求时锁定所述目标数据;以及
在准许所述第二访问请求之后,释放对所述目标数据的所述锁定并且从永久性存储装置移除所述第一存储生成标识符。
15.根据权利要求12所述的方法,其中所述第一生成标识符、所述第二生成标识符和所述第三生成标识符均包括至少两个子部分,所述至少两个子部分中的每个子部分传送优先级。
16.根据权利要求15所述的方法,其中由所述至少两个子部分中的每个子部分传送的所述优先级被加权,使得由所述至少两个子部分中的一个子部分对优先级的指示抢先于由所述至少两个子部分中的另一子部分所指示的优先级。
17.一种计算机实现的方法,所述方法包括:
向存储***发送对目标数据的第一访问请求,所述第一访问请求与第一生成标识符相关联并且第一工作负载标识符与在第一节点上执行的第一工作负载相关联;
接收准许对所述目标数据访问的第一访问响应;
在接收到所述第一访问响应之后,向第二节点发送对所述目标数据的访问被准许的指示;
接收第二生成标识符以供在后续访问请求中使用;
向所述存储***发送对目标数据的第二访问请求,所述第二访问请求与所述第二生成标识符和所述第一工作负载标识符相关联;以及
接收准许对所述目标数据的访问的第二访问响应。
18.根据权利要求17所述的方法,还包括:
向所述存储***发送对目标数据的第三访问请求,所述第三访问请求与所述第二生成标识符和所述第一工作负载标识符相关联;
接收第三访问响应,所述第三访问响应拒绝对所述目标数据的访问并且包括针对所述第一工作负载的对所述目标数据的访问已经被重新分配给第三节点的指示;以及
作为接收到的所述第三访问响应的结果,停止对所述第一节点上的所述第一工作负载的执行。
19.根据权利要求17所述的方法,其中所述第一访问请求包括所述第一访问请求是许可性的指示。
20.根据权利要求18所述的方法,其中所述第三访问响应是在所述第一节点和所述第二节点之间的通信故障之后接收的。
CN201580043214.XA 2014-08-12 2015-08-10 随通信故障的分布式工作负载重新分配 Active CN106575245B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/457,842 2014-08-12
US14/457,842 US9847918B2 (en) 2014-08-12 2014-08-12 Distributed workload reassignment following communication failure
PCT/US2015/044404 WO2016025354A1 (en) 2014-08-12 2015-08-10 Distributed workload reassignment following communication failure

Publications (2)

Publication Number Publication Date
CN106575245A CN106575245A (zh) 2017-04-19
CN106575245B true CN106575245B (zh) 2020-12-08

Family

ID=53836912

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580043214.XA Active CN106575245B (zh) 2014-08-12 2015-08-10 随通信故障的分布式工作负载重新分配

Country Status (7)

Country Link
US (4) US9847918B2 (zh)
EP (1) EP3180694B1 (zh)
JP (1) JP6654183B2 (zh)
CN (1) CN106575245B (zh)
BR (1) BR112017001850B1 (zh)
RU (1) RU2701094C2 (zh)
WO (1) WO2016025354A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665432B2 (en) 2014-08-07 2017-05-30 Microsoft Technology Licensing, Llc Safe data access following storage failure
US9847918B2 (en) 2014-08-12 2017-12-19 Microsoft Technology Licensing, Llc Distributed workload reassignment following communication failure
US9703830B2 (en) * 2014-10-09 2017-07-11 International Business Machines Corporation Translation of a SPARQL query to a SQL query
US10055164B2 (en) * 2016-09-07 2018-08-21 Sandisk Technologies Llc Data storage at an access device
US10069597B2 (en) * 2016-09-07 2018-09-04 Western Digital Technologies, Inc. Aggregated metadata transfer at a data storage device
US11054887B2 (en) * 2017-12-28 2021-07-06 Advanced Micro Devices, Inc. System-wide low power management
CN110324375B (zh) * 2018-03-29 2020-12-04 华为技术有限公司 一种信息备份方法及相关设备
CN110119400B (zh) * 2019-04-04 2021-07-20 上海易点时空网络有限公司 适用于逻辑运算的唯一标识生成方法及装置
US11847012B2 (en) * 2019-06-28 2023-12-19 Intel Corporation Method and apparatus to provide an improved fail-safe system for critical and non-critical workloads of a computer-assisted or autonomous driving vehicle
US20230169483A1 (en) * 2021-11-26 2023-06-01 Paypal, Inc. Decentralized transaction processing
US20230222045A1 (en) * 2022-01-13 2023-07-13 Dell Products L.P. System and method for enhanced container deployment
CN114826905A (zh) * 2022-03-31 2022-07-29 西安超越申泰信息科技有限公司 一种下层节点切换管理服务的方法、***、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5526492A (en) * 1991-02-27 1996-06-11 Kabushiki Kaisha Toshiba System having arbitrary master computer for selecting server and switching server to another server when selected processor malfunctions based upon priority order in connection request
CN102217274A (zh) * 2008-11-14 2011-10-12 高通股份有限公司 用于在分布式存储网络中实现数据授权的***和方法
CN102932164A (zh) * 2011-09-09 2013-02-13 微软公司 群集客户端故障转移
CN103399796A (zh) * 2006-12-12 2013-11-20 Lsi公司 利用存储负载信息来平衡集群虚拟机

Family Cites Families (136)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1229091A (en) 1916-08-30 1917-06-05 X Ray Incubator Company Gas and smoke sealing device for incubators.
JPH06301655A (ja) 1993-04-14 1994-10-28 Hitachi Ltd 分散処理システム
US5625817A (en) 1995-02-28 1997-04-29 Bmc Software, Inc. Method of identifying DB2 objects to be recovered from an unavailable DASD volume without need to access the DASD volume itself and without need for pre-failure preparation
JPH10133971A (ja) 1996-10-25 1998-05-22 Nec Corp ファイル転送処理方式
US6442533B1 (en) * 1997-10-29 2002-08-27 William H. Hinkle Multi-processing financial transaction processing system
US6178529B1 (en) * 1997-11-03 2001-01-23 Microsoft Corporation Method and system for resource monitoring of disparate resources in a server cluster
JP4040178B2 (ja) 1998-07-21 2008-01-30 キヤノン株式会社 通信制御装置、通信制御方法、および、記憶媒体
US6301676B1 (en) 1999-01-22 2001-10-09 Sun Microsystems, Inc. Robust and recoverable interprocess locks
US6757289B1 (en) * 1999-04-23 2004-06-29 Nortel Networks Limited Apparatus and method for managing communication between a failed application and other executing applications
US6539446B1 (en) 1999-05-07 2003-03-25 Oracle Corporation Resource locking approach
US6574749B1 (en) 1999-10-29 2003-06-03 Nortel Networks Limited Reliable distributed shared memory
WO2001075691A2 (en) * 2000-03-31 2001-10-11 Mdsi Mobile Data Solutions Inc. Finding technique for a scheduling system
JPWO2001077844A1 (ja) 2000-04-10 2004-04-30 富士通株式会社 情報処理システム及び方法並びにサーバ
US6564229B1 (en) 2000-06-08 2003-05-13 International Business Machines Corporation System and method for pausing and resuming move/copy operations
FR2820874B1 (fr) 2001-02-13 2003-05-30 St Microelectronics Sa Procede de gestion a acces aleatoire et rapide d'une memoire dram
WO2002001838A2 (en) * 2000-06-26 2002-01-03 Kpmg Consulting, Inc. Using a pseudo-clec to test operational support systems of an incumbent local exchange carrier
US6990606B2 (en) 2000-07-28 2006-01-24 International Business Machines Corporation Cascading failover of a data management application for shared disk file systems in loosely coupled node clusters
US7120697B2 (en) * 2001-05-22 2006-10-10 International Business Machines Corporation Methods, systems and computer program products for port assignments of multiple application instances using the same source IP address
US7191442B2 (en) * 2000-10-30 2007-03-13 Research Investment Network, Inc. BCA writer serialization management
US7711831B2 (en) * 2001-05-22 2010-05-04 International Business Machines Corporation Methods, systems and computer program products for source address selection
US6839662B2 (en) * 2001-08-17 2005-01-04 Lockheed Martin Corporation Command and control system architecture for convenient upgrading
US7904360B2 (en) * 2002-02-04 2011-03-08 Alexander William EVANS System and method for verification, authentication, and notification of a transaction
US7093004B2 (en) * 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
JP4176359B2 (ja) 2002-03-01 2008-11-05 株式会社エヌ・ティ・ティ・ドコモ データ取得方法、中継装置、プログラムおよび記録媒体
US6732171B2 (en) 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
US20050144189A1 (en) * 2002-07-19 2005-06-30 Keay Edwards Electronic item management and archival system and method of operating the same
US7159211B2 (en) * 2002-08-29 2007-01-02 Indian Institute Of Information Technology Method for executing a sequential program in parallel with automatic fault tolerance
US7254687B1 (en) 2002-12-16 2007-08-07 Cisco Technology, Inc. Memory controller that tracks queue operations to detect race conditions
US7284151B2 (en) 2003-07-21 2007-10-16 Oracle International Corporation Conditional data access after database system failure
US7380039B2 (en) * 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
US20050165881A1 (en) * 2004-01-23 2005-07-28 Pipelinefx, L.L.C. Event-driven queuing system and method
US8543781B2 (en) 2004-02-06 2013-09-24 Vmware, Inc. Hybrid locking using network and on-disk based schemes
US7818444B2 (en) * 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
JP4633735B2 (ja) 2004-05-13 2011-02-16 パナソニック株式会社 情報処理装置、集積回路、データ転送制御方法、データ転送制御用プログラム、プログラム記録媒体、プログラム伝送媒体、及びデータ記録媒体
US20050268300A1 (en) * 2004-05-14 2005-12-01 Microsoft Corporation Distributed task scheduler for computing environments
US7145450B2 (en) * 2004-05-28 2006-12-05 Brown William J Compactor service and monitoring system
US11049349B2 (en) * 2004-06-01 2021-06-29 Daniel William Onischuk Computerized voting system
US8023417B2 (en) * 2004-08-30 2011-09-20 International Business Machines Corporation Failover mechanisms in RDMA operations
US7979862B2 (en) * 2004-12-21 2011-07-12 Hewlett-Packard Development Company, L.P. System and method for replacing an inoperable master workload management process
US7962915B2 (en) 2005-03-18 2011-06-14 International Business Machines Corporation System and method for preserving state for a cluster of data servers in the presence of load-balancing, failover, and fail-back events
CA2504333A1 (en) * 2005-04-15 2006-10-15 Symbium Corporation Programming and development infrastructure for an autonomic element
US9418040B2 (en) * 2005-07-07 2016-08-16 Sciencelogic, Inc. Dynamically deployable self configuring distributed network management system
US7688794B2 (en) * 2005-12-13 2010-03-30 Xerox Corporation System and method for diverting a printing job to a proximal networked device
US20110010518A1 (en) * 2005-12-19 2011-01-13 Srinivas Kavuri Systems and Methods for Migrating Components in a Hierarchical Storage Network
US7639561B2 (en) 2006-03-30 2009-12-29 Silicon Image, Inc. Multi-port memory device having variable port speeds
AU2007321713A1 (en) * 2006-11-15 2008-05-22 Depth Analysis Pty Ltd Systems and methods for managing the production of a free-viewpoint video-based animation
JP5018133B2 (ja) * 2007-02-27 2012-09-05 富士通株式会社 ジョブ管理装置、クラスタシステム、およびジョブ管理プログラム
US8453142B2 (en) 2007-04-26 2013-05-28 Hewlett-Packard Development Company, L.P. Virtual machine control
US8180747B2 (en) 2007-11-12 2012-05-15 F5 Networks, Inc. Load sharing cluster file systems
US8326910B2 (en) * 2007-12-28 2012-12-04 International Business Machines Corporation Programmatic validation in an information technology environment
US8365185B2 (en) * 2007-12-28 2013-01-29 International Business Machines Corporation Preventing execution of processes responsive to changes in the environment
US8259910B2 (en) * 2008-03-14 2012-09-04 Voicecloud Method and system for transcribing audio messages
US20090234643A1 (en) * 2008-03-14 2009-09-17 Afifi Sammy S Transcription system and method
US10372924B2 (en) * 2008-05-12 2019-08-06 George Madathilparambil George Master device for controlling application security environments
US7840730B2 (en) 2008-06-27 2010-11-23 Microsoft Corporation Cluster shared volumes
JP5223707B2 (ja) * 2009-02-05 2013-06-26 富士通株式会社 ソフトウェア更新指示プログラム、ソフトウェア更新指示方法、および情報処理装置
US8914511B1 (en) 2009-06-26 2014-12-16 VMTurbo, Inc. Managing resources in virtualization systems
US9021158B2 (en) 2009-09-09 2015-04-28 SanDisk Technologies, Inc. Program suspend/resume for memory
US8458500B2 (en) 2009-11-30 2013-06-04 International Business Machines Corporation Server allocation to workload based on energy profiles
US8355713B1 (en) 2010-01-21 2013-01-15 Sprint Spectrum L.P. Use of femtocell to control wireless communication device priorities
US8572612B2 (en) 2010-04-14 2013-10-29 International Business Machines Corporation Autonomic scaling of virtual machines in a cloud computing environment
JP4951092B2 (ja) 2010-06-03 2012-06-13 株式会社東芝 アクセス制御プログラム及び装置
US9329947B2 (en) 2010-06-22 2016-05-03 Red Hat Israel, Ltd. Resuming a paused virtual machine without restarting the virtual machine
US8566640B2 (en) 2010-07-19 2013-10-22 Veeam Software Ag Systems, methods, and computer program products for instant recovery of image level backups
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
US8879382B2 (en) 2010-12-30 2014-11-04 Juniper Networks, Inc. Partial failure messaging
US8713365B2 (en) 2011-01-28 2014-04-29 Microsoft Corporation Re-establishing push notification channels via user identifiers
US8364888B2 (en) 2011-02-03 2013-01-29 Stec, Inc. Erase-suspend system and method
US9003104B2 (en) * 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US10108630B2 (en) 2011-04-07 2018-10-23 Microsoft Technology Licensing, Llc Cluster unique identifier
US8745434B2 (en) * 2011-05-16 2014-06-03 Microsoft Corporation Platform for continuous mobile-cloud services
US20120303654A1 (en) 2011-05-26 2012-11-29 James Michael Ferris Methods and systems to automatically extract and transport data associated with workload migrations to cloud networks
US8769537B1 (en) * 2011-06-08 2014-07-01 Workday, Inc. System for partitioning batch processes
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US8490092B2 (en) 2011-07-06 2013-07-16 Microsoft Corporation Combined live migration and storage migration using file shares and mirroring
KR20130022091A (ko) 2011-08-24 2013-03-06 주식회사 케이티 클라우드 컴퓨팅 서버 시스템의 가상머신 제어 장치 및 방법
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US9208476B2 (en) * 2011-09-12 2015-12-08 Microsoft Technology Licensing, Llc Counting and resetting broadcast system badge counters
US8595322B2 (en) * 2011-09-12 2013-11-26 Microsoft Corporation Target subscription for a notification distribution system
US20130067024A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Distributing multi-source push notifications to multiple targets
US8694462B2 (en) * 2011-09-12 2014-04-08 Microsoft Corporation Scale-out system to acquire event data
US20130066674A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Marketplace for timely event data distribution
US9804928B2 (en) * 2011-11-14 2017-10-31 Panzura, Inc. Restoring an archived file in a distributed filesystem
US20130159487A1 (en) * 2011-12-14 2013-06-20 Microsoft Corporation Migration of Virtual IP Addresses in a Failover Cluster
US9154367B1 (en) * 2011-12-27 2015-10-06 Google Inc. Load balancing and content preservation
WO2013119942A1 (en) * 2012-02-08 2013-08-15 Adept Technology, Inc. Job management sytem for a fleet of autonomous mobile robots
JP5948933B2 (ja) 2012-02-17 2016-07-06 日本電気株式会社 ジョブ継続管理装置、ジョブ継続管理方法、及び、ジョブ継続管理プログラム
US9405005B1 (en) * 2012-04-24 2016-08-02 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Automatic dependent surveillance broadcast (ADS-B) system for ownership and traffic situational awareness
US8918672B2 (en) 2012-05-31 2014-12-23 International Business Machines Corporation Maximizing use of storage in a data replication environment
US9223626B2 (en) * 2012-08-30 2015-12-29 International Business Machines Corporation Task execution and management in a clustered computing environment
CA3080526C (en) 2012-08-31 2022-09-20 Bce Inc. Ip mpls pop virtualization and fault tolerant virtual router
US9304878B2 (en) 2012-10-11 2016-04-05 Vmware, Inc. Providing multiple IO paths in a virtualized environment to support for high availability of virtual machines
US9135049B2 (en) 2012-10-16 2015-09-15 Red Hat Israel, Ltd. Performing thin-provisioning operations on virtual disk images using native features of the storage domain
US9635088B2 (en) * 2012-11-26 2017-04-25 Accenture Global Services Limited Method and system for managing user state for applications deployed on platform as a service (PaaS) clouds
US9658983B1 (en) * 2012-12-14 2017-05-23 Amazon Technologies, Inc. Lifecycle support for storage objects having multiple durability levels specifying different numbers of versions
US9727522B1 (en) * 2012-12-14 2017-08-08 Amazon Technologies, Inc. Multi-tenant storage service object lifecycle management using transition job objects
US9355060B1 (en) * 2012-12-14 2016-05-31 Amazon Technologies, Inc. Storage service lifecycle policy transition management
RU2543316C2 (ru) * 2012-12-25 2015-02-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ отказоустойчивого выполнения задач по расписанию в распределенных средах
US20140201292A1 (en) 2013-01-17 2014-07-17 Icon.me, LLC Digital business card system performing social networking commonality comparisions, professional profile curation and personal brand management
US20140214801A1 (en) * 2013-01-29 2014-07-31 Vito Anthony Ciliberti, III System and Method for Enterprise Asset Management and Failure Reporting
US9779038B2 (en) 2013-01-31 2017-10-03 Apple Inc. Efficient suspend-resume operation in memory devices
US20140226800A1 (en) * 2013-02-12 2014-08-14 Unify Square, Inc. Enhanced Monitoring of Performance for Unified Communication Services
US9338055B2 (en) * 2013-03-15 2016-05-10 Cisco Technology, Inc. Virtual router upgrade via graceful restart
US9202591B2 (en) 2013-05-10 2015-12-01 Omnivision Technologies, Inc. On-line memory testing systems and methods
US8706798B1 (en) * 2013-06-28 2014-04-22 Pepperdata, Inc. Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system
US10310903B2 (en) * 2014-01-17 2019-06-04 Red Hat, Inc. Resilient scheduling of broker jobs for asynchronous tasks in a multi-tenant platform-as-a-service (PaaS) system
US9813516B2 (en) * 2014-02-18 2017-11-07 Salesforce.Com, Inc. Transparent sharding of traffic across messaging brokers
US20150263900A1 (en) * 2014-03-11 2015-09-17 Schlumberger Technology Corporation High performance distributed computing environment particularly suited for reservoir modeling and simulation
US9495478B2 (en) * 2014-03-31 2016-11-15 Amazon Technologies, Inc. Namespace management in distributed storage systems
US9482683B2 (en) * 2014-04-22 2016-11-01 Wipro Limited System and method for sequential testing across multiple devices
US9665432B2 (en) 2014-08-07 2017-05-30 Microsoft Technology Licensing, Llc Safe data access following storage failure
US9847918B2 (en) * 2014-08-12 2017-12-19 Microsoft Technology Licensing, Llc Distributed workload reassignment following communication failure
US11290524B2 (en) * 2014-08-13 2022-03-29 Microsoft Technology Licensing, Llc Scalable fault resilient communications within distributed clusters
US10102086B2 (en) * 2014-12-19 2018-10-16 Futurewei Technologies, Inc. Replicated database distribution for workload balancing after cluster reconfiguration
JP6413789B2 (ja) * 2015-01-22 2018-10-31 富士通株式会社 ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置
US9692729B1 (en) * 2015-02-18 2017-06-27 Amazon Technologies, Inc. Graceful migration of isolated virtual network traffic
US10084873B2 (en) * 2015-06-19 2018-09-25 Commvault Systems, Inc. Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs
US9563514B2 (en) * 2015-06-19 2017-02-07 Commvault Systems, Inc. Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs
WO2017023259A1 (en) * 2015-07-31 2017-02-09 AppDynamics, Inc. Quorum based distributed anomaly detection and repair
US9928108B1 (en) * 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US11831682B2 (en) * 2015-10-28 2023-11-28 Qomplx Llc Highly scalable distributed connection interface for data capture from multiple network service and cloud-based sources
US10140206B2 (en) * 2015-11-17 2018-11-27 Proov Systems Ltd. Computerized method and end-to-end “pilot as a service” system for controlling start-up/enterprise interactions
US9952942B2 (en) * 2016-02-12 2018-04-24 Bank Of America Corporation System for distributed data processing with auto-recovery
US10067869B2 (en) * 2016-02-12 2018-09-04 Bank Of America Corporation System for distributed data processing with automatic caching at various system levels
WO2017161050A2 (en) * 2016-03-15 2017-09-21 Cloud Crowding Corp. Distributed storage system data management and security
US10402728B2 (en) * 2016-04-08 2019-09-03 The Aerospace Corporation Systems and methods for multi-objective heuristics with conditional genes
US11218418B2 (en) * 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
JP2020514935A (ja) * 2017-03-15 2020-05-21 ファウナ, インク.Fauna, Inc. データベース用の方法及びシステム
US20190089773A1 (en) * 2017-09-20 2019-03-21 Illumio, Inc. Segmentation server cluster for managing a segmentation policy
US10754720B2 (en) * 2018-09-26 2020-08-25 International Business Machines Corporation Health check diagnostics of resources by instantiating workloads in disaggregated data centers
US11042416B2 (en) * 2019-03-06 2021-06-22 Google Llc Reconfigurable computing pods using optical networks
US11122347B2 (en) * 2019-07-01 2021-09-14 Google Llc Reconfigurable computing pods using optical networks with one-to-many optical switches
US20210014177A1 (en) * 2020-09-26 2021-01-14 Intel Corporation Deterministic packet scheduling and dma for time sensitive networking
US20220108167A1 (en) * 2020-10-07 2022-04-07 Commvault Systems, Inc. Artificial intelligence-based information management system performance metric prediction
US20220276901A1 (en) * 2021-02-26 2022-09-01 Capital One Services, Llc Batch processing management
US11645215B2 (en) * 2021-06-11 2023-05-09 International Business Machines Corporation Efficient selection of a particular processor thread for handling an interrupt

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5526492A (en) * 1991-02-27 1996-06-11 Kabushiki Kaisha Toshiba System having arbitrary master computer for selecting server and switching server to another server when selected processor malfunctions based upon priority order in connection request
CN103399796A (zh) * 2006-12-12 2013-11-20 Lsi公司 利用存储负载信息来平衡集群虚拟机
CN102217274A (zh) * 2008-11-14 2011-10-12 高通股份有限公司 用于在分布式存储网络中实现数据授权的***和方法
CN102932164A (zh) * 2011-09-09 2013-02-13 微软公司 群集客户端故障转移

Also Published As

Publication number Publication date
US20180198691A1 (en) 2018-07-12
EP3180694A1 (en) 2017-06-21
US20220166690A1 (en) 2022-05-26
RU2701094C2 (ru) 2019-09-24
US11228510B2 (en) 2022-01-18
WO2016025354A1 (en) 2016-02-18
US20160050294A1 (en) 2016-02-18
CN106575245A (zh) 2017-04-19
US20240137295A1 (en) 2024-04-25
US11882011B2 (en) 2024-01-23
JP2017530437A (ja) 2017-10-12
BR112017001850B1 (pt) 2023-04-11
US9847918B2 (en) 2017-12-19
JP6654183B2 (ja) 2020-02-26
EP3180694B1 (en) 2021-06-09
BR112017001850A2 (pt) 2017-11-21

Similar Documents

Publication Publication Date Title
CN106575245B (zh) 随通信故障的分布式工作负载重新分配
AU2012304549B2 (en) Clustered client failover
CN106716378B (zh) 存储故障之后的安全数据访问
CN113110848B (zh) 跨应用实例的标识符
US9729634B2 (en) Isolating clients of distributed storage systems
US9372879B1 (en) Balanced append tree data structure
US9898217B2 (en) Two stage memory allocation using a cache
US9590839B2 (en) Controlling access to a shared storage system
CN114051029B (zh) 授权方法、授权装置、电子设备和存储介质
KR101889749B1 (ko) 메시지 스케줄링 방법

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
GR01 Patent grant
GR01 Patent grant