CN105409171A - 突发模式控制 - Google Patents

突发模式控制 Download PDF

Info

Publication number
CN105409171A
CN105409171A CN201480042366.3A CN201480042366A CN105409171A CN 105409171 A CN105409171 A CN 105409171A CN 201480042366 A CN201480042366 A CN 201480042366A CN 105409171 A CN105409171 A CN 105409171A
Authority
CN
China
Prior art keywords
token
bucket
target
burst
work request
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.)
Granted
Application number
CN201480042366.3A
Other languages
English (en)
Other versions
CN105409171B (zh
Inventor
肖巍
B·P·斯威夫特
K-K·穆尼斯瓦麦-雷迪
M·M·菲利普
陆一俊
S·H·S·马歇尔
S·斯泰法尼
J·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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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
Priority claimed from US13/926,684 external-priority patent/US9553821B2/en
Priority claimed from US13/926,694 external-priority patent/US10764185B2/en
Priority claimed from US13/926,697 external-priority patent/US9385956B2/en
Priority claimed from US13/926,686 external-priority patent/US9471393B2/en
Priority claimed from US13/926,708 external-priority patent/US9218221B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN105409171A publication Critical patent/CN105409171A/zh
Application granted granted Critical
Publication of CN105409171B publication Critical patent/CN105409171B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/525Queue scheduling by attributing bandwidth to queues by redistribution of residual bandwidth

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

公开了用于多余共享资源吞吐量的公平分布的方法和设备。第一工作目标和第二工作目标被配置成访问共享资源以实施所接受的工作请求。使用相应的令牌桶来管理所述工作目标处的准入控制。确定指示一个时间间隔期间所述工作目标处的工作请求到达速率的第一度量和与所述工作目标的规定容量相关的第二度量。使基于所述共享资源的吞吐量限制所确定的多个令牌分布在所述工作目标间以用于在随后的时间间隔期间用于准入控制。分布到每个工作目标的令牌数量是基于所述第一度量和/或所述第二度量。

Description

突发模式控制
背景技术
一些领先的技术组织正投资构建销售“软件即服务”的技术。此类服务为客户或订户提供对共享存储装置(例如,数据库系统)和/或计算资源的访问。在多层电子商务系统内,可以将不同类型的资源的组合诸如整个物理或虚拟机、CPU、存储器、网络带宽或I/O容量分配给订户和/或它们的应用。
向客户端提供服务的每个系统都需要保护自己免受有可能使该系统超负载的服务请求的压溃负载。一般而言,对于Web服务或远程过程调用(RPC)服务来说,如果系统不能为其所接收的客户端请求的某个部分提供预期质量的服务,那么该系统被认为呈“超负载”状态。超负载系统施加的常见解决方案包括拒绝针对客户端的服务或限制一定量的进入请求直到这些系统摆脱超负载状态。
某些当前系统通过将请求速率与固定的或变化的全局阈值进行比较并且一旦超过这个阈值,选择性地拒绝针对客户端的服务来避免超负载场景。然而,这种方法并未考虑到可以响应于接受用于服务端的不同类型和/或实例的服务请求而执行的工作量的差异。另外,很难(如果不是不可能的话)定义单个全局阈值,所述阈值在以不同的、不可预测的速率接收不同类型的请求并且为满足其请求所需的工作量也是变化的和不可预测的系统中是有意义的(更不用说提供可接受的性能)。虽然可能已将许多服务设计成在客户端请求随时间推移均匀分布时起到最好作用,但实际上很少遇到此类工作分布的时间均匀性。此外,在至少一些环境中,工作负载可能不仅仅是相对于时间不均匀的,而且是相对于在其上操作的数据集不均匀的,例如与其它部分相比,可以更频繁地访问或修改数据的某些部分。希望达到和保持高水平客户满意度的服务提供者可能需要实施以更复杂的方式处理工作负载变化的技术。
附图说明
图1a图示了根据至少一些实施方案的工作请求到达速率变化的示例,并且图1b图示了根据至少一些实施方案的令牌桶可以用于在存在这些变化时作出准入控制决定的系统。
图2提供了根据至少一些实施方案的基于令牌的准入控制机制的高级别概述。
图3图示了根据至少一些实施方案的用于准入控制的令牌桶的示例配置性质。
图4图示了根据至少一些实施方案的未使用令牌从规定容量桶积聚到突发模式桶中的示例。
图5图示了根据至少一些实施方案的用于读取和写入的准入控制的相应令牌桶的使用。
图6图示了根据至少一些实施方案的包括一个或多个本地突发限制桶、一个或多个共享资源容量桶和一个或多个复制管理桶的突发模式令牌桶集合。
图7图示了根据至少一些实施方案的出于准入控制的目的而将工作请求突发分类为多个类别的示例。
图8图示了根据至少一些实施方案的包括用于突发模式准入控制的峰值突发令牌桶和持续突发令牌桶的组合的复合令牌桶的使用的示例。
图9图示了根据至少一些实施方案的专用于相应类别的工作操作的峰值突发和持续突发桶的使用。
图10是根据至少一些实施方案的图示了可被执行以实施用于网络可访问服务处的工作请求的基于令牌的准入控制机制的操作的各方面的流程图。
图11是根据至少一些实施方案的图示了可被执行以实施用于使用网络可访问服务处的多个突发模式令牌桶处理突发模式操作的基于令牌的准入控制机制的操作的各方面的流程图。
图12是根据至少一些实施方案的图示了可被执行用于准入控制的令牌消耗、再填充和转移操作的各方面的流程图。
图13是根据至少一些实施方案的图示了可被执行以在与准入的工作请求相对应的工作操作完成之后调整一个或多个令牌桶中的令牌计数的操作的各方面的流程图。
图14是根据至少一些实施方案的图示了可被执行以响应于管理事件来修改突发模式准入控制参数的操作的各方面的流程图。
图15是根据至少一些实施方案的图示了可被执行以调整用于基于令牌的突发模式准入控制的参数的操作的各方面的流程图。
图16图示了根据至少一些实施方案的工作请求关于由服务所管理的数据的不同子集的不均匀分布以及工作请求到达速率的不均匀性的示例。
图17图示了根据至少一些实施方案的可以被实施以缓解数据访问的空间不均匀性的影响的令牌共享协议的示例迭代。
图18图示了根据至少一些实施方案的可以在数据分区被复制的环境中建立的令牌共享对等端群组的示例。
图19图示了根据至少一些实施方案的在数据库服务处使用令牌共享以支持对次级索引的工作负载管理的示例。
图20a–20d图示了根据至少一些实施方案的在令牌共享协议的参与者之间的消息序列流的示例。
图21是根据至少一些实施方案的图示了可以被执行以支持针对突发模式操作的令牌共享的操作的各方面的流程图。
图22图示了根据至少一些实施方案的具有一定吞吐量限制的共享资源的示例,该吞吐量限制大于共享该资源的工作目标的组合规定容量。
图23图示了根据至少一些实施方案的可由服务的存储节点处的工作目标共享的资源的示例。
图24图示了根据至少一些实施方案的被执行以计算将分布在共享资源的工作目标间的多余令牌的数量的操作的示例。
图25是根据至少一些实施方案的图示了可以被执行以实施多余令牌在共享资源的工作目标间的公平分布的操作的各方面的流程图。
图26图示了根据至少一些实施方案的可被实施用于突发模式操作的定价管理器的示例组件。
图27图示了根据至少一些实施方案的基于令牌的定价策略的示例元素。
图28是根据至少一些实施方案的图示了可被执行来确定突发模式操作的计费金额的操作的各方面的流程图。
图29是根据至少一些实施方案的图示了与条件性突发模式定价相关的操作的各方面的流程图。
图30是根据至少一些实施方案的图示了可被实施以实现定价策略的客户端选择的操作的各方面的流程图。
图31是根据至少一些实施方案的图示了可被实施来实现突发模式令牌的市场的操作的各方面的流程图。
图32是根据至少一些实施方案的可被实施用于工作目标的不同分区之间的令牌的定价转移的操作的各方面的流程图。
图33是根据至少一些实施方案的针对令牌桶配置设置的定价变化可以实施的操作的各方面的流程图。
图34是图示了在至少一些实施方案中可使用的示例计算装置的框图。
虽然本文通过几个实施方案和说明性附图的示例描述了实施方案,但本领域技术人员将意识到实施方案不限于所述的实施方案或附图。应该理解,这里的附图和详细描述并非意欲将本发明限制为所公开的特定形式,相反,本发明意欲涵盖落在由附加权利要求书所定义的精神和范围内的所有修改、等效物和替代方案。本文使用的标题仅出于组织的目的,且并非意在用于限制说明书或者权利要求书的范围。如在本申请中所使用的,在许可意义(即具有可能的含义),而不是强制意义(即表示必须)上使用词“可”。类似地,词语“包括(include/including/includes)”表示包括但不限于。
具体实施方式
描述了用于使用令牌桶和相关定价策略来实现突发模式准入控制的方法和设备的各种实施方案。术语“准入控制”在本文可以用于表示被执行以确定接收的工作请求(诸如指向存储服务的读取或写入请求)是否被接受用于实施的操作,并且可以将在执行准入控制的过程中所涉及的软件和/或硬件实体的集合统称为“准入控制器”。例如,可以在网络可访问服务(诸如多租户存储装置或数据库服务)支持规定工作负载模型的多种环境中采用使用了令牌桶的准入控制。在规定工作负载模型中,可以设置或配置工作请求可能指向的给定对象,以此方式使得该给定对象通常能够以针对工作请求的可接受响应时间支持高达工作请求的特定速率(“规定吞吐量”)。术语“吞吐量”在本文中用于表示资源(例如,存储对象、数据库表或者存储对象或数据库表的分区)以给定速率完成工作请求的能力。在存储资源的情况下,可使吞吐量例如以诸如工作操作/秒(诸如逻辑或物理读或写/秒)的单位表示。术语“工作目标”在本文中可用于由网络可访问服务所实施和/所管理的资源或对象,工作请求可以指向该资源或对象。在至少一些实施方案中,给定准入控制器可以负责为多个工作目标作出准入决定。
例如,在一个实施方案中,网络可访问多租户数据库服务可以设置数据库表(工作目标),该数据库表被配置用于处理多达X读取或写入操作/秒(即,可以将表的规定吞吐量设置为X操作/秒)。术语“规定吞吐量”和“规定容量”在本文中可以互换使用。在至少一些实施方案中,对应客户端必须同意为表的建立和使用付费的金额可以基于规定容量;例如,由于工作对象与客户端的服务级别协定,客户端可以(至少在不存在特殊情况诸如灾难事件的情况下)希望服务应当能够跟上工作请求到达速率一直到规定容量。为了能够支持规定容量,数据库服务可以采取各种步骤,诸如识别和利用具有足够存储容量和性能能力的存储装置以存储表的内容并且支持所需吞吐量级别和响应时间;使表的内容的各部分出于工作负载平衡的目的分布在多个此类装置中等等。在这样一个示例场景下,在确定或设置了表的规定吞吐量后(例如,如果客户端的利用指定吞吐量创建表的请求被接受,或对应的服务级别协议已得到相关各方批准),只要针对表的读取或写入请求以X请求/秒或更小的速率到达,那么数据库服务一般可以负责以合理的响应时间接受和执行请求。然而,如果指向对象的工作请求以高于规定容量的速率到达,那么可以将该对象视为以“突发操作模式”操作,并且虽然服务可能尽力而为尝试来接受和执行此类突发模式工作请求,但某些突发模式工作请求可以被延迟或拒绝。在一些实施方案中,可以由网络可访问服务出于管理目的而在内部使用给定工作目标的规定容量,例如服务可以不必向客户端展示规定容量,即使可以在内部使用规定容量以将此类参数决定作为工作目标及其工作负载到各种较低级别资源(诸如存储装置或服务器)的映射。
在采用了规定工作负载模型的一些实施方案中,布置在逻辑容器或“桶”中的工作令牌可以用于表示资源的可用吞吐量,并且这样的桶可以因此用于确定是否应当接受给定工作请求用于执行。术语“可用吞吐量”在本文中可以用于表示考虑到其当前工作负载,资源可以提供多少附加吞吐量的估计或度量。例如,给定存储装置可以被配置成具有100工作操作(例如,读取或写入)/秒的规定容量,并且可以在给定秒时间内,支持60操作/秒的工作负载。在该示例中,该给定存储装置的可用吞吐量可为(100–60)或40操作/秒。在一个实施方式中,可使桶每秒装填(或“再填充”)有100个令牌以表示规定容量。当工作请求到达时,可以从桶(其可被称为规定容量桶)中消耗令牌,例如可以在接收到60个工作请求的秒内消耗这些令牌中的60个,留下40个令牌表示可用吞吐量。只要工作请求速率保持不高于规定容量,那么存储装置可以被认为是正常地、或以正常模式操作,并且可以使用适用于正常操作的参数集进行准入控制。如以下进一步详细描述,如果工作请求到达速率超过规定吞吐量(例如,在该示例中,100工作操作/秒),那么可以将存储装置视为以相对于正常模式的突发模式进行操作,并且可以使用不同的准入控制参数集。规定容量桶的令牌数量可能会被耗尽,并且可以使用一个或多个附加桶(称为突发模式桶)以在突发模式期间处理准入控制。在不同的实施方案中,可以采取多种不同的方法来装填和消耗突发模式桶中的令牌,例如以使得服务能够在某些约束范围内为突发模式操作提供最优支持。应当指出,在不同的实施方案中,给定资源的可用吞吐量(以及因此与突发模式操作相对应的工作负载级别)可以取决于多种不同因素的任意组合,诸如底层硬件或软件的能力和/或被实施来控制或限制资源处的吞吐量的策略(基于负载平衡考虑、公平性考虑、商业/定价考虑或除了硬件/软件的固有能力之外的因素的某种组合)。
根据一个实施方案,可以将工作目标视为以正常模式操作,只要指向该工作目标的工作请求速率处于或低于指定级别(例如,工作目标的规定容量),并且如果工作请求速率超过指定级别,那么可将工作目标视为以突发模式操作。当接收到任意给定工作请求时,可以确定与工作目标相关的正常模式令牌桶的令牌数量。如果正常模式令牌桶的令牌数量满足阈值标准(例如,如果令牌数量大于1或高于某个阈值),那么这可以向准入控制器指示工作目标处于正常模式。因此,在此类实施方案中,准入控制器可能不需要直接监视到达速率以确定操作模式,相反可以使用正常模式令牌桶中的令牌计数进行模式确定,从而有可能使得准入控制器的工作负载相对于为进行准入控制而必须监视到达速率的场景减少。可以接受请求用于在正常模式下执行,并且可以从正常模式桶中消耗一个或多个令牌。
然而,如果正常模式桶数量不满足阈值标准,那么可以将工作目标视为呈突发模式,或可以至少确定工作目标将在工作请求被接受用于执行的情况下进入突发模式。因此,准入控制器可以确定突发模式令牌桶集合中的至少一个桶的令牌数量。如果一个或多个突发模式令牌桶的令牌数量满足第二阈值标准(例如,如果突发模式令牌桶包含至少一个令牌),那么可以接受工作请求用于执行。可以修改一个或多个突发模式桶的数量以反映工作请求已被接受的事实。在至少一个实施方案中,准入控制器可以例如基于对将被执行以完成或满足工作请求的工作量的估计值,和/或基于适于突发模式操作的令牌消耗策略来从突发模式令牌桶中消耗特定数量的令牌。可以在工作请求被接受后,根据工作请求发起一个或多个工作操作(例如,在包括存储或数据库对象的工作目标的情况下的读取或写入)。
根据至少一些实施方案,如果正常模式令牌桶的令牌数量并未指示工作目标呈突发模式,那么正常模式令牌桶可以单独用于准入控制(例如,对于如上所述所接受的每个工作请求来说,可以从正常模式令牌桶中消耗某个数量的令牌)。因此,在至少一些实施方案中,突发模式桶的数量在正常模式准入控制操作期间可能不发挥作用。在一些实施方案中,即使在正常模式操作期间,当工作请求被接受时,也可以从一个或多个突发模式桶以及从一个或多个正常模式令牌桶中依据突发模式桶和正常模式桶的相应令牌消耗策略来消耗令牌。应当指出,至少在一些实施方案中,即使在正常模式期间,也可以根据适用的再填充策略来为突发模式桶增加令牌。在一些实施方案中,如果工作目标呈突发模式,并且一个或多个突发模式桶的数量不满足第二阈值标准(例如,如果在突发模式桶中没有发现足够的令牌来接受工作请求),那么可以拒绝、延迟或再试工作请求。在至少一些实施方案中,当没有足够的令牌用于接受给定工作请求时,可以一次或多次再试该工作请求(例如,一直到可配置的再试计数限制),而不通知提交请求的客户端。如果工作请求最终被接受,那么发出工作请求的客户端可以经历对该请求的高于正常的总响应时间,但可能仍然不知道该请求被拒绝至少一次。
如以下进一步详细描述,可以使正常模式令牌桶和突发模式令牌桶在各个时间点根据相应再填充策略再填充有令牌。在一个实施方案中,可以使正常模式令牌桶以与工作目标的规定容量相等的速率再填充,这受到最大令牌数量的限制。在至少一些实施方案中,可以将这样的正常模式令牌桶称为规定容量令牌桶。在至少一些实施方案中,可使一个或多个突发模式令牌桶以与工作目标的规定吞吐量成比例(但不一定相等)的速率再填充。使突发模式桶的再填充速率保持与工作目标的规定容量成比例可以确保不同的工作目标处理与它们相应的规定容量成比例的突发模式工作负载。例如,如果数据库服务的客户端C1为具有规定容量P1的表T1支付金额A1,并且客户端C2为具有规定容量P2的表T2支付A2,其中P1>P2并且A1>A2,那么T1的突发模式令牌桶将以与T2的突发模式令牌桶相比更高的速率再填充,使得与T2相比,对于T1来说,工作请求的较高突发速率是可支持的,如由于A1>A2而可以预期的那样。
在一些实施方案中,服务可以利用用于不同类型的工作请求到达速率突发的不同准入控制参数。例如,考虑由具有规定容量P操作/秒的服务S所实施的工作目标W。可将速率大于P/秒的工作请求到达分类为突发。然而,不是所有突发都可以以相同的方式影响服务S。例如,如果客户端以100P/秒的速率提交工作请求,那么服务S可能仅能够在非常短的持续时间内处理这些请求,才不会对其它客户端造成负面影响或耗尽资源。然而,如果客户端以2P/秒的速率提交工作请求,那么服务可能能够在较长的时期内处理这些请求。相应地,在一个实施方案中,可以设置多个突发模式令牌桶诸如峰值突发桶,以处理到达速率中的短期尖峰;和持续突发桶,以处理具有较低最大请求速率的较长突发。本文中可将峰值突发令牌桶和持续突发令牌桶的组合称为“复合”令牌桶(或复合桶)。在这样一个实施方案中,准入控制器可以确定指向工作目标的工作请求被接受用于执行的峰值突发速率,和指示工作请求以峰值突发速率被接受的最大持续时间的峰值突发窗口大小。另外,准入控制器还可以确定小于峰值突发速率的持续突发速率,和大于峰值突发窗口大小的持续突发窗口大小,其中持续突发窗口大小指示指向工作目标的工作请求以持续突发速率被接受的最大持续时间。在一些实施方案中,虽然窗口大小一般可以指示相应突发速率在某些条件下(例如,假定在突发期间无再填充)可以维持的持续时间,但实际上所实现的持续时间可能不会精确匹配窗口大小(例如,因为再填充操作实际上可以在突发期间被执行)。两个突发模式桶的最大令牌数量可以基于它们相应的最大突发速率来设置,例如在一个实施方式中,可以将峰值突发桶的最大令牌数量设置为峰值突发速率和峰值突发窗口大小的乘积,同时可以将持续突发桶的最大令牌数量设置为持续突发速率和持续突发窗口大小的乘积。这两个桶均可以用于突发模式操作期间的准入控制,例如响应于接收指向工作目标的工作请求,准入控制器可以至少部分基于峰值突发令牌桶和持续突发令牌桶的各自令牌数量来接受用于执行的工作请求。在至少一些实施方案中,不同的消耗速率和/或不同的再填充速率都可以施加到峰值突发桶和持续突发桶。
在这样的实施方案中,通过使用复合桶技术,准入控制器可能能够在短持续时间内支持非常高的突发速率,并且在较长的持续时间内支持较低的突发速率。考虑工作目标的规定容量(pr)为100操作/秒(100ops/sec)的示例场景,与峰值突发桶PBB相关的峰值突发速率(pbr)为1000ops/sec,峰值突发窗口大小(pbw)为6秒,与持续突发窗口SBB相关的持续突发速率(sbr)为200ops/sec,并且持续突发窗口大小(sbw)为60秒。另外假定峰值突发桶的最大数量(PBB-max)被设置为pbr和pbw的乘积(1000*6或6000个令牌),并且持续突发桶的最大数量(SBB-max)被设置为sbr和sbw的乘积(200*60或12000个令牌)。考虑在时间T时开始的工作请求B的突发(即,在该示例场景中,准入控制器已确定,对于正常模式的操作来说,正常模式桶在时间T时具有不充足的令牌,因此施加突发模式参数)。为了便于解释,假定使PBB每秒再填充有200个令牌(受到PBB-max的限制)以及使SBB每秒再填充有100个令牌(受到SBB-max的限制),并且对于该示例来说,工作目标保持呈突发模式。假定每个工作请求均导致一个实际工作操作(例如,读取或写入),并且将从突发模式桶(PBB(峰值突发桶)和SBB(持续突发桶))中的每一者消耗一个令牌以接受给定请求。假定PBB和SBB两者在时间T时是充满的:PBB具有6000个令牌,并且SBB具有12000个令牌。
首先,考虑突发B由1000个请求/秒的到达组成的场景。在一秒后,在时间T+1时,PBB的数量为(6000–1000+200)=5200,因为PBB以6000个令牌开始,由于到达而消耗1000个令牌,并且根据PBB的再填充策略增加200个令牌。类似地,在时间T+1时,SBB的数量为(12000–1000+100)=11100。对于接下来请求以1000个请求/秒到达的几秒时间的每秒来说,PBB的净数量将减少800个令牌,而SBB的净数量将减少900个令牌。因此,PBB的令牌数量(称为pop(PBB))和SBB的令牌数量(称为pop(SBB))将如下减小:在时间T+2时:pop(PBB)=4400,pop(SBB)=10200;在时间T+3时,pop(PBB)=3600,pop(SBB)=9300;在时间T+4时,pop(PBB)=2800,pop(SBB)=8400;在时间T+5时:pop(PBB)=2000,pop(SBB)=7500;在时间T+6时:pop(PBB)=1200,pop(SBB)=6600;在时间T+7时:pop(PBB)=400,pop(SBB)=5700。
在T+7之后的那秒期间,假定突发B以1000个请求/秒继续,PBB在该示例中耗尽令牌,并且至少一些请求被拒绝(即使SBB仍具有足够的令牌)。因此,在该示例中,1000个请求/秒的高到达速率突发将仅仅可持续约7-8秒。
相比之下,考虑突发B包括200个请求/秒的场景。PBB每秒钟不会失去任意净令牌:消耗200个令牌,且再填充200个令牌。SBB(其以12000个令牌开始)每秒钟失去100个令牌:消耗200个令牌,再填充100个令牌。因此,将花费大约12000/100=120秒来耗尽SBB,并且因此200个请求/秒的突发在所假定的参数设置下可持续约120秒。因此,在该示例场景中,与1000个请求/秒的尖锐突发相比,200个请求/秒的较小突发速率适应长得多的时间。实际上,在各种实施方案中,算法可能会变得更加复杂,例如,因为正常模式桶可能会在它们被再填充时发挥作用,突发模式到达速率可能不会如所假定保持不变,并且可能不得不考虑其它因素(诸如不同类型的请求需要不同数量的令牌的消耗策略)。
在一些实施方案中,相应的突发模式桶可以用于不同类别的工作请求,例如在存储或数据库服务环境中,一个或多个突发模式桶可以被维持用于读取操作请求,并且一个或多个突发模式桶可以被维持用于写入操作请求。在使用了规定容量桶的一个实施方案中,如果在某个时间间隔后,规定容量桶的一些令牌保持未使用,那么可以将这些未使用的令牌“堆积(banked)”或逻辑地转移到一个或多个突发模式桶,使得至少原则上客户端可能能够在突发期间利用未使用的规定容量令牌。在一些实施方案中,可以使用突发模式令牌桶的集合来将一个或多个共享资源的吞吐量限制考虑在内。例如,如果数据库表分区位于其上还定位有其它表的分区的共享存储装置上,那么除了使用如上所述的突发模式桶外,还可以使用共享资源容量桶来表示共享存储装置的可用吞吐量,并且为了接受工作请求,也可以从共享资源容量桶中消耗令牌。在一些实施方案中,被消耗以接受给定工作请求的令牌数量可以是基于请求所需工作的估计值,并且如果初始估计值被发现不准确,那么在所执行的实际工作量变得已知时可以针对各种桶消耗(或增加)令牌。以下提供了关于用于突发模式操作的基于令牌的准入控制策略的这些和各种其它方面的细节。
在一些实施方案中,在某些类型的存储相关网络可访问服务的情况下,可以使给定客户端的数据集分布在多个工作目标之间,使用相应的令牌桶集合来独立地执行对多个工作目标的准入控制。例如,数据库服务可以将大的表组织成N个分区的集合,其中关于是否接受指向给定分区的工作请求的基于令牌的决定相对于其它分区独立作出。在这样的实施方案中,除了时间不均匀性的维度外,客户端工作负载的不均匀性问题还可能具有额外的空间维度。也就是说,当考虑到所有客户端的数据的组合工作负载时,可能出现的情况是,工作请求不仅随时间的推移不均匀地分布(即,在某些时间段期间,工作请求以与其它时间段期间相比高得多的速率到达),而且工作请求也在数据空间上不均匀地分布(即,客户端数据的某些子集与其它子集相比被更频繁地访问和/或更新)。在空间不均匀性的一些示例场景中,可能出现的情况是,至少对于某些时间段,与由给定客户端C1所拥有的另一个数据分区P2处相比,由同一客户端C1所拥有的一个数据分区P1处可用的令牌的数量要高得多,而P2处的工作负载比P1处高得多。这可能会导致工作请求在受到频繁访问的分区处被拒绝,即使在将所有客户端分区视为整体时,可以存在足够的令牌可供用于避免这些拒绝。因此,在至少一些实施方案中,可以实施用于在一组工作目标之间共享令牌的机制。
在实施令牌共享的一个实施方案中,可以将多个工作目标配置成具有相应的令牌桶用于准入控制。令牌共享协议的迭代可以在作出以下确定时开始,即在特定工作目标WT1处已满足令牌共享评估标准。也就是说,WT1可以被配置成评估对于WT1来说以下步骤是否是值得的,即尝试从一个或多个其它工作目标获得附加令牌,或将令牌转移到一个或多个其它工作目标。在不同的实施方案中,可以使用发起此类评估的不同标准,例如,在一些实施方案中,每个工作目标均可被配置成以默认方式每X秒或X分钟评估令牌共享一次;在其它实施方案中,给定工作目标可以被配置成在其某个令牌桶集合中的令牌计数降到低于阈值或升到高于不同阈值的情况下,或在对工作请求的拒绝率升到高于阈值的情况下评估令牌共享。
在一些实施方案中,作为评估过程的一部分,工作目标WT1可以识别第二工作目标WT2,将与该第二工作目标交换属于某个令牌桶集合的令牌数量信息。例如,在一个实施方式中,突发模式令牌桶的令牌数量计数可以在WT1与WT2之间交换。至少部分基于令牌计数的比较,这两个工作目标可以确定应当共享还是转移某一数量的令牌,例如具有较多令牌的工作目标可以同意将一些令牌从源桶提供到具有较少令牌的工作目标处的目的地桶。如果作出传输令牌的决定,那么目的地桶的数量可以增加某一数量的令牌Nt,并且源桶的数量可以增加Nt。在这些令牌已转移后,可以使用这两个参与工作目标处的最新修改的令牌数量来作出准入控制决定。本文中可以将令牌共享协议的参与者称为“令牌共享对等端”,并且可以将参与该协议的工作目标群组称为“令牌共享群组”或“令牌共享对等群组”。在一些实施方式中,可以例如基于满足的触发条件、在随机选择的时间或根据确定性时间表来迭代地执行令牌共享协议步骤(例如,该协议的评估步骤和令牌共享步骤)。在至少一些实施方案中,不同的工作目标对可以参与不同的迭代,也就是说,在该协议的给定迭代中可能并没有涉及令牌共享对等群组的所有工作目标。在一些实施方案中,令牌共享协议可以由令牌共享群组的工作目标的准入控制器共同实施。
在不同的实施方案中,令牌共享群组中的从属关系可以基于若干因素中的任一者。例如,在一些实施方案中,可以仅在单一数据库表的分区间共享令牌。在其它实施方案中,可以在由同一客户端或由合作客户端的某个集合所拥有的表集合的所有分区间共享令牌。在非关系数据库服务使用派生表实施对给定基表的次级索引的一个实施方案中(如以下进一步详细描述),可以在基表的分区和派生表的分区间实施令牌共享。在一些实施方案中,可以使客户端能够明确指定令牌共享群组的成员工作目标,而在其它实施方案中,服务而不是客户端可以确定令牌共享从属关系。类似地,在不同的实施方案中,其间使用了令牌共享的特定类型的令牌桶可以不同,例如,在一些实施方案中,可以由工作目标仅在突发模式令牌桶间共享令牌,而在其它实施方案中,还可以或替代在正常模式桶间共享令牌。
在不同的工作目标被分配有各自的规定吞吐量的一些实施方案中,多个工作目标诸如属于不同客户端的表分区可以共享单个资源诸如存储装置。共享资源自身可以具有吞吐量限制TL,该吞吐量限制通常可以高于共享资源的工作目标集合的组合规定容量(PC)。例如,为了避免使共享资源超负载,在工作目标处正实施的网络可访问服务可能已对工作目标进行了配置,以此方式使得它们的组合规定容量不超过共享资源的吞吐量限制,工作目标依赖于该共享资源以完成客户端工作操作。在这样一个场景中,可以将工作目标称为“资源共享群组”的成员。每个这样的工作目标都可以具有令牌桶诸如一个或多个正常模式令牌桶和一个或多个突发模式令牌桶的相关集合。
在至少一些实施方式中,关于通过共享资源可持续的最大吞吐量,相对于资源共享群组的组合规定容量的多余容量的缓冲区因此可以得到维持。也就是说,即使当资源共享群组的所有工作目标以其规定容量接收工作请求时,共享资源也可能能够处理附加负载。在某些情况下,例如,当资源共享群组的工作目标中的一者或多者经历它们无法处理的高工作请求到达的突发时,使某一数量的附加令牌分布到资源共享工作目标(例如,超过基于它们各自的桶再填充策略针对工作目标已产生的令牌的数量)可能是有用的。可以将这些附加令牌视为表示共享资源的多余容量缓冲区的至少一部分。应当指出,在至少一些实施方案中,在作出用于分布此类“多余”令牌的决定之前,此类“多余”令牌可能不必与任意给定桶相关:即,可以产生新的令牌用于分布。在其它实施方案中,在明确表示共享资源的吞吐量的桶中可能存在多余的令牌。当分布此类多余的令牌时,网络可访问服务的提供者可能希望确保某种程度的公平分布,使得例如给定客户端的工作目标WT1并没有由于被允许积聚全部多余令牌而得到特殊待遇,而另一客户端的工作目标WT2(其共享相同资源)并没有被提供任意多余令牌。在分布多余令牌时,可能必须考虑多个不同的公平性相关因素。例如,在一个实施方案中,可以使多余令牌基于工作目标的各自规定容量和/或基于工作目标处的最近的工作请求到达速率分布在工作目标间。
如上所述,根据至少一些实施方案,网络可访问服务(诸如数据库服务的数据库表分区)的多个工作目标可以被配置成响应于所接受的工作请求来利用共享资源(诸如共享存储装置)。每个这样的工作目标均可具有针对到达工作请求的准入控制所设置的相应的令牌桶集合;也就是说,关于接受还是拒绝用于在给定工作目标处执行的工作请求的决定可以是基于该工作目标的一个或多个桶的令牌数量。在一些实施方案中,服务管理组件诸如与共享资源相关的令牌分布器可以被配置成迭代地执行令牌分布,其中每个周期或迭代均根据某个时间表,或基于某些触发条件的检测来发起。在至少一些实施方案中,对于与令牌分布协议的迭代相对应的给定时间段来说,令牌分布器可以确定将分布在资源共享工作目标的桶间的多余令牌的组合数量。所述组合数量可以例如是共享资源的吞吐量限制与工作目标的规定容量的总和之间的差值的函数。
在不同的实施方案中,可以使这些令牌基于若干因素的组合分布在工作目标间。在一些实施方案中,可以将提供给不同工作目标的令牌的具体数量至少部分基于相对到达速率和工作目标的相对固定容量作为另一个函数来计算。可以监视资源共享群组的每个工作目标处的工作请求的到达速率,并且可以计算到达速率随时间推移的某些统计度量,诸如每个连续五分钟时间间隔内的平均到达速率。对于给定的令牌分布迭代来说,某一数量的最近时间间隔的到达速率度量可以用于计算,例如对于给定的五分钟令牌分布迭代来说,可以考虑先前的五分钟时期的到达速率比,或可以考虑最后K个五分钟时间间隔的到达速率比。随后可以基于这些到达速率比并且基于这些规定容量比来将所述组合数量的令牌分布到工作目标的一者或多者(例如,通过增加工作目标的一个或多个桶诸如它们各自的突发模式桶的令牌数量)。由于分布而产生的经过调整的令牌桶数量可以用于工作目标处的准入控制。
应当指出,至少在某些情况下,对于给定迭代来说,分布器可以决定不分布任意多余令牌,例如,如果工作目标的规定容量的总和被发现接近由共享资源所支持的峰值吞吐量,或如果到达速率非常低。随时间的推移,例如基于发现分布机制在不同工作目标处减少或避免工作请求拒绝的成功程度,可以调整在令牌分布机制中分配给到达速率度量和/或规定容量度量的相对权重,或可以调整支配令牌分布的函数。在一些实施方案中,可以将多余令牌仅增加到突发模式桶,而在其它实施方案中,也可以或替代将令牌增加到正常模式桶。在一些实施方案中,除工作请求到达速率和规定容量之外的因素的组合可以用于多余共享源容量的公平分布。在至少一些实施方式中,在确定是否分布令牌和分布多少令牌时,可以考虑超过一个共享资源的吞吐量限制。
在至少一些实施方案中,可以针对正常模式操作对利用了网络可访问服务(在该网络可访问服务处使用了基于令牌的准入控制)的客户端计入与针对突发模式期间所执行的操作,或针对可以在预测未来突发工作负载的过程中所执行的操作(诸如令牌共享和多余令牌分布)相比不同的金额。在一些这样的实施方案中,可以使相应的定价策略与正常模式桶和突发模式桶处的令牌消耗和/或令牌转移相关。在一些实施方案中,服务的定价管理器组件可以负责定义准入控制器,并且与准入控制器合作(或作为准入控制器的一部分),从而在各种条件下实施与各个桶中的令牌数量变化相关的定价策略。在一个实施方案中,可以确定施加到特定令牌桶的令牌定价策略(例如,基于客户端对定价策略的选择,或基于服务的内部配置设置),其中定价策略定义其施加到的令牌数量变化的类型、一个或多个适用性标准(例如,该策略是否仅在某些时间窗口期间施加,或该策略是否仅在某些桶数量在突发模式操作期间降到低于指定阈值时施加),以及可用于计算将针对令牌数量的特定变化对客户端收费的定价金额的公式或函数。在一些实施方案中,可以针对不同类别的令牌数量变化来对客户端收取不同的金额,例如,在一种情况下,可以从特定突发模式桶B1中消耗任意令牌的一个速率,以及以使令牌从桶B2转移到桶B1的不同速率来对客户端收费。在至少一个实施方案中,可以基于多少(和什么类型)令牌桶用于准入控制来对客户端收取不同的金额,例如与希望使用较简单的技术(该技术使用较少的突发模式桶)的客户端相比,可以对希望使用复合令牌桶支持多种类型的突发模式行为的客户端收费更多。定价管理器可以记录例如突发模式操作的各种时期期间各种令牌桶数量随时间推移的变化。可以基于所记录的数量变化产生客户端计费金额。
在至少一个实施方案中,网络可访问服务可以例如通过实施程序设计接口(诸如一个或多个网页、网站、图形用户接口、命令行工具和/或API)来实施令牌市场,客户端可以使用这些程序设计接口来购买、销售或交换可在突发操作模式和/或正常操作模式期间用于准入控制的令牌。例如,在某些这样的市场中,意识到在未来给定时间段内可能不会使用他们的令牌中的一些的客户端可以使用拍卖机制来宣传用于竞拍的令牌的可用性。可能需要支持与它们初始预计相比更高的工作负载(以及因此与它们工作目标的规定容量相比更高的工作负载)的其它客户端可以出价,并且(如果竞拍成功)从卖家购买令牌。在至少一些实施方案中,定价管理器和/或网络可访问服务的其它组件可以促进这种拍卖和其它市场交易,追踪令牌转移和价格,并且在对客户端产生计费金额的过程中,在适当时并入市场交易。以下还提供了关于定价管理器和相关组件的功能的各个方面的附加细节。
示例系统环境
图1a图示了根据至少一些实施方案的工作请求到达速率变化的示例,并且图1b图示了根据至少一些实施方案的令牌桶可以用于在存在这些变化时作出准入控制决定的系统。在图1a中,X轴表示时间,而Y轴表示指向工作目标诸如网络可访问服务的存储对象或数据库表的工作请求的到达速率110。给定工作请求可以指示请求客户端希望执行与工作目标相关的指定逻辑或物理操作的集合,例如单个工作请求可以转化成对工作目标的一部分的一个或多个读取操作;一个或多个修改操作;来自工作队列的计算、插入或移除的集合;或此类操作的某个组合。在至少一些实施方案中,客户端可以指示工作请求中的相对高级别逻辑操作,并且实施工作目标的服务可以负责确定在工作请求被接受情况下需要执行的较低级别物理或逻辑操作的某个对应集合。图1a和1b图示了工作目标处的普通或典型类别的工作请求的到达速率和准入控制;一般来说,可以单独绘制不同类别的工作请求的到达速率,并且相应的准入控制参数可以用于不同的工作请求类别,如以下进一步详细描述。工作目标(假定一致或普通工作请求)的规定容量112在图1a中以与Y轴在“pr”处相交的水平线表示。可以在一系列的时间间隔内监视到达速率(例如,对于每秒时间来说,可以测量到达的工作请求的数量并且可以在图上绘制请求/秒),如图1a所示。如图所示,工作请求的到达速率随时间的推移发生变化。在一些时间段期间,到达速率小于规定容量pr,并且工作目标在这些时间段期间诸如正常时期N1、N2和N3被视为呈正常模式。在到达速率超过pr时的时期,工作目标可以被视为呈突发操作模式,诸如在突发时期B1和B2。
在一些实施方案中,网络可访问服务可能有义务(例如,通过服务级别协议而在合同上有义务)支持多达pr的工作请求速率。如图1b所示,服务的准入控制器180可以被配置成使用包括一个或多个桶的正常模式令牌桶集合120,以在正常模式期间作出准入控制决定。在突发模式期间,准入控制器180可以利用包括一个或多个其它令牌桶的突发模式令牌桶集合125用于准入控制,其中参数集合与施加到正常模式桶的参数集合不同。在至少一个实施方案中,当工作请求170被接收时,准入控制器可以首先确定正常模式桶的令牌数量。如果正常模式桶令牌数量低于阈值(例如,小于N,其中将要消耗N个令牌以便接受工作请求170),那么准入控制器可以得出以下结论:在工作请求170被接受用于执行的情况下,工作目标102呈突发模式或工作目标102进入突发模式。
在所示实施方案中,在例如使用正常模式桶集合确定施加突发模式参数后,准入控制器180可以确定突发模式令牌桶集合125中的至少一个桶的令牌数量。如果该数量满足特定标准,例如如果在至少一个突发模式令牌桶内存在N个令牌可用,那么可以接受用于执行的工作请求170,并且可以发起与所接受工作请求相对应的一个或多个操作179。如果突发模式桶集合125的令牌数量并不满足特定标准,那么可以拒绝工作请求170,如标记为189的箭头所示。在各种实施方案中,参数和策略的相应集合可施加到正常模式桶集合120和突发模式桶集合125的每个令牌桶,例如不同的桶可以具有不同的令牌消耗策略(指示在各种情况下将消耗多少令牌)和不同的令牌再填充策略(指示将要增加令牌的情况,和每次要增加的数量)。一般来说,在所示实施方案中,服务和准入控制器180可能有义务支持正常模式操作,并且尽最大努力来在突发模式操作期间接受和完成客户端的请求。
应当指出,可以在工作目标不一定具有所定义的相应规定吞吐量(例如,其中服务级别协议并不会使得服务提供者有义务支持某些或所有工作目标的某个明确指定的吞吐量级别)的一些实施方案中使用采用令牌桶进行准入控制的技术,诸如以上所述技术。例如,在一个实施方案中,服务提供者可以将突发模式仅仅定义为每当工作请求到达速率超过R操作/秒时发生,并且可以使用突发模式令牌桶用于在这样的条件下进行准入控制。因此,在不同的实施方案中,被采用来确定工作目标是否呈突发模式的方法可能有所不同;在某些情况下,规定吞吐量可以定义正常模式与突发模式之间的分界,而在其它实施方案中,可以使用突发模式的其它定义。
基于令牌的准入控制的概述
图2提供了根据至少一些实施方案的基于令牌的准入控制机制的高级别概述。为便于呈现,图示使用了令牌的单个桶202的机制;如上所述,在一些实施方案中可以使用多个桶诸如用于正常模式准入控制的一个或多个桶和用于突发模式准入控制的一个或多个桶的组合。根据该机制,出于与特定工作目标102诸如数据对象、对象分区或分区副本相关的准入控制目的而设置的桶202(例如,在至少一些实施方案中,可在软件程序内实施为数据结构的逻辑容器)在桶初始化期间可以装填有令牌208的初始集合,如通过箭头204A所示。在各种实施方案中,可以例如基于工作负载的期望值、服务级别协议、由拥有或管理对应数据对象的客户端所指定的规定预算或此类因素的某个组合来确定初始数量。在一些实施方案中,对于某些类型的桶来说,可以将初始数量设置为零。在一些实施方式中,可以将至少一个桶的初始数量设置为桶将被配置的最大数量。
在所示实施方案中,当在准入控制器180处接收到新的工作请求170(诸如在存储对象或数据库对象情况下的读取请求或写入请求)的指示时,准入控制器可以尝试确定在桶202中是否存在某个数量N个令牌(其中N可以大于或等于1,这取决于实施方式或取决于配置参数)。如果所述数量的令牌在桶中可用,那么可以接受或准入用于执行的工作请求170,并且可以从桶中消耗或移除这些令牌(箭头210)。否则,如果不存在N个令牌,那么工作请求170可被拒绝。在所示示例中,工作请求170A已被接受,工作请求170B已被拒绝,并且工作请求170C、170D和170E仍有待准入控制器180考虑。
如标记为204B的箭头所示,还可以例如基于配置参数诸如与桶相关的再填充速率来使桶202随时间的推移再填充或再装填,如以下参照图3所述。在一些实施方式中,令牌再填充操作可以伴有消耗操作或可以在时间上紧密接近消耗操作来执行,例如,在单个软件例程内,可以消耗N个令牌以准入请求,并且可以基于再填充速率和自最后一次再填充桶以来的时间增加M个令牌。在某些场景中,还可以基于其它桶中未使用令牌的数量来装填某些桶,这也如以下所述。在一些实施方案中,可以例如使用配置参数来对桶可以保持的令牌的最大数量和/或对令牌的最小数量设定限制。在不同实施方案中,通过使用配置参数设置的各种组合,可以实施相当复杂的准入控制方案,尤其是在多个桶共同用于控制对给定对象或资源的控制准入时。
在一个简单的示例场景中,为了支持100工作请求/秒的稳定负载,图2的桶202可以被配置成具有100个令牌的初始数量、100个令牌的最大容许数量和零个令牌的最小数量;可以将N设置为1,并且可以将再填充速率设置为100令牌/秒,并且可以为了再填充的目的每10毫秒一次增加一个令牌(假定不超过最大数量限制)。当工作请求170到达时,每个工作请求可以消耗一个令牌。如果施加100工作请求/秒的稳态工作负载(在每秒期间均匀分布),那么再填充速率和工作负载到达速率可以彼此平衡。在一些实施方案中,考虑到以上列举的桶参数,可以使这样的稳态工作负载无限期地持续。
通过扩展上述示例,如果到达速率和/或再填充速率不一致,那么可以出现桶202在某些(通常较小)时间间隔内保持为空的场景(例如,如果工作请求的某个集合快速连续地消耗与再填充机制能够更换的令牌相比更多的令牌)。在这样一种情况下,如果仅仅单个桶202用于准入控制,那么可以拒绝到达的工作请求(或在延迟后再试)。为了处理工作负载的时间不均匀性,可以在不同的实施方案采用各种技术,诸如参考图1b所述的附加突发模式令牌桶的使用。
图3图示了根据至少一些实施方案的令牌桶诸如桶202的示例配置性质302,该令牌桶可以用于实施各种类型的准入控制策略。在一些实施方式中,令牌桶可以实施为准入控制器180的存储器中数据结构,并且可以根据需要写入到永久性存储装置。这样的数据结构可以包括表示最后一次修改数量时的当前令牌数量的字段和/或图3中所示的各种参数和策略的值。
令牌消耗策略310可以指示为进行准入控制将如何消耗令牌。在一些实施方案中,消耗策略310可以包括不同的准入前策略和准入后策略,和/或可以依赖于其它桶的状态或工作目标的操作模式。例如,在一个实施方案中,可以使用两个桶用于对给定工作目标的准入控制:规定容量桶PB(例如,正常模式桶集合120中)和突发模式桶BB(例如,突发模式桶集合125中)。根据在该示例中生效的准入前策略,为了准入新的请求,可以检查PB的数量以确定是否存在至少一个令牌,并且根据准入后策略,如果该请求被准入,则PB的数量可以减少一个。如果PB具有令牌,那么在准入该请求之前可能不需要检查BB的数量。然而,根据在一些实施方案中生效的准入后策略,在该请求被接受的情况下仍然可以从BB中消耗一个令牌。相比之下,继续该示例,如果PB并不具有任意令牌,那么可以将工作目标视为呈突发模式,并且可以检查BB的数量以确定BB是否具有至少一个令牌。在呈突发模式时,仅在BB具有可用令牌的情况下可以准入该请求,并且如果该请求被准入,那么可以从BB中消耗令牌。(在一些实施方式中,在呈突发模式时,PB的令牌数量还可以在请求准入后递减,这可能使得PB的数量为负)。在一些实施方案中,对于不同类型的操作来说,可以从给定桶中基于令牌消耗策略消耗不同数量的令牌。在一些实施方案中,令牌消耗策略还可以指定空闲期间衰减参数,其指示在对应数据对象在一段时间内并不以工作请求为目标的情况下是否(以及以何种速率)从桶中删除令牌;或空闲期间转移参数,其指示在令牌在某个时间间隔期间未使用的情况下,是否应当使这些令牌从一个桶转移到另一个桶。在一个实施方案中,过时策略可以用于消耗在指定时间间隔内尚未消耗的令牌,例如,每个令牌均可以与有效性寿命相关,在该有效性寿命之后,令牌对于准入控制的目的可能不再有用。本文中可以通过基于桶的给定类别的名称来识别适用于该类别的令牌策略(和各种其它策略诸如下述策略),例如,可以将适用于正常模式桶的消耗策略称为正常模式消耗策略,同时可以将适用于突发模式桶的消耗策略称为突发模式消耗策略。
在所示实施方案中,性质302可以包括初始令牌数量参数306,该初始令牌数量参数指示在启动或初始化时要将多少令牌置于桶中。令牌再填充策略参数314可以指示将以何种速率和/或在什么情况下为桶增加令牌,例如以帮助维持已对与桶相关的工作目标进行配置的工作速率。在一些实施方案中,桶的一个或多个参数可以随时间的推移发生变化,例如,默认再填充速率可适施加到桶,但在某些条件下,可以使用非默认速率。最大数量参数318可以指示桶的最大容量,而最小数量参数322可以指示桶数量的下限。在一些实施方式中,桶的数量可被视为在一些情况下变为负(例如,最小数量可以小于零)。例如,在工作目标支持I/O操作诸如读取和写入的一个实施方案中,准入控制器180为简单起见可以假定或估计,进入的客户端请求将各自导致大约一个实际I/O操作。然而,在某些情况下,在操作请求R已被接受后,由于准入R而所需的实际工作量可以基本大于所假定的一个I/O,例如,预计通过一个读取完成的读取请求可以在扫描需要1000个读取的表时结束。在这样的场景中,为了确保在随后的准入控制决定中反映出未预料到的额外工作的影响,可以从桶中扣除与额外工作相对应的多个令牌(例如,1000-1=999个令牌),这可能至少临时导致令牌计数变为负。令牌计数最终可以例如基于桶的再填充速率和进入的请求速率来再次进入正数范围。令牌赤字策略参数324可以指定关于在以下各项下的条件的规则:允许令牌赤字多少(或负数)、允许赤字保持多长时间、从赤字恢复所必须采取什么行动等。在一些实施方案中,不同类型的操作可以具有不同的准入控制规则,并且可以在适用的操作类型参数326中指定桶将被使用的操作类型。在至少一些实施方案中,可以在桶性质中指示可以用于确定对于桶令牌的使用而对客户端收费的金额的一个或多个定价策略328。定价策略328可以包括的各种元素的示例在图17中图示并且在以下进一步详细描述。在不同的实施方案中,可以仅采用图3所示示例参数的子集,而在其它实施方案中,可以使用超过图3所示参数的附加桶配置参数。在至少一些实施方案中,可以(例如,使用web服务调用)对图3所示的各种性质的值和/或设置以及其它准入控制设置诸如是否要支持突发模式操作进行编程设置或修改。
堆积未使用令牌
在一些实施方案中,根据适用的再填充速率,可以使给定令牌桶周期性地或响应于触发事件再填充有令牌(即,可以为桶增加令牌),这些触发事件诸如准入控制决定响应于工作请求的完成或发起。在这样一个实施方案中,可能出现的情况是,正常模式令牌桶在其应再填充的时间包含一些未使用令牌,例如,这是因为通常在前一个时间间隔期间,工作请求以小于规定容量的速率到达。在一个实施方案中,可以使来自一个或多个桶的未使用令牌堆积或积聚在一个或多个其它令牌桶中,例如以供有可能以后在突发期间使用。图4图示了根据至少一些实施方案的来自规定容量桶的未使用令牌积聚到突发桶中的示例。
在图4所示的实施方案中,正常模式桶集合120包括规定容量桶420,该规定容量桶配置有最大令牌数量M,而突发模式令牌桶集合125包括突发模式桶422,该突发模式桶具有等于或大于M的最大令牌数量B。如箭头452所示,使规定容量桶420以等于规定容量pr的速率再填充,这受到最大M的限制。因此,例如,如果pr为100ops/sec,那么M=100,并且再填充操作每秒执行一次,可以每秒为桶420增加至多100个令牌。如箭头454所示,可以从桶420中以基于所接收工作负载请求的速率消耗令牌。考虑两个时间点T1和T2,其中T2是T1之后的一秒。假定在T1时,桶420包含100个令牌,并且在下一秒期间,消耗这些令牌中的75个以用于与进入的工作请求170相关的准入控制操作。在该示例场景中,在T2时,桶420仍然包含25个未使用令牌。
在所示实施方案中,如箭头460所示,可以使这些的未使用令牌积聚在突发模式桶422中。因此,继续该示例,可以在T2时为桶422增加25个令牌。另外,在所示实施方案中,可以使令牌以其再填充速率增加到桶422(这受到最大数量B的限制),该速率还可以是规定速率pr的函数,如箭头456所示。在突发模式操作期间,可以从桶422中以依赖于工作请求到达速率的速率消耗令牌。在至少一些实施方案中,如图4的箭头458所示,可以从桶422中基于工作请求的到达速率来消耗令牌而不管操作模式如何,例如,无论何时接受用于执行的工作请求,都可以从正常模式桶420中消耗某一数量的令牌,并且可以从突发模式桶422中消耗某一数量的令牌。应当指出,在一些实施方案中,不管到达速率如何,以及不管其它准入控制设置如何,工作请求都不可能以高于预定最大可持续速率的速率被接受,该预定最大可持续速率可以是基于用于工作目标的计算装置的硬件和/或软件限制。例如,可以设置这样的最大限制以保护计算装置上的数据在装置受压超出其能力的情况下免于受损。
在图4所示的实施方案中,突发模式桶422的数量随时间的推移增加(受到最大数量B的限制,并且对于所准入的工作请求,消耗突发模式令牌),因为桶420中有越来越多的令牌未使用。与仅在桶422自身的再填充速率有助于桶422的数量的情况下是可能的情况相比,这可以使得准入控制器180能够处理更大的突发。堆积未使用令牌以供以后使用的这样的技术在针对突发模式操作以及针对规定容量对客户端收费的实施方案中可能尤其有用,因为客户端可能能够通过在桶之间以逻辑方式转移未使用令牌来减少总成本。在一些实施方案中,还可以支持未使用令牌在其它源桶和目的地桶对之中的类似种类的转移,例如,对于相应类别的工作请求来说,可以维持单独的令牌桶,并且可以将来自用于特定类别C1的桶的未使用令牌转移到用于不同类别C2的桶。
用于特定类型的操作的令牌桶
在一些实施方案中,给定工作目标可以支持用于不同类别的操作的工作请求。例如,在一个实施方案中,数据库表可以支持读取和写入操作。术语“写入操作”或“写入”可以指代对对象诸如数据库表、文件或卷的数据和/或元数据进行修改的操作,例如,包括创建(写入新的或附加的数据)、更新(预先存在的数据的变化,所述变化可以涉及就地重写,或例如在一些一次写入环境中,新版本的数据的创建)、删除、重命名和/或移动。术语“读取操作”或“读取”可以指代不涉及修改的操作。为了对写入请求作出响应所需的总共工作量可以不同于为了对读取请求作出响应所需的工作量:例如,在一些实施方案中,可以维持给定数据库表或表分区的多个副本,并且对于被认为是完成写入工作请求来说,写入可能必须在超过一个副本处完成,而读取请求可以要求仅访问单个副本。在一些实施方式中,写入操作可能必须被记录下来,或可以具有其它副作用诸如索引修改,这些副作用可能是读取操作不需要的。因此,位于给定工作目标处的读取的吞吐量可以不同于用于写入的吞吐量。因此,读取和写入可以相对于准入控制决定以不同的方式来处理。图5图示了根据至少一些实施方案的用于读取和写入的准入控制的相应令牌桶的使用。
如图所示,在所示实施方案中,正常模式桶集合120包括读取规定容量桶502和单独的写入规定容量桶504。突发模式桶集合125包括读取突发桶506和写入突发桶508。当工作请求到达时,准入控制器可以确定工作请求是用于读取还是用于写入,并且可以使用对应类型的桶的令牌数量以(a)决定接受工作请求会导致正常模式操作还是突发模式操作以及(b)在适当桶中是否存在足够的令牌可供用于消耗以接受工作请求。在所示实施方案中,读取桶中令牌的消耗和/或再填充可以独立于写入桶中令牌的消耗和/或再填充,并且图3所示性质和策略中的一些或全部可以针对每种类型的桶独立地设置。因此,可能出现的情况是,在给定时间点,工作目标相对于读取呈正常模式,但相对于写入呈突发模式,反之亦然(即,相对于写入呈正常模式,并且相对于读取呈突发模式)。工作目标还可以相对于读取和写入二者呈正常模式,或相对于读取和写入二者呈突发模式。在一些实施方案中,在图5所示的实施方案中,可以使未使用令牌从读取桶转移到写入桶,反之亦然,例如,如果某些令牌在时间间隔结束时在写入突发桶508中保持未使用,那么可以在读取突发桶506的数量降到低于阈值的情况下为读取突发桶增加对应数量的令牌。
共享资源和复制管理
在一些实施方案中,可以针对每个工作目标建立图4和图5所示种类的突发模式令牌桶的相应集合。在至少一些实施方案中,给定工作目标诸如数据库表或表分区可以利用由其它工作目标所共享的至少一些资源,例如,可使表Table1的一部分定位在与表Table2的一部分相同的存储装置上。在作出准入控制决定时,实施工作目标的网络可访问服务可能还必须考虑共享资源的容量。例如,在一个实施方式中,给定存储装置可能能够支持至多N个读取操作/秒,并且如果该存储装置用于两个不同的工作目标WT1和WT2,那么一个目标(WT1)的可用读取吞吐量可能会受到另一目标(WT2)处的读取工作负载的影响。在一些实施方案中,共享资源桶(其令牌数量表示在多个工作目标之中共享的资源的可用吞吐量)可以用于在这些工作目标的每一者处进行突发模式准入控制决定。如下所述,对于某些类型的工作请求(诸如导致写入操作的请求)来说,在工作目标的多个副本得以维持的实施方案中,还可以使用与复制管理相关的一个或多个桶。在一些实施方案中,复制管理桶可以仅仅用于某些类型的工作请求的准入控制,例如,在这样的实施方案中,它们可以用于写入,但并不用于读取。图6图示了根据至少一些实施方案的突发模式令牌桶集合,该突发模式令牌桶集合包括一个或多个本地突发限制桶604、一个或多个共享资源容量桶606和一个或多个复制管理桶608。
图6所示的三种类型的突发模式令牌桶可以共同用于准入控制,例如,其中对于可用令牌来说依次检查每种类型的桶,并且仅在所有相关桶都包含足够令牌的情况下根据它们各自的令牌消耗策略接受工作请求170。在不同实施方案中,其中针对准入控制检查不同令牌桶的顺序可以变化。本地突发限制桶604可以包括表示被认为处于分立的工作目标的可用吞吐量的令牌,该工作目标例如忽视了共享资源的吞吐量限制,并且忽视了复制。在一个实施方案中,当接收到工作请求时,可以首先检查本地突发限制桶604的数量。如果本地突发限制桶包含足够的令牌,那么接下来可以检查共享资源容量桶606。如果在共享资源容量桶中发现足够的令牌并且如果对工作请求作出响应需要数据复制,那么接下来可以检查复制管理桶608。在所示实施方案中,如果所检查的全部桶都包含足够的令牌,那么工作请求可以被接受。如果所检查的桶中的任一者并不包含足够的令牌,那么工作请求可以被拒绝、延迟或再试。
在本地突发限制桶604包含不充足的令牌并且在所示其它类型的桶之前进行检查的场景中,工作请求可被拒绝,即使共享资源容量桶606和/或复制管理桶608包含足够的令牌以基于它们各自的消耗策略来接受该请求。在一些实施方案中,可以针对读取请求和写入请求维持相应的本地突发限制桶604,和/或可以针对读取请求和写入请求维持相应的共享资源桶606。
在一些实施方案中,在准入控制期间可以例如使用共享资源桶的相应实例来考虑若干不同类型的共享资源。例如,在一个实施方案中,执行读取操作所需的有限数量的存储器缓冲区可以在其中实施工作目标的服务器处可用,并且可以建立共享资源容量桶606以表示可用的存储器缓冲区。类似地,在另一个实施方案中,某种类型的数据结构(诸如文件描述符,有限数量的该文件描述符在用于工作目标的给定操作系统实例中可能是可用的)可以用于每个工作操作,并且可以建立不同的共享资源容量桶606以表示可用的文件描述符。在一些实施方案中,可以使用迭代方法以公平的方式将表示一个或多个共享资源的过剩吞吐量(相对于共享这些资源的工作目标的规定容量的总和)的令牌分布在这些工作目标中,如以下进一步详细描述。
根据一个实施方案,可以使工作目标(诸如数据库表、文件或存储卷)的内容通过服务分布在一个或多个逻辑分区之中。例如,数据库服务的客户端可以指定表用于保持约X兆兆字节(TB)的数据并且预计支持Y读取或写入操作/秒的工作负载,并且数据库服务可以决定设置具有P逻辑分区的表,其中足够的资源最初指定用于逻辑分区中的每一者以存储X/PTB并且支持Y/P操作每个的规定容量限制。(在一些实施方案中可以使用规定吞吐量在分区上的非均匀分布,例如如果某些分区已知或预期“更热”,或具有与其它分区相比更高的平均请求速率)。在至少一些这样的实施方案中,可以在逻辑分区级别作出准入控制决定。与每个逻辑分区相对应,分区数据的主控副本和一个或多个从属副本可以根据数据对象的数据持久性策略或数据复制策略来设置。该持久性/复制策略可以设计用来确保数据写入被复制到足够数量的不同物理位置,使得由于以下因素诸如设备故障、功率损耗和/或自然灾害所引起的数据损失的可能性保持低于阈值。在一些实施方案中,可以在主控副本处作出对写入请求的准入控制决定,同时可以在主控副本或(尤其是在客户端希望从数据的可能稍微过期的版本接受读取时)在从属副本处作出对读取的准入控制决定。在一些实施方案中,根据复制策略,当来自客户端的写入请求被接受时,修改的数据可能例如在将写入已经成功的确认提供给客户端之前,必须以N个副本成功地复制(主控副本和N-1个从属副本)。因此,因为写入的成功完成需要使用从属资源,所以在对写入的准入控制期间可能必须考虑从属副本(以及主控副本)处的可用吞吐量。在一个实施方案中,所设置的从属副本的数量可以超过复制策略所需的最小数量。复制策略可以要求,使写入的法定Q个拷贝在写入被视为成功之前是持久的,以使得可能需要最少量(Q-1)个从属副本。然而,在这样的实施方案中,为了诸如读取负载平衡、高可用性等各种原因,所维持的从属副本的数量可以超过Q-1。应当指出,在各种实施方案中,将特定副本指定为从属副本或主控副本可以随时间的推移发生变化;例如,如果例示给定逻辑分区的主控副本的装置失效或变得不可到达,那么可以将先前指定为从属副本的不同副本选择作为主控副本。在一些实施方案中,从属副本的数量可以例如响应于来自拥有数据对象的客户端的请求而在数据对象的寿命期间发生变化。可以在对等环境中以及在一些实施方案中,施加用于准入控制的基于令牌的技术,其中副本不一定被指定为主控副本或从属副本;在此类实施方案中,在作出对进入的写入请求的准入控制决定处的副本可以如本文所述与主控副本相对应(就所执行操作的类型而言)。因此,在副本在极大程度上在责任方面彼此相等的采用对等复制的一些实施方案中,如果在给定对等端P1处接收到写入请求,则可以使用关于至少一个其它对等端P2的可用吞吐量的信息来决定是否接受用于执行的写入请求。
如上所述,在写入将被复制的至少一些实施方案中,在针对写入的准入控制期间,可能必须考虑超过一个副本(例如,主控副本和至少一个从属副本)处的可用吞吐量,并且相应地可以使用一个或多个复制管理桶308。例如,虽然本地突发限制桶604可以表示被认为处于分立的主控副本处的可用吞吐量,但复制管理桶308可以表示主控副本对一个或多个从属副本处的可用吞吐量的查看。
在至少一些实施方案中,可以使用从属副本容量更新协议来刷新关于复制管理桶608中的从属副本状态的信息(例如,可以基于从从属副本所接收的信息来更新主控副本处的复制管理桶608的令牌数量)。在一些实施方案中,还可以在从属副本处以与其中在主控副本处使用桶的方式类似(但不相同)的方式使用令牌桶用于吞吐量管理。根据从属副本容量更新协议,在一个这样的实施方案中,从属副本可以向主控副本提供从属副本的本地令牌桶(其可以包括规定容量桶和/或突发模式桶)中的一者或多者的数量快照(即,时间点表示)。例如,一个特定从属副本侧令牌桶可以表示在存储有从属副本的数据的至少一部分的共享存储装置处的可用容量,这与主控副本处的共享资源容量桶606类似,并且可以向主控副本提供这样一个桶的数量快照。在不同的实施方案中,可以使用若干不同方法中的任一种用于从从属副本提供快照;例如,可以在主控副本请求写入复制时,使这些快照附接至或搭载在从从属副本发送至主控副本的写入确认上,或者从属副本可以使快照附接至它被要求向主控副本发送的心跳消息上以告知主控副本从属副本已发起并运行。
复合令牌桶
如先前所述,不同类型的工作请求到达突发可以在它们对网络可访问服务的影响方面不同。服务可能能够在短时期内处理非常高的突发速率,但也可能能够在较长时期内承受较低的突发速率。在一些实施方案中,且准入控制器180可以被配置成基于不同类型的突发对服务的影响来限制这些突发的持续时间,并且可以将突发工作请求到达行为分类为多个类别以辅助准入控制。图7图示了根据至少一些实施方案的出于准入控制的目的而将工作请求突发分类为多个类别的示例。
在图7中(如图1a所示),X轴表示时间,并且Y轴表示给定工作目标102处的工作请求到达速率110。可以例如通过监视每秒(或每N秒)所接收的工作请求的数量、计算每秒的请求计数并且将表示每个时间间隔的请求/秒值的点连接起来来绘制图诸如图7。工作目标的规定容量112由与Y轴在pr处相交的水平线表示。工作目标被假定为每当到达速率处于或低于pr时,呈正常操作模式,并且每当到达速率高于pr时,呈突发模式。在从T0至T7的时间期间,工作目标在几个时间段呈正常模式,诸如T0与T1之间的时间段、T2与T3之间的时间段、T4与T5之间的时间段以及T6与T7之间的时间段。然而,在这三个时间段期间(T1至T2、T3与T4以及T5至T6),工作目标呈突发模式。如图所示突发B-窄-1(在时间间隔T1-T2期间)和B-窄-2(在时间间隔T5-T6期间)的形状是类似的,并且这两种形状与突发B-宽-1的形状不同。突发峰值速率702A(在B-窄-1期间的最大工作请求到达速率)和702C(在B-窄-2期间的最大工作请求到达速率)大大高于突发峰值速率702B(在B-宽-1期间的最大工作请求到达速率)。
在所示实施方案中,准入控制器180可以被配置成维持复合突发模式令牌桶,包括两个底层令牌桶。如下所述,这些底层令牌桶之一可以用于允许相对于规定容量pr具有非常高的到达速率的短突发(诸如B-窄-1或B-窄-2),但也用于防止具有这些高的到达速率的突发持续很长时间。复合令牌桶的另一个底层令牌桶可以用于允许具有较低峰值速率的较长突发诸如B-宽-1。对于这些底层桶来说,适用的参数和/或策略(例如,再填充速率)可以不同。在至少一些实施方案中,可以从这两个底层桶中消耗令牌以准入用于在突发模式期间执行的工作请求。
图8图示了根据至少一些实施方案的用于突发模式准入控制的包括峰值突发桶(PBB)802和持续突发桶(SBB)804的复合令牌桶801的使用的示例。如图所示,在所示实施方案中,复合令牌桶801形成用于工作目标102的突发模式令牌桶集合125的部分。桶802和804各自通过相应的突发速率(表示桶意欲建模的最大到达速率)和相应的突发时间窗口(指示所建模突发的持续时间)来表征。峰值突发速率(pbr)参数表示使用PBB来支持的最大到达速率并且峰值突发窗口大小(pbw)参数指示此类到达速率通过工作目标应当可持续的持续时间(假定在某些条件下,诸如无再填充操作)。持续突发速率(sbr)参数表示应当理想地支持用于较长的持续突发时间窗口(sbw)的突发到达速率(低于pbr)。应当指出,虽然在各种实施方案中,相应时间窗口一般可以指示将由相应桶支持的突发的持续时间的相对长度,但实际上所支持的处于相应速率的突发的实际持续时间与时间窗口可能不完全匹配。因此,在至少一些实施方案中,这些时间窗口可以说是指示目标突发持续时间,但可能不一定等于实际突发持续时间。在每种情况下,通过计算突发速率和时间窗口的乘积来获得PBB802和SBB804的最大令牌数量:例如PBB的最大数量为(pbr*pbw),并且SBB的最大数量为(sbr*sbw)。如标记为856和858的箭头所示,令牌实际上从复合桶801的每个桶中被消耗的速率可以取决于工作请求的到达速率(至少在突发模式期间,并且在一些实施方案中,不管工作目标是呈突发模式还是正常模式)。在至少一些实施方案中,当工作请求被接受时,可以从PBB802和SBB804二者中消耗令牌,也就是说,令牌被从PBB和SBB消耗的速率可以相同。
在所示实施方案中,为了确保不允许具有非常高到达速率的突发持续太长时间,可以从这些桶中的每一个消耗令牌以接受用于执行的给定工作请求。为了重复先前所提供的示例:考虑规定容量(pr)为100操作/秒(100ops/sec)、峰值突发速率(pbr)为1000ops/sec、峰值突发窗口大小(pbw)为6秒、持续突发速率(sbr)为200ops/sec并且持续突发窗口大小(sbw)为60秒的场景。因此,PBB的最大数量为1000*6或6000个令牌,并且SBB的最大数量也被设置为200*60的乘积或12000个令牌。在示例场景中,对于将要接受的给定请求来说,将需要分别来自PBB和SBB的一个令牌。考虑PBB和SBB两者充满的时间T时开始的工作请求的突发B(PBB具有6000个令牌,SBB具有12000个令牌),并且假定PBB每秒再填充200个令牌,同时SBB每秒再填充100个令牌。如果突发B由处于1000请求/秒的到达组成,那么B的请求将在7与8秒之间被接受,因为PBB的数量以约800令牌/秒的速率减少(消耗1000个,再填充200个),同时SBB的数量将以约900令牌/秒的速率减少(消耗1000个,再填充100个)。在这之后,复合桶不能够维持1000请求/秒。然而,如果突发B由200请求/秒的到达组成,那么PBB每秒将不会失去净令牌(消耗200个,再填充200个),而SBB每秒将失去100个令牌(消耗200个,再填充100个)。因此,在该示例场景中,与尖锐突发(对于1000请求/秒的突发来说,7至8秒)相比,较小的突发速率(200请求/秒)将适应更长时间(120秒)。
实际上,如先前所述,在各种实施方案中,复合令牌桶801的这种示例使用的算法可能由于各种因素更为复杂,诸如到达速率的波动、再次进入正常模式的工作目标和/或不同类型的请求需要不同数量的令牌的消耗策略。
例如,在所示实施方案中,PBB的再填充速率是规定容量pr的函数(f1(pr)),和用于工作目标的规定容量桶中的未使用令牌的数量“u”的函数(f2(u))。类似地,SBB的再填充速率是规定容量的函数(f3(pr))和u的函数(f4(u))。在一个实施方式中,PBB、SBB或二者的再填充速率可以基于未使用令牌积聚在规定容量桶中的速率,而不是基于规定容量桶中的未使用令牌的绝对数量。在一些实施方案中,如以上示例中所示,可以将PBB的再填充速率设置得高于SBB的再填充速率,同时可以将PBB的最大数量设置得小于SBB的最大数量。不同的实施方案可以采用各种函数f1、f2、f3和f4的任意所需组合。
在各种实施方案中,参数(诸如pbr、pbw、sbr和sbw)和函数定义(f1、f2、f3和f4)可以是可调整的或可配置的;例如,准入控制器180可以被配置成根据配置文件或通过来自网络可访问服务的管理程序的输入来确定参数值和函数定义。准入控制器可以确定参数值和函数,计算或配置最大数量,根据这些参数装填桶802和804,以及等待进入的工作请求。当在突发模式期间接收到工作请求时,可以至少部分基于PBB和SBB之一或两者的令牌数量来接受(或拒绝)用于执行的工作请求。如果该工作请求被接受,那么可以基于对这两个桶的各自消耗策略来从PBB、SBB或二者中消耗一个或多个令牌。可以将PBB和SBB基于它们在各个时间点的相应再填充速率再填充,如以下相对于图12进一步详细描述。在至少一些实施方案中,函数f1、f2、f3和f4中的一些可为恒等函数,例如,可能出现的情况是,f1(pr)=pr。在一个实施方案中,函数f1、f2、f3和f4中的一些与其它函数中的一些可以相同,例如,可能不要求这四个函数不同。在一些实施方案中,规定容量桶中未使用令牌的数量“u”可能对再填充速率不起作用,例如,可能出现的情况是,再填充速率独立于未使用令牌的积聚。在至少一些实施方案中,PBB和/或SBB可以在正常操作模式期间根据它们的再填充策略再填充(并且受到它们的最大令牌数量的限制),以使得甚至当工作请求到达速率低于突发模式的阈值时,令牌也积聚在PBB和/或SBB中。例如,突发模式桶在正常模式期间的这种再填充可能有助于使该系统准备处理未来的突发。
在一些实施方案中,实施工作目标的服务可能希望使用不同类别的工作请求的相应参数集来控制峰值和持续突发模式准入。例如,与写入相比,不同的峰值突发速率(或持续突发持续时间)可能更适用于读取,或者不同的峰值突发速率(或持续突发持续时间)可能适用于若干基于优先级的类别的工作请求中的每一者。例如,对于某些极其时间敏感性类别的工作请求来说,服务可能希望与其它不那么时间敏感性类别的工作请求的情况相比,支持更高的峰值突发。在一些实施方案中,准入控制器180可以实施多个复合桶以处理这样的使用案例。图9图示了根据至少一些实施方案的专用于相应类别的工作操作的峰值突发和持续突发桶的使用。
如图所示,在所示实施方案中,在突发模式桶集合125对本地突发限制桶604的收集内,该突发模式桶集合可以包括多个复合桶801(包括801A、801B和801C),这些复合桶各自专用于一种或多种类别的工作请求。例如,复合桶801A可以用于对类别C1的请求的准入控制,复合桶801B可以用于对类别C2的请求的准入控制,并且复合桶801C可以用于对类别C3和类别C4的请求的准入控制。在不同的实施方案中,类别定义可以是依赖于服务的,例如一个服务可以基于所执行操作的类型来定义类别(例如,读取和写入可为单独类别),另一个服务可以基于平均消耗的资源量来定义类别(例如,短操作对长操作),另一个服务可以基于客户端指定优先级或服务分配优先级来定义类别等。
复合桶801中的每一者可以包括至少一个PBB802和至少一个SBB804,对于pbr、pbw、sbr和sbw来说具有相应的(以及可能不同的)参数集设置。例如,复合桶801A包括PBB802A和SBB804A,复合桶801B包括PBB802B和SBB804B,而复合桶804C包括PBB802C和802D以及单个SBB804C。在复合桶801C的情况下,使用PBB802C和SBB804C来管理类别C3请求的突发模式准入控制,同时使用PBB802D和共享SBB804C来处理对类别C4请求的突发模式准入控制。因此,在该示例场景中,当接收到类别C3的突发模式工作请求时,检查PBB802C和SBB804C的数量,并且当接收到类别C4的突发模式工作请求时,检查PBB802D和SBB804C的数量。通过实施用于不同类别的工作请求(或各类别的工作请求的组合)的单独复合桶,服务可能能够以更精细的间隔尺寸控制突发模式行为,这在使用了单个复合桶的情况下可能是可行的。图9的突发模式桶集合125还可以包括一个或多个共享资源容量桶606(例如,以确保在突发模式准入控制期间考虑到共享资源的容量限制)和复制管理桶608(例如,以确保至少部分基于超过一个副本处的可用吞吐量来作出对操作(诸如写入)必须复制的准入控制决定)。
用于突发模式准入控制的方法
图10是根据至少一些实施方案的图示了可被执行以实施用于网络可访问服务处的工作请求的基于令牌的准入控制机制的操作的各方面的流程图。如元素1001中所示,可以例如响应于来自客户端的规定请求来确定适于工作目标的正常模式吞吐量限制。例如,数据库服务的客户端可以请求创建能够支持N读取或写入操作/秒的表,并且相应地可以将该表的正常模式吞吐量限制设置为N。服务的准入控制器180可以例如基于默认设置或基于由客户端请求或与客户端协商的规范来确定用于正常模式桶集合和突发模式桶集合的各种其它参数(诸如桶数量、初始令牌数量、再填充速率等)。随后可以初始化(例如,例示和装填)正常模式桶集合120和突发模式桶集合125的桶(元素1006)。
可以在准入控制器处接收下一个工作请求(元素1010)。可以检查至少一个正常模式桶的令牌数量。如果正常模式令牌数量满足阈值标准T1(如元素1014中所检测),那么可以从正常模式令牌桶中消耗一个或多个令牌(即,可以改变令牌数量)并且可以接受用于执行的工作请求(元素1016)。例如,在一个简单的实施方式中,正常模式令牌桶可能被要求具有至少一个令牌以便满足阈值标准T,并且每准入一个工作请求就可能消耗一个令牌。在一些实施方案中,当在正常操作模式期间接受工作请求时,可以从一个或多个突发模式桶中(以及从一个或多个正常模式桶中)消耗令牌。一般来说,在各种实施方案中,所消耗令牌的数量可以取决于各因素的组合,这些因素包括对桶生效的令牌消耗策略和/或对工作请求作出响应可能要求的工作量的估计值。在至少一些实施方案中,准入控制器180可以被配置成例如基于客户端的工作请求中所指定的细节、过去实际需要的类似工作请求量的所积聚的历史或统计记录等来生成这样一个估计值。在一些实施方案中,根据生效的再填充策略,可以在作出准入控制决定时,使各种令牌桶(例如,正常模式桶、突发模式桶或二者)任选地再填充(即,可以将令牌根据其再填充策略和最大数量限制增加到令牌桶)。如以下相对于图12所述,在不同实施方案中,导致令牌桶再填充的具体时间或事件可以不同。如果正常模式令牌数量并不满足阈值标准T1(也如元素1014中所检测),那么准入控制器180可以得出如下结论:工作请求的接受将会导致工作目标的突发模式操作,并且相应地应当确定一个或多个突发模式令牌桶的令牌数量。
在所示实施方案中,准入控制器180可以确定至少一个突发模式令牌桶的令牌数量。如果突发模式令牌数量满足阈值标准T2(如元素1018中所确定),那么可以从突发模式桶中消耗一个或多个令牌并且可以接受用于在突发模式下执行的工作请求(元素1020)。例如,在一个简单的实施方式中,突发模式令牌桶可以被要求具有至少一个令牌以便满足阈值标准T2;因此,在至少一些实施方式中,可能出现的情况是,正常模式桶和突发模式桶的阈值令牌数量相同。一般来说,在各种实施方案中,从突发模式令牌桶中所消耗的令牌数量还可以取决于各因素的组合,这些因素包括对突发模式桶生效的令牌消耗策略和/或对工作请求作出响应可能要求的工作量的估计值。如同在与工作请求的正常模式接受相对应的操作的情况下一样,可以在作出突发模式接受决定时,使一个或多个桶基于其再填充策略并且受到其最大令牌数量的限制任选地再填充。
如果工作请求被接受,那么无论是呈正常模式(元素1016)还是呈突发模式(元素1020),都可以发起与工作请求相对应的一个或多个操作(元素1022)。在一些实施方案中,当完成操作时,准入控制器180可以将所执行的实际工作量与用于确定消耗了多少令牌的工作的估计值以异步的方式进行比较(元素1024)。如果原始工作估计值不正确,那么可以相应地调整用于对应工作请求的准入控制的一个或多个桶的令牌数量。如果估计值低于所执行的实际工作,那么可以从用于准入控制的桶中移除多个附加令牌;在一些实施方案中,可以基于工作估计值与实际工作之间的差值来计算所消耗的此类附加令牌的数量。如果估计值过高,那么可以从用于准入控制的桶中移除某一数量的令牌。
在所示实施方案中,如果正常模式令牌桶集合数量不满足标准T1,并且突发模式桶集合令牌数量不满足标准T2,那么可以拒绝、延迟或再试工作请求(元素1080)。在一些实施方案中,根据生效的再填充策略,可以在作出不接受工作请求的决定时,将一个或多个令牌任选地增加到正常模式桶、突发模式桶或二者。在作出准入控制决定后(例如,接受或拒绝工作请求),准入控制器可以等待下一个工作请求,并且可以向前重复与元素1010相对应的操作。
图11是根据至少一些实施方案的图示可被执行以实施用于使用网络可访问服务处的多个突发模式令牌桶(包括复合桶)处理突发模式操作的基于令牌的准入控制机制的操作的各方面的流程图。如元素1101中所示,准入控制器180可以确定用于对给定工作目标处的高到达速率下的短持续时间突发和较低到达速率下的较长持续时间突发的突发模式准入控制的多个参数。所确定的参数可以包括例如将得到支持的峰值突发速率(pbr)、指示峰值突发速率将得到支持的持续时间的峰值突发窗口大小(pbw)、持续突发速率(sbr)(通常但不一定低于pbr)和持续突发窗口大小(sbw)(通常但不一定大于pbw)。在至少一些实施方案中,还可以确定其它参数,诸如是否设置其它桶包括例如共享资源容量桶和/或复制管理桶、对各种桶的初始数量设置等。在一些实施方式中,这些参数中的至少一些可以是例如响应于由服务所进行的管理员输入或自动调节可配置的,并且可以通过配置文件来读取一个或多个参数。
如元素1106中所示,可以例如通过基于参数设置诸如桶的相应初始数量306例示和装填这些桶来初始化包括至少一个峰值突发桶(PBB)和一个持续突发桶(SBB)的复合桶。在所示实施方案中,可以将PBB的最大令牌数量设置为pbr和pbw的乘积,并且可以将SBB的最大令牌数量设置为sbr和sbw的乘积。可以至少部分基于工作目标的规定吞吐量来设置PBB和/或SBB的再填充速率。在一些实施方案中,PBB和/或SBB的再填充速率还可以是基于未使用令牌积聚在规定容量桶中或另一个正常模式桶中的速率和/或此类桶中的未使用令牌的数量。
可以在突发模式期间在准入控制器处接收下一个突发模式工作请求(元素1110)(也就是说,可以接收工作请求,并且准入控制器通过使用正常模式桶诸如规定容量桶的令牌数量或通过使用工作目标的操作模式的某个其它指示符可以确定工作目标呈突发模式)。准入控制器可以基于消耗策略和/或与工作请求相关的工作量的估计值来确定PBB和/或SBB的令牌数量,并且检查是否存在足够的令牌用于接受工作请求。在所示实施方案中,如果在PBB和/或SBB中存在足够的令牌(如元素1114中所检测),则准入控制器可以确定突发模式令牌桶集合是否包括其它桶,这些其它桶的数量也必须针对正考虑的工作请求进行检查。例如,在一些实施方案中,突发模式令牌桶集合可以包括一个或多个共享资源容量桶606和/或一个或多个复制管理桶608。如果正在实施附加的突发模式令牌桶,并且在剩余突发模式令牌桶的每一者中发现与工作请求相关的足够令牌(如元素1118中所检测),那么可以从每个相关桶中消耗适当数量的令牌(例如,根据合适的消耗策略)并且可以接受用于执行的工作请求(元素1120)。应当指出,至少在一些实施方案中,附加突发模式令牌桶中的某些可能仅与某些类别的请求相关,例如,在一个实施方案中,可以仅检查用于写入请求准入控制的复制管理令牌桶608的数量,并且在这样一个实施方案中,当决定是否接受读取请求时,可能不会检查所述数量。因此,在一些实施方案中,仅存在突发模式令牌桶可能并不意味着所述桶必须用于对所接收的所有工作请求的准入控制。
在所示实施方案中,如果在复合令牌桶对(即,PBB和/或SBB)(如元素1114中所检测)或相关附加突发模式令牌桶(如元素1118中所检测)中不存在足够的令牌以供消耗,那么可以拒绝、延迟或再试工作请求(元素1138)。在一些实施方案中,无论工作请求被接受还是被拒绝,都可以在作出准入控制决定后,根据对应的再填充策略将用于准入控制的桶(包括例如正常模式令牌桶集合120中的桶和/或突发模式桶集合125中的桶)中的一者或多者再填充(元素1140)。在完成其与给定工作请求相对应的操作后,准入控制器180可以等待下一个工作请求到达,并且对于突发模式中接收的下一个工作请求来说,可以向前重复与元素1110相对应的操作。
在不同的实施方案中,可以响应于不同的事件或基于不同的时间表来执行令牌再填充操作(即,其中向给定令牌桶增加令牌的操作)。图12是根据至少一些实施方案的图示了可被执行用于准入控制的令牌消耗、再填充和转移操作的流程图。如元素1201中所示,准入控制器可以确定(例如,通过检查配置参数)可能会引起桶数量变化的触发事件的类型。在一些实施方案中,新的工作请求的到达和/或对应准入控制决定的完成可以触发令牌数量变化。在一个实施方案中,在桶中自最后一次数量变化以来的时间间隔(例如,N1毫秒或N2秒)的到期可以触发令牌数量。在其它实施方案中,时间间隔到期、工作请求到达和/或工作请求准入控制完成的组合可以触发令牌数量变化。可以检测下一个触发事件的发生(元素1206)。可以确定各种令牌桶(例如,包括正常模式桶和突发模式桶)的当前数量(元素1210)。在一些实施方案中,指向各种令牌桶的读取和写入均可在单个原子操作(与数据库交易类似)内执行,并且在这样的实施方案中,该原子操作可以读取当前令牌数量开始。
在所示实施方案中,如果触发事件涉及令牌的消耗或丢弃(如元素1214中所检测),那么可以确定每个桶的将被消耗或丢弃的令牌数量(元素1217),并且相应地可以调整桶数量。在各种实施方案中,对于所接受的每个工作请求来说,可以如上所述消耗某一数量的令牌。在一些实施方案中,令牌可以具有最大寿命,并且可以根据令牌过时策略丢弃在其最大寿命期间一直未使用的令牌。
在至少一些实施方案中,可以将在一个桶中一直未使用的令牌“转移”到另一个桶,例如可以使规定容量桶中的未使用令牌积聚或堆积在一个或多个突发模式桶中。应当指出,在各种实施方案中,令牌的“转移”包括逻辑操作,其中例如,如果在特定时间点发现N个处于规定容量的令牌未使用,则为突发模式桶增加N个令牌并且规定容量桶的令牌数量减少N。也就是说,在此类实施方案中,可以调整源桶和目的地桶的令牌数量,并且实际上可能并不像这样传输或转移令牌。在一些实施方案中,如果在源桶中发现N个未使用令牌,那么可以为多个目的地桶中的每一者增加N个令牌(例如,单个未使用规定容量桶令牌的检测可以导致复合令牌桶801的PBB和SBB二者的数量增大)。如果这样的转移将被执行(如1220中所检测),则该转移的源桶的数量可以减小并且目的地桶的数量可以增大(元素1223)。
可以将令牌根据其相应再填充策略在需要时增加到各种桶(元素1227),并且如果原子操作或交易是在与元素1210相对应的操作中开始,那么该原子操作可以终止(元素1230)。在一些实施方案中可以执行这样的再填充操作,而不管令牌是被消耗、丢弃还是转移(即,在这样的实施方案中,在元素1214和1220中所作出的决定的正和负结果之后都可跟随再填充操作)。在这样的实施方案中,通过执行在单个原子操作内所描述的各种令牌数量调整,准入控制器可以确保在多个桶组合上存在所需级别的一致性。准入控制器随后可以等待下一个触发事件,并且当检测到下一个触发事件时,可以向前重复与元素1206相对应的操作。
如先前所述,在至少一些实施方案中,准入控制决定的结果和/或所消耗令牌的数量连同工作请求的接受可以至少部分基于在工作请求被接受的情况下所执行的工作量的估计值。在某些情况下,该估计值可以被证明是不准确的,并且在一些实施方案中,准入控制器180可以被配置成对这样的估计误差作出补偿,例如,当完成对所接受请求的工作并且不一致之处(如果有的话)变得已知时。图13是根据至少一些实施方案的图示了可被执行以在与准入的工作请求相对应的工作操作完成之后调整一个或多个令牌桶中的令牌计数的操作的各方面的流程图。如元素1301中所示,准入控制器可以接收与工作请求相对应的工作完成的下一个指示。这样的指示可以例如由实施工作目标的服务的管理组件以异步的方式提供到准入控制器,并且可以包括针对该请求所完成的实际工作量的度量。
在所示实施方案中,准入控制器180可以确定相对于所完成的实际工作量,原始估计值过高还是过低。如果与所估计相比完成了更多的工作(如元素1304中所确定),那么准入控制器可以确定将从一个或多个令牌桶中扣除多个令牌以补偿估计不足(元素1308),并且相应地向下调整桶数量。在某些情况下,该调整可以导致负令牌数量。最后,再填充操作可以使令牌数量恢复为正值,但在至少一些实施方案中,当给定桶中的令牌数量保持为负时,可以拒绝基于给定桶数量针对其作出准入决定的新的工作请求。
根据至少一个实施方案,如果原始工作估计值过高(如元素1312中所确定),那么准入控制器180可以任选地确定将要增加到一个或多个桶的多个令牌,并且相应地设置桶数量(元素1316)。在所示实施方案中,准入控制器可以被配置成保持工作估计值的准确度的记录,例如,可以将针对一些或全部所接受工作请求的在一段时间内的工作的估计值和实际量的记录保持在数据库或日志中。相应地,不管估计值是否准确,以及不管在存在误差的情况下误差方向如何(例如,不管估计值过高还是过低),准入控制器可以更新对工作估计误差的记录(元素1323)。这种记录保持可能例如有助于改进估计值随时间推移的准确度,因为准入控制器可以基于误差来调节它的估计程序。在一些实施方案中,可以仅为工作请求的子集(例如,随机样本),或可以仅为误差幅值高于阈值的那些工作请求保持这样的记录。在所示实施方案中,在更新了这些记录后,准入控制器可以等待被告知有关下一次完成的信息,并且可以向前重复与元素1301相对应的操作。在一些实施方案中,对于突发模式桶以及对于正常模式桶,可以执行与图13所示类似的操作。在至少一个实施方案中,可以将针对图13所示种类的桶数量的追溯性调整以相对于用于进入的客户端工作请求的准入控制决定较低的优先级执行,或作为后台任务执行。
在一些实施方案中,给定工作目标的可用吞吐量可能受到除进入的工作请求之外的因素的影响。例如,某些种类的管理操作诸如其间工作目标状态得到恢复的故障恢复或各种类型的维护操作可以减少可供用于客户端请求的吞吐量。图14是根据至少一些实施方案的图示了可被执行以响应于管理事件来修改突发模式准入控制参数的操作的各方面的流程图。如元素1401中所示,准入控制器180可以接收后台或管理事件(即,并不是由客户端工作请求直接产生的事件)的指示,诸如恢复操作的开始,这可能会导致一个或多个工作目标的可用吞吐量的减少。鉴于该事件,准入控制器随后可以确定是否临时禁用突发(例如,以与规定吞吐量相比更高的速率)。如果突发被禁用(如元素1404中所确定),那么仅可支持正常模式准入直到事件完成(元素1408)。
在一些实施方案中,如果突发不会被完全禁用(也如元素1404中所确定),那么准入控制器可以被配置成例如通过从一个或多个桶中移除一些令牌,或通过临时向下调整再填充速率来限制容许突发量。在此类实施方案中,准入控制器可以确定将扣除的令牌数量和/或再填充速率将被降低的程度(元素1412)。相应地可以调整一个或多个桶的数量,和/或可以如所确定来修改再填充速率。在某些情况下,在至少一个实施方案中,给定桶的数量可能由于这些调整而降到低于零。准入控制器随后可以等待管理或后台事件已完成的通知(元素1415)。在至少一些实施方案中,在该事件完成后,准入控制器可以任选地撤销由于该事件而引起的一些或全部变化(元素1418),例如,可以使某些桶的数量增加和/或可以使再填充速率恢复到它们的原始值。在一些实施方案中,可以恢复在接收到事件通知之前利用使用中的原始参数的突发模式准入控制。应当指出,在至少一些实施方案中,当发生后台或管理事件时,正常模式(与突发模式的情况相反)准入控制可以继续不受影响。在至少一些实施方案中,在管理事件期间,可以将令牌根据(可能经过修改的)再填充速率增加到突发模式桶。
随时间的推移,可能需要修改支配对给定工作目标的突发模式准入控制的参数(诸如再填充速率、最大桶数量等)中的至少一些。图15是根据至少一些实施方案的图示了可被执行以调整用于基于令牌的突发模式准入控制的参数的操作的各方面的流程图。在所示实施方案中,如元素1501中所示,可以(例如,由准入控制器,或由附属于实施工作目标的服务的优化引擎)监视针对一个或多个工作目标的工作请求到达速率、接受率和/或拒绝率。可以分析所收集的关于准入、拒绝和到达速率的数据,例如,连同从工作目标中收集的或与工作目标相关的资源使用度量。如果分析建议(如元素1504中所确定)应当改变支配突发模式准入控制的参数,那么准入控制器或服务的另一个组件可以确定实施参数变化的成本的估计值(元素1508)。如果分析建议不需要参数变化,那么可以恢复元素1501的监视操作。
在某些情况下,成本(或可以对客户端计费的至少部分成本)可以忽略不计或为零。在这样一种场景中,可以进行参数改变,而无需与代表客户端工作目标的客户端进一步交互。在其它情况下,一个或多个客户端可以被告知关于所提议参数变化的潜在成本和潜在益处的信息(元素1510)。如果客户端以对一个或多个突发模式参数的参数变化请求作出响应(元素1512),那么可以实施这些参数变化(元素1516)。准入控制器可以恢复监视到达速率、接受率和拒绝率(元素1501)。应当指出,在一些实施方案中,可以出于与元素1501和1504中所示的所监视度量的分析不直接相关的原因,引入与图15所示类似的准入控制参数变化。例如,在一些实施方案中,客户端可以请求给定工作目标的规定吞吐量的变化,并且当工作目标的规定吞吐量变化请求被接受时,准入控制参数(其中的至少一些可为规定吞吐量的函数)可以自动变化。在其它实施方案中,实施工作目标的服务的管理员出于各种其它原因诸如维护窗口、更新、设备变化等可以至少临时改变准入控制参数中的至少一些。在至少一些实施方案中,客户端可能仅可访问参数的子集,因而实现对参数变化的实质性的管理控制。
工作目标上的令牌共享
如先前所提及,至少在某些环境中,可以使工作请求不仅关于时间,而且关于所针对的特定数据子集不均匀地分布。图16图示了根据至少一些实施方案的工作请求关于由服务所管理的数据的不同子集的不均匀分布以及工作请求到达速率的不均匀性的示例。在所示实施方案中,数据对象2010A(其可包括例如数据库表)包括标记为O1-P1、O1-P2和O1-P3的三个分区,而另一个数据对象2010B包括分区O2-P1。可以将每个分区都视为具有相应规定容量(例如,以工作请求/秒诸如读取/秒、写入/秒等来表示)的不同工作目标,这些工作目标通过标记为PC1的对象来指示(分区O1-P1、O1-P2、O1-P3和O1-P4的规定容量分别为PC1、PC2、PC3和PC4)。在所示实施方案中,可以使用用于每个分区的相应令牌桶集合来在每个分区单独地作出关于接受还是拒绝进入的工作请求的准入控制决定。例如,在一些实施方案中,每个分区均可具有正常模式令牌桶和突发模式令牌桶的相应集合。数据对象2010A和2010B可以由单个客户端实体拥有或可被分配给单个客户端实体,并且可以用于共同目的诸如客户端应用的某个集合;因此,从数据对象的所有者的角度来看,这四个分区均可被视为同一数据集的部分。一般来说,这四个分区的大小(即,每个分区所包含的数据量)和/或规定容量可以彼此不同。
在图16所包括的图中示出工作请求在时间窗口T0-T1期间到达分区或工作目标中的每一者的速率W。如箭头2051、2052、2053和2054所示,分区O1-P1、O1-P2、O1-P3和O2-P1处的工作请求到达速率分别通过曲线W1、W2、W3和W4来表示。还示出这些分区中的每一者的规定容量。在O1-P1的情况下,工作请求到达速率W1在所示时间窗口期间始终低于规定容量PC1。对于O1-P2来说,到达速率W2在时间段T0-T1的大部分时间超过规定容量PC2;因此,O1-P2可以在所示时间段的绝大部分时间保持呈突发模式。对于O1-P3来说,所述到达速率大体接近规定容量PC3,并且O2-P1的到达速率W4仅仅短暂超过规定容量PC4。如O1-P2处的工作请求拒绝率R2所示,在O1-P2处可能已拒绝某一数量的工作请求,例如,尽管使用了突发模式桶用于准入控制。
如图所示,针对不同分区的工作请求到达的速率可以大幅变化,即使在同一时间间隔期间。某些分区(例如,O1-P1)甚至可能没有耗尽它们所有的正常模式桶,而同一对象(或具有同一所有者的不同对象)的其它分区可以具有此类高工作负载,使得尽管实施了一个或多个突发模式桶,也必须拒绝工作请求。因此,在所示实施方案中,可以将这四个分区视为令牌共享群组2002的成员,并且可以在群组2002内实施迭代令牌共享协议,以尝试减小所示空间不均匀性的影响。
令牌共享协议可以导致某一数量的或全部的分区或工作目标(例如,每个分区的准入控制器)被触发(例如,以规则的时间间隔或在随机时间量后),以确定是否应当尝试评估令牌共享迭代。也就是说,给定工作目标诸如O1-P2,考虑到其当前的桶数量和最近的工作负载,可以基于各种标准中的任一种来决定尝试找出可与其交换令牌的一个或多个伙伴工作目标是否值得。如果作出了评估令牌共享的决定,那么工作目标可以承担用于协议的当前迭代的令牌共享发起方的角色,并且可以识别与其交换一种或多种桶类型的令牌数量信息的一个或多个伙伴工作目标(同一令牌共享群组的成员)。在分析了发起方和伙伴对等端的令牌数量后,可以作出关于是否应当在发起方与所涉及的第二对等端之间在一个方向上或在另一方向上转移某一数量的令牌的第二决定。因此,例如,在图16中,O1-P2可为发起方,并且可与O1-P1交换关于突发模式令牌桶的令牌数量信息。如果O1-P2的突发模式桶具有与O1-P1的对应突发模式桶相比低得多的令牌计数,那么O1-P1和O1-P2可以相互得出这样的结论:O1-P1应当向O1-P2转移某个数量N个令牌。相应地,可以向O1-P2的桶增加N个令牌,同时可以从O1-P1的桶中移除N个令牌。令牌的增加可以帮助O1-P2维持图16所示的较高工作负载,同时考虑到O1-P1处较低的请求速率,O1-P1处令牌的减少可能不会有任意负面影响。稍后,在令牌共享协议随后的迭代中,如果需要,某个其它对等工作目标可以将令牌转移到恰好重负载的无论哪个工作目标;例如,O1-P2自身稍后能够将令牌转移到其它分区中的任一者,同时O1-P1最终可能会请求令牌而不是向其它分区提供令牌。在一些实施方案中,可以例如基于令牌数量的差值和/或基于由工作请求之一所请求的令牌数量等来通过在给定转移中所涉及的工作目标之间双方相互同意来确定将被逻辑转移的令牌的准确数量。
在至少一些实施方案中,“闲聊(gossip)协议”可以用于此类令牌转移。在这样一个实施方案中,每个工作目标均可被配置成在随机时间量后充当发起方,并且使用随机选择以识别用于数量交换的不同工作目标。在一些实施方案中,可以由每个工作目标自主地作出关于是否参与令牌转移(或甚至令牌数量交换)的决定。在不同的实施方案中,可以基于各种因素来确定令牌共享群组中的从属关系。例如,在一些实施方案中,给定客户端C1可以指示,其数据对象O1、O2和O3被视为一个令牌共享群组G1的成员,数据对象O4和O5被视为另一个令牌共享群组G2的成员,但数据对象O6的令牌不会被共享。在一些实施方案中,网络可访问服务可以作出至少一些令牌共享群组从属关系决定,而在其它实施方案中,可以响应于来自客户端的明显请求仅对给定工作目标集合实施令牌共享。在一些实施方案中,若干不同的客户端可以决定在它们的数据对象间根据需要共享令牌,即,同一客户端实体(诸如企业组织或网络可访问服务的单独用户)可能并不一定拥有令牌共享群组的所有成员。
示例令牌共享协议迭代
图17图示了根据至少一些实施方案的可以被实施以缓解数据访问的空间不均匀性的影响的令牌共享协议的示例迭代。在所示示例中,三个对等端工作目标(例如,表分区)对等端A、对等端B和对等端C是同一令牌共享群组的成员,并且各自具有令牌共享中所涉及的单个令牌桶(例如,突发模式桶或正常模式桶)。当发生协议的连续迭代时,示出三个对等端的桶随时间推移的令牌数量,其中从附图的顶部到底部时间逐渐增大。为了简化该示例,从协议的迭代1开始向前,忽视了由于再填充速率而导致的令牌数量变化、工作请求的准入或其它因素,而是仅包括由于实施令牌共享协议而造成的那些令牌数量变化。
在图17所示的时间段开始时,每个对等端在其桶中均具有1000个令牌。由于箭头2150所指示的进入的工作请求,在协议的第一迭代开始时,对等端A仅具有50个令牌,而对等端B和对等端C仍具有1000个令牌。在所示示例中,在每次迭代时,这些对等端之一发起与另一个对等端交换令牌数量信息(在一些实施方案中,在给定迭代中可以涉及多个对等端对;在图17中仅提供协议工作的简化示例)。所涉及的两个对等端将它们的令牌数量P1和P2进行比较,并且(目前假定P1>P2)决定将(P1-P2)/2个令牌(四舍五入到整数)从具有较多令牌的对等端转移到具有较少令牌的对等端。在各种实施方式中,可以基于各种不同因素来确定所转移令牌的数量,例如,可以使用除(P1-P2)/2之外的公式或函数。
因此,在所示示例中,在迭代1期间,对等端C(具有1000个令牌)发起与对等端A(50个令牌)的数量交换,并且令牌转移大小被确定为(1000-50)/2=475。因此,为对等端A的桶增加475个令牌,同时从对等端C的桶中移除475个令牌,如从对等端C至对等端A通过箭头所示。在转移后,对等端A和对等端C二者均具有525个令牌。
在迭代2中,在充当发起方的对等端B(1000个令牌)与对等端A(525个令牌)之间交换令牌数量信息,导致(1000-525)/2个或约237个令牌从对等端B转移到对等端A。因此,对等端A现在具有总共763个令牌,而对等端B具有762个令牌。(对等端A和B处的令牌数量在迭代2结束时相差一个,因为在所示实施方案中并不支持分数令牌。在其它实施方案中,可以支持分数令牌计数,在这种情况下,对等端A和对等端B二者可以最终具有762.5个令牌)。
在迭代3时,对等端A(763个令牌)与对等端C(525个令牌)再次交换令牌数量,并且对等端A将(763-525)/2或119个令牌转移到对等端C。在迭代4中,对等端B(762个令牌)将59个令牌转移到对等端C(644个令牌),并且在迭代5中,对等端B(703个令牌)将29个令牌转移到对等端A(644个令牌)。附加迭代(未示出)可以导致令牌从具有较多令牌的对等端进一步转移到具有较少令牌的对等端。应当指出,在所示实施方案中,图17所示的示例迭代意欲图示使用中的特定令牌共享协议的高级别特征,而不是必须涵盖可更普遍适用的或针对其它实施方案的协议规则。
在不同的实施方案中,关于准确地将给定工作目标应当在何时以及在什么情况下发起令牌数量交换(其它工作目标可以与其进行数量交换)以及应当使用哪种标准来决定应当转移多少令牌(如果有的话)的决定均可以基于不同的标准集合来作出。例如,在一些实施方案中,如果准入控制器或给定工作目标处的其它服务端管理组件发现该工作目标处的拒绝率高于阈值,那么可以发起令牌共享协议的新迭代。在其它实施方案中,如果某个桶集合中(例如,突发模式桶中)的令牌计数降到低于阈值,那么可以发起令牌共享协议的新迭代。在一些实施方式中,如上文所提及,可以在随机时间从随机选择的工作目标发起协议迭代,并且还可以随机选择与其交换数量信息的工作目标。在至少一个实施方案中,为了降低由于太频繁地实施连续令牌共享协议迭代而造成的潜在开销,可以强制施行针对令牌共享的限制策略,以使得例如给定工作目标可以在X秒或X分内转移到任意其它工作目标和/或从任意其它工作目标接收的令牌的最大数量限于某一数量Tmax。在其它实施方式中也可以施加其它限制策略,诸如将同一对工作目标对之间的来回令牌转移限于某个最大速率,例如,可以允许工作目标WT1和WT2参与每十五分钟转移最多K个令牌。在某些情况下,如果在时间Tk之前的指定时间窗口内发生不同令牌转移,则在一对工作目标WT1与WT2之间可能不会允许在Tk时发生新的令牌转移。
在图17所示的示例中,仅仅将所转移令牌的数量计算为具有较高令牌数量的对等端与具有较低令牌数量的对等端之间的差值的一半。在其它实施方案中,可以基于其它因素来确定转移大小:例如,每个工作目标均可具有关于令牌转移的最小令牌数量(以使得在达到最小级别的情况下,可不转移令牌,即使另一个工作目标具有较低的令牌计数),或者转移的令牌的数量可以至少部分基于工作目标处的最近的工作负载级别,或基于工作目标处的规定容量。在至少一些实施方案中,将令牌赠与其它工作目标可能是自愿的,例如,即使给定工作目标WT1具有与其对等端之一WT2相比多得多的令牌,WT1也可能没有义务将任意令牌转移到WT2(例如,未来在WT1处可能预期会存在工作请求的较重突发,这样将令牌转移到其它工作目标可能并不合适)。
在支持数据复制角色的环境中的令牌共享
在一些实施方案中,如先前所提及,数据库服务或存储服务可以存储客户端数据的多个副本,并且不同的副本可以具有关于工作请求的准入控制的不同角色,例如,在工作请求可以包括读取和写入的环境中,某些副本可以负责对写入以及读取的准入控制,而其它副本仅可以处理读取。在此类实施方案中,可以至少部分通过副本角色来确定在其中实施令牌共享协议的对等端工作目标群组。图18图示了根据至少一些实施方案的可以在数据分区被复制的环境中建立的令牌共享对等端群组的示例。
数据对象2201(例如,数据库表或存储卷)诸如对象2201A、2201B、2201C和2201D可以各自包括一个或多个逻辑分区,并且与这些逻辑分区中的每一者相对应,可以根据服务的数据持久性要求来存储两个或更多个物理副本。在所示实施方案中,可以将这些物理副本之一称为“主控”副本(或简称为主控副本),并且可以将剩余副本称为“从属”副本(或简称为从属副本)。在所示实施方案中,主控副本可以负责对包含写入的工作请求的准入控制,同时可以接受用于在这些副本(主控副本以及从属副本)的任一者处执行的读取请求。因此,可以使指向给定逻辑分区的写入请求指向主控副本,其中可以作出关于接受还是拒绝写入的决定。如果写入被接受,那么首先可以在主控副本处执行对应的数据修改,并且随后传播到从属副本。在图18所示的实施方案中,可以使读取请求指向这些副本中的任一者(并且因此从属副本处的某些数据读取相对于最新的写入请求可能略微过时,这些数据读取的变化可能尚未在该从属副本处复制)。每个物理副本均可具有用于准入控制的相关的令牌桶集合,例如,用于主控副本的主控副本桶集合和用于每个从属副本的从属副本桶集合。分配给给定物理副本的“主控副本”和“从属副本”角色可以随时间的推移发生变化,例如,由于与主控副本的连接性的失效或丢失,可以使从属副本提升到主控副本的角色。在其它实施方案中,与主控副本和从属副本角色相关的责任可以不同,例如,在一些实施方案中,还可以在主控副本处执行对读取的准入控制。
在图18所示的实施方案中,数据对象2201A具有逻辑分区O1-P1、O1-P2和O1-P3。将用于给定逻辑分区Ox-Py的主控副本标记为Ox-Py-M,同时将第k个从属副本标记为Ox-Py-Sk。用于O1-P1的主控副本(标记为O1-P1-M)定位在存储装置2202A上,该存储装置附接至服务的存储节点2210A。用于O1-P1的从属副本(标记为O1-P1-S1)定位在存储节点2210B处的存储装置2202B上。数据对象2201B具有逻辑分区O2-P1和O2-P2,数据对象2201C具有逻辑分区O3-P1和O3-P2,而数据对象2201D具有n个逻辑分区O4-P1…O4-Pn。一般来说,在所示实施方案中,为了数据持久性,可能并不使相同逻辑分区的多个副本存储在同一存储装置上或同一存储节点上。在所示实施方案中,除了这些持久性派生的约束外,一般可以使副本存储在具有足够可用空间的任意(例如,随机选择的)存储装置或存储节点上。例如,存储装置2202A还包括数据对象2201B的逻辑分区O2-P1的从属副本O2-P1-S1和数据对象2201C的逻辑分区O3-P1的从属副本O3-P1-S2,同时存储装置2202B包括从属副本O4-P2-S2和主控副本O2-P1-M,并且存储装置2202C(也位于存储节点2210B处)包括主控副本O1-P3-M以及从属副本O2-P1-S1和O4-P1-S1。(由于空间限制,在图18中仅示出数据对象2201A-2201D的某些分区的某些副本)。
每个物理副本(无论是从属副本还是主控副本)都具有用于指向副本的工作请求的准入控制的相应的令牌桶集合。例如,主控副本O1-P1-M、O2-P1-M和O1-P3-M具有相应的主控桶集合2252A、2252B和2252C。存储装置2202A处的从属副本O2-P1-S1和O3-P1-S2具有从属副本桶集合2272A和2272B,而从属副本O1-P1-S1和O4-P2-S2具有从属副本桶集合2272C和2272D,并且从属副本O2-P2-S1和O4-P1-S1具有从属副本桶集合2272E和2272F。每个桶集合均可包括与先前所述类似的一个或多个令牌桶,包括例如一个或多个正常模式令牌桶和/或突发模式令牌桶(在某些情况下包括复合突发模式令牌桶)。在单独的令牌桶被配置用于读取和写入(例如,如图5所示)并且从属副本并不参与对写入的准入控制的一些实施方案中,从属副本桶集合2272可以仅包括读取令牌桶,而主控副本桶集合2252可以包括读取桶和写入桶二者。
在所示实施方案中,由于主从角色可能对应于不同的准入控制责任,因此可以允许给定的主控副本仅参与与其它主控副本的令牌共享协议,并且类似地,从属副本可以仅与其它从属副本共享令牌。相应地,可以将图18所示的副本分为两个令牌共享对等端群组2242A和2242B。令牌共享对等端群组2242A可以包括某些数据对象集合的主控副本,诸如主控副本O1-P1-M、O2-P1-M和O1-P3-M。还可以使对象2201A-2201D的其它主控副本(图18中未示出)包括在群组2242A中。令牌共享对等端群组2242B可以包括从属副本O2-P1-S1、O3-P1-S2、O1-P1-S1、O4-P2-S2、O2-P2-S1和O4-P1-S1(以及图18未示出的其它从属副本)。因此,在所示实施方案中,主控副本可以与其它主控副本交换令牌数量信息并且可以将令牌转移到其它主控副本/从其它主控副本转移出来,并且从属副本可以与其它从属副本交换令牌数量和/或令牌。例如,此类限制可能会反映关于主控副本处的令牌的值相对于从属副本处的令牌的值的假定,例如,假定由于主控副本具有与从属副本相比更多的准入控制责任,因此在主控副本处失去或获得令牌可以具有与在从属副本处失去或获得令牌相比不同的影响。在一些实施方案中,可能并没有强制施行此类基于角色的限制,以使得主控副本还可以或替代将令牌转移到从属副本,反之亦然。
用于次级索引的令牌共享
在一些实施方案中,可以实施对非关系数据库服务(诸如最近得到普及的各种类型的“NoSQL”服务中的任一者)的基于令牌的准入控制。在许多这样的数据库服务中,给定表的不同行一般来说可以具有不同列集合。因此,至少在某些情况下,可以将每一行视为(主关键字,值)对,其中主关键字分量用于主索引,而值分量可以包括与各自列相对应的值的某个任意集合。在许多情况下,客户端可能希望利用对它们的非关系数据的次级索引,即对除主关键字之外的列的索引。在一些实施方案中,可以使用派生表来实施这样的次级索引,例如,还可以将与给定表(其可称为基表)相对应的数据的至少某个子集组织成派生表以通过次级索引支持快速访问。在某些情况下,不是基表的所有列都可被复制在派生表中。在一些实施方案中,用于一个或多个次级索引的基表和派生表可以各自包括一个或多个逻辑和/或物理分区,这些分区具有用于准入控制的相应令牌桶。在一些实施方案中,基表的分区和派生表的分区可以作为对等端加入与上述协议类似的令牌共享协议。在一些实施方式中,可以设置针对基表的相应子集(例如,相应分区)的单独的次级索引(和单独的派生表)。在其它实施方式中,可以设置用于给定次级索引的单个派生表,该派生表包含与基表的所有分区相对应的数据;在后一种场景中,可以将次级索引称为“全局次级索引”或GSI,因为可以访问与整个基表(而不是基表的子集)相对应的数据。
图19图示了根据至少一些实施方案的在数据库服务处使用令牌共享以支持对次级索引的工作负载管理的示例。在所示实施方案中,基表2310包括N个分区BT-P1,BT-P2,…,BT-PN。派生表2320已被设置以支持基表上的GSI,并且派生表包括分区GSIT-P1,GSIT-P2,…,GSIT-PQ。在一些实施方式中,出于数据持久性的目的可以复制基表2310和/或派生表2320的分区,尽管在图19中未示出副本。一般来说,可以为设置用于给定基表的每个GSI创建不同派生表。基表的每个分区,和派生表的每个分区,具有相应的规定容量,如用于基表分区的标记为BTPC1,BTPC2,…的元素以及用于派生表的标记为SIPC1,SIPC2,…的元素所示。在所示实施方案中,可以独立地作出对每一个表的每个分区的准入控制决定,并且每个分区都可以具有令牌桶集合(诸如一个或多个正常模式令牌桶和/或突发模式令牌桶)。在某些情况下,可以实施与用于派生表的情况不同,用于基表的不同类型的桶,例如,基表可以使用复合突发模式桶,而派生表可以使用直接的(非复合)突发模式桶。
在至少一些实施方案中,与客户端写入请求相对应的更新可以首先在基表处进行,并且随后传播到派生表。例如,可以建立用于每一个基表分区的更新发送缓冲区,诸如用于分区BT-P1的更新发送缓冲区2325A、用于分区BT-P2的更新发送缓冲区2325B、用于分区BT-P3的更新发送缓冲区2325C和用于分区BT-PN的更新发送缓冲区2325N。可以使在这些基表分区处所进行的更新排队以供在对应的发送缓冲区中传播(如箭头2350所示),并且最终在施加到派生表的数据之前,在派生表分区处的对应更新接收缓冲区2330(例如,接收缓冲区2330A、2330B、2330C和2330Q)处接收。一般来说,在基表与派生表的分区之间可能不存在一对一映射,例如分区BT-P1处的给定更新可能需要在派生表分区GSIT-P3处修改数据,同时分区BT-P1处的不同更新可以导致对GSIT-P1的修改。与写入相反(其首先被施加到基表并且随后到派生表),读取可以从派生表中得到满足,而无需参阅基表,这取决于读取请求的性质,例如,可以使用派生表来响应依据GSI的关键字构成的读取查询,同时可以使用基表或派生表来响应基于其它关键字的读取查询。
在至少一些实施方案中,可以将规定容量独立于彼此分配给基表和派生表。因此,在一个实施方案中,当客户端请求表创建时,通过使用与以下各项类似的声明的逻辑等同物,客户端可以指定基表的规定容量,并且提供建立GSI的指示:
CreatetableT1withhash-keyk1,reads-per-second=12,write-per-srcond=8,
GlobalindexG1withhash-keyk2;
在该示例中,创建具有主关键字(在这种情况下,hash-key)k1的基表T1,其中规定吞吐量为12读取/秒和8写入/秒。客户端还指示创建具有不同hash-keyk2的全局次级索引G1,但并不指定GSI的规定吞吐量。在这样一种场景中,数据库服务可以基于由客户端所指定的基表的总吞吐量来将规定吞吐量分配给基表分区,并且可能必须将规定吞吐量分配用于派生表的分区(用于GSI)而无需与客户端进一步交互。在各种实施方案中,数据库服务可以使用多种不同方法中的任一种以确定派生表分区的规定容量。
为了该示例的目的,假定两个分区BT-P1和BT-P2被设置用于基表,并且两个分区GSIT-P1和GSIT-P2被设置用于派生表以支持索引G1。在一种方法中,由客户端指示的总规定容量可以被假定表示基表以及派生表二者合起来要处理的读取和写入的数量。在这种情况下,可以将12读取/秒在BT-P1、BTR-P2、GSIT-P1和GSIT-P2中的每一者处分为3读取/秒,并且可以将8写入/秒在这四个分区中的每一者处类似地分为2写入/秒。在另一种方法中,数据库服务可以假定,客户端所请求的规定容量仅施加到基表,并且将规定派生表分区的附加读取和写入。在该第二种方法中,BT-P1和BT-P2可以各自被分配6读取/秒和4写入/秒的规定容量,而GSIT-P1和GSIT-P2可以各自被分配“v”读取/秒和“w”写入/秒的规定容量,其中可以基于一些启发算法或基于先前对类似GSI的经验来估计v和w。
在一些实施方案中,可以使得客户端能够明确地指定(和支付)GSI的规定容量,例如,客户端在请求创建表时,可以指定以下各项的逻辑等同物:
CreatetableT2withhash-keyk1,reads-per-second=12,writes-per-second=8,
GlobalindexG2withhash-keyk,reads-per-second=6,writes-per-second=6;
在该示例中,客户端分别根据用于基表的规定读取和写入速率来指示用于GSI的所需规定读取和写入速率,并且数据库服务可以因此向基表和派生表的分区分配规定容量。应当指出,在一些实施方式中,还可以或替代指定除散列关键字之外的索引关键字(例如,范围关键字)。在至少一个实施方案中,可以为预先存在的表创建GSI,例如,客户端可能不需要对基表被创建时它们需要的GSI集合作出决定。
随时间的推移,针对基表分区和派生表分区的工作负载可以大大改变,并且在给定时间间隔期间,可以使读取和/或写入请求不均匀地分布在这两种类型的表的分区上。为了减小空间不均匀性的负面影响(诸如工作请求拒绝),基表2310和派生表2320的所有分区都成为单个令牌共享对等端群组2342的成员。因此,分区BT-Px和GSIT-Py中的每一个对于它们各自的令牌桶来说,并且根据双方协议,可以如先前所述在令牌转移过程中参与令牌数量交换。
示例令牌共享消息序列
图20a–20d图示了根据至少一些实施方案的在令牌共享协议的参与者之间的消息序列流的示例。如先前所述,令牌共享协议可以涉及一个工作目标(例如,表分区),该工作目标发起与第二工作目标交换令牌数量信息,随后有可能双方同意后,通过令牌的逻辑转移进行交换(即,改变这两个工作目标处的令牌数量,而无需转移任意令牌对象)。本文中,可以将发起数量信息交换的工作目标称为“令牌共享发起方对等端”或TSIP,同时可以将数量信息的接收方称为“令牌共享伙伴对等端”或TSPP。在图20a-20d所示的实施方案中,至少三种类型的消息可以在TSIP2402与TSPP2405之间流动:令牌共享请求消息TSReq、令牌共享接受消息TSAcc和令牌共享拒绝消息TSRej。
在图20a所示的交互中,TSIP2402向所选择的TSPP2405发送TSReq消息2410。TSReq消息2410可以包括TSIP2402处的特定桶(例如,突发模式桶)的令牌数量的指示。在一些实施方式中,TSReq消息还可以包括TSIP希望获得的令牌的附加数量的指示,或在某些情况下,TSIP想要提供给TSPP2405的令牌数量的指示。作为响应,TSPP2405发送接受消息TSAcc2420。TSAcc消息2420可以指示例如TSPP处的令牌数量和/或TSPP2405希望提供给TSIP2402的令牌数量(或TSPP希望从TSIP接受的令牌数量)。在所示实施方案中,在TSReq与TSacc已被交换后,TSIP和TSPP二者可以根据双方同意的转移来修改它们的令牌数量。
在图20b所示的交互中,TSIP2402发送类似的TSReq消息420,但在这种情况下,TSPP2405向TSIP发送回拒绝消息TSRej2430,指示所提议的令牌转移尚未被TSPP接受。因此,根据TSIP2402的需求,TSIP可以尝试发起与另一个伙伴对等端的令牌交换,或可以在发起令牌共享协议的另一个迭代之前等待一段时间。在一些实施方式中,可以将在特定时间窗口内,不存在从TSPP到TSReq消息的回复视为拒绝的等同物。在一个实施方式中,TSIP2402可以在假定TSPP2405不可用于所请求的令牌转移前再发送TSReq消息几次。
在图20c中,TSPP2402将它的TSReq2410A,包括相同类型的信息(例如,TSPP的令牌数量,和任选地所请求令牌转移的性质或大小的指示),发送给TSPP2405。TSPP2405接收该请求,并且决定作出反建议,即对与TSReq2410A中所示不同的转移的请求。因此,TSPP2405发回不同TSReq2410B,指示TSPP的令牌数量,和TSPP想要转移的令牌的方向和数量的指示。TSIP2402可以接收TSReq2410A,并且发送TSAcc消息2420以接受修改的转移,并且双方可以因此调整它们的令牌数量。
在图20d中,TSPP2402发送它的TSReq2410A,并且TSPP以与图20c所示类似的方式发回它自身的TSReq2410B。在这种情况下,TSIP2402拒绝TSReq2410B,并且发送拒绝消息TSRej2430以告知TSPP2405这一拒绝。
应当指出,在不同的实施方案中,可以实施图20a-20d所示交互的类型的变形和增强。例如,在一些实施方案中,可以在TSAcc消息被发送后,发回接受的附加确认。在一个实施方式中,当发送TSRej拒绝消息时,发送者可以暗示接收者关于对于所拒绝的令牌转移来说,其它哪些工作目标可以是很好的候选者(例如,基于最近与其它工作目标的通信)。在另一个实施方式中,TSIP可能不会在其TSReq消息中指示将要转移的令牌的所需数量或优选转移方向;相反,仅可以提供TSIP处令牌数量的指示,并且可以将它留给TSPP来确定任一方向上的转移是否适当。在这样一个场景中,如果TSPP决定没有转移是适当的,那么TSPP仅可以发送拒绝消息或完全忽视TSReq;并且如果TSPP决定令牌转移是适当的,那么TSPP可以将其自身的TSReq发回到TSIP,如图20c或20d所示。在一些实施方案中,TSIP可以被配置成仅在它需要附加令牌的情况下,而不是在它能够分出其自身令牌中的一些的情况下发送TSReq消息。在其它实施方案中,TSIP可以发送其是否需要更多令牌或是否希望将令牌转移到其它方的TSReq消息。
用于令牌共享的方法
图21是根据至少一些实施方案的图示了可以被执行以支持针对突发模式操作的令牌共享的操作的各方面的流程图。如元素2501中所示,令牌桶包括正常模式桶和突发模式桶可以被配置用于针对多个工作目标(诸如表分区)中的每一者的准入控制,这些工作目标被指定为令牌共享群组的成员。在一些实施方案中,令牌共享群组内的从属关系可以是隐性的,例如,在默认情况下,可以将给定表的所有分区都视为令牌共享群组的成员。在一些实施方案中,从属关系可以是基于存储对象的所有权,例如可以将由特定客户端所拥有的所有表(以及用于次级索引的任意派生表)的所有分区视为令牌共享群组的成员。在其它实施方案中,客户端可能能够指示它们希望在给定令牌共享群组中包括哪些特定工作目标。在一些实施方案中,若干不同的合作客户端实体可以决定使它们相应的工作目标包含在令牌共享群组中。如以上结合图18的描述所述,在数据对象被复制并且不同的副本被分配有相对于准入控制的不同的角色(诸如主控角色和从属角色)的一些实施方案中,给定令牌共享群组可以包含与一个角色相对应但不与另一个角色相对应的副本。在一些实施方案中,可以仅允许针对特定类型的令牌桶的令牌共享,例如,在一些实施方式中,仅突发模式桶可以参与令牌共享,或仅读取令牌桶可以参与令牌共享。
在一些实施方案中,可以在迭代中以与图17所示类似的方式实施令牌共享协议。给定工作目标W1可以执行其典型操作(与令牌共享无关)一会儿,诸如作出对进入的工作请求的准入控制决定以及执行与所接受的工作请求相对应的工作。令牌共享协议的迭代可以由于一个或多个标准得到满足而在W1处被触发(元素2504),诸如自前一个迭代以来已经过的一段时间、W1处一个或多个桶中的令牌数量达到阈值级别的确定和/或在W1处对工作请求的拒绝率达到阈值级别的确定。
在所示实施方案中,在协议的迭代期间,W1可以相继地识别用于可能令牌转移的一个或多个伙伴对等工作目标,并且向一个伙伴每次传输一个或多个令牌共享消息(例如,以与图20所示类似的方式)。可以将W1与伙伴的一个或多个桶(例如,突发模式桶)的令牌数量进行比较,并且可以通过两个工作目标相互同意来实现关于是否在W1与伙伴之间转移某一数量的令牌的确定。因此,如元素2507中所示,W1可以选择某个工作目标,该工作目标是令牌共享群组的成员,作为将被联系用于可能的令牌转移的下一个伙伴W2。在各种实施方案中,可以使用不同的技术来识别应当选择哪个具体工作目标。例如,在一些实施方案中,可以使用闲聊协议并且可以随机选择伙伴。在其它实施方案中,可以使用更具确定性的选择技术,诸如在令牌共享群组的工作目标间选择W1最长时间没有联系的特定工作目标(其可称为“最近联系最少”方法),或可以使用循环方法。在一个实施方式中,只有在指定时间窗口期间在发起方与伙伴之间没有发生令牌转移时,才可将给定工作目标选择作为伙伴。
可以与伙伴对等端交换一个或多个消息(元素2510)以比较有可能受到令牌转移影响的桶的令牌数量。在一些实施方案中,替代或除了令牌数量信息外,这些消息还可以指示所请求的令牌数量或将可接受用于转移的令牌的数量范围以及令牌转移的所需方向。在至少一个实施方案中,可能并不需要比较令牌数量;相反,例如,可以基于发起方对等端W1处令牌的数量或基于其它标准或阈值来作出关于是否向伙伴对等端提供某一数量的令牌或从伙伴对等端中请求某一数量的令牌的决定。类似地,在这样一个实施方案中,还可以产生来自伙伴对等端的响应,而无需比较令牌计数。可以在发起方对等端W1或伙伴对等端W2处使用一个或多个标准,以确定是否应当同意令牌转移,并且如果是的话,应当转移多少令牌(即,转移大小)以及在哪个方向上转移令牌(转移方向)。例如,在一些实施方案中,如果W2的令牌桶数量低于某个阈值,甚至W2具有与W1相比更多的令牌,给定工作目标诸如W2可能也不希望舍弃令牌;或者,如果W2基于过去的趋势预期在不久的将来将出现工作请求的突发,那么W2可能不希望将令牌赠与W1。在一些实施方案中,工作目标可以被配置成仅仅基于令牌数量的差值来共享令牌:例如,如果W2具有与W1相比更多的令牌,那么W2可能不得不与W1共享这些令牌中的一些(例如,如图17所示令牌数量之间的差值的一半)。在至少一个实施方案中,为了避免“超负载”行为(例如,在工作目标的给定对之间的来回快速转移),可能不会容许给定工作目标对之间的转移数量(或所转移令牌的数量)超过指定速率。可以通过发起对等端与伙伴对等端之间相互同意来确定转移大小。在一些实施方案中,仅可在这些对等端之一希望分出至少T个令牌的情况下实施令牌转移,其中T可为该协议的可配置参数;因此,转移非常少量的令牌可能不会被认为是值得的。
如果令牌转移标准得到满足(如元素2514中所确定),那么可以将等于所确定转移大小的多个令牌增加到位于工作目标(例如,发起方或伙伴)之一处的一个或多个桶,并且可以从位于其它工作目标处的对应的一组一个或多个桶中移除相等数量的令牌(元素2518)。在大多数情况下,可以将令牌从具有较大令牌数量的对等端转移到具有较小令牌数量的对等端,但是在至少一些实施方案中也可以容许在另一方向上的转移(例如,在一种示例场景中,如果W1具有与W2相比较少的令牌,但W2在预期有大突发的情况下请求令牌,那么W1可以向W2转移令牌)。
在所示实施方案中,无论是否同意令牌转移,都可以作出关于是否联系其它伙伴工作目标的决定。例如,在一些实施方案中,W1可能希望获取N个令牌,但仅来自W2的M个令牌(其中M<N)可用,这样W1可能希望尝试从其它伙伴获得附加令牌。在一些实施方案中,可以对可由给定发起方诸如W1在给定时间段内联系的不同伙伴的数量强加限制。如果将要联系其它对等端(如元素2522中所确定),那么可以例如使用与以上相对于元素2507所述类似的方法来识别下一个伙伴,并且可以与下一个伙伴一起执行与元素2510、2514和2518相对应的操作。
如果并不会联系其它伙伴(也如元素2522中所确定),例如如果发起方能够获得(或捐赠)所需数量的令牌,那么可以将令牌共享协议的迭代视为完成(元素2526)。在所示实施方案中,发起方可以恢复其通常操作直到下一个迭代被触发(元素2504),此时可以向前重复与元素2507相对应的操作。
表示共享资源的多余容量的令牌分布
如先前所述,在一些实施方案中,给定网络可访问服务的若干工作目标诸如由数据库服务管理的若干数据库表分区可以被配置成使用一个或多个共享资源(例如,盘驱动器或其它存储装置)完成响应于客户端请求所执行的工作。一般来说,在将工作目标分配到共享资源时,服务可以确保可由共享资源中的任一种维持的吞吐量限制超过工作目标的规定容量的总和。在令牌桶数量表示吞吐量的一些实施方案中,这可能会导致一种场景,其中即使共享资源能够处理附加工作请求,这些工作目标中的一者或多者也不能够接受进入的工作请求(例如,尽管使用了突发模式桶)。相应地,在至少一些实施方案中,可以使表示共享资源的多余吞吐量的令牌如下所述以公平的方式分布在工作目标间。图22图示了根据至少一些实施方案的具有一定吞吐量限制的共享资源的示例,该吞吐量限制大于共享该资源的工作目标的组合规定容量。
在图22所示的实施方案中,资源3044由至少四个工作目标3001A、3001B、3001C和3001D共享。可以将这些工作目标称为相对于资源3044的资源共享群组3070的成员。共享资源3044具有吞吐量限制SRTL3020,该吞吐量限制超过工作目标的规定容量的总和(PC1+PC2+PC3+PC4)。图22下部的图图示了在时间间隔T0-T1期间四个工作目标处的相应工作请求到达速率,如箭头3051、3052、3053和3054所示。如图所示,工作目标3001A处的工作请求到达速率W1在时间间隔T0-T1期间低于规定容量PC1。工作目标3001B处的工作请求到达速率W2在时间间隔的大部分时间超过规定容量PC2,并且因此某一数量的工作请求被拒绝,如通过拒绝率R2所示。即使在这些工作目标中的每一者处使用上述种类的突发模式令牌桶,也可以发生此类拒绝。工作目标3001C碰巧不接收任意工作请求,如通过零到达速率W3所示。在工作目标W4处,到达速率W4在时间间隔T0-T1的某些部分超过规定容量,但不发生拒绝(例如,因为使用了突发模式令牌桶)。
在一些实施方案中,对于给定时间段来说,令牌分布器3080可以被配置成确定是否应当将表示共享资源3044的未使用吞吐量的任意附加令牌(即,超过基于令牌再填充速率已产生数量的令牌)分布在资源共享群组的工作目标3001间。另外,在所示实施方案中,令牌分布器3080还可以负责确定应当向工作目标中的每一者提供多少这样的令牌。在一些实施方案中,可以在需要时创建“多余”令牌,而在其它实施方案中,与共享资源相关的桶可以被配置成包括表示共享对象的吞吐量的令牌,并且可以从这样的桶中分布多余令牌。
令牌分布器3080可以实施公平的分布策略,所述分布策略考虑到诸如工作目标的各自规定容量以及工作目标3001处的最近活动的一些度量(即,工作请求到达速率)等因素。在分布算法中,可以包括相应的规定容量作为因素,因为至少在一些实施方案中,针对对特定工作目标的访问而对给定客户端收取的金额是该工作目标的规定容量的函数。因此,至少在一定程度上,对工作目标进行管理的服务可以尝试分配资产或收益,诸如与共享资源的未使用容量相关的多余令牌,这与资源共享群组3070的成员的规定容量成比例。同时,令牌分布器3080还可以考虑最近的工作负载级别,因为这对于使令牌分布到工作目标诸如最近没有接收任意工作请求的3001C,或分布到最近一段时间已具有低工作负载的工作目标3001A来说可能不是特别有用,因为这种轻负载的工作目标可能不能从任意附加令牌中获益。在一些实施方案中,也可以考虑其它因素:在最近一段时间内的针对各种工作请求的拒绝率、预期未来工作请求到达速率等。
在至少一些实施方案中,令牌分布器3080可以收集在某个时间间隔内针对资源共享群组的各个成员的到达速率的度量,并且随后确定在下一个时间间隔内是否以及如何分布令牌。因此,令牌分布器可以确定在时间段Tm(例如,T0-T1)内工作目标的到达速率比以及规定吞吐量比。在至少一些实施方案中,并不一定需要计算到达速率或规定吞吐量的比,但相反可以使用指示到达速率和规定吞吐量或与到达速率和规定吞吐量相关的其它度量。随后可以至少部分基于共享资源3044的吞吐量限制来确定将在时间段Tn期间分布在用于准入控制的工作目标间的令牌的组合数量。例如,在一个实施方案中,可以通过从共享资源的吞吐量限制(图22中的SRTL3020)减去工作目标的规定容量的总和(例如,图22的示例中的PC1+PC2+PC3+PC4)来计算组合数量。可以根据至少(a)相应工作请求到达速率比或度量和(b)工作目标的规定容量的函数,使所述组合数量的令牌分布在工作目标间。随后可以使用附加令牌以及可能基于工作目标的桶再填充速率而生成的令牌用于在时间段Tn期间(和/或在其它稍后的时间段中)针对所接收的工作请求的准入控制。在至少一些实施方案中,可以使多余令牌仅分布到工作目标处的突发模式令牌桶,因为这些额外的令牌可能主要意在帮助工作目标处理突发模式操作。在其它实施方案中,这些令牌也可以分布到正常模式令牌桶或替代分布到突发模式令牌桶。在一些实施方案中,可以使这些令牌分布到用于特定类型的工作请求的令牌桶,诸如读取令牌桶。
应当指出,除了工作请求到达速率外,令牌分布器在其决定过程中必须考虑的其它因素包括规定容量可以从一个时间间隔到另一个时间间隔发生变化。例如,在一些实施方案中,在任意给定时间点,客户端(或服务)可以决定改变给定工作目标的规定容量。另外,共享对给定资源的访问的工作目标的数量也可以发生变化,例如,在一些实施方案中,可以在任意给定时间向共享存储装置增加表分区,或可以删除现有的分区。因此,在此类实施方案中,除了获得工作请求到达速率的度量外,令牌分布器还可能必须追踪各种类型的配置变化。
在一些实施方案中,在确定应当使多少令牌分布在分享者之间时,可以考虑若干不同共享资源的吞吐量限制。图23图示了根据至少一些实施方案的可由位于服务的存储节点(诸如数据库服务或更通用的存储服务)处的工作目标所共享的不同类型的资源的示例。如图所示,存储节点3110可以包括共享存储装置3102,在该共享存储装置处存储具有相应规定容量PC1、PC2和PC3的至少三个数据对象分区(即,工作目标)O1-P1、O2-P3和O3-P2。在所示实施方案中,共享存储装置3102可以具有吞吐量限制SRTL3120A。
除了存储装置外,指向分区O1-P1、O2-P3或O3-P2的工作目标还可以要求使用位于存储节点3310处或位于存储节点外部的其它共享资源。例如,可能需要共享数据结构3115诸如操作系统缓冲区、套接字、索引节点或应用级别对象(例如,各种类型的锁中的任一者)用于处理工作操作,并且此类共享数据结构可以各自具有它们自身的吞吐量限制SRTL3120B。在所示实施方案中,可以需要一定量的共享易失性存储器3116(例如,存储节点的主存储器)用于工作操作,并且该存储器可以具有其自身的吞吐量限制3120C。可以利用共享处理元素3118(例如,CPU或核心)用于处理与工作请求相对应的工作操作,并且这些处理元素可以具有它们自身的吞吐量限制3120D。工作请求和对应响应可以要求使用具有吞吐量限制SRTL3120E的共享网络装置3122诸如网络接口卡。可以需要具有吞吐量限制3120F的共享网络链路3132用于工作请求。在某些情况下,对于至少某些工作操作来说,还可以需要对外部资源3136诸如具有吞吐量限制3120G的配置数据库的访问。
在所示实施方案中,当确定是否使多余令牌分布在共享这些类型的资源的一些或全部的工作目标间时,令牌分布器可以被配置成计算所有适用共享资源的相应吞吐量限制的函数。在某些情况下,所述计算可以涉及例如确定各种SRTL间的最小SRTL,以及使用所述最小值作为与共享资源的组合相关的有效吞吐量限制。在任意给定实施方式中,可能并未使用图23所示所有不同类型的共享资源。在一些实施方案中,可以使用其它类型的共享资源(图23中未示出)。
图24图示了根据至少一些实施方案的被执行以计算将分布在共享资源的工作目标间的多余令牌的数量的操作的示例。如图所示,令牌分布器3080可以将有效共享资源吞吐量限制3230作为一个或多个共享资源的相应SRTL3220(例如,3220A,3220B,…3220N)的函数f1来计算。例如,在一些实施方式中,可以将最小SRTL选择为有效的SRTL,而在其它实施方式中,可以使用某个其它函数。在所示实施方案中,到达速率监视器3277可以负责确定指示针对资源共享群组的各个工作目标3201(例如,3201A、3201B和3201C)的相对工作请求到达速率的度量3240。例如,在一个实施方式中,可以使关于多余令牌分布的决定每N分钟进行一次,并且相应地可以确定N分钟时间窗口的度量3240。在一些实施方案中,可以使到达速率监视器3277并入在工作目标的相应准入控制器180内。
在图24所示的实施方案中,令牌分布器3080可以将表示共享资源处的多余吞吐量的多余令牌3240的数量确定为有效SRTL3230和资源共享群组的工作目标的规定容量的函数f2。因此,例如,在一个实施方式中,如果有效SRTL3240在给定时间窗口Tm期间为X操作/秒,并且工作目标的规定容量的总和(例如,图24中的PC1+PC2+PC3)在时间窗口Tm期间为Y操作/秒,那么可以将第(m+1)个时间窗口T(m+1)期间所分布的多余令牌计算为X-Y。在其它实施方式中可以使用更为复杂的函数f2。应当指出,至少在一些场景中,共享资源的SRTL(以及因此有效的SRTL3230)可以随时间的推移发生变化。类似地,工作目标的规定容量也例如由于客户端请求而随时间的推移发生变化。因此,在至少一些实施方案中,多余令牌3240的数量也可以发生变化。应当指出,在一些实施方案中,至少对于某些时间窗口来说,将在给定时间窗口期间分布的多余令牌的数量可为零,例如共享资源可能至少临时不存在可用的多余容量。
在确定了将分布的多余令牌3240的数量的情况下,令牌分布器3080接下来可以决定将向每个工作目标提供多少令牌(如果有的话)。可以将用于给定工作目标的分布式多余令牌(DET)3242(例如,用于工作目标3201A的DET3242A、用于工作目标3201B的DET3242B和用于工作目标3201C的DET3242C)作为工作目标的到达速率度量3240和工作目标的规定容量的函数f3来计算。考虑用于三个工作目标3201A、3201B和3201C在时间窗口Tm期间的相应到达速率度量值为A1、A2和A3的示例场景。在一个实施方式中,对于每个工作目标k来说,可以将到达速率比确定为A_ratio_k=(Ak/(A1+A2+A3)),并且可以将规定容量比确定为P_ratio_k=(PCk/(PC1+PC2+PC3))。进一步假定,将被分布用于第(m+1)个时间窗口的多余令牌的组合数量为E。可以将分布到工作目标k的多余令牌DETk如下所示来计算:DETk=E*((alpha*A_ratio_k)+((1-alpha)*P_ratio_k))),其中alpha为常数。在该示例中,alpha表示给予两个正考虑的不同因素的相对权重:到达速率和规定容量。在一些实施方案中,令牌分布器3080可以例如响应于到达速率和对应拒绝率的所观察的趋势来随时间推移调整alpha。在至少一些实施方案中,如果第m时间窗口期间的组合到达速率超过阈值,那么可以使多余令牌3240仅分布用于第(m+1)个时间窗口,例如,如果到达速率中的每一者都低于工作目标的规定容量,那么可能不会使多余令牌分布用于第(m+1)个时间窗口。在一个实施方案中,在分布多余令牌时,可以考虑较长时间段内的到达速率,例如当决定在5分钟时间窗口期间应当向给定工作目标分布多少令牌时,令牌分布器3080可以考虑在先前60分钟内针对该工作目标所获得的到达速率度量。在一些实施方案中,如果给定工作目标处的到达速率在给定时间间隔期间为零(例如,图2的工作目标3001C在时间段T0-T1期间是空闲的),那么在下一个时间间隔期间可能不向该工作目标分布令牌,而不管其规定容量如何。
用于分布表示共享资源处的多余容量的令牌的方法
图25是根据至少一些实施方案的图示了可以被执行以实施多余令牌在共享资源的工作目标间的公平分布的操作的各方面的流程图。如元素3301中所示,工作目标集合可以被配置成在执行与客户端工作请求相对应的操作时,利用一个或多个共享资源。可以将此类工作目标称为资源共享群组。每个共享资源均可具有相应的吞吐量限制SRTL。相应的令牌桶集合可以被配置用于资源共享群组的工作目标中的每一者处的准入控制(元素3304),例如包括与先前所述类似的一个或多个正常模式桶和/或一个或多个突发模式桶。在至少一些实施方案中,令牌桶的各种参数诸如再填充速率、最大令牌数量等可以是至少部分基于与工作目标相关的相应吞吐量。
可以收集用于资源共享群组的成员和共享资源的多个度量诸如工作请求到达速率度量、拒绝率度量、规定容量的变化和/或共享资源的吞吐量限制的变化。在一些实施方案中,可以实施基于时间窗口的令牌分布协议,其中在一个或多个时间窗口的给定集合中所获得的度量在随后时间窗口的某个集合期间用于令牌分布。在所示实施方案中,可以收集时间窗口tj期间的度量(元素3307)用于确定时间窗口tj+1的令牌分布。可以根据共享资源吞吐量限制(SRTL)和工作目标的规定容量来确定将在时间窗口tj+1内分布的多余令牌的组合数量(DET-total)(元素3310)。例如,在一个实施方式中,可以计算有效SRTL(例如,在考虑到超过一个共享资源的情况下,个别SRTL的最小值),并且可以通过从有效SRTL中减去工作目标的规定容量的总和来计算DET-total。
至少在一些实施方式中,可能出现的情况是,DET-total对于特定时间窗口来说为零,即可能不存在多余的令牌供分布。如果DET-total超过零(如元素3313中所确定),随后可以例如根据例如与相应到达速率和/或工作目标的相应吞吐量相关的度量来计算将提供给每个工作目标k的令牌数量DET-k(元素3316)。例如,如以上结合图24的描述所论述,在一些实施方案中,可以使用将相对权重alpha分配到不同工作目标的到达速率度量和规定容量度量的函数获得DET-k值。随后可以基于所确定DET-k值来调整与工作目标相关的一个或多个桶处的令牌数量(元素3319)。在增加了这些令牌后,可以如以前一样作出准入控制决定,但在接收至少一些多余令牌的那些工作目标处承受较高工作负载的能力增强。在一些实施方案中,可以将多余令牌仅增加到突发模式令牌桶,而在其它实施方案中,替代或除了突发模式桶之外,还可以将这些多余令牌增加到正常模式令牌桶。在至少一些实施方案中,对于不同类型的工作请求来说可以维持单独的令牌桶诸如读取对写入。在此类情况下,在一些实施方案中,可以使多余令牌仅分布到某些类型的桶(例如,仅分布到读取桶,或仅分布到写入桶),但在其它实施方案中,可以分布到所有类型的桶。
在至少一些实施方案中,可以例如由令牌分布器3080或管理程序随时间的推移调整上述用于确定分布式令牌计数(DET)的各种函数和公式诸如图24所示的函数f1、f2和f3。例如,可以通过监视多个度量诸如高到达速率的时段期间各种工作目标处的拒绝率、各种共享资源的利用级别等来判定令牌分布技术的成功,并且可以相应地调整分配到到达速率度量对规定容量度量的权重alpha,或可以调整时间窗口的大小。
在至少一些实施方案中,可以在由提供者网络提供的多个服务处使用与准入控制相关的各种技术诸如以上所述的那些技术,包括简单或复合令牌桶的使用,工作目标间的令牌共享和共享资源的多余容量的公平分布。在给定实施方案中,可以使用这些技术中的一些或全部的组合,例如可以使复合突发模式令牌桶的使用与工作目标上的令牌共享和多余令牌的分布相结合。可以将由实体诸如公司或公共部门组织设置以向分布式客户端组提供可通过互联网和/或其它网络访问的一个或多个此类服务(诸如各种类型的基于云的存储、计算或数据库服务)的网络称为提供者网络。给定提供者网络可以包括众多数据中心(其可分布在不同的地理区域),这些数据中心托管各种资源池,诸如物理和/或虚拟化计算机服务器、各自具有一个或多个存储装置的存储服务器、联网设备等的集合,是实施、配置和分配由提供者提供的基础设施和服务所需的。在各种实施方案中,多个不同的硬件和/或软件组件(可以使其中的一些在不同的数据中心或在不同的地理区域例示或执行)可以共同用于实施准入控制技术。
用于突发模式操作的基于令牌的定价
在一些实施方案中,可以使用与可用于正常模式操作相比不同的定价方法针对代表客户端所执行以支持突发模式的工作来对客户端收费。如上所述,在一些实施方案中,还可以实施工作目标上的令牌共享和表示共享资源容量的多余令牌的分布以支持突发模式工作负载,并且对令牌共享和/或多余令牌分布的计费与对正常模式操作的计费也可能不同。图26图示了根据至少一些实施方案的可被实施用于突发模式操作的定价管理器4080的示例组件。如图所示,可以将正常模式令牌桶集合120和突发模式桶集合125例示以用于工作目标。准入控制器180可以负责例如使用与以上针对各种实施方案所述类似的技术或技术组合来基于正常模式令牌桶集合的一个或多个规定容量桶420的令牌数量和/或基于突发模式桶集合125的一个或多个突发模式桶422的令牌数量决定是否接受进入的工作请求。
在图16所示的实施方案中,定价管理器4080可以被配置成实施与使用来自突发模式令牌桶集合125和/或正常模式令牌桶集合120的令牌相关的一个或多个定价策略。一个或多个突发模式定价策略4005B和一个或多个正常模式定价策略4005A可以用于确定对于来自一个或多个桶的令牌的消耗和/或转移来说,对客户端收费的金额,这取决于操作模式。例如,在如下所述的至少一些实施方案中,对于正常模式操作来说,针对令牌以多达规定吞吐量的速率的使用,可以根据正常模式定价策略4005A使用静态或固定价格,而突发模式定价策略4005B可以是更为动态的。定价管理器4080可以被配置成从准入控制器180中收集关于令牌数量变化的信息,和/或告知准入控制器关于在作出准入控制决定时所考虑的约束的信息(例如,定价管理器4080可以告知准入控制器以下内容,即根据特定突发模式定价策略,客户端的预算约束将施加到突发模式期间从特定突发模式桶422中消耗令牌,这可能会影响准入控制器的决定)。
在一些实施方案中,定价管理器4080可以包括若干不同的子组件。例如,在一个实施方案中,接口管理器4020可以负责实施一组程序设计接口诸如一个或多个网页、API、GUI(图形用户接口)、命令行工具等,这些程序设计接口可以用于与客户端的各种定价相关交互诸如基于客户端输入的定价策略选择,或用于执行以下所述种类的市场交易的各个方面。在一些实施方式中,接口管理器4020还可以负责网络可访问服务内的某些类型的内部交互,诸如定价管理器4080与准入控制器180之间的通信。在一些实施方案中,可以建立令牌市场,使得某些客户端能够宣传可由其它客户端以一定价格获取的多余令牌的可用性。在至少一些这样的实施方案中,对于某些类型的市场交易来说,令牌价格可以是静态的或固定的,而对于其它交易来说,可以动态地确定这些价格(例如,使用与拍卖类似的技术,或基于时间窗口)。在所示实施方案中,定价管理器4080的市场管理器组件4040可以负责支持市场交易。
在所示实施方案中,一个或多个计量组件4030可以被配置成收集来自准入控制器180的令牌使用/消耗度量。在至少一个实施方案中,可以实施准入控制器180的多个实例(例如,用于每个工作目标的一个准入控制器实例,或用于N个工作目标的一个实例),并且在此类实施方案中,计量组件可以聚合来自多个准入控制器实例180的令牌使用数据。在一些实施方案中,用于消耗或转移令牌的价格可以基于用于实现工作请求的各种资源的资源利用级别(例如,处理器利用级别、存储装置利用级别或网络利用级别)发生变化。在令牌定价是资源利用级别的函数的此类实施方案中,计量组件4030还可以从针对网络可访问服务所设置的基础设施的各个部分收集利用信息。计费生成器4050可以被配置成基于生效的一个或多个定价策略来分析从准入控制器收集的各种令牌相关度量并且生成对客户端收费的计费金额。在一些实施方案中,定价管理器4080可以包括定价数据库4060,例如,在该定价数据库内,可以存储定价策略细节和/或计费历史信息。在一些实施方案中,定价数据库4060还可以用于趋势分析,例如,以基于先前的定价变化和/或基于来源于计费历史的使用模式来确定动态定价的组件。根据至少一个实施方案,可以使定价管理器4080的子组件中的一者或多者并入准入控制器180内。在一些实施方案中,定价管理器4080可以包括可以分布在一个或多个计算装置间的多个软件和/或硬件组件。
基于令牌的定价策略元素
图27图示了根据至少一些实施方案的基于令牌的定价策略4005的示例元素。在一些实施方案中,可以向用于准入控制的不同桶施加相应的定价策略,即,对于正常模式令牌桶集合120中的不同桶来说,和/或对于突发模式令牌桶集合125中的不同桶来说,对客户端收取的价格可以不同。在所示实施方案中,对于与桶集合中的一个或多个桶相关的给定定价策略4005来说,可以指定一个或多个适用性标准4105,指示例如使用定价策略用于确定桶处的一个或多个令牌数量变化操作的客户端计费金额的条件。例如,在一个简单的实施方式中,可以将特定定价策略4005施加到从突发模式桶422中消耗的每个令牌;在这样一个场景中,适用性标准4105可以仅指示“施加该定价策略用于所消耗的每个令牌”的逻辑等同物。在一些实施方案中,可以指定更为复杂的适用性标准4105,诸如基于以下各项的标准:某个或某些其它桶的令牌数量(例如,“仅在桶B2的令牌数量在范围B2低-B2高内的情况下将该定价策略施加到桶B1令牌消耗”的逻辑等同物)、客户端预算(例如,“仅在客户端C1对突发模式令牌的剩余预算超过金额A的情况下将该定价策略施加到C1的桶B1”的逻辑等同物)、定时窗口(例如,“将该定价策略施加到在工作日凌晨01:00至早上6:00的时间段期间从桶B1中所消耗的令牌”)等。在某些情况下,适用性标准可以取决于正使用的桶的数量和类型,例如某些定价策略可以仅在复合令牌桶也用于突发模式准入控制的情况下施加到给定共享资源容量突发模式桶B1。
一般来说,与令牌数量变化相关的定价(例如,令牌消耗或转移)可以包括静态定价组件4108(例如,用于在指定时间段期间以指定速率消耗多达指定数量的突发模式令牌的预付费用)和动态定价组件4111(例如,可以在工作日的不同时间窗口期间变化的速率,或可以基于供需变化的速率)。在所示实施方案中,某些定价策略可以包括静态和动态定价组件,而其它策略可以仅包括静态组件或仅包括动态组件。在至少一些实施方案中,对于某些类型的令牌转移或销售来说,可以使用拍卖来实施动态定价。在至少一个实施方案中,对至少一些令牌桶的定价可以基于供需变化,例如,可以实施用于突发模式令牌的“现货”定价策略,可以仅在客户端的竞价等于或超过竞拍时的当前现货价格的情况下,根据该“现货”定价策略为特定客户端提供令牌。.
在一些实施方案中,可以在给定令牌交易中涉及超过一个客户端。例如,在定价管理器4080实施令牌市场的实施方案中,客户端C1可能希望指示C1所拥有的某一数量的令牌(例如,可以用于突发模式操作的令牌)可供用于销售给其它客户端。定价管理器4080可以宣传令牌的可用性(或告知可为购买令牌的可能候选者的特定客户端)并且不同客户端C2可以从C1购买令牌。在这样一个场景中,在所示实施方案中,客户端之间的支付转移可以由定价管理器4080例如根据客户端间支付转移策略4117(对于特定类型的令牌桶来说,其可包括在客户端A的定价策略中,客户端C2的定价策略中,或这两个客户端的策略中)来促进。客户端间支付转移策略4117可以指示例如买方或卖方针对销售可能承担的服务收费,和/或根据其处理客户端间支付的时间表(可以根据一个时间表来将所积聚的支付每周结算或转移一次)。在一些实施方案中,可以将令牌(至少临时)用作用于定价目的的货币的逻辑等同物,例如客户端C1可能欠服务(或可能欠不同客户端)N个令牌,并且可以使用实际货币或使用替换令牌来弥补债务(例如,可以通过转移N+k个令牌来弥补N个令牌的债务,其中k个令牌表示针对债务的“利息”,其中k是基于债务人偿还债务所花费的时间来计算)。在多个工作目标包括由不同客户端所拥有的工作目标间共享令牌的一些实施方案中,客户端间支付转移策略也可适于与先前所述类似的令牌共享技术,诸如图17所示的示例令牌共享协议。
在至少一些实施方案中,至少对于某些类型的令牌桶来说,准入控制器180可能不能提供关于未来准入控制决定的任意稳固保证,例如,如先前所述,对于突发模式准入控制来说,可以使用“尽力而为”方法,并且一般来说与在正常模式期间相比,在突发模式期间工作请求被拒绝的概率可能更高。在一些实施方案中,定价策略4005可以包括一个或多个尽力而为约束4120的指示,这些约束可施加到根据定价策略所获得或所消耗的令牌。例如,约束4120可以告知客户端,尽管准入控制器尽了最大努力,并且尽管客户端为了获得某一数量的突发模式令牌而招致了收费,但在例如工作目标在突发模式期间遇到共享物理或逻辑资源的吞吐量限制的情况下,工作请求可能必须被拒绝或再试。尽力而为约束4120因此可以提醒客户端,在某些(通常很少)情况下,客户端对令牌的购买可能不足以确保对它们全部工作请求的高接受率或高质量响应。在一些实施方案中,根据定价策略4005中所指示的折扣策略4124可以为至少某些客户端提供折扣,例如,如果客户端由于各种约束或原因(这些约束和原因不是客户端的责任)中的任一种而不能利用它们所购买的突发模式令牌的超过X%,那么可以补偿客户端这些所购买的突发模式令牌中的某些或全部。在一个实施方案中,可以支持总额折扣(例如,基于所购买令牌总数量的返利),并且折扣策略4124可以指示此类折扣的条款。在各种实施方案中,在给定定价策略4005中可能并不包括图27所示元素的某些种类,和/或可以包括图27未示出的其它元素。
用于令牌定价的方法
图28是根据至少一些实施方案的图示了可被执行来确定突发模式操作的计费金额的操作的各方面的流程图。如元素4201中所示,在所示实施方案中,可以将某一数量的令牌桶例示用于在一个或多个工作目标处进行工作负载管理,这些工作目标被配置成以先前所述种类的一种或多种模式(诸如正常模式和突发模式)操作。可以基于这些桶中的一者或多者的令牌数量来作出关于是否接受用于在工作目标处执行的工作请求的决定,并且例如通过从一个或多个桶中消耗某一数量的令牌可能伴随着接受工作请求的决定。如元素4204中所示,可以例如由定价管理器4080响应于来自客户端的策略选择请求或基于网络可访问服务的内部配置参数来确定施加到导致在这些桶的一些或全部处发生令牌数量变化的操作的一个或多个定价策略。例如,定价策略可以指示针对突发模式期间桶B1中的令牌的消耗、针对令牌从一个桶B1到另一个桶B2的转移、针对桶再填充速率和/或最大令牌数量限制的短期或长期变化或针对这些种类的变化的某个组合来说,对客户端收取的金额。某些定价策略可能仅在突发模式期间施加,而其它定价策略可能在正常模式期间施加,或可施加用于针对未来突发模式的准备(诸如未使用的令牌从正常模式桶到突发模式桶的转移、在工作目标上的令牌共享或如先前所述多余令牌的分布)。在至少一个实施方案中,正常模式定价策略可以包括对规定容量桶420中的令牌的固定费用,该规定容量桶可以被消耗以接受多达规定吞吐量的工作请求;无论从规定容量桶中所使用的令牌的实际数量如何,这样的费用都不会改变。在一些实施方案中,某些定价策略可能适于使用令牌市场进行的交易,这例如可以使用在定价管理器4080处或由定价管理器4080所实施的程序设计接口来支持。
每个定价策略均可包括例如对该策略的一个或多个适用性标准(其可以指定其间将施加该策略的操作模式诸如突发模式,以及对于将施加的策略来说必须满足的任意其它特定条件),和与引起令牌数量变化的操作相关的一个或多个静态或动态定价组件或金额。在一些实施方式中,可以在定价策略中指定例如呈因素组合的函数的形式的定价公式而不是绝对定价金额。在一些实施方案中,定价策略可以包括与图27所示类似的一个或多个附加元素诸如客户端间支付转移策略、折扣等。定价管理器4080可以被配置成在各个时间段内收集、聚合或记录各个桶处的与定价策略相关的令牌数量变化,以及哪些定价策略适于令牌数量变化的哪些集合的指示(元素4208)。在不同实施方案中,各种聚合技术中的任一种都可用于收集关于令牌数量变化的数据,例如,在一些实施方案中,可以记录给定桶处的令牌数量的每一次和每一个变化,而在其它实施方案中,可以对令牌计数周期性地采样或以安排好的时间间隔收集令牌计数。应当指出,在一些实施方式中,可能存在根本没有对客户端收费的某些类型的令牌数量变化,例如,某些令牌操作可能对至少一些客户端免费。
在一些实施方案中,如果在某个时间间隔期间令牌数量没有变化,那么对于桶中的令牌,可以不对客户端收费,而在其它实施方案中,对于至少某些类型的令牌来说,即使它们一直未使用,也可以对客户端收费(例如,在给定桶的令牌数量在给定时间间隔期间不发生变化的情况下)。在一个实施方案中,对于不同类别的令牌来说,所收取的金额可以发生变化,例如,在正常模式期间,在突发模式期间,或在正常模式与突发模式期间,与读取相比,写入可能更为昂贵,反之亦然。在所示实施方案中,可以至少部分基于一个或多个桶处的令牌数量变化的记录,并且至少部分基于一个或多个定价策略,对客户端产生计费金额(元素4212)。应当指出,在各种实施方案中,对于先前所述的基于令牌的准入控制的不同方面的一些或全部来说,可以选择定价策略,这些定价策略包括例如施加于使用复合令牌桶用于支持多种类别的突发的策略、施加于基于优先级的类别的令牌桶的策略等。
图29是根据至少一些实施方案的图示了与条件性突发模式定价相关的操作的各方面的流程图。在所示实施方案中,突发模式桶集合125可以包括多个桶,该多个桶包括本地突发限制桶604和一个或多个共享资源容量桶606,并且不同的定价策略可以基于另一突发模式桶处的数量而适于突发模式桶中的一个处的令牌数量。可以接收指向工作目标的下一个工作请求(元素4301)。如果例如基于一个或多个正常模式令牌桶中的令牌数量,工作目标不呈突发模式(如元素4304中所检测),那么可以使用正常模式定价策略来确定将用于工作请求的定价(元素4308)。例如,如上所述,在一些实施方案中,在正常模式期间,可以独立于所消耗令牌的实际数量对客户端收取与工作目标的规定吞吐量成比例的固定预付费用,只要工作请求以不大于规定吞吐量的速率到达。
在所示实施方案中,如果工作目标呈突发模式,也如元素4304中所检测,那么可以确定至少一个共享资源容量桶606中的令牌数量。如果一个或多个共享资源容量桶基于生效的消耗策略包含足够数量的令牌(元素4312),那么接下来可以检查适于工作目标的本地突发限制桶604的令牌数量。在所示实施方案中,当被认为处于分立时,本地突发限制桶604的数量可以例如基于分配到工作目标的吞吐量限制来指示可用吞吐量(而无需考虑共享资源)。在所示实施方案中,对接受用于执行的工作请求的定价可以取决于共享资源容量桶和本地突发限制桶二者中的数量。如果共享资源容量桶和本地突发限制桶二者基于它们各自的消耗策略均包含足够的令牌(如元素4312和4316中所确定),那么可以接受工作请求,可以从这两种类型的桶中消耗一个或多个令牌,并且可以施加第一突发模式定价策略(元素4320)。在所示实施方案中,如果一个或多个共享资源容量桶包含足够的令牌,但本地突发限制桶并不包含足够的令牌,那么仍可接受用于执行的工作请求。可以从共享资源容量桶中消耗一个或多个令牌,并且可以施加第二突发模式定价策略(元素4324)。如果共享资源容量桶和本地突发限制桶均不包含足够的令牌,那么可以拒绝、再试或延迟该工作请求(元素4328)。在作出准入控制决定(这导致接受(元素4320或4324)或拒绝(元素4328))后,可以例如通过向前实施与元素4301相对应的操作来处理所接收的下一个工作请求。在其中例如本地突发限制桶最大数量适当设置的环境中可以使用图29所示的有条件的突发模式定价方法,同时其可用吞吐量以共享资源容量桶表示的共享资源与单独使用本地突发限制桶时可支持相比能够至少在某些时间段期间支持更高的工作请求到达速率。如果利用了共享资源的工作目标中的一些工作目标处的工作负载随时间的推移大幅变化,那么可能存在其中足够的容量在共享资源处变得可用以支持短持续时间突发的时期,即使本地突发限制桶为空,并且第二定价策略至少在此类场景中可能是有用的。与图29所示类似的定价技术还可以结合先前所述的用于使表示共享资源处的多余容量的令牌公平分布的技术来使用。
图30是根据至少一些实施方案的图示了可被实施以实现定价策略的客户端选择的操作的各方面的流程图。如元素4401中所示,可以实施一个或多个程序设计接口诸如网页、网站或API以允许客户端从多个所支持的定价策略中进行选择。在至少一些实施方案中,定价管理器4080的接口管理器子组件可以负责用于实施。在一些实施方案中,多个定价策略可供用于突发模式操作,而在其它实施方案中,多个策略可被支持用于正常模式和突发模式操作。在至少一些实施方案中,特别施加到某些类型的参数变化(诸如再填充速率或最大令牌数量限制的短期或长期变化)的定价策略可以是通过接口可选择的。可以向客户端提供可用定价策略或可填写或参数化的策略模板的指示(元素4404)。例如,在一个实施方式中,可以通过网站提供关于不同定价策略的各种元素(诸如图27所示的元素)的细节。
基于工作负载需要和/或预算,给定客户端可以例如通过使用所实施接口中的一个所提交的定价策略请求来指示将使用的所选择策略和/或要使用的参数(元素4408)。响应于这样一个请求,定价管理器4080可以代表客户端发起对所选择定价策略和/或参数的实施(元素4412)。例如,在至少一些实施方式中,定价管理器4080可以与准入控制器180通信以发起定价策略的使用。
图31是根据至少一些实施方案的图示了可被实施来实现突发模式令牌的市场的操作的各方面的流程图。在所示实施方案中,如元素4501中所示,可以实施一个或多个程序设计接口诸如网页和/或API(例如,由接口管理器4020)以支持各种类型的交易,这些交易涉及可用于突发模式准入控制和/或正常模式准入控制的令牌的广告、销售、购买、共享或转移。市场管理器4040(例如,定价管理器的子组件)可以通过所实施的接口从一个或多个客户端接收令牌交易出价的指示诸如销售、拍卖或购买令牌的出价(元素4504),并且可以向其它客户端公布或宣传这些出价。在至少一些实施方案中,定价管理器和/或准入控制器可以知晓需要令牌的客户端(例如,其工作请求在最近的时间间隔期间经历了高于正常拒绝率的客户端),并且可能能够使令牌出价与此类候选令牌消费者相匹配。
市场管理器4040可以通过这些接口中的一者或多者来基于固定价格或成功的拍卖竞价(元素4508)接收交易完成的指示,诸如用于销售或转移某一令牌集合的交易。因此,在所示实施方案中,市场管理器4040可以例如通过减少一个或多个源桶中的令牌数量和/或增加一个或多个其它桶中的令牌计数来改变受影响桶的令牌数量(元素4512)。可以根据交易细节和适用的一个或多个定价策略4005来产生对客户端收取的计费金额(其可包括例如在给定市场交易中对购买客户端和销售客户端的服务收费)(元素4516)。
在至少一些实施方案中,如先前所述,可以将工作目标诸如数据库表分为多个逻辑分区,并且可以在逻辑分区级别执行准入控制,其中相应的一组准入控制参数和令牌桶用于每个分区。例如,可以将包括兆兆字节数据的大型数据库表配置为各自具有250兆字节的四个逻辑分区,其中相应的令牌桶集合用于准入控制。在一些实施方式中,也如先前所述,可以例如针对数据持久性和/或高可用性来维持每个逻辑分区的多个物理副本。在某些场景中,客户端工作负载可能不是始终均匀分布在这些分区上。因此,在给定时间点,在一个频繁使用的分区处的令牌桶(诸如突发模式桶422)中的可用令牌的数量可能大大低于在另一较少使用的分区处的对应令牌桶中的可用令牌的数量。因此,在一些实施方案中,为了减少可能由于严重不对称工作负载而另外发生的工作请求拒绝的数量,用于不同分区的准入控制器180可以利用令牌共享协议诸如参考图16-图21所述的令牌共享协议,并且可以根据用于分区间令牌共享的定价策略而对拥有或使用这些分区的客户端针对令牌共享收费。图32是根据至少一些实施方案的可被实施用于工作目标的不同分区之间的令牌的定价转移的操作的各方面的流程图。
如图32的元素4601中所示,工作目标(诸如数据库表或逻辑卷)可以被配置为分区集合,各自具有用于准入控制的相应的令牌桶,诸如相应的正常模式桶集合和相应的突发模式桶集合。在所示实施方案中,因此可以将每个分区视为具有独立可配置准入控制参数的单独工作目标。定价管理器4080可以被配置成确定被施加到在不同分区的桶之间的令牌转移的定价策略(元素4604)。例如,可以基于客户端的输入或基于可配置参数来确定用于将来自分区P1处的突发模式令牌桶BB1的N个令牌转移到分区P2处的突发模式令牌桶BB2的定价策略。在不同实施方案中,可以基于各种类型的触发事件(诸如令牌数量降到低于阈值的检测、自最后一次调查对分区之间的令牌转移的需求以来已经过的具体时间量的检测、对工作请求的阈值拒绝率的检测等)的发生来实施此类令牌转移。如元素4608中所示,可以检测用于检查是否应当尝试分区间令牌转移的触发事件。
可以检查这些分区的子集或全部处的令牌数量以查看任意分区的令牌计数是否低于阈值T1。在所示实施方案中,如果找到这样一个分区“p”(如元素4612中所确定),并且不同分区“q”处的令牌数量被发现高于阈值T2(如元素4616中所确定),那么可以将某一数量的令牌从分区“q”转移到分区“p”(元素4620)。在某些情况下,可以发现令牌计数低于阈值T1的多个分区,和/或可以发现令牌数量高于T2的多个分区,在这种情况下,可以在多个源和接收桶对之间发起令牌转移。在一个实施方式中,例如,如果在对分区p、q、r和s处的当前令牌数量的给定检查期间,分区p和r被发现具有低于阈值T1的令牌数量,而分区q被发现具有T2+N个令牌,并且分区s并不具有足够的令牌来进行任意转移,那么可以将N/2个令牌增加到分区p和r,并且q的数量可以减少N。可以保持一个或多个转移的记录,并且最终可以基于这些记录和定价策略来产生针对转移对客户端收取的计费金额(元素4624)。在作出在分区之间转移令牌的决定(无论是正的还是负的)后,可以向前重复与元素4608相对应的操作,用于下一个触发事件和/或用于不同的源和目的地分区对。
如先前所述,在至少一些实施方案中,用于准入控制的令牌桶可以各自具有一组可配置参数,诸如再填充速率、最大令牌数量等。在一些实施方案中,客户端可能希望短时间或长时期改变与给定令牌桶相关的一个或多个参数。例如,客户端可能能够预期的是,在第二天或下星期期间可能随机发生工作请求的非常高的突发,并且可能希望进行额外付费以适应这样的突发。因此,在一些实施方案中,可以支持定价策略以改变令牌桶再填充速率和/或其它配置设置变化。图33是根据至少一些实施方案的针对令牌桶配置设置的定价变化可以实施的操作的各方面的流程图。如元素4701中所示,初始策略和参数可被配置用于一个或多个令牌桶,这些令牌桶包括正常模式和突发模式桶,例如,在工作目标被初始化时。可以确定用于桶的参数变化的定价策略(元素4704),并且可以告知客户端与改变这些参数相关的成本。可以接收改变用于指定一个或多个桶的一个或多个参数的请求,例如,以改变指定时间窗口期间的再填充速率或最大令牌数量(元素4708)。可以基于该请求来改变这些参数(元素4712)(例如,新的参数值可以用于时间窗口的持续时间,在该持续时间结束时可以再次施加初始值),并且最终可以基于所实施的参数变化和定价策略产生计费金额(元素4716)。
应当指出,在各种实施方案中,图10-15、图21、图25和图28-33的流程图中所示的操作可以以与所示不同的顺序执行和/或并行地执行。在一些实施方案中,可以省略本文所述操作中的一个或多个,和/或可以执行附图未示出的其它操作。
使用案例
基于令牌的准入控制和对突发模式操作的定价的上述技术可以用于多种不同的场景。例如,在一些数据库环境中,客户端可以具有非常大的(兆兆字节或千兆字节)表或表集,并且非常高的I/O速率可以在某些时间段(而非其它时间段)针对表。类似地,其它网络可访问服务(诸如通用存储服务、计算密集型服务端)也可能经历高工作负载的临时时期。一般来说,可能很难预料指向给定工作目标诸如数据库表的工作负载随时间推移的变化。客户端可能不希望为只是偶尔或很少发生的高工作负载级别付费。同时,虽然服务提供者可能不希望留出足够的资源以长时期处理非常高级别的工作请求,但提供者可能希望在可能的范围内支持到达速率的临时突发,而无需拒绝大量的请求或大幅增加客户请求的响应时间。通过使用本文所述的各种基于令牌的准入控制方法,提供者可能能够适应请求到达速率的绝大多数(即便不是全部)突发,而不会浪费资源。令牌共享技术的使用和共享资源的多余容量的公平分布还可以帮助客户端处理不均匀分布的工作请求到达速率。
对用于突发模式和/或正常模式操作的灵活的(例如,客户端所选择的)定价策略的支持可以增加客户端的信心,即它们的预算优先级可以得到满足,同时支持各种种类的不均匀工作负载。在令牌市场购买和销售令牌的能力可以增加以下这种可能性,即即使客户端偶尔做出不准确的工作负载预测,针对这种不准确的处罚也可以最小化。
说明性计算机系统
在至少一些实施方案中,实施本文所述技术(包括用以实施基于令牌的准入控制器、令牌分布器、定价管理器和/或各种工作目标的技术)中的一种或多种的一部分或全部的服务器可以包括通用计算机系统,该通用计算机系统包括或被配置成访问一个或多个计算机可访问介质。图34图示了此类通用计算装置8000。在所示实施方案中,计算装置8000包括通过输入/输出(I/O)接口8030耦合到系统存储器8020的一个或多个处理器8010。计算装置8000还包括耦合到I/O接口8030的网络接口8040。
在各种实施方案中,计算装置8000可为包括一个处理器8010的单处理器系统,或包括若干处理器8010(例如,两个、四个、八个或另一合适数量)的多处理器系统。处理器8010可为能够执行指令的任意合适的处理器。例如,在各种实施方案中,处理器8010可为实施多种指令集架构(ISA)诸如x86、PowerPC、SPARC或MIPSISA中的任一种或任意其它合适的ISA的通用或嵌入式处理器。在多处理器系统中,处理器8010中的每一个都可以通常但不一定实施同一ISA。
系统存储器8020可以被配置成存储可由处理器8010访问的指令和数据。在各种实施方案中,系统存储器8020可以使用任意合适的存储器技术来实施,诸如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/快闪型存储器或任意其它类型的存储器。在所示实施方案中,可以将实施一个或多个所需功能诸如以上描述的方法、技术和数据的程序指令和数据示为在系统存储器8020内存储为代码8025和数据8026。
在一个实施方案中,I/O接口8030可以被配置成在处理器8010、系统存储器8020与该装置中的任意外围装置之间协调I/O业务,这些外围装置包括网络接口8040或其它外围接口诸如用于存储数据对象分区的物理副本的各种类型的持续性和/或易失性存储装置。在一些实施方案中,I/O接口8030可以执行任意必要的协议、定时或其它数据转换以将来自一个组件(例如,系统存储器8020)的数据信号转换成适合由另一个组件(例如,处理器8010)使用的格式。例如,在一些实施方案中,I/O接口8030可以包括对通过各种类型的外围总线(诸如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变形)所附接的装置的支持。在一些实施方案中,I/O接口8030的功能可以例如分为两个或更多个单独组件,诸如北桥和南桥。而且,在一些实施方案中,可以使I/O接口8030诸如系统存储器8020的接口的一些或全部功能直接并入处理器8010中。
例如,网络接口8040可以被配置成允许在计算装置8000与附接到一个或多个网络8050的其它装置8060诸如图1a至图33所示的其它计算机系统或装置之间交换数据。例如,在各种实施方案中,网络接口8040可以通过任意合适的有线或无线通用数据网络诸如以太网类型来支持通信。另外,网络接口8040可以通过电信/电话网络诸如模拟语音网络或数字光纤通信网络,通过存储区域网络诸如光纤信道SAN,或通过任意其它合适类型的网络和/或协议来支持通信。
在一些实施方案中,系统存储器8020可为被配置成存储程序指令和数据的如上所述用于图1a至图33的计算机可访问介质的一个实施方案,用于实施对应方法和设备的实施方案。然而,在其它实施方案中,可以在不同类型的计算机可访问介质上接收、发送或存储程序指令和/或数据。一般来说,计算机可访问介质可以包括非暂时性存储介质或存储器介质诸如磁性或光学介质,例如,通过I/O接口8030耦合到计算装置8000的盘或DVD/CD。非暂时性计算机可访问存储介质还可以包括任意易失性或非易失性介质诸如RAM(例如,SDRAM、DDRSDRAM、RDRAM、SRAM等)、ROM等,这些介质可以作为系统存储器8020或另一种类型的存储器包括在计算装置8000的一些实施方案中。另外,计算机可访问介质可以包括传输介质或信号,通过通信介质诸如网络和/或无线链路传送,诸如电信号、电磁信号或数字信号,这些传输介质或信号诸如可通过网络接口8040实施。在各种实施方案中,诸如图34所示的多个计算装置的部分或全部可以用于实施所述功能;例如,在多种不同的装置和服务器上运行的软件组件可以合作以提供该功能。在一些实施方案中,除了或替代使用通用计算机系统来实施外,还可以使用存储装置、网络装置或专用计算机系统来实施所述功能的部分。本文所用的术语“计算装置”指的是至少所有这些类型的装置,并且并不限于这些类型的装置。
还可以根据以下条款来理解前述内容:
1.一种系统,其包括:
一个或多个计算装置,所述一个或多个计算装置被配置成:
配置第一工作目标和第二工作目标以响应于所接受的用于执行的工作请求来利用共享资源,其中所述第一工作目标具有第一规定吞吐率,所述第二工作目标具有第二规定吞吐率,并且所述共享资源具有吞吐量限制;
配置所述第一工作目标和所述第二工作目标以具有相应的令牌桶集合用于工作请求的准入控制,其中每个令牌桶集合均包括一个或多个桶,所述一个或多个桶的令牌数量用于确定是否接受用于执行的工作请求;
确定(a)指示工作请求在第一时间间隔期间在所述第一和第二工作目标处被接收的相对速率的到达速率比,(b)至少部分基于所述第一和第二规定吞吐率的规定吞吐比,以及(c)将在第二时间间隔期间分布在所述第一和第二工作目标的所述桶集合间用于准入控制的令牌的组合数量,其中所述组合数量是至少部分基于所述共享资源的所述吞吐量限制;
至少部分基于所述到达速率比和所述规定吞吐比来为所述第一工作目标的特定桶增加特定数量的令牌,所述特定数量不大于所述组合数量;以及
至少部分基于所述第一工作目标的所述特定桶的所述令牌数量来在所述第二时间间隔期间接受用于执行的指向所述第一工作目标的特定工作请求。
2.如条款1所述的系统,其中至少部分通过从所述共享资源的所述吞吐量限制减去所述第一和第二规定吞吐率的总和来确定令牌的所述组合数量。
3.如条款1所述的系统,其中所述第一工作目标的所述桶集合包括:正常模式桶,在正常操作模式期间针对准入控制来检查所述正常模式桶的令牌数量,其中所述工作请求到达速率小于阈值;和突发模式桶,在突发操作模式期间针对准入控制来检查所述突发模式桶的令牌数量,其中所述工作请求到达速率不小于所述阈值,并且其中所述特定桶包括所述突发模式桶。
4.如条款1所述的系统,其中所述第一工作目标包括由网络可访问服务所管理的第一存储对象的至少一部分,其中所述第二工作目标包括由所述网络可访问服务所管理的第二存储对象的至少一部分,并且其中所述共享资源包括存储有所述第一工作目标和所述第二工作目标的存储装置。
5.如条款1所述的系统,其中所述特定工作请求包括以下各项中的一者或多者:(a)读取操作,或(b)写入操作。
6.一种方法,其包括:
由一个或多个计算装置执行以下步骤:
配置第一工作目标和第二工作目标以响应于所接受的用于执行的工作请求来利用共享资源,其中所述第一工作目标具有第一规定吞吐率,并且所述第二工作目标具有第二规定吞吐率;
配置所述第一工作目标和所述第二工作目标以具有相应的令牌桶集合用于工作请求的准入控制,其中每个令牌桶集合均包括一个或多个桶,所述一个或多个桶的令牌数量用于确定是否接受用于执行的工作请求;
确定(a)指示第一时间间隔期间所述第一和所述第二工作目标处的工作请求到达速率的第一度量,和(b)与所述第一和第二规定吞吐率相关的第二度量;
至少部分基于所述第一度量、所述第二度量和所述共享资源的吞吐量限制来为所述第一工作目标的特定桶增加特定数量的令牌;以及
至少部分基于所述第一工作目标的所述特定桶的所述令牌数量来在第二时间间隔期间接受用于执行的指向所述第一工作目标的特定工作请求。
7.如条款6所述的方法,其还包括由所述一个或多个计算装置执行以下步骤:
至少部分基于所述共享资源的所述吞吐量限制来确定将分布在所述第一和第二工作目标的所述桶集合间的令牌的组合数量,其中令牌的所述特定数量不大于所述组合数量。
8.如条款7所述的方法,其中至少部分通过从所述共享资源的所述吞吐量限制中减去所述第一和第二规定吞吐率的总和来确定令牌的所述组合数量。
9.如条款6所述的方法,其中所述第一工作目标的所述桶集合包括:正常模式桶,在正常操作模式期间针对准入控制来检查所述正常模式桶的令牌数量,其中所述工作请求到达速率小于阈值;和突发模式桶,在突发操作模式期间针对准入控制来检查所述突发模式桶的令牌数量,其中所述工作请求到达速率不小于所述阈值,并且其中所述特定桶包括所述突发模式桶。
10.如条款6所述的方法,其中所述第一工作目标包括由网络可访问服务所管理的第一存储对象的至少一部分,其中所述第二工作目标包括由所述网络可访问服务所管理的第二存储对象的至少一部分,并且其中所述共享资源包括存储有所述第一工作目标和所述第二工作目标的存储装置。
11.如条款6所述的方法,其中所述第一工作目标包括由网络可访问多租户数据库服务所管理的第一表分区的至少一部分,并且其中所述第二工作目标包括由所述网络可访问多租户数据库服务所管理的第二表的至少一部分。
12.如条款6所述的方法,其中所述共享资源包括软件模块的数据结构。
13.如条款6所述的方法,其中所述特定工作请求包括以下各项中的一者或多者:(a)读取操作,或(b)写入操作。
14.如条款6所述的方法,其还包括由所述一个或多个计算装置执行以下步骤:
至少部分基于所述第一度量、所述第二度量和所述吞吐量限制的特定函数来确定令牌的所述特定数量;
监视与所述第一和第二工作目标相关的一个或多个附加度量;以及
至少部分基于所述一个或多个附加度量来修改所述特定函数。
15.一种存储程序指令的非暂时性计算机可访问存储介质,所述程序指令在一个或多个处理器上执行时:
配置第一工作目标和第二工作目标以响应于所接受的用于执行的工作请求来利用共享资源,其中所述第一工作目标具有第一规定吞吐率,并且所述第二工作目标具有第二规定吞吐率;
配置所述第一工作目标和所述第二工作目标以具有相应的令牌桶集合用于工作请求的准入控制,其中每个令牌桶集合均包括一个或多个桶,所述一个或多个桶的令牌数量用于确定是否接受用于执行的工作请求;
确定(a)指示第一时间间隔期间所述第一和所述第二工作目标处的工作请求到达速率的第一度量,和(b)与所述第一和第二规定吞吐率相关的第二度量;
至少部分基于所述第一度量、所述第二度量和所述共享资源的吞吐量限制来为所述第一工作目标的特定桶增加特定数量的令牌;以及
至少部分基于所述第一工作目标的所述特定桶的所述令牌数量来在第二时间间隔期间接受用于执行的指向所述第一工作目标的特定工作请求。
16.如条款15所述的非暂时性计算机可访问存储介质,其中所述指令在所述一个或多个处理器上执行时:
至少部分基于所述共享资源的所述吞吐量限制来确定将分布在所述第一和第二工作目标的所述桶集合间的令牌的组合数量,其中令牌的所述特定数量不大于所述组合数量。
17.如条款15所述的非暂时性计算机可访问存储介质,其中所述第一工作目标的所述桶集合包括:正常模式桶,在正常操作模式期间针对准入控制来检查所述正常模式桶的令牌数量,其中所述工作请求到达速率小于阈值;和突发模式桶,在突发操作模式期间针对准入控制来检查所述突发模式桶的令牌数量,其中所述工作请求到达速率不小于所述阈值,并且其中所述特定桶包括所述突发模式桶。
18.如条款15所述的非暂时性计算机可访问存储介质,其中所述第一工作目标包括由网络可访问服务所管理的第一存储对象的至少一部分,其中所述第二工作目标包括由所述网络可访问服务所管理的第二存储对象的至少一部分,并且其中所述共享资源包括存储有所述第一工作目标和所述第二工作目标的存储装置。
19.如条款15所述的非暂时性计算机可访问存储介质,其中所述共享资源包括在操作系统中实施的逻辑资源。
20.如条款15所述的非暂时性计算机可访问存储介质,其中所述特定工作请求包括以下各项中的一者或多者:(a)读取操作,或(b)写入操作。
还可以根据以下条款来理解前述内容:
1.一种系统,其包括:
一个或多个计算装置,所述一个或多个计算装置被配置成:
例示与工作目标处的工作负载管理相关的一个或多个令牌桶,其中所述工作目标被配置成在具有相应的准入控制参数集的多种操作模式下操作以用于接受用于执行的工作请求,并且其中至少部分基于所述一个或多个令牌桶中的至少一个桶的令牌数量作出接受工作请求的决定;
确定被施加到所述一个或多个令牌桶中的特定令牌桶的令牌定价策略,其中所述令牌定价策略指示(a)用于所述令牌定价策略的一个或多个适用性标准,包括在其间施加所述令牌定价策略的所述多种操作模式中的至少突发操作模式的识别,和(b)针对所述特定令牌桶的令牌数量的变化对客户端收取的定价金额;
在一个时间段内记录所述特定令牌桶的所述令牌数量的一个或多个变化,其中在所述工作目标的突发操作模式期间发生所述一个或多个变化,在所述突发操作模式期间,所述一个或多个适用性标准得到满足;以及
至少部分基于在所述一个时间段内所记录的所述一个或多个变化来产生对所述客户端收取的计费金额。
2.如条款1所述的系统,其中所述一个或多个令牌桶包括:正常模式桶,其令牌数量用于确定所述工作目标的操作模式;和一个或多个突发模式桶,其令牌数量用于确定在所述突发操作模式期间是否接受工作请求,其中特定令牌桶包括所述一个或多个突发模式桶中的突发模式桶。
3.如条款2所述的系统,其中所述一个或多个突发模式桶包括:本地突发限制桶,其令牌数量指示所述工作目标处的所述可用吞吐量;和共享资源容量桶,其令牌数量指示由多个工作目标所共享的资源处的可用吞吐量,其中所述特定桶包括所述共享容量桶,并且其中所述一个或多个适用性标准的特定适用性标准指示,响应于所述本地突发限制桶的所述令牌数量不大于指定阈值的确定施加所述定价策略。
4.如条款1所述的系统,其中所述特定令牌桶的所述令牌数量的所述变化包括由于一个或多个令牌被消耗以接受所接收的用于执行的工作请求而造成的所述令牌数量的减少。
5.如条款1所述的系统,其中所述特定令牌桶的所述令牌数量的所述变化包括由于一个或多个令牌响应于使用令牌市场所实施的令牌销售操作而转移到不同桶所造成的所述令牌数量的减少。
6.一种方法,其包括:
由一个或多个计算装置执行以下步骤,
例示与工作目标处的工作负载管理相关的一个或多个令牌桶,其中至少部分基于所述一个或多个令牌桶中的至少一个桶的令牌数量作出接受指向所述工作目标的工作请求的决定;
确定在所述工作目标的突发操作模式期间施加到所述一个或多个令牌桶中的特定令牌桶的令牌定价策略,其中所述令牌定价策略指示针对所述特定令牌桶的令牌数量的变化对客户端收取的定价金额;
在一个时间段内记录所述特定令牌桶的所述令牌数量的一个或多个变化,其中在所述突发操作模式期间实施所述一个或多个变化;以及
至少部分基于在所述一个时间段内所记录的所述一个或多个变化来产生对所述客户端收取的计费金额。
7.如条款6所述的方法,其中所述一个或多个令牌桶包括:正常模式桶,其令牌数量用于确定所述工作目标的操作模式;和一个或多个突发模式桶,其令牌数量用于确定在所述突发操作模式期间是否接受工作请求,其中特定令牌桶包括所述一个或多个突发模式桶中的突发模式桶。
8.如条款7所述的方法,其中所述一个或多个突发模式桶包括:本地突发限制桶,其令牌数量指示所述工作目标处的所述吞吐量;和共享资源容量桶,其令牌数量指示由多个工作目标所共享的资源处的可用吞吐量,其中所述特定桶包括所述共享容量桶,并且其中根据所述定价策略,所述方法还包括由所述一个或多个计算装置执行以下步骤:
响应于确定所述本地突发限制桶的所述令牌数量满足阈值标准,向所述共享资源容量桶的令牌数量的特定变化施加所述定价策略。
9.如条款6所述的方法,其中所述特定令牌桶的所述令牌数量的所述变化包括由于一个或多个令牌被消耗以接受所接收的用于执行的工作请求而造成的所述令牌数量的减少。
10.如条款6所述的方法,其中所述特定令牌桶的所述令牌数量的所述变化包括由于一个或多个令牌响应于使用令牌市场所实施的令牌销售操作而转移到不同桶所造成的所述令牌数量的减少。
11.如条款10所述的方法,其还包括由所述一个或多个计算装置执行以下步骤:
实施一个或多个程序设计接口,使得特定客户端能够通过所述令牌市场指示所述特定令牌桶的令牌可供用于转移到另一个令牌桶。
12.如条款11所述的方法,其中所述令牌定价策略指示,至少部分基于被接收用于所述转移的一个或多个拍卖竞价来确定对令牌从所述特定桶到不同桶的转移收取的金额。
13.如条款6所述的方法,其还包括由所述一个或多个计算装置执行以下步骤:
实施一个或多个程序设计接口,使得客户端能够从多个令牌定价策略间选择令牌定价策略。
14.如条款6所述的方法,其中所述定价策略指示客户端指定的预算限制,所述方法还包括由所述一个或多个计算装置执行以下步骤:
至少部分基于所述客户端指定的预算限制来确定实施所述特定令牌桶的所述数量的变化。
15.如条款6所述的方法,其中所述工作目标包括存储对象的第一分区,其中所述存储对象包括至少所述第一分区;和第二分区,其中所述特定桶的所述令牌数量的所述一个或多个变化中的特定变化是令牌从所述特定桶转移到不同桶用于所述第二分区的工作负载管理所造成的结果。
16.一种存储程序指令的非暂时性计算机可访问存储介质,所述程序指令在一个或多个处理器上执行时:
确定被施加到用于工作目标处的准入控制决定的一个或多个令牌桶中的特定令牌桶的令牌定价策略,其中将在所述工作目标的突发操作模式期间施加所述令牌定价策略,并且其中所述令牌定价策略指示针对所述特定令牌桶的令牌数量的变化对客户端收费的定价金额;
在一个时间段内记录在所述突发操作模式期间所述特定令牌桶的所述令牌数量的一个或多个变化;以及
至少部分基于在所述一个时间段内所记录的所述一个或多个变化来产生对所述客户端收取的计费金额。
17.如条款16所述的非暂时性计算机可访问存储介质,其中所述一个或多个令牌桶包括:正常模式桶,其令牌数量用于确定在所述工作目标的正常操作模式期间是否接受工作请求;和一个或多个突发模式桶,其令牌数量用于确定在所述突发操作模式期间是否接受工作请求,其中所述特定令牌桶包括所述一个或多个突发模式桶中的突发模式桶,并且其中所述指令在所述一个或多个处理器上执行时:
确定被施加到所述正常模式桶的令牌数量变化的不同令牌定价策略。
18.如条款17所述的非暂时性计算机可访问存储介质,其中所述一个或多个突发模式桶包括:本地突发限制桶,其令牌数量指示所述工作目标处的可用吞吐量;和共享资源容量桶,其令牌数量指示由多个工作目标所共享的资源处的可用吞吐量,其中所述特定桶包括所述共享容量桶,并且其中根据所述定价策略,所述指令在所述一个或多个处理器上执行时:
响应于所述本地突发限制桶的所述令牌数量满足阈值标准的确定,向所述共享资源容量桶的令牌数量的特定变化施加所述定价策略。
19.如条款16所述的非暂时性计算机可访问存储介质,其中所述特定令牌桶的所述令牌数量的所述变化包括由于一个或多个令牌响应于使用令牌市场所实施的令牌销售操作而转移到不同桶所造成的所述令牌数量的减少。
20.如条款16所述的非暂时性计算机可访问存储介质,其中所述特定桶被配置有令牌再填充速率和最大令牌数量限制,其中所述定价策略包括针对以下各项中的至少一者的变化对所述客户端收取的不同金额的指示:(a)所述令牌再填充速率,或(b)所述最大令牌数量限制。
还可以根据以下条款来理解前述内容:
1.一种系统,其包括:
一个或多个计算装置,所述一个或多个计算装置被配置成:
接收指向工作目标的工作请求;
响应于与所述工作目标相关的正常模式令牌桶的令牌数量满足第一阈值标准的确定,根据正常模式令牌消耗策略从所述正常模式令牌桶中消耗一个或多个令牌,并且接受所述用于执行的工作请求;以及
响应于所述正常模式令牌桶的所述令牌数量不满足所述第一阈值标准的确定,
确定突发模式令牌桶集合中的至少一个桶的令牌数量是否满足第二阈值标准;
响应于所述突发模式令牌桶集合中的所述至少一个桶的所述令牌数量满足所述第二阈值标准的确定,至少部分基于突发模式令牌消耗策略来从所述突发模式令牌桶集合中的所述至少一个桶中消耗一个或多个令牌,并且接受所述用于执行的工作请求,以及
响应于所述突发模式桶集合中的所述至少一个桶的所述令牌数量不满足所述第二阈值标准的确定,拒绝所述工作请求。
2.如条款1所述的系统,其中所述一个或多个计算装置还被配置成:
向所述工作目标分配规定吞吐量,所述规定吞吐量指示将在正常操作模式期间在所述工作目标处执行的工作操作的最大速率;
至少部分基于所述规定吞吐量来使所述正常模式令牌桶以一定速率再填充;以及
至少部分基于所述规定吞吐量来使所述突发模式令牌桶集合中的至少一个桶以另一个速率再填充。
3.如条款1所述的系统,其中所述一个或多个计算装置还被配置成:
响应于在接收工作请求的平均速率小于专用于所述工作目标的规定速率的特定时间段结束时,一个或多个工作令牌保持在所述正常模式令牌桶中的确定,至少部分基于保持在所述正常模式令牌桶中的工作令牌的所述数量来使所述突发模式令牌桶集合中的至少一个桶的所述令牌数量增加一定量。
4.如条款1所述的系统,其中所述突发模式桶集合包括:本地突发限制令牌桶,其最大令牌数量指示针对所述工作目标处的工作操作所支持的最大突发速率;和共享资源令牌桶,其令牌数量指示由多个工作对象所共享的资源的可用吞吐量,其中响应于所述正常模式令牌桶的所述令牌数量不满足所述第一阈值标准的所述确定,所述一个或多个计算装置还被配置成:
响应于确定所述本地突发限制令牌桶的所述令牌数量超过零并且所述共享资源令牌桶的所述令牌数量超过零来接受所述用于执行的工作请求。
5.如条款1所述的系统,所述一个或多个计算装置还被配置成:
在接受所述用于执行的工作请求之前,产生响应于所述工作请求而执行的工作量的估计值;
在接受所述工作请求之后,确定与所述工作请求相对应的执行的所述工作量;以及
响应于所述所执行工作量与估计值之间的差值的确定,至少部分基于所述差值来修改以下各项中的一者或多者中的至少一个桶的所述令牌数量:(a)所述突发模式令牌桶集合或(b)所述突发模式令牌桶集合。
6.一种方法,其包括:
由一个或多个计算装置执行以下步骤:
接收指向工作目标的工作请求;
确定与所述工作目标相关的正常模式令牌桶的令牌数量;以及
响应于确定所述正常模式令牌桶的所述令牌数量满足第一阈值标准,
确定与所述工作目标相关的突发模式令牌桶集合中的至少一个桶的所述令牌数量满足第二阈值标准,
接受所述用于执行的工作请求;以及
至少部分基于突发模式令牌消耗策略来修改所述突发模式令牌桶集合中的至少一个桶的所述令牌数量。
7.如条款6所述的方法,其还包括由所述一个或多个计算装置执行以下步骤:
向所述工作目标分配规定吞吐量,所述规定吞吐量指示将在正常操作模式期间在所述工作目标处执行的工作操作的最大速率;
至少部分基于所述规定吞吐量来使所述正常模式令牌桶以一定速率再填充;以及
至少部分基于所述规定吞吐量来使所述突发模式令牌桶集合中的至少一个桶以不同速率再填充。
8.如条款6所述的方法,其还包括由所述一个或多个计算装置执行以下步骤:
响应于在所述工作目标以正常模式操作的特定时间段结束时,一个或多个工作令牌保持在所述正常模式令牌桶中的确定,至少部分基于保持在所述正常模式令牌桶中的工作令牌的所述数量来使所述突发模式令牌桶集合中的至少一个桶的所述令牌数量增加一定量。
9.如条款6所述的方法,其中所述突发模式桶集合包括:本地突发限制令牌桶,其最大令牌数量指示针对所述工作目标处的工作操作所支持的最大突发速率;和共享资源令牌桶,其令牌数量指示由多个工作对象所共享的资源的可用吞吐量,其中响应于所述正常模式令牌桶的所述令牌数量满足第一阈值标准的所述确定,所述方法还包括由所述一个或多个计算装置执行以下步骤:
响应于确定所述本地突发限制令牌桶的所述令牌数量超过零并且所述共享资源令牌桶的所述令牌数量超过零来接受所述用于执行的工作请求。
10.如条款6所述的方法,其还包括由所述一个或多个计算装置执行以下步骤:
在接受所述用于执行的工作请求之前,产生响应于所述工作请求而执行的工作量的估计值;
在所述发起之后,确定与所述工作请求相对应的执行的所述工作量;以及
响应于确定所述工作量与所述估计值之间的差值,至少部分基于所述差值来修改以下各项中的一者或多者中的至少一个桶的所述令牌数量:(a)所述突发模式令牌桶集合或(b)所述突发模式令牌桶集合。
11.如条款6所述的方法,其中所述工作目标包括存储对象的至少一部分,其中所述工作请求包括以下各项中的至少一者:(a)读取操作或(b)写入操作。
12.如条款6所述的方法,其中所述突发模式桶集合包括读取突发令牌桶,所述读取突发令牌桶用于对包括读取操作的工作请求的准入控制;和写入突发令牌桶,所述写入突发令牌桶用于对包括写入操作的工作请求的准入控制。
13.如条款6所述的方法,其还包括由所述一个或多个计算装置执行以下步骤:
在一个时间段内监视工作请求到达速率;以及
至少部分基于监视所述工作请求到达速率而得到的结果来修改所述突发模式令牌桶集合中的至少一个桶的最大令牌数量限制。
14.如条款6所述的方法,其还包括由所述一个或多个计算装置执行以下步骤:
向客户端提供与所述工作目标处的突发模式操作相关的定价策略的指示;以及
至少部分基于根据所述定价策略从客户端接收的突发模式容量增加请求来修改所述突发模式令牌桶集合中的至少一个桶的最大令牌数量限制。
15.一种存储程序指令的非暂时性计算机可访问存储介质,所述程序指令在一个或多个处理器上执行时:
接收指向工作目标的工作请求;以及
至少部分基于第一阈值标准,响应于所述工作目标呈突发操作模式的确定,
确定与所述工作目标相关的突发模式令牌桶集合中的至少一个桶的所述令牌数量满足第二阈值标准;以及
接受所述用于执行的工作请求。
16.如条款15所述的非暂时性计算机可访问存储介质,其中所述程序指令在一个或多个处理器上执行时
向所述工作目标分配规定吞吐量,所述规定吞吐量指示将在正常操作模式期间在所述工作目标处执行的工作操作的最大速率;
至少部分基于所述规定吞吐量来使与所述工作目标相关的正常模式令牌桶以一定速率再填充,其中所述第一阈值标准是至少部分基于所述正常模式令牌桶的令牌数量;以及
至少部分基于所述规定吞吐量来使所述突发模式令牌桶集合中的至少一个桶以另一个速率再填充。
17.如条款15所述的非暂时性计算机可访问存储介质,其中所述指令在所述一个或多个处理器上执行时:
响应于在特定时间段结束时,一个或多个工作令牌保持在与所述工作目标相关的正常模式令牌桶中的确定,至少部分基于保持在所述正常模式令牌桶中的工作令牌的所述数量来使所述突发模式令牌桶集合中的至少一个桶的所述令牌数量增加一定量。
18.如条款15所述的非暂时性计算机可访问存储介质,其中所述突发模式桶集合包括:本地突发限制令牌桶,其最大令牌数量指示针对所述工作目标处的工作操作所支持的最大突发速率;和共享资源令牌桶,其令牌数量指示由多个工作对象所共享的资源的可用吞吐量,其中响应于满足所述第一阈值标准的所述确定,所述指令在所述一个或多个处理器上执行时:
响应于确定所述本地突发限制令牌桶的所述令牌数量超过零并且所述共享资源令牌桶的所述令牌数量超过零来接受所述用于执行的工作请求。
19.如条款15所述的非暂时性计算机可访问存储介质,其中所述指令在所述一个或多个处理器上执行时:
响应于所述突发模式令牌桶集合中的所述至少一个桶的所述令牌数量满足所述第二阈值标准的确定,根据令牌消耗策略从所述至少一个桶中消耗至少一个令牌。
20.如条款15所述的非暂时性计算机可访问存储介质,其中所述工作目标包括数据库表的分区的至少一部分,其中所述工作请求包括以下各项中的至少一者:(a)读取操作或(b)写入操作。
结论
各种实施方案还可以包括接收、发送或存储根据上文关于计算机可访问介质的描述而实施的指令和/或数据。一般来说,计算机可访问介质可以包括存储介质或存储器介质诸如磁性介质或光学介质(例如磁盘或DVD/CD-ROM)、易失性或非易失性介质诸如RAM(例如,SDRAM、DDR、RDRAM、SRAM等)、ROM等,以及通过通信介质诸如网络和/或无线链路传送的传输介质或信号诸如电信号、电磁信号或数字信号。
如图所示且如本文所述的各种方法表示示例性方法实施方案。这些方法可以软件、硬件或其组合来实施。可以改变方法的次序,并且可以对各个元素进行增加、重排序、组合、省略、修改等。
也可以做出对受益于本公开内容的本领域技术人员来说明显的各种改进和改变。本公开旨在包括所有这些修改和变化,而且因此以上说明书被认为是说明性的而非限制意义。

Claims (15)

1.一种系统,其包括:
一个或多个计算装置,所述一个或多个计算装置被配置成:
接收指向工作目标的工作请求;
响应于与所述工作目标相关的正常模式令牌桶的令牌数量满足第一阈值标准的确定,根据正常模式令牌消耗策略从所述正常模式令牌桶中消耗一个或多个令牌,并且接受所述用于执行的工作请求;以及
响应于所述正常模式令牌桶的所述令牌数量不满足所述第一阈值标准的确定,
确定突发模式令牌桶集合中的至少一个桶的令牌数量是否满足第二阈值标准;
响应于所述突发模式令牌桶集合中的所述至少一个桶的所述令牌数量满足所述第二阈值标准的确定,至少部分基于突发模式令牌消耗策略来从所述突发模式令牌桶集合中的所述至少一个桶中消耗一个或多个令牌,并且接受所述用于执行的工作请求,以及
响应于所述突发模式令牌桶集合中的所述至少一个桶的所述令牌数量不满足所述第二阈值标准的确定,拒绝所述工作请求。
2.如权利要求1所述的系统,其中所述一个或多个计算装置还被配置成:
向所述工作目标分配规定吞吐量,所述规定吞吐量指示将在正常操作模式期间在所述工作目标处执行的工作操作的最大速率;
至少部分基于所述规定吞吐量来使所述正常模式令牌桶以一定速率再填充;以及
至少部分基于所述规定吞吐量来使所述突发模式令牌桶集合中的至少一个桶以另一个速率再填充。
3.如权利要求1所述的系统,其中所述一个或多个计算装置还被配置成:
响应于在接收工作请求的平均速率小于专用于所述工作目标的规定速率的特定时间段结束时,一个或多个工作令牌保持在所述正常模式令牌桶中的确定,至少部分基于保持在所述正常模式令牌桶中的工作令牌的所述数量来使所述突发模式令牌桶集合中的至少一个桶的所述令牌数量增加一定量。
4.如权利要求1所述的系统,其中所述突发模式桶集合包括:本地突发限制令牌桶,其最大令牌数量指示针对所述工作目标处的工作操作所支持的最大突发速率;和共享资源令牌桶,其令牌数量指示由多个工作对象所共享的资源的可用吞吐量,其中响应于所述正常模式令牌桶的所述令牌数量不满足所述第一阈值标准的所述确定,所述一个或多个计算装置还被配置成:
响应于确定所述本地突发限制令牌桶的所述令牌数量超过零并且所述共享资源令牌桶的所述令牌数量超过零来接受所述用于执行的工作请求。
5.如权利要求1所述的系统,所述一个或多个计算装置还被配置成:
在接受所述用于执行的工作请求之前,产生响应于所述工作请求而执行的工作量的估计值;
在接受所述工作请求之后,确定与所述工作请求相对应的执行的所述工作量;以及
响应于所述所执行工作量与估计值之间的差值的确定,至少部分基于所述差值来修改以下各项中的一者或多者中的至少一个桶的所述令牌数量:(a)所述突发模式令牌桶集合或(b)所述突发模式令牌桶集合。
6.一种方法,其包括:
由一个或多个计算装置执行以下步骤:
接收指向工作目标的工作请求;
确定与所述工作目标相关的正常模式令牌桶的令牌数量;以及
响应于确定所述正常模式令牌桶的所述令牌数量满足第一阈值标准,
确定与所述工作目标相关的突发模式令牌桶集合中的至少一个桶的所述令牌数量满足第二阈值标准,
接受所述用于执行的工作请求;以及
至少部分基于突发模式令牌消耗策略来修改所述突发模式令牌桶集合中的至少一个桶的所述令牌数量。
7.如权利要求6所述的方法,其还包括由所述一个或多个计算装置执行以下步骤:
向所述工作目标分配规定吞吐量,所述规定吞吐量指示将在正常操作模式期间在所述工作目标处执行的工作操作的最大速率;
至少部分基于所述规定吞吐量来使所述正常模式令牌桶以一定速率再填充;以及
至少部分基于所述规定吞吐量来使所述突发模式令牌桶集合中的至少一个桶以不同速率再填充。
8.如权利要求6所述的方法,其还包括由所述一个或多个计算装置执行以下步骤:
响应于在所述工作目标以正常模式操作的特定时间段结束时,一个或多个工作令牌保持在所述正常模式令牌桶中的确定,至少部分基于保持在所述正常模式令牌桶中的工作令牌的所述数量来使所述突发模式令牌桶集合中的至少一个桶的所述令牌数量增加一定量。
9.如权利要求6所述的方法,其中所述突发模式桶集合包括:本地突发限制令牌桶,其最大令牌数量指示针对所述工作目标处的工作操作所支持的最大突发速率;和共享资源令牌桶,其令牌数量指示由多个工作对象所共享的资源的可用吞吐量,其中响应于所述正常模式令牌桶的所述令牌数量满足第一阈值标准的所述确定,所述方法还包括由所述一个或多个计算装置执行以下步骤:
响应于确定所述本地突发限制令牌桶的所述令牌数量超过零并且所述共享资源令牌桶的所述令牌数量超过零来接受所述用于执行的工作请求。
10.如权利要求6所述的方法,其还包括由所述一个或多个计算装置执行以下步骤:
在接受所述用于执行的工作请求之前,产生响应于所述工作请求而执行的工作量的估计值;
在所述发起之后,确定与所述工作请求相对应的执行的所述工作量;以及
响应于确定所述工作量与所述估计值之间的差值,至少部分基于所述差值来修改以下各项中的一者或多者中的至少一个桶的所述令牌数量:(a)所述突发模式令牌桶集合或(b)所述突发模式令牌桶集合。
11.如权利要求6所述的方法,其中所述工作目标包括存储对象的至少一部分,其中所述工作请求包括以下各项中的至少一者:(a)读取操作或(b)写入操作。
12.如权利要求6所述的方法,其中所述突发模式桶集合包括:读取突发令牌桶,所述读取突发令牌桶用于对包括读取操作的工作请求的准入控制;和写入突发令牌桶,所述写入突发令牌桶用于对包括写入操作的工作请求的准入控制。
13.如权利要求6所述的方法,其还包括由所述一个或多个计算装置执行以下步骤:
在一个时间段内监视工作请求到达速率;以及
至少部分基于监视所述工作请求到达速率而得到的结果来修改所述突发模式令牌桶集合中的至少一个桶的最大令牌数量限制。
14.如权利要求6所述的方法,其还包括由所述一个或多个计算装置执行以下步骤:
向客户端提供与所述工作目标处的突发模式操作相关的定价策略的指示;以及
至少部分基于根据所述定价策略从客户端接收的突发模式容量增加请求来修改所述突发模式令牌桶集合中的至少一个桶的最大令牌数量限制。
15.一种系统,其包括:
一个或多个处理器;以及
一个或多个存储器,所述一个或多个存储器存储程序指令,所述程序指令在一个或多个处理器上执行时:
接收指向工作目标的工作请求;以及
至少部分基于第一阈值标准,响应于所述工作目标呈突发操作模式的确定,
确定与所述工作目标相关的突发模式令牌桶集合中的至少一个桶的所述令牌数量满足第二阈值标准;以及
接受所述用于执行的工作请求。
CN201480042366.3A 2013-06-25 2014-06-25 突发模式控制 Active CN105409171B (zh)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US13/926,684 US9553821B2 (en) 2013-06-25 2013-06-25 Equitable distribution of excess shared-resource throughput capacity
US13/926,694 US10764185B2 (en) 2013-06-25 2013-06-25 Token-based policies burst-mode operations
US13/926,697 2013-06-25
US13/926,697 US9385956B2 (en) 2013-06-25 2013-06-25 Compound token buckets for burst-mode admission control
US13/926,686 2013-06-25
US13/926,708 2013-06-25
US13/926,694 2013-06-25
US13/926,686 US9471393B2 (en) 2013-06-25 2013-06-25 Burst-mode admission control using token buckets
US13/926,684 2013-06-25
US13/926,708 US9218221B2 (en) 2013-06-25 2013-06-25 Token sharing mechanisms for burst-mode operations
PCT/US2014/044188 WO2014210221A1 (en) 2013-06-25 2014-06-25 Burst mode control

Publications (2)

Publication Number Publication Date
CN105409171A true CN105409171A (zh) 2016-03-16
CN105409171B CN105409171B (zh) 2019-03-29

Family

ID=52142660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480042366.3A Active CN105409171B (zh) 2013-06-25 2014-06-25 突发模式控制

Country Status (8)

Country Link
EP (1) EP3014804B1 (zh)
JP (2) JP6247388B2 (zh)
KR (4) KR101826969B1 (zh)
CN (1) CN105409171B (zh)
AU (2) AU2014302426B2 (zh)
CA (1) CA2915996C (zh)
SG (2) SG10201709194PA (zh)
WO (1) WO2014210221A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108270744A (zh) * 2016-12-30 2018-07-10 北京国双科技有限公司 媒体数据访问方法及装置
CN108573013A (zh) * 2017-12-08 2018-09-25 北京金山云网络技术有限公司 请求处理方法、装置、电子设备及计算机可读存储介质
CN108667744A (zh) * 2018-02-26 2018-10-16 华为技术有限公司 流量控制方法及装置
WO2019096046A1 (zh) * 2017-11-16 2019-05-23 阿里巴巴集团控股有限公司 数据处理系统、方法及令牌管理方法
CN110413209A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 管理存储系统的方法和设备
CN112600761A (zh) * 2020-12-11 2021-04-02 腾讯科技(深圳)有限公司 一种资源分配的方法、装置及存储介质
CN113468214A (zh) * 2020-03-30 2021-10-01 阿里巴巴集团控股有限公司 数据库访问控制方法、装置、电子设备及可读存储介质
CN114860334A (zh) * 2022-04-24 2022-08-05 曙光信息产业(北京)有限公司 虚拟机启动风暴的处理方法、装置、设备及介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6724631B2 (ja) * 2016-07-27 2020-07-15 富士ゼロックス株式会社 情報処理装置及びプログラム
US20180097817A1 (en) * 2016-09-30 2018-04-05 Microsoft Technology Licensing, Llc Generating short-term signatures for accessing cloud storage
EP3791668A1 (en) * 2018-05-08 2021-03-17 IDAC Holdings, Inc. Methods for logical channel prioritization and traffic shaping in wireless systems
FI20215093A1 (en) * 2021-01-28 2022-07-29 Nokia Solutions & Networks Oy Apparatus and method for scheduling traffic
CN113422736B (zh) * 2021-06-16 2022-06-14 中移(杭州)信息技术有限公司 基于令牌桶的请求管理方法、装置、设备及存储介质
JP2023032752A (ja) * 2021-08-27 2023-03-09 株式会社日立製作所 管理装置、方法、およびプログラム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944789A (en) * 1996-08-14 1999-08-31 Emc Corporation Network file server maintaining local caches of file directory information in data mover computers
WO1999065185A2 (en) * 1998-06-05 1999-12-16 British Telecommunications Public Limited Company Communications network with tariff based on network load
US6337865B1 (en) * 1998-09-23 2002-01-08 Maxtor Corporation Fair buffer credit distribution flow control
US6738813B1 (en) * 2000-09-11 2004-05-18 Mercury Interactive Corporation System and method for monitoring performance of a server system using otherwise unused processing capacity of user computing devices
GB0113844D0 (en) * 2001-06-07 2001-08-01 Marconi Comm Ltd Real time processing
JP3904922B2 (ja) 2001-12-28 2007-04-11 株式会社日立製作所 トラヒックシェーパーおよび集線装置
US7307949B1 (en) * 2002-11-19 2007-12-11 Juniper Networks, Inc. Hierarchical policers for enforcing differentiated traffic behavior
JP2007501097A (ja) * 2003-06-13 2007-01-25 ダウ グローバル テクノロジーズ インコーポレイティド 変性植物油ポリオールを含む高性能ポリウレタンカーペットバッキング
JP4036799B2 (ja) 2003-07-29 2008-01-23 京セラ株式会社 通信装置
JP4710559B2 (ja) 2005-11-15 2011-06-29 Kddi株式会社 トークンバッファサイズを制御する通信端末及びシステム
US20070147404A1 (en) * 2005-12-27 2007-06-28 Lucent Technologies, Inc. Method and apparatus for policing connections using a leaky bucket algorithm with token bucket queuing
WO2007149744A2 (en) * 2006-06-19 2007-12-27 Liquid Computing Corporation Secure handle for intra-and inter-processor communications
US7760641B2 (en) 2006-07-10 2010-07-20 International Business Machines Corporation Distributed traffic shaping across a cluster
US20080077932A1 (en) * 2006-09-25 2008-03-27 International Business Machines Corporation Mechanism for Automatically Managing the Resource Consumption of Transactional Workloads
US7948882B2 (en) * 2006-10-09 2011-05-24 Agere Systems Inc. Dual leaky bucket flow control method and system
US20110078303A1 (en) * 2009-09-30 2011-03-31 Alcatel-Lucent Usa Inc. Dynamic load balancing and scaling of allocated cloud resources in an enterprise network
US8190593B1 (en) * 2010-04-14 2012-05-29 A9.Com, Inc. Dynamic request throttling
US8542594B2 (en) * 2010-06-28 2013-09-24 Kddi Corporation Traffic control method and apparatus for wireless communication
CN102299861B (zh) * 2011-09-22 2015-09-02 迈普通信技术股份有限公司 一种报文流量控制方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108270744A (zh) * 2016-12-30 2018-07-10 北京国双科技有限公司 媒体数据访问方法及装置
CN108270744B (zh) * 2016-12-30 2021-05-07 北京国双科技有限公司 媒体数据访问方法及装置
WO2019096046A1 (zh) * 2017-11-16 2019-05-23 阿里巴巴集团控股有限公司 数据处理系统、方法及令牌管理方法
CN109802895A (zh) * 2017-11-16 2019-05-24 阿里巴巴集团控股有限公司 数据处理系统、方法及令牌管理方法
CN108573013A (zh) * 2017-12-08 2018-09-25 北京金山云网络技术有限公司 请求处理方法、装置、电子设备及计算机可读存储介质
CN108667744A (zh) * 2018-02-26 2018-10-16 华为技术有限公司 流量控制方法及装置
CN110413209B (zh) * 2018-04-28 2023-05-30 伊姆西Ip控股有限责任公司 管理存储系统的方法和设备
CN110413209A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 管理存储系统的方法和设备
CN113468214A (zh) * 2020-03-30 2021-10-01 阿里巴巴集团控股有限公司 数据库访问控制方法、装置、电子设备及可读存储介质
CN112600761A (zh) * 2020-12-11 2021-04-02 腾讯科技(深圳)有限公司 一种资源分配的方法、装置及存储介质
CN112600761B (zh) * 2020-12-11 2024-04-09 腾讯科技(深圳)有限公司 一种资源分配的方法、装置及存储介质
CN114860334A (zh) * 2022-04-24 2022-08-05 曙光信息产业(北京)有限公司 虚拟机启动风暴的处理方法、装置、设备及介质
CN114860334B (zh) * 2022-04-24 2024-01-26 曙光信息产业(北京)有限公司 虚拟机启动风暴的处理方法、装置、设备及介质

Also Published As

Publication number Publication date
AU2014302426B2 (en) 2017-02-23
KR101903623B1 (ko) 2018-10-04
KR20180108901A (ko) 2018-10-04
EP3014804A1 (en) 2016-05-04
JP2016529597A (ja) 2016-09-23
AU2014302426A1 (en) 2016-01-28
EP3014804A4 (en) 2017-03-01
KR20180014883A (ko) 2018-02-09
CA2915996A1 (en) 2014-12-31
EP3014804B1 (en) 2019-08-07
KR20160020529A (ko) 2016-02-23
SG10201709194PA (en) 2017-12-28
JP6247388B2 (ja) 2017-12-13
KR101948502B1 (ko) 2019-02-14
KR20180063371A (ko) 2018-06-11
CN105409171B (zh) 2019-03-29
JP6530471B2 (ja) 2019-06-12
JP2018077852A (ja) 2018-05-17
AU2017203274A1 (en) 2017-06-08
AU2017203274B2 (en) 2018-06-21
KR101826969B1 (ko) 2018-03-22
WO2014210221A1 (en) 2014-12-31
SG11201510427QA (en) 2016-01-28
CA2915996C (en) 2020-06-30
KR101865318B1 (ko) 2018-06-08

Similar Documents

Publication Publication Date Title
CN105409171A (zh) 突发模式控制
US9917782B2 (en) Equitable distribution of excess shared-resource throughput capacity
US9471393B2 (en) Burst-mode admission control using token buckets
US9218221B2 (en) Token sharing mechanisms for burst-mode operations
US10764185B2 (en) Token-based policies burst-mode operations
US20140376368A1 (en) Compound token buckets for burst-mode admission control
CN108446975B (zh) 一种额度管理方法及装置
US6480861B1 (en) Distributed adaptive computing
KR102267655B1 (ko) 블록체인을 기반으로 한 투자 방법 및 이러한 방법을 사용하는 장치
KR102092850B1 (ko) 블록체인 기반 암호화폐의 수익 분배 시스템 및 방법
Lovejoy An empirical analysis of chain reorganizations and double-spend attacks on proof-of-work cryptocurrencies
JP2023514633A (ja) マルチコンピュータネットワークにおけるリソースへのアクセスを制御するためのシステム及び方法
Chikhaoui et al. A cost model for hybrid storage systems in a cloud federations
Westerberg Design of a multi-asset-backed stablecoin and a multilateral order matching system
Kux Autradix–Self-optimizing, Decentralized, Non-custodial Trading DeFi Protocol
CN111353878A (zh) 多账户合并计息方法及装置、计算机设备及可读存储介质
Gill et al. Development of High-performance Computing Extension for an Agent Based Economic Model for Fine-grained Post-disaster Economy Simulations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant