CN108475211B - 无状态系统和用于获得资源的系统 - Google Patents

无状态系统和用于获得资源的系统 Download PDF

Info

Publication number
CN108475211B
CN108475211B CN201680073931.1A CN201680073931A CN108475211B CN 108475211 B CN108475211 B CN 108475211B CN 201680073931 A CN201680073931 A CN 201680073931A CN 108475211 B CN108475211 B CN 108475211B
Authority
CN
China
Prior art keywords
client
operations
processors
write operations
asynchronous read
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
CN201680073931.1A
Other languages
English (en)
Other versions
CN108475211A (zh
Inventor
S·P·亨布拉姆
G·R·佛朗哥
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 CN108475211A publication Critical patent/CN108475211A/zh
Application granted granted Critical
Publication of CN108475211B publication Critical patent/CN108475211B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

供应资源。一种方法包括从客户端接收针对要被执行的一个或多个操作的请求。该方法还包括尝试执行该一个或多个操作。该方法还包括确定该一个或多个操作在当前时间未完成。作为结果,该方法还包括向客户端发送指示客户端应当在预定的稍后时间尝试获得该一个或多个操作的状态信息的消息。该方法还包括从客户端接收针对关于该一个或多个操作的状态信息的请求。该方法还包括重复向客户端发送消息以及从客户端接收针对状态信息的请求。

Description

无状态系统和用于获得资源的系统
背景技术
计算机和计算系统已经影响了现代生活的几乎每个方面。通常在工作、娱乐、医疗保健、交通、娱乐、家庭管理等中涉及计算机。
计算系统可以联网在一起。通常,不同的专业计算系统可以向其他计算系统提供各种服务。例如,客户端系统可能能够访问各种服务器系统以利用这些服务器系统处的资源。这样的系统可以能够提供例如计算资源、网络资源和/或存储资源。在一些实施例中,可以在所谓的基于云的系统中提供这样的资源,其中服务由协同工作以向客户端提供资源的数个不同的被管理服务器中的任一个来提供。存储相关的操作在性质上相对于客户端/服务器交互通常是异步的,并且因此存在针对相对于存储资源的异步客户端/服务器通信的需要。然而,当存储服务器具有执行某些存储操作的不同时间时,这可能导致问题,因为客户端可能不具有关于存储操作的进展(包括失败)的任何信息。
本文所要求保护的主题不限于解决仅在诸如以上所描述的环境中的任何缺点或者仅在诸如以上所描述的环境中操作的实施例。相反,本背景技术仅被提供以说明其中可以实践本文所描述的一些实施例的一个示例性技术领域。
发明内容
本文所示的一个实施例包括可以在计算环境中实践的方法。该方法包括用于供应资源的动作。该方法包括从客户端接收针对要被执行的一个或多个操作的请求。该方法还包括尝试执行该一个或多个操作。该方法还包括确定该一个或多个操作在当前时间未完成。作为结果,该方法还包括向客户端发送指示客户端应当在预定的稍后时间尝试获得该一个或多个操作的状态信息的消息。该方法还包括从客户端接收针对关于该一个或多个操作的状态信息的请求。该方法还包括向客户端重复发送指示客户端应当在预定的稍后时间尝试获得该一个或多个操作的状态信息的消息,以及从客户端接收针对关于该一个或多个操作的状态信息的请求,直到一个或多个操作完成,在此之后完成状态被提供给客户端,或者直到已经尝试了预定数目的重试,在此之后失败被指示给客户端。
提供本发明内容从而以简化方式介绍以下在详细描述中进一步描述的概念的选择。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在被用作确定所要求保护的主题的范围中的辅助手段。
附加的特征和优点将在随后的描述中被阐述,并且将部分地从描述中显而易见,或者可以通过本文的教导的实践而得知。本发明的特征和优点可以通过在所附权利要求中具体指出的手段和组合来实现和获得。本发明的特征从以下描述和所附权利要求中将变得更加明显,或者可以通过如下所述的本发明的实践而得知。
附图说明
为了描述上述和其他优点和特征能够被获得的方式,以上简要描述的主题的更具体的描述将通过参考在附图中示出的具体实施例而被描绘。应当理解这些附图仅描绘了典型的实施例并且因此不被认为是范围上的限制,将通过使用附图利用附加的特征和细节来描述和解释实施例,在附图中:
图1示出了用于向客户端系统供应资源的系统;以及
图2示出供应资源的方法;以及
图3示出获得资源的方法。
具体实施方式
本文所示的实施例可以使用分布式的管理协调器系统(其可以在长期运行的操作期间遭受随机失败),基于有状态高度可用的共享数据库来实现无状态的操作管理。
本文所示的一个或多个实施例涉及能够在云环境中实现的系统。这样的系统被配置为处理错误(特别是瞬时错误)以保持较低的操作失败率。此外,实施例可以是无状态的,以便能够扩展并且仍然处理长期运行的操作。数据/操作状态被持续,以便长期运行的操作能够在稍后完成。由于这种系统中的操作处理的异步性质,实施例实现了如下存储库,其中操作状态被持续并且操作管理器能够调度操作、重试操作以及将操作移动到终端状态。
示例现在参考图1被示出。存储相关的操作在性质上通常是异步的,并且因此系统可以实现异步客户端/服务器通信。与数据存储库102耦合的无状态服务100被用于跟踪在故障或服务崩溃的情况下的操作状态和重试操作。数据存储库102本身具有高可用性以减少计划或意外停机时间对服务的影响。数据存储库102还支持事务语义,使得服务能够被扩展以处理高业务量。
在所示示例中,如在106处所示,客户端104向服务器101的请求处理机108进行请求,并且然后如在112-1和112-m处所示向服务器101 轮询操作状态。如在110处所示,服务器101将操作细节保存在数据存储库102中,并且将唯一操作ID发送给客户端。如在112-1和112-m处所示,客户端104然后使用该操作ID来周期性地(通过查询请求处理机 108)向服务器101查询状态。如在113-1和113-m处所示,服务器可以响应,指示客户端104应当在稍后时间查询服务器101或指示最终完成状态。该响应包括操作ID和客户端104应当在此之后再次查询的时间的指示,或者如在113-m处所示的最终完成状态,诸如已完成或失败。
同时,服务器101使用请求处理器114和服务100尝试操作一次或多次直到配置的最大重试计数(如在116-1至116-n处所示),并且将操作结果存储在数据存储库102中。当客户端104请求操作状态时,如在112-1至112-m处所示,请求处理机108返回所存储的操作状态,如在113-1至113-m处所示。如果在操作已经被成功完成之前并且多达最大重试计数的所有重试尝试被耗尽之前客户端104查询状态,则服务器向客户端104发回指示操作正在进行中的唯一状态。如果所有重试尝试都在服务100处被耗尽,则服务器向客户端104发回失败状态码连同错误信息。
在一些实施例中,服务器101可以向客户端104指示何时客户端104 应当重试查询。例如,服务器101可以在服务器处具有某种设置,该设置可以被提供给客户端104以指示客户端104何时应当尝试重试。该设置可以是预设的、管理员可配置的、动态确定的等等。
现在示出各种附加示例,向客户端指示的重试查询的时间可以基于服务器能力。例如,当服务器具有较高的能力时,重试时间可以比服务器具有较低的能力时更低。这样的能力可以与计算能力、存储能力、网络能力等有关。这样的能力可以与服务器配置的能力有关。例如,与具有较少虚拟机的服务器相比,具有较多虚拟机的服务器可以向客户端 104指定较低的重试时间。与具有较少的请求处理机和/或请求处理器的服务器相比,具有较多请求处理机和/或请求处理器的服务器可以向客户端104指定较低的重试时间。向客户端指示的时间可以基于服务器负载。特别地,如果服务器当前正在经历高负载,则与服务器正在经历较低负载时相比更长的时间可以被指示。向客户指示的时间可以基于一天中的时间、一周中的时间、一年中的时间、季节等。例如,对于服务器而言,某些时间的负载可能通常比其他时间更高。当服务器预期高负载时间(或低负载时间)时,服务器可以调整来自客户端的重试应当被相应地尝试的指定的时间。向客户端指示的时间可以基于服务器错误。例如,如果服务器当前处于错误状态,则可以向客户端指示更长的时间。时间可以根据错误类型和/或错误的预期解决时间来进行调整。
最大重试计数可以是可变的和系统和/或条件相关的。例如,如果期望服务器101具有比平常更高的负载,则服务器101可以将最大重试计数调整到更低以尝试减少服务器上的负载。备选地,如果服务器具有附加的资源可用并且重试将对服务器服务其他客户端的能力没有或几乎没有影响,则服务器可以将重试计数调整到更高。
如图1所示,服务器101还具有垃圾收集器120,用以清理已经被完成或已达到最大重试计数的操作。
现在示出附加细节,请求处理机108是无状态服务,其执行以下动作中的一个或多个:
A)接受请求并验证该请求和它们的参数。
B)将上下文保存在数据存储库102中,使得在客户端104(或连接到服务的其他外部应用)没有明确地重试的情况下操作能够被重放和/ 或重试无需。
C)信号通知请求处理器114以指示新的操作。
D)向数据存储库102查询操作的状态并且在客户端104请求它时向客户端104返回该状态时。
请求处理器114:
A)周期性地轮询有资格运行的操作。在一些实施例中,有资格的操作是满足以下条件之一的操作。
i)尚未被尝试过的新操作。
ii)尚未超过最大重试计数的失败的操作。
iii)进行中的操作,但是请求处理器114已经中途崩溃并且具有比配置的最大值更旧的最后修改时间。
B)等待来自请求处理机108的针对新操作的信号。
C)尝试该操作高达配置的最大重试计数。
D)将操作状态存储在数据存储库102中。
E)如果操作耗时过长,则更新该操作的最后修改时间,以便其他请求处理器在扩展部署中不会拾取该操作。
下面现在示出关于扩展和冲突解决的细节。请求处理机108和请求处理器114被设计用于扩展以处理日益增长的业务需求。这样,实施例可以实现支持原子事务的数据存储库102以解决两个或更多个请求处理器拾取同一操作来处理的情况。
例如,在一些实施例中,数据存储库102可以与乐观并发控制方案一起使用。在乐观并发控制中,处理在假定不同的请求处理机和/或不同的请求处理器将不会对数据存储库102中的数据执行冲突的操作的情况下进行。因此,通常不获得对数据的锁定。在处理的某个点处,系统将希望在数据存储库102中提交或持久化对数据的任何改变。此时,可以使用各种标志或其他标记来确定来自不同的请求处理机和/或请求处理器的冲突的操作(例如,读取和/或写入)是否已经发生。如果冲突已经发生,则操作可以被回滚并重试。在一些实施例中,这样的重试可以针对上述配置的最大重试数目进行计数,而在其他实施例中,事务性回滚和重试将不会针对配置的最大重试数目进行计数。
备选地,实施例可以在数据存储库102处实现悲观(或半悲观)并发控制。在悲观并发控制中,请求处理机或请求处理器可以阻止(例如,通过取出锁)其他请求处理机和/或请求处理器访问数据存储库102中的某些数据项,使得当请求处理机或请求处理器正在这些数据项上操作时,其他请求处理机和/或请求处理器将不执行冲突的数据操作。
下面现在示出关于崩溃一致性的细节。实施例可以支持其中请求处理器114拾取要处理的操作但在中途崩溃而没有更新操作状态的情况。实施例能够确保操作始终运行到完成。为了实现这一点,操作上下文具有由请求处理器114更新的最后修改时间属性。如果请求处理器114遇到被标记为“进行中”但是最后修改时间比可配置阈值更旧的操作,则将假定请求处理器的先前实例已经在中途放弃了操作,例如由于可能的崩溃。如果该操作的重试计数尚未达到最大重试计数,则请求处理器的当前实例拾取该操作并且尝试再次执行该操作。
各种客户端扩展可以被实现。例如,在一些实施例中,客户端可以可选地在请求的有效载荷中包括一些元数据以指示定制重试计数。因此,客户端可以指示在放弃操作之前应当尝试的重试数目,而非限于在服务处实现的最大重试数目。在一些实施例中,由客户端指定的重试数目可以被限制为仅在允许的范围内有效。因此,在这些实施例中,尽管客户端可以能够指定重试数目,但它们仍将被限制在某个阈值内。
在一些实施例中,扩展可以向请求处理机108告知:如果操作花费太长时间则中止该操作,并且如果该操作尚未达到其最大重试计数则停止重试。
下面的讨论现在涉及可以被执行的数个方法和方法动作。尽管方法动作可以按照某种顺序被讨论或者在流程图中被示为以特定顺序发生,但除非特别声明或者因为动作取决于在该动作被执行之前完成的另一动作,否则不要求该特定顺序。
现在参考图2,方法200被示出。方法200可以在计算环境中被实践并且包括用于供应资源的动作。该方法包括从客户端接收针对要被执行的一个或多个操作的请求(动作202)。例如,如图1所示,在106 处,服务器101从客户端104接收针对要被执行的操作的请求。
方法200还包括尝试执行该一个或多个操作(动作204)。例如,服务器101可以尝试使服务100执行操作。
该方法200还包括确定该一个或多个操作在当前时间未完成(动作 206)。例如,请求处理机108可以检查数据存储库102处的数据状态以确定操作是否完成。
作为结果,该方法200还包括向客户端发送指示客户端应当在预定的稍后时间尝试获得该一个或多个操作的状态信息的消息(动作208)。例如,如在110处所示,请求处理机108可以指示该操作尚未完成。
方法200还包括从客户端接收针对关于一个或多个操作的状态信息的请求(动作210)。例如,如在112-1处所示,服务器101可以从客户端104接收针对状态信息的请求。
方法200还包括重复向客户端发送指示该客户端应当尝试在预定的稍后时间获得一个或多个操作的状态信息的消息,以及从客户端接收针对关于该一个或多个操作的状态信息的请求,直到该一个或多个操作完成,在此之后向客户端提供完成状态,或者直到已经尝试了预定数目的重试,在此之后向客户端指示失败(动作212)。
方法200还可以包括从客户端接收应当被尝试的重试数目的指示。例如,服务器101可以从客户端104自身接收指定由后台服务100尝试的重试数目的信息。
方法200可以在以下情况下被实践,其中向客户端发送指示客户端应当在预定的稍后时间尝试获得该一个或多个操作的状态信息的消息包括向该客户端发送该客户端应当将其用于该客户端的一个或多个后续状态请求的URI。在一些实施例中,每当指示该客户端应当在预定的稍后时间尝试获得该一个或多个操作的状态信息的消息被发送给该客户端时,相同的URI可以被发送给该客户端。备选地或附加地,每当指示该客户端应当在预定的稍后时间尝试获得该一个或多个操作的状态信息的消息被发送给该客户端时,不同的URI可以被发送给该客户端。
方法200还可以包括从客户端接收不应再尝试重试的指示。例如,客户端104可以在诸如在112-1至112-m处所示的那些查询中的一个或多个查询之后指示服务器101不应当再执行附加的尝试来执行操作。
现在参考图3,方法300被示出。该方法可以在计算环境中被实践,并且包括用于获得资源的动作。方法300包括在客户端处向服务器发送针对要被执行的一个或多个操作的请求(动作302)。例如,如在图1 中的106处所示,客户端104可以向服务器101发送请求。
方法300还包括从服务器接收向客户端指示该客户端应当在预定的稍后时间尝试获得该一个或多个操作的状态信息的消息(动作304)。例如,如在110处所示,客户端104可以从服务器101接收客户端应当在稍后指定的时间之后查询关于多个操作的状态信息的指示。
作为响应,该方法300还包括向服务器发送针对关于该一个或多个操作的状态信息的请求(动作306)。例如,如在112-1处所示,客户端104可以向服务器101查询操作状态。
方法300还包括重复从所述服务器接收向客户端指示该客户端应当在预定的稍后时间尝试获得该一个或多个操作的状态信息的消息,并且向服务器发送针对关于该一个或多个操作的状态信息的请求,直到一个或多个操作完成,在此之后完成状态被客户端接收,或者直到已经尝试了预定数目的重试,在此之后失败指示被客户端接收(动作308)。例如,如在112-1至112-m和113-1至113-m处所示,客户端继续发送针对状态的请求并且接收响应,直到在113-m处最终完成状态被提供。
方法300还可以包括向服务器发送应当尝试的重试数目的指示。例如,客户端104可以向服务器101指示操作应当被请求处理器114和后台服务100重试的数目。
方法300可以在以下情况下被实践,其中从服务器接收向客户端指示该客户端应当在预定的稍后时间尝试获得该一个或多个操作的状态信息的消息包括接收该客户端应当将其用于该客户端的一个或多个后续状态请求的URI。例如,每当客户端从服务器接收向客户端指示该客户端应当在预定的稍后时间尝试获得该一个或多个操作的状态信息的消息时,用于状态查询的相同的URI可以被客户端接收。备选地或附加地,每当客户端从服务器接收向客户端指示该客户端应当在预定的稍后时间尝试获得该一个或多个操作的状态信息的消息时,用于状态查询的不同的URI可以被客户端接收。
方法300还可以包括客户端发送不应再尝试重试的指示。例如,客户端可以指示它希望不再由请求处理器114和后台服务100尝试操作的重试。
此外,方法可以由计算机系统来实践,该计算机系统包括一个或多个处理器和计算机可读介质,诸如计算机存储器。特别地,计算机存储器可以存储计算机可执行指令,该计算机可执行指令当由一个或多个处理器执行时使得各种功能被执行,诸如实施例中所记载的动作。
如下面更详细讨论的,本发明的实施例可以包括或利用包括计算机硬件的专用或通用计算机。本发明范围内的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是能够被通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的实施例可以包括至少两种截然不同种类的计算机可读介质:物理计算机可读存储介质和传输计算机可读介质。
物理计算机可读存储介质包括RAM、ROM、EEPROM、CD-ROM 或其它光盘存储设备(诸如CD、DVD等),磁盘存储设备或其它磁存储设备,或者任何其它介质,其可以用于以计算机可执行指令或数据结构的形式存储期望的程序代码装置并且可以被通用或专用计算机访问。
“网络”被定义为一个或多个数据链路,其实现在计算机系统和/ 或模块和/或其他电子设备之间的电子数据的运输。当信息通过网络或其他通信连接(硬连线、无线的或硬连线或无线的组合)传输或提供给计算机时,计算机恰当地将连接视为传输介质。传输介质可以包括网络和/ 或数据链路,其可以用于携带以计算机可执行指令或数据结构形式的期望的程序代码装置并且可以被通用或专用计算机访问。以上的组合也被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件时,以计算机可执行指令或数据结构形式的程序代码装置可以从传输计算机可读介质被自动转移到物理计算机可读存储介质(或反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓存在网络接口模块(例如,“NIC”)内的RAM中,并且然后被最终传输到计算机系统RAM和/ 或在计算机系统处的较不易失性计算机可读物理存储介质。因此,计算机可读物理存储介质可以被包括在也(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令包括例如指令和数据,其使得通用计算机、专用计算机、或专用处理设备执行的特定功能或一组功能。计算机可执行指令可以是例如二进制文件、诸如汇编语言的中间格式指令、或者甚至是源代码。尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但应当理解在所附权利要求中限定的主题不一定限于上述描述的特征或动作。相反,所描述的特征和行为被公开为实施权利要求的示例形式。
本领域技术人员将认识到,本发明可以在具有许多类型的计算机系统配置的网络计算环境中被实践,计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等。本发明还可以在分布式系统环境中被实践,其中通过网络链接(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备两者中。
备选地或附加地,本文所描述的功能可以至少部分地由一个或多个硬件逻辑组件执行。例如但不限于,可以使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD) 等。
本发明可以被实施为其它具体形式而不背离其精神或特征。所描述的实施例在所有方面仅被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前面的描述来指示。在权利要求的等同物的含义和范围内的所有变化都将被包含在其范围内。

Claims (20)

1.一种无状态系统,被配置为扩展并以低操作失败率处理长期运行的操作,所述系统包括:
一个或多个处理器;以及
一个或多个物理计算机可读存储介质,所述一个或多个物理计算机可读存储介质具有在其上存储的指令,所述指令由所述一个或多个处理器可执行以配置所述一个或多个处理器供应资源,所述指令包括可执行以配置所述一个或多个处理器至少执行以下操作的指令:
从客户端接收针对要在数据存储库上被执行的一个或多个异步读/写操作的请求;
试图在所述数据存储库上执行所述一个或多个异步读/写操作;
确定在所述数据存储库上所述一个或多个异步读/写操作在当前时间未完成;
作为结果,向所述客户端发送指示所述客户端应当在预定的稍后时间尝试获得所述数据存储库上的所述一个或多个异步读/写操作的状态信息的消息,包括向所述客户端发送唯一操作ID,以标识所述一个或多个异步读/写操作;
从所述客户端接收针对关于所述数据存储库上的一个或多个异步、读/写、存储操作的状态信息的请求,针对状态信息的所述请求包括唯一操作ID;以及
重复:
向所述客户端发送指示所述一个或多个异步读/写操作正在进行中并且所述客户端应当在预定的稍后时间尝试获得所述数据存储库上的所述一个或多个异步读/写操作的状态信息的消息;
从所述客户端接收针对关于所述一个或多个操作的状态信息的请求,直到所述一个或多个异步读/写操作完成,在此之后指示所述一个或多个异步读/写操作已经在所述数据存储库上被完成,或者直到已经尝试了预定数目的重试,在指示所述一个或多个异步读/写操作已经在所述数据存储库上被完成之后,或者在已经尝试了预定数目的重试之后,失败被指示给所述客户端。
2.根据权利要求1所述的系统,其中所述一个或多个计算机可读存储介质还具有在其上存储的指令,所述指令由所述一个或多个处理器可执行以配置所述一个或多个处理器从所述客户端接收应当在所述数据存储库上被尝试的所述一个或多个异步读/写操作的重试的数目的指示。
3.根据权利要求1所述的系统,其中向所述客户端发送指示所述客户端应当在预定的稍后时间尝试获得所述一个或多个操作的状态信息的消息包括:向所述客户端发送所述客户端应当将其用于所述客户端的一个或多个后续状态请求的URI,所述URI包括所述唯一操作ID。
4.根据权利要求3所述的系统,其中向所述客户端发送指示所述客户端应当在预定的稍后时间尝试获得所述一个或多个操作的状态信息的消息包括:每当指示所述客户端应当在预定的稍后时间尝试获得所述一个或多个操作的状态信息的消息被发送给所述客户端时,向所述客户端发送相同的URI。
5.根据权利要求3所述的系统,其中向所述客户端发送指示所述客户端应当在预定的稍后时间尝试获得所述一个或多个操作的状态信息的消息包括:每当指示所述客户端应当在预定的稍后时间尝试获得所述一个或多个操作的状态信息的消息被发送给所述客户端时,向所述客户端发送不同的URI。
6.根据权利要求1所述的系统,其中所述一个或多个计算机可读存储介质还具有在其上存储的指令,所述指令由所述一个或多个处理器可执行以配置所述一个或多个处理器从所述客户端接收不应再尝试重试的指示。
7.根据权利要求1所述的系统,其中所述一个或多个计算机可读存储介质还具有在其上存储的指令,所述指令由所述一个或多个处理器可执行以配置所述一个或多个处理器将操作上下文保存到数据存储库,使得在所述客户端没有明确地重试操作的情况下所述操作能够被重放或重试。
8.根据权利要求1所述的系统,其中所述一个或多个计算机可读存储介质还具有在其上存储的指令,所述指令由所述一个或多个处理器可执行以配置所述一个或多个处理器轮询有资格运行的操作。
9.根据权利要求1所述的系统,其中尝试执行所述一个或多个操作被事务性地执行。
10.一种在计算环境中用于获得资源的系统,所述系统以促进具有低操作失败率的长期运行的操作的方式来获得资源,所述系统包括:
一个或多个处理器;以及
一个或多个物理计算机可读存储介质,所述一个或多个物理计算机可读存储介质具有在其上存储的指令,所述指令由所述一个或多个处理器可执行以配置所述一个或多个处理器获得资源,所述指令包括可执行以配置所述一个或多个处理器至少执行以下操作的指令:
在客户端处,向服务器发送针对要在数据存储库上被执行的一个或多个异步读/写操作的请求;
从所述服务器接收消息,所述消息向所述客户端指示所述一个或多个异步读/写操作正在进行中,并且所述客户端应当在预定的稍后时间尝试获得所述一个或多个异步读/写操作的状态信息,以确定所述一个或多个异步读/写操作的状态,所述消息包括标识所述一个或多个异步读/写操作的唯一操作ID;
作为响应,向所述服务器发送针对关于所述数据存储库上的所述一个或多个操作的状态信息的请求,针对状态信息的所述请求包括所述唯一操作ID;以及
重复从所述服务器接收向所述客户端指示所述客户端应当在预定的稍后时间尝试获得所述一个或多个异步读/写操作的状态信息的消息,以及向所述服务器发送针对关于所述一个或多个操作的状态信息的请求,直到所述一个或多个操作完成,在此之后完成状态由所述客户端接收,或者直到已经尝试了预定数目的重试,在完成状态由所述客户端接收之后,或者在已经尝试了预定数目的重试之后,失败被指示给所述客户端。
11.根据权利要求10所述的系统,其中所述一个或多个计算机可读存储介质还具有在其上存储的指令,所述指令由所述一个或多个处理器可执行以配置所述一个或多个处理器向所述服务器发送应当在所述数据存储库上被尝试的所述一个或多个异步读/写操作的重试的数目的指示。
12.根据权利要求10所述的系统,其中从所述服务器接收向所述客户端指示所述客户端应当在预定的稍后时间尝试获得所述一个或多个操作的状态信息的消息包括:接收所述客户端应当将其用于一个或多个后续状态请求的URI,所述URI包括所述唯一操作ID。
13.根据权利要求12所述的系统,其中每当所述客户端从所述服务器接收到向所述客户端指示所述客户端应当在预定的稍后时间尝试获得所述一个或多个操作的状态信息的消息时,针对所述资源的相同URI被所述客户端接收。
14.根据权利要求12所述的系统,其中每当所述客户端从所述服务器接收到向所述客户端指示所述客户端应当在预定的稍后时间尝试获得所述一个或多个操作的状态信息的消息时,针对所述资源的不同URI被所述客户端接收。
15.根据权利要求10所述的系统,其中所述一个或多个计算机可读存储介质还具有在其上存储的指令,所述指令由所述一个或多个处理器可执行以配置所述一个或多个处理器发送不应尝试重试的指示。
16.一种无状态系统,被配置为扩展并以低操作失败率处理长期运行的操作,所述系统包括:
一个或多个物理处理器;以及
一个或多个物理计算机可读存储介质,所述一个或多个物理计算机可读存储介质具有在其上存储的指令,所述指令由所述一个或多个处理器可执行以配置所述一个或多个处理器实现请求处理机,所述请求处理机被配置为从客户端接收针对要在数据存储库上被执行的一个或多个异步读/写操作的请求;
其中所述一个或多个物理计算机可读存储介质具有在其上存储的指令,所述指令由所述一个或多个处理器可执行以配置所述一个或多个处理器实现后台服务,所述后台服务被配置为在所述数据存储库上执行所述一个或多个异步读/写操作;
其中所述请求处理机还被配置为确定所述数据存储库上的所述一个或多个异步读/写操作未完成;并且
其中所述请求处理机还被配置为重复地向所述客户端发送指示所述客户端应当在预定的稍后时间尝试获得所述数据存储库上的所述一个或多个异步读/写操作的状态信息的消息,包括向所述客户端发送标识所述一个或多个异步读/写操作的唯一操作ID,直到所述一个或多个异步读/写操作完成,在此之后,所述请求处理机被配置为指示所述一个或多个异步读/写操作已经在所述数据存储库上被完成,或者直到已经尝试了预定数目的重试,在指示所述一个或多个异步读/写操作已经在所述数据存储库上被完成之后,或者在已经尝试了预定数目的重试之后,失败被指示给所述客户端。
17.根据权利要求16所述的系统,其中所述一个或多个计算机可读存储介质还具有在其上存储的指令,所述指令由所述一个或多个处理器可执行以配置所述一个或多个处理器实现数据存储库,所述数据存储库被配置为存储异步读/写操作细节。
18.根据权利要求17所述的系统,其中所述数据存储库支持事务语义。
19.根据权利要求16所述的系统,其中所述一个或多个计算机可读存储介质还具有在其上存储的指令,所述指令由所述一个或多个处理器可执行以配置所述一个或多个处理器实现垃圾收集器,所述垃圾收集器被配置为清理已经被完成或已经达到最大重试计数的异步读/写操作。
20.根据权利要求16所述的系统,其中所述系统被配置为通过支持添加附加请求处理机来进行缩放。
CN201680073931.1A 2015-12-15 2016-12-08 无状态系统和用于获得资源的系统 Active CN108475211B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562267813P 2015-12-15 2015-12-15
US62/267,813 2015-12-15
US15/071,143 2016-03-15
US15/071,143 US10133615B2 (en) 2015-12-15 2016-03-15 Long-running storage manageability operation management
PCT/US2016/065473 WO2017105970A1 (en) 2015-12-15 2016-12-08 Long-running storage manageability operation management

Publications (2)

Publication Number Publication Date
CN108475211A CN108475211A (zh) 2018-08-31
CN108475211B true CN108475211B (zh) 2022-02-11

Family

ID=59020045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680073931.1A Active CN108475211B (zh) 2015-12-15 2016-12-08 无状态系统和用于获得资源的系统

Country Status (5)

Country Link
US (2) US10133615B2 (zh)
EP (1) EP3391217B1 (zh)
CN (1) CN108475211B (zh)
ES (1) ES2932026T3 (zh)
WO (1) WO2017105970A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108830937B (zh) * 2018-05-25 2023-08-08 如你所视(北京)科技有限公司 一种操作冲突的处理方法及服务器
CN110471739B (zh) * 2019-07-22 2023-07-11 创新先进技术有限公司 指令重试方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020178341A1 (en) * 2001-05-16 2002-11-28 Microsoft Corporation System and method for indexing and retriving cached objects
US20050154847A1 (en) * 2004-01-14 2005-07-14 Elipsan Limited Mirrored data storage system
US20070266160A1 (en) * 2006-05-09 2007-11-15 Johnson Chris D Automatic Application Server Fail Fast and Recover on Resource Error
US20080040558A1 (en) * 2006-07-26 2008-02-14 International Business Machines Corporation Determining whether data written to source storage locations according to a write order is copied to corresponding target storage locations in the write order
CN101243422A (zh) * 2005-08-19 2008-08-13 微软公司 分支机构dns存储及解析
CN102202102A (zh) * 2011-07-05 2011-09-28 施昊 基于云计算架构的网络服务聚合系统及其聚合方法
US20120209945A1 (en) * 2011-02-16 2012-08-16 Jayadev Chandrasekhar Optimizing Server Resources Using Multiple Retry For High Traffic Websites
CN102917010A (zh) * 2011-09-09 2013-02-06 微软公司 多计算机系统中的自动抢占
CN104778270A (zh) * 2015-04-24 2015-07-15 成都汇智远景科技有限公司 一种用于多文件的存储方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6673438B1 (en) * 1994-05-03 2004-01-06 Cardinal Cg Company Transparent article having protective silicon nitride film
US6145094A (en) 1998-05-12 2000-11-07 Sun Microsystems, Inc. Transaction locks for high availability
US7441010B2 (en) * 2002-06-06 2008-10-21 International Business Machines Corporation Method and system for determining the availability of in-line resources within requested web pages
US7366782B2 (en) 2003-04-14 2008-04-29 At&T Corp. Systems and methods for termination of session initiation protocol
US20060010426A1 (en) * 2004-07-09 2006-01-12 Smartware Technologies, Inc. System and method for generating optimized test cases using constraints based upon system requirements
US7475089B1 (en) 2004-09-02 2009-01-06 Sprint Spectrum L.P. Enhanced portal server system and method
WO2007059469A2 (en) * 2005-11-10 2007-05-24 Computer Associates Think, Inc. System and method for delivering results of a search query in an information management system
US9473457B2 (en) * 2009-10-22 2016-10-18 International Business Machines Corporation Interactive management of web application firewall rules
US8938770B2 (en) 2010-07-08 2015-01-20 Verizon Patent And Licensing Inc. Bandwidth and server resource savings through use of legacy client capability in a remote user interface system
EP2609522A4 (en) 2010-08-26 2014-10-29 Telcordia Tech Inc SYSTEM, METHOD AND PROGRAM FOR VIRTUALIZING AND MANAGING A TELECOMMUNICATIONS INFRASTRUCTURE
US8595676B2 (en) * 2011-06-19 2013-11-26 International Business Machine Corporation BDD-based functional modeling
US9317323B2 (en) 2012-12-26 2016-04-19 Microsoft Technology Licensing, Llc Dynamic execution log in a distributed system
US9692717B2 (en) 2013-09-20 2017-06-27 Oracle International Corporation System and method for supporting detachable administration commands in a cloud platform environment
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

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020178341A1 (en) * 2001-05-16 2002-11-28 Microsoft Corporation System and method for indexing and retriving cached objects
US20050154847A1 (en) * 2004-01-14 2005-07-14 Elipsan Limited Mirrored data storage system
CN101243422A (zh) * 2005-08-19 2008-08-13 微软公司 分支机构dns存储及解析
US20070266160A1 (en) * 2006-05-09 2007-11-15 Johnson Chris D Automatic Application Server Fail Fast and Recover on Resource Error
US20080040558A1 (en) * 2006-07-26 2008-02-14 International Business Machines Corporation Determining whether data written to source storage locations according to a write order is copied to corresponding target storage locations in the write order
US20120209945A1 (en) * 2011-02-16 2012-08-16 Jayadev Chandrasekhar Optimizing Server Resources Using Multiple Retry For High Traffic Websites
CN102202102A (zh) * 2011-07-05 2011-09-28 施昊 基于云计算架构的网络服务聚合系统及其聚合方法
CN102917010A (zh) * 2011-09-09 2013-02-06 微软公司 多计算机系统中的自动抢占
CN104778270A (zh) * 2015-04-24 2015-07-15 成都汇智远景科技有限公司 一种用于多文件的存储方法

Also Published As

Publication number Publication date
CN108475211A (zh) 2018-08-31
US10860402B2 (en) 2020-12-08
US20190050281A1 (en) 2019-02-14
US20170168887A1 (en) 2017-06-15
EP3391217A1 (en) 2018-10-24
US10133615B2 (en) 2018-11-20
EP3391217B1 (en) 2022-10-26
ES2932026T3 (es) 2023-01-09
WO2017105970A1 (en) 2017-06-22

Similar Documents

Publication Publication Date Title
US11321303B2 (en) Conflict resolution for multi-master distributed databases
US10956279B2 (en) Managing big data on document based NoSQL databases
US10296606B2 (en) Stateless datastore—independent transactions
US10303795B2 (en) Read descriptors at heterogeneous storage systems
KR101963917B1 (ko) 가장 최근에 사용된 문서 목록들의 자동 동기화 기법
WO2017181931A1 (zh) 一种处理分布式事务的方法与设备
WO2016134590A1 (zh) 处理事务的方法、处理节点、中心节点和集群
CN107016016B (zh) 一种数据处理的方法及装置
JP5705871B2 (ja) 分散された永続性インスタンスに対するロックの解決
JP5652480B2 (ja) データベース更新通知方法
CN113094430B (zh) 一种数据处理方法、装置、设备以及存储介质
US11914569B2 (en) Light weight redundancy tool for performing transactions
US8392369B2 (en) File-backed in-memory structured storage for service synchronization
US20230110826A1 (en) Log execution method and apparatus, computer device and storage medium
CN110430255A (zh) 分布式集群中服务请求的处理方法、系统以及电子设备
CN111338834B (zh) 数据存储方法和装置
US10599629B2 (en) Reduced locking in a distributed data store
US20180129668A1 (en) Intermediate file processing method, client, server, and system
CN108475211B (zh) 无状态系统和用于获得资源的系统
US10652081B1 (en) Facilitating resilient and fault tolerant asynchronous messaging
CN111865687A (zh) 一种业务数据更新方法及设备
US12026141B2 (en) Data storage system conflict management
US20210142263A1 (en) Document-based Distributed Inventory System With Rebalancing
US10853188B2 (en) System and method for data retention in a decentralized system
CN110888929B (zh) 数据处理方法、装置、数据节点及存储介质

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