CN105144161A - 针对复制写入的基于令牌的准入控制 - Google Patents

针对复制写入的基于令牌的准入控制 Download PDF

Info

Publication number
CN105144161A
CN105144161A CN201480023068.XA CN201480023068A CN105144161A CN 105144161 A CN105144161 A CN 105144161A CN 201480023068 A CN201480023068 A CN 201480023068A CN 105144161 A CN105144161 A CN 105144161A
Authority
CN
China
Prior art keywords
bucket
copy
token
filler
primary copy
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
CN201480023068.XA
Other languages
English (en)
Other versions
CN105144161B (zh
Inventor
K-K·穆尼斯瓦麦-雷迪
B·P·斯威夫特
M·M·菲利普
T·A·拉斯
S·斯泰法尼
陆一俊
肖巍
S·H·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
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN105144161A publication Critical patent/CN105144161A/zh
Application granted granted Critical
Publication of CN105144161B publication Critical patent/CN105144161B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/522Manager

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了用于针对复制写入的基于令牌的准入控制的方法和设备。数据对象分为分区且存储对应于每个分区的至少主副本和从副本。至少部分基于(a)所述主副本处的可用吞吐量容量和(b)使用基于令牌的协议获得的所述从副本处的可用吞吐量容量的指示中的一个或多个而作出关于是否将接受针对所述分区的写入请求的确定。如果接受所述写入请求,那么发起一个或多个数据修改操作。

Description

针对复制写入的基于令牌的准入控制
背景
若干领先的技术组织正在投资于出售“软件即服务”的构建技术。这样的服务将对共享存储器(例如,数据库系统)和/或计算资源的访问提供给客户端或订阅者。在多层电子商务系统内,不同类型的资源的组合可以分配给订阅者和/或其应用,诸如整个物理或虚拟机、CPU、存储器、网络带宽或I/O容量。
将服务提供给客户端的每个系统需要保护自身免受可能使系统过载的服务请求的破坏性负载之扰。一般来说,对于网络服务或远程过程调用(RPC)服务,如果系统不能为其接收的客户端请求的一些部分提供所期望质量的服务,那么其被认为在“过载”状态中。由过载系统应用的常见解决方案包括拒绝对客户端的服务或扼制一定数量的传入请求直至系统摆脱过载状态。
一些当前系统通过将请求速率与固定或变化的全局阈值相比较且一旦已超过这个阈值,那么选择性拒绝对客户端的服务来避免过载情境。但是,这个方法未考虑响应于接受不同类型和/或实例的服务来提供服务而执行的工作量上的差异。此外,难以(如果并非不可能)在以变化、不可预测速率接收不同类型请求和满足请求所需的工作量还变化和不可预测的系统中定义有意义(更不用说提供可接受的性能)的单个全局阈值。在其中客户端请求流包括可能导致数据修改的一些操作,而其它操作是只读的情境中,可能因规定任何给定数据修改保持于多个不同存储装置处的持久性要求使工作负载管理的问题进一步变复杂。
附图说明
图1图示根据至少一个实施方案的实例系统环境。
图2提供根据至少一些实施方案的基于令牌的准入控制机制的高阶概述。
图3图示根据至少一些实施方案的用于准入控制的令牌桶的实例配置性质。
图4图示根据至少一些实施方案的对象分区和关联的基于规定数量的数据修改策略的实例。
图5图示根据至少一些实施方案的可以维持于数据对象分区的主副本处的令牌桶的类型的实例。
图6图示根据至少一些实施方案的可以维持于数据对象分区的从副本处的令牌桶的类型的实例。
图7图示根据至少一些实施方案的可以维持于数据对象分区的主副本处的令牌桶的类型的另一实例。
图8a和图8b图示根据至少一些实施方案的用于在主副本处获得从副本吞吐量容量信息的各自交互集。
图9是根据至少一些实施方案的图示可以被执行来在网络可访问服务下对写入实施基于令牌的准入控制机制的操作的方面的流程图。
图10是根据至少一些实施方案的图示可以被执行来在突发操作模式期间对写入实施基于令牌的准入控制机制的操作的方面的流程图。
图11a和图11b是根据至少一些实施方案的图示可以被执行来在主副本处获得从副本共享存储器桶填充数的操作的方面的流程图。
图12是图示可以在至少一些实施方案中使用的实例计算装置的方块图。
虽然对于若干实施方案和说明性图,本文通过实例描述实施方案,但所属领域技术人员将认识到实施方案并不限于所描述的实施方案或图。应理解,本文的图和详细描述并非旨在将实施方案限于公开的特定形式,而是相反,旨在涵盖在由随附权利要求书定义的精神和范围内的所有修改、等效例和替代例。本文中使用的标题只为了组织目的且并非意味着用于限制描述或权利要求书的范围。如在整个本申请案中使用,单词“可以”在许可意义(即,意味着具有……的可能)上,而非强制意义(即,意味着必须)上使用。类似地,单词“包括”(“include”)、“包括”(“including”)和“包括”(“includes”)意味着包括,但并不限于。
具体实施方式
描述用于针对复制写入实施基于令牌的准入控制的方法和设备的多种实施方案。可以(例如)在其中网络可访问服务(诸如多租户存储或数据库服务)支持涉及存储给定数据集的多个拷贝或副本的数据持久性模型且不同拷贝可以存储于I/O相关的工作负载可彼此不同的装置处的各种环境中采用这样的协议。可在本文中使用术语“准入控制”以表示被执行来确定接收的工作请求(诸如针对存储服务的写入请求)是否被接受来实施的操作且涉及执行准入控制的软件和/或硬件实体集可以统称为“准入控制器”。一般来说,在多种实施方案中使用的基于令牌的准入控制机制中,可对给定资源或副本维持至少一个令牌桶或容器且在作出接受或拒绝给定传入工作请求的决定时(若干)那些桶的至少一个中的一些数量的工作令牌的可用性可以用作给定资源或副本可处理请求的工作的指示符。但是,因为需要复制写入,因而至少在诸如下文描述的突发模式操作的一些情形下,对于准许写入操作请求需要特殊考虑;因此,关于单个副本处的可用吞吐量容量的信息可能不足以对写入作出良好的准入控制决定。根据一些实施方案,下文描述的保守型准入控制协议可以消除或至少明显减少数据丢失或不一致性的概率,如果数据写入操作(例如,创建、更新或删除操作)被接受来由服务执行且接着由于一些副本处过载或缺少足够的吞吐量容量致使不能在所期望数量的副本处复制接受的写入,那么会以别的方式发生上述数据丢失或不一致性。在本文中使用术语“吞吐量容量”以表示资源(例如,分区的副本)以给定速率完成工作操作(例如,读取或写入操作)的能力。吞吐量容量可以(例如)表达成单位,诸如每秒逻辑或物理I/O操作。可在本文中使用术语“可用吞吐量容量”以表示鉴于资源的当前工作负载,其可以提供多少额外吞吐量的估计或测量。例如,给定存储装置可以被配置来执行多达每秒100个I/O操作且在给定秒期间支持每秒60个I/O操作的工作负载;在这个实例中,其可用吞吐量容量可以是每秒(100-60)或40个I/O操作。应注意,给定资源的可用吞吐量容量在不同实施方案中可以取决于各种不同因素的任何组合,诸如底层硬件或软件的能力和/或被实施来控制或限制资源处的吞吐量的策略(基于负载平衡考虑、公平考虑、业务/定价考虑或除了仅仅硬件/软件的本机能力之外的因素的一些组合)。资源的可用吞吐量容量在一些实施方案中可以用作资源处的当前工作负载的间接表示—例如,随着工作负载上升,可用吞吐量容量一般下降且随着工作负载下降,可用吞吐量容量一般上升(至少多达策略定义的限制)。
如下文所描述,根据准入控制协议,在一些实施方案中,维持于给定数据对象的多种副本处的工作令牌可以用作存储副本的存储装置(例如,固态存储装置或基于磁盘的存储装置)处的当前可用I/O吞吐量容量的指示且还可以在其它数据对象的副本之间共享。可在本文中同义地使用术语“工作令牌”和“令牌”。在一些这样的实施方案中,关于这样的令牌的数据可以在不同副本之间有效地传输(且经常至少在一些情况下)以尝试确保在关于接受或拒绝新写入操作作出决定时使用的信息尽可行地最近和准确,同时避免过量通信相关的开销。基于令牌的准入控制还可以用于确保支持特定存储对象的I/O速率(至少平均)多达与存储对象的拥有者一致同意的供应吞吐量限制。在至少一些实施方案中,供应吞吐量限制可以指示存储服务的提供商有义务(例如,合同上有义务)支持的工作负载级别。在一些这样的实施方案中,只要请求速率不高于供应吞吐量限制,服务有义务接受I/O请求(包括写入)。因此,服务可通常以只要请求速率低于供应吞吐量限制的方式配置正用于存储数据对象的副本的装置,由于过载通常保持得非常低,所以写入复制的概率下降。但是,客户端并非总能及时均匀地或甚至接近于均匀地分布其请求且结果,服务必须处理其中至少在一些短时期内请求到达速率超过供应吞吐量限制的情境。当对特定逻辑分区的请求速率超过供应限制时,逻辑分区可以称为操作的“突发模式”。在突发模式期间,尽最大努力工作负载管理方法在一些实施方案中可由服务使用,其中服务无义务支持供应限制以上的请求的突发,但无论如何尽量支持接收的请求。在至少一些实施方案中,可以在突发模式期间主要使用下文描述的针对写入的准入控制机制,但在其它实施方案中,可甚至在传入请求负载低于供应吞吐量限制时的时期期间采用机制的方面。应注意,在一些实施方案中,不同令牌桶集和对应策略可用于写入,而非读取,但在其它实施方案中,准入控制机制的至少一些方面可以共同用于读取和写入。
根据一个实施方案,本文描述的基于令牌的准入控制机制一般可被设计来实现以下至少两个类型的目标:(a)对于存储对象支持多达一致同意的供应吞吐量限制的I/O操作速率和(a)尽最大努力尝试确保针对存储对象的写入操作在操作请求到达的速率超过供应吞吐量限制时的突发模式期间可以成功地复制至所期望数量的副本。在其它实施方案中,可以主要使用准入控制机制以确保写入复制的成功(无论在突发模式中还是在正常,非突发条件下)。术语“写入操作”或“写入”是指多种类型的操作,其中修改对象(诸如数据库表、文件或卷)的数据和/或元数据,这(例如)包括创建(写入新或额外数据)、更新(对已有数据的改变,其可涉及就地覆写或例如,在一些一次写入环境中,新版本数据的创建)、删除、重命名和/或移动。
由将可经由因特网和/或其它网络访问的一个或多个这样的服务(诸如多种类型的基于云的存储、计算或数据库服务)提供至分布式客户端集的实体(诸如公司或公共部分组织)设置的网络在本文档中可以称为提供商网络。给定提供商网络可以包括许多数据中心(其可跨越不同地理区域分布),其主控实施、配置和分布由提供商提供的基础设施和服务所需的多种资源库(诸如物理和/或虚拟化计算机服务器、各具有一个或多个存储装置的存储服务器、联网设备等等的集合)。在多种实施方案中可以集体地使用一些可实例化或执行于不同数据中心或不同地理区域中的许多不同硬件和/或软件组件以实施写入准入控制协议。应注意,虽然为了说明的目的,下文很大程度在存储或数据库服务的上下文中描述用于准入控制协议的技术,但在其它上下文中以及在至少一些实施方案中(例如,在其中内容可以推送至各种端点的分布式内容管理应用中或在分布式软件开发/部署情境中)可使用类似方法。还应注意,如本文中使用的术语“I/O请求”和“操作请求”(以及对应术语“读取请求”、“写入请求”、“读取操作请求”和“写入操作请求”)不一定需要对应于对单个逻辑或物理I/O操作的请求。相反,在不同实施方案中,如本文中使用的这些术语可以各表示可导致一些数量的逻辑和/或物理I/O操作的请求“工作单元”,其中逻辑和/或物理I/O操作的数量和性质(例如)基于应用的性质或基于工作负载条件而变化。
根据一个实施方案,数据对象(诸如数据库表、文件或存储卷)的内容可以通过服务在一个或多个逻辑分区之间分布。例如,数据库服务的客户端可以指定表将保持大约X个太字节(TB)的数据且期望支持每秒Y个I/O操作的工作负载,且数据库服务可以决定设置具有P个逻辑分区的表,其中足够资源最初被指定用于每个逻辑分区以存储X/P个TB且各支持Y/P个I/O操作的供应吞吐量容量限制。(可以在一些实施方案中使用跨越分区的供应吞吐量容量的非均匀分布—例如,如果知道一些分区且期望其“更热”或具有比其它者更高的平均请求速率。)在至少一些实施方案中,在逻辑分区级别下作出准入控制决定。对应于每个逻辑分区,可以根据数据对象的数据持久性策略或数据复制策略设置分区数据的主副本和一个或多个从副本。持久性/复制策略可以被设计来确保数据写入复制至足够数量的不同物理位置而使由于诸如设备故障、功率损耗和/或自然灾害所致的数据丢失的概率保持得低于阈值。在一些实施方案中,在主副本处作出针对写入请求的准入控制决定,同时在主副本处或(尤其如果客户端愿意接受从可能有点过时的版本的数据的读取)在从副本处作出针对读取的准入控制决定。根据复制策略,当接受来自客户端的写入请求时,(例如)在写入已成功的应答提供至客户端之前,修改的数据在一些实施方案中必须成功地复制于N个副本(主副本和N-1个从副本)处。在一个实施方案中,设置的从副本的数量可以超过复制策略所需的最小数量。复制策略可以要求在写入被认为成功之前使规定数量的Q个写入拷贝持久,使得可能需要最小(Q-1)个从副本。但是,因为多种原因(诸如读取负载平衡、高可用性等等),在这样的实施方案中,维持的从副本的数量可能超过Q-1个。在随后的描述中,在本文中使用术语“主”和“从”以分别表示短语“主副本”和“从副本”。应注意,在多种实施方案中,特定副本指定为从副本或主副本可以随着时间推移而改变;例如,如果实例化给定逻辑分区的主副本所在的装置出故障或不可能得到,那么早期指定为从副本的不同副本可以选择为主副本。在一些实施方案中,例如,响应于来自拥有数据对象的客户端的请求,在数据对象的生命期内改变从副本的数量。本文描述的用于准入控制的技术可以在点对点环境中以及在副本不一定被指定为主副本或从副本的一些实施方案中应用;在这样的实施方案中,作出针对传入写入请求的准入控制决定所在的副本可以对应于(就执行的操作类型而言)本文描述的主副本。因此,在采用其中副本在多数情况下在责任上彼此相等的点对点复制的一些实施方案中,如果在给定点P1接收写入请求,那么关于至少另一个点P2的可用吞吐量容量的信息可以用于决定写入请求是否被接受来执行。
在一些实施方案中,一种用于实施保守型写入准入控制的方法可以包括存储对应于主副本的主副本桶集和从副本快照桶集。主副本桶集和从副本快照桶集可以各包括用于令牌的一个或多个桶或容器,其用于(例如)通过在接受新请求来执行之前确定是否存在足够令牌,在接受新操作来执行时消耗令牌且在令牌填充数低于阈值时使新操作延迟、重试新操作或拒绝新操作来限制对分区的I/O操作的吞吐量。(可在本文中同义地使用术语“令牌填充数”和“令牌计数”。)填充数在接受写入请求之前被检查的桶的特定组合可在多种实施中不同和/或可取决于对应逻辑分区是否在突发模式中而不同。例如,在一个实施方案中,无论任何其它桶的填充数如何,如果至少一个令牌在主副本桶集(称作供应容量桶)的特定桶中可用,那么可准许写入,且这样的桶中的令牌的存在可以用作逻辑分区是在正常(非突发)操作模式中的指示。如果在这样的实施方案中,供应容量桶在接收写入请求时并不包含任何令牌,那么如在下文进一步详细描述,可考虑主副本桶的一个或多个其它桶和从副本快照桶集中的至少一个桶中的令牌计数以决定是否接受写入请求。
在一些实施方案中,给定桶的令牌可以用于准许或限制读取和写入两者,但在其它实施方案中,令牌可以只用于读取或只用于写入。每个桶在一些这样的实施方案中可以具有各自配置性质集,诸如各自初始令牌填充数、令牌消耗策略、令牌再填入策略、填充数最大值、填充数最小值(如下文讨论,其在一些情况下可为负)和/或令牌亏缺策略。下文连同图3的描述提供关于多种实施方案中的实例桶配置参数的进一步细节。主副本桶集一般可包括与主副本自身工作负载和可用容量关联的桶,而从副本快照桶集可包括反映从副本处的工作负载和/或可用容量的主副本视图的一个或多个桶。因此,使用主副本桶集和从副本快照桶集的组合,可以获得主副本和一些数量的从副本的可用吞吐量容量的统一视图,且这样的视图可以(例如,在突发模式期间或正常模式和突发模式两者期间)用于确定接受新写入请求来执行是否明智或是否拒绝写入操作。在至少一些实施方案中,可以从副本中的任何一个满足读取请求,且结果,当决定是否接受新读取操作时,可以只考虑给定副本处的本地工作负载/容量条件。因此,例如,在这样的实施方案中可以单独使用主副本桶集的内容作出针对主副本的读取的准入决定,且可以单独基于特定从副本的工作负载容量条件作出针对那个从副本的读取的准入决定。
在至少一些实施方案中,从副本桶更新协议可以用于刷新关于从副本快照桶集中的(若干)从副本状态的信息(例如,可以通过基于主副本处自从副本接收的信息修改主副本处其一个或多个桶中的令牌数量而更新从副本快照桶集)。一些在实施方案中,还可以类似于(但不相同于)在主副本处使用桶的方式在从副本处使用令牌桶以用于吞吐量管理。根据从副本桶更新协议,在一个这样的实施方案中,从副本可以将一个或多个从副本本地令牌桶的填充数快照(例如,自给定时间点起本地令牌桶的填充数的表示)提供至主副本。例如,一个特定从副本侧令牌桶可以表示存储从副本数据的至少一部分的共享存储装置处的可用容量。这样的共享存储装置可以用于存储若干逻辑分区的数据(主副本、从副本或两者),且结果,共享存储装置处经历的工作负载可以取决于若干不同数据对象的使用配置文件且难以预测。用于给定逻辑分区L的一个从副本S1的共享存储装置SD1可以具有非常不同于用于不同从副本Sj的共享存储装置SDj的工作负载,例如,因为共享装置SD1和SDj上的其它副本属于逻辑分区的不同组合,因此具有非常不同的使用模式。下文针对一些实施方案,连同图1的讨论描述由给定逻辑分区的从副本使用的不同共享存储装置上的副本组合的这样的变化的实例。本文中可使用术语“X的快照”或“X快照”,而非短语“自给定时间点起的X的表示”。因此,例如,给定令牌桶B的术语“桶填充数快照”可以指示自给定时间点起B的桶填充数的表示。
响应于接收针对给定逻辑分区的写入请求,在一些实施方案中,用于保守型写入准入控制的方法可以包括根据主副本桶集和从副本快照桶集的桶的各自令牌消耗策略,至少部分基于在(a)主副本桶集和(b)从副本快照桶集中的一个或多个中足够数量的令牌是否可用来确定写入请求是否被接受来执行。在一个实施方案中,在正常(非突发)操作模式期间,仅主副本桶集(例如,特定来说,如上文所述的主副本桶集内的供应容量桶)可以用于决定是否接受写入请求,但如下文进一步详细地描述,如果接受写入请求,那么可以从两个桶集消耗令牌。相比之下,在突发模式期间,两个桶集中要求令牌来用于接受写入且如果接受写入,还可以从两个桶集消耗令牌。还如下文所描述,在至少一些实施方案中,可以使用主副本桶集的特定桶的令牌填充数自身确定分区是在突发模式中还是正常模式中。
在一些实施方案中,可甚至在正常模式期间(例如,在针对分区的请求率不高于分区的供应吞吐量容量限制时)从两个桶集要求令牌。例如,考虑具有一个从副本S1和主副本M的简单实例实施,其中写入必须保持于M和S1两者处以被认为成功。在这样的实施中,主副本桶集MBS可以包括包含表示由M使用的存储装置处的可用I/O吞吐量容量的令牌的一个桶MB1,且从副本快照桶集SSBS可以包括反映关于S1的共享存储装置处的可用吞吐量容量的最近接收的快照的单个桶SB1。继续简单实例,对于将接受的写入请求,可适用于MBS和SSBS的消耗策略可以要求从桶MB1和SB1中的每个消耗一个令牌。相应地,可以检查两个桶的令牌填充数。如果在这样的实例中,在接收写入请求时MB1中存在至少一个令牌且SB1中存在至少一个令牌,那么可以接受请求(其中基本假设是每个桶中的令牌的存在指示当前在主副本和从副本两者处足够容量可用以允许继续进行写入)。如果MB1或SB1中存在少于一个令牌,那么可以拒绝请求且关于拒绝(或写入可延迟和重试)通知客户端。如果接受请求,那么可以发起一个或多个数据修改操作(例如,M处的一个写入和S1处的写入的复制),且令牌计数在主副本处的两个桶MB1和SB1中递减(当在从副本处复制写入时,在至少一些实施中,令牌还在从副本本地桶处递减)。在其中从多个桶消耗令牌以接受特定I/O请求来执行的至少一些实施方案中,原子操作(诸如交易或受锁定保护的软件例行程序)可以用于从涉及的所有桶消耗令牌。在一些实施方案中,已在S1处复制写入之后,可通知客户端修改已成功。
因此,至少在一些实施方案中,主副本可以依赖于从一个或多个从副本获得的信息以帮助作出关于写入的准入控制决定。准入控制决定的质量一般可取决于用作决定的主副本侧和从副本侧数据两者的准确性。至少在一些实施方案中,至少针对写入的准入控制可通常执行于主副本处,且结果,可用于准入控制的主副本侧数据(诸如主副本桶集的多种桶的令牌填充数)一般非常准确。相比之下,取决于从副本多频繁地将关于其共享存储装置的状态的更新提供至主副本,用于准入控制的关于从副本的信息(其可称为从副本侧数据)可能变为过时和/或不准确。相应地,在至少一些实施方案中,从副本桶更新协议可以被设计来将关于从副本工作负载容量的频繁更新提供至主副本,同时避免用于从副本侧信息的传送的过量开销。在一个实施中,例如,当主副本将写入复制请求发送至从副本(例如,以遵从对请求的复制要求)时,从副本可以发送写入应答响应,其包括从副本的当前可用容量的“背载”时间点表示(例如,从副本的本地共享装置令牌桶的当前填充数可以包括于写入应答中)。在其中从副本被配置来将周期性心跳或“我活着”消息发送至至少主副本的另一实施中,从副本的共享存储装置处的当前可用容量的时间点快照可以包括于心跳消息中。在一些实施中,仅写入应答和/或心跳的一些子集可以用于填充数信息传送,而非在每个写入应答和/或每个心跳消息下发送背载填充数信息。在多种实施中,从副本状态快照可以包括于写入应答、心跳消息和/或从副本与主副本之间的其它通信的任何组合中。主副本可以使用从副本快照以(例如)通过将一些数学函数应用于包含于快照中的信息且将从副本快照桶的填充数设置为数学函数的结果来改变从副本快照桶集中的桶的填充数。可以在不同实施中使用多种数学函数的任何一个—例如,在如下文描述的一个简单实施中,从副本快照桶集中的共同代理桶的填充数可以设置为所有从副本的共享装置桶的最新可用填充数的最小值。在另一实施中,时变函数可以应用于从副本填充数信息以确定从副本快照桶的更新填充数(例如,从副本快照的填充数可以取决于主副本处多久前接收最新从副本填充数快照而随着时间推移改变)。在一些实施方案中,如果主副本未在一些指定时期内从给定从副本接收关于可用吞吐量容量的信息,那么可假设给定从副本不可操纵或不可访问且相应地调整从副本快照桶集填充数(例如,直至找到替换从副本为止)。
在多种实施方案中,已为了其它目的要求的通信上的背载从副本容量信息(诸如心跳消息和/或写入应答)可以帮助使与保守型写入准入控制协议关联的开销最小化。为此目的使用写入应答在至少一些实施方案中具有如下额外优点:随着逻辑分区的工作负载的写入相关(相对于读取相关)部分增长,写入传播至从副本的速率同样地将趋向于增长且因此,从副本侧容量信息发送回至主副本的速率还可增加。这继而在对增加的写入负载作出更好的准入控制决定的重要性还增加时的时期期间,增加可用从副本吞吐量容量的主副本视图的新近度或最近度(且因此可假定地,准确性)。
实例系统环境
图1图示根据至少一些实施方案的实例系统环境。如所示,系统100可以用于存储许多数据对象101(例如,非关系或关系数据库的表、文件或卷),诸如对象101A、101B、101C和101D。至少一些对象可以包括逻辑分区103,诸如对象101D的逻辑分区O4-P1、O4-P2、……O4-Pn,数据对象101A的逻辑分区O1-P1、O1-P2和O1-P3,对象101B的逻辑分区O2-P1和O2-P2以及数据对象101C的逻辑分区O3-P1和O3-P2。在图1中使用记法“Ox-Py”以表示称作Ox的数据对象的第y个逻辑分区。
可在所描绘的实施方案中维持对应于给定逻辑分区Ox-Py的逻辑分区的数据的至少一个主副本物理副本(图1中使用记法“Ox-Py-M”指示)和至少一个或多个从副本物理副本(对于第k个从副本,使用记法“Ox-Py-Sk”指示)。每个副本示出为存储于各自存储装置102(例如,装置102A、102B和102C)。主副本O1-P1-M(针对逻辑分区O1-P1)以及从副本O2-P1-S1(针对逻辑分区O2-P1)和O3-P1-S2(针对逻辑分区O3-P1)示出为驻留于存储装置102A上。存储装置102可以包括(例如)固态存储器装置、布置成多种类型的RAID(独立磁盘冗余阵列)布置的磁盘驱动器、个别磁盘驱动器、网络附接存储(NAS)装置、存储区域网络(SAN)装置或用于保持数据的任何其它适当装置。系统100在所描绘的实施方案中可包括多个存储节点110(诸如节点110A和110B),且每个存储节点110在任何给定时间点可以具有附接至其的一个或多个存储装装置102。
给定存储装置102在所描绘的实施方案中可以在多种数据对象101和逻辑分区103的主副本和/或从副本之间共享。例如,存储装置102A包括一个主副本(O1-P1-M)和两个从副本(O2-P1-S1和O3-P1-S2),其各存储不同(对象、分区)组合的副本的部分。在给定时间点,一些存储装置(诸如具有主副本O2-P1-M和O4-P2-M以及从副本O1-P1-S1的装置102B)可以包含多个主副本,其它存储装置(诸如装置102C)可以只存储从副本,但其它者(诸如装置102A)可以存储一个主副本和多个从副本。应注意,为了减少混乱,并非对象101A-101D的所有分区的所有副本图示于图1中的其各自存储装置102处。在许多大规模实施中,数十或数百个逻辑分区的数十或数百个副本可以存储于一些大型存储装置处。一般来说,在至少一些实施方案中,副本与存储装置之间的映射,副本类型(主副本/从副本)与存储装置之间的映射和存储装置与存储节点之间的映射中可存在相当大程度上的灵活性。此外,因为许多原因,在一些实施方案中,给定逻辑分区的一些副本可以存储于不同于相同逻辑分区的其它副本的地理位置(例如,不同数据中心)中。在至少一些实施方案中,可以基于动态改变的因素(诸如多种装置和节点处的可用空间,多种装置和节点处的期望或测量工作负载级别,客户端偏好、与其它分区或副本的位置密切关系或时间密切关系,随机放置试探法、装置故障度量、网络流量条件等等)作出关于逻辑分区的给定副本将确切存储在哪里(例如,将使用哪个存储节点处的哪个存储装置)的决定。
在图1中所描绘的实施方案中,对于每个副本维持至少一个令牌桶集以(例如)帮助针对与那个副本关联的操作的准入控制。对于主副本(诸如O1-P1-M),可以实施至少两个令牌桶集,例如,一个主副本桶集152(例如,152A、152B或152C)和一个从副本快照桶集155(例如,155A、155B或155C)。对于从副本,在至少一些实施方案中可维持对应从副本桶集172(例如,172A、172B、172C、172D、172E或172F)),但在一些实施方案中,从副本桶集172不被采用或实例化来用于与对应分区关联的写入准入控制目的。主副本桶集152可以包括一个或多个令牌桶150(例如,150A、150D、150E),其表示主副本自身处的工作负载/容量条件和/或约束—例如,期望主副本在正常操作条件下保持的平均供应I/O操作速率,可在短持续时间工作负载突发期间保持的I/O操作速率等等和/或存储主副本数据的共享存储装置102处可用的I/O容量。给定主副本处的从副本快照桶集155可以包括一个或多个令牌桶157(例如,157A、157K和157P),其表示关于那个主副本的一个或多个从副本处的工作负载条件的主副本处可用的信息。在其中使用从副本桶集172的一些实施方案中,每个这样从副本桶集可以包括对应桶171(例如,171A、171D、171E、171F、171G或171H),其表示那个从副本处的本地工作负载/容量条件和/或约束。
在一些实施方案中,可基于从主副本的从副本获得的信息由主副本更新那个主副本的从副本快照桶集155的内容。在图1中所示的情境中,例如,对应于逻辑分区O1-P1的主副本O1-P1-M可以获得对应于O1-P1的两个从副本中的每个处的桶:从副本O1-P1-S1的桶171C和从副本O1-P1-S2的桶171D的填充数的快照或时间点表示。例如,在自从副本O1-P1-S1和O1-P1-S2发送至主副本O1-P1-M的至少一些写入应答消息中或在自从副本发送至主副本的至少一些心跳消息或在其它通信中传输快照。
准入控制器180在所描绘的实施方案中负责接受或拒绝来自其数据存储于数据对象101中的客户端190的传入客户端工作请求178(例如,读取请求或写入请求)。应注意,虽然准入控制器示出为图1中的单个不同实体,但是在多种实施方案中,准入控制功能的至少部分可以实施于存储节点110处和/或系统100的其它装置处。如前所述,在一些实施方案中可在逻辑分区级别下作出准入控制决定(使得可以独立于针对(例如)O1-P2的准入控制决定作出针对O1-P1的准入控制决定)。在所描绘的实施方案中,可在逻辑分区的主副本处作出针对写入请求的准入控制决定—例如,可由驻留于存储节点110A等等上的准入控制器180的组件作出针对分区O1-P1的写入准入控制决定。
所描绘的实施方案中的准入控制器180可对于针对逻辑分区O1-P1的写入请求检查与O1-P1-M关联的主副本桶集152A和从副本快照桶集155A的一个或多个桶的填充数。在一些实施中,可以取决于O1-P1是在正常操作模式中(例如,请求的I/O速率小于O1-P1的供应容量限制)还是在突发操作模式中而在接受写入请求之前检查不同桶集。如果可从那些桶的至少一个获得足够令牌来用于消耗,那么在这个上下文中的给定桶的足够性可由与桶关联的令牌消耗策略定义的情况下,可接受写入请求;否则,可拒绝写入请求且可就拒绝174通知客户端。在所描绘的实例情境中,接受的写入请求170可能导致主副本O1-P1-M处的对应写入操作(例如,创建、更新或删除操作)的发起且可从主副本传播至从副本O1-P1-S1和O1-P1-S2。取决于对象101A的冗余/持久性要求,在(例如)使用以下图4的上下文中讨论的规定数量要求的一些实施方案中,只在写入已成功地在足够数量的副本处完成之后,提供对请求客户端190的响应。例如,在一个实施方案中,在告知客户端写入成功之前,必须在O1-P1的所有三个副本处完成写入,但在另一实施方案中或在对象101A的不同配置设置下,在通知客户端之前只必须在O1-P1-M和从副本中的一个(O1-P1-S1或O1-P1-S2)处完成写入。不管规定数量要求如何,写入在至少一些实施方案中最终可从主副本传播至所有从副本。
基于令牌的准入控制概述
图2提供根据至少一些实施方案的基于令牌的准入控制机制的高阶概述。为了呈现的简单起见,图示使用令牌的单个桶202的机制。根据机制,为了与特定数据对象、对象分区或分区副本关联的准入控制目的设置的桶202(例如,在至少一些实施方案中,可实施为软件程序内的数据结构的逻辑容器)可以在桶初始化期间如经由箭头204A所指示填充有初始令牌208集。在多种实施方案中,例如,基于对工作负载、服务级别协议、由拥有或管理对应数据对象的客户端指定的供应预算或这样的因素的一些组合的期望而确定初始填充数。在一些实施方案中,对于一些类型的桶,初始填充数可以设置为零。在一些实施中,至少一个桶的初始填充数可设置为配置桶所用的最大填充数。
至少在正常操作条件期间,当在准入控制器180处接收新工作请求178(诸如读取请求或写入请求)时,在所描绘的实施方案中,准入控制器可以尝试确定一些数量N的令牌(其中N可取决于实施或取决于配置参数而大于或等于1)是否存在于桶202中。如果那个数量的令牌在桶中可用,那么可以接受或准许工作请求178来执行,且可从桶消耗或移除令牌(箭头210)。否则,如果不存在N个令牌,那么可以拒绝工作请求178。在所示实例中,已接受工作请求178A,已拒绝工作请求178B,且工作请求178C、178D和178E尚未由准入控制器180考虑。
如由标记为204B的箭头所示,还可以(例如)基于配置参数(诸如下文参考图3所描述,与桶关联的再填入速率)随着时间推移再填入或再填充桶202。在一些实施中,令牌再填入操作可以伴随消耗操作或时间上紧密接近于消耗操作执行—例如,在单个软件例行程序内,可以消耗N个令牌以用于准许请求,且可以基于再填入速率和自最后再填入桶以来的时间添加M个令牌。还如下文描述,在一些情境中,还可以基于其它桶中未使用的令牌计数填充桶。可以(例如)使用配置参数将限制置于桶在一些实施方案中可保持的最大数量的令牌上和/或最小数量的令牌上。使用配置参数设置的多种组合,尤其在多个桶一起用于控制对给定对象或资源的准入时,可以在不同实施方案中实施相当复杂的准入控制方案。
在一个简单的实例情境中,为了支持每秒100个工作请求的稳定负载,图2的桶202可以配置有100个令牌的初始填充数,100个令牌的最大可允许填充数和零个令牌的最小值;N可以设置为1,且再填入速率可以设置为每秒100个令牌,且可以每10毫秒为了再填入目的而添加一个令牌(假设未超过最大填充数限制)。随着工作请求178到达,可对每个工作请求消耗一个令牌。如果应用在每秒期间均匀分布的每秒100个工作请求的稳定状态工作负载,那么再填入速率和工作负载到达速率可以彼此平衡。鉴于上文所列的桶参数,在一些实施方案中可无限期地保持这样的稳定状态工作负载。
如果扩展以上实例,到达速率和/或再填入速率并不均匀,那么可能出现其中在一些(通常较小)时间间隔内桶202仍为空的情境(例如,如果快速连续的一些工作请求集消耗比再填入机制能够替换的更多的令牌)。在这样的情况下,可以拒绝到达工作请求(或延迟之后重试)。为了处理工作负载的非均匀性,可在不同实施方案中采用多种技术:例如,突发处理策略可在一些实施方案中允许未使用的令牌存入称为“突发处理”桶的另一桶中且对于请求速率上的短期突发从突发处理桶消耗令牌。
图3图示根据至少一些实施方案的用于实施多种类型的准入控制策略的令牌桶(诸如桶202)的实例配置性质302。令牌消耗策略310可以指示对于准入控制将如何消耗令牌。在一些实施方案中,消耗策略310可以包括一些实施方案中的不同预准入策略和后准入策略和/或可以取决于其它桶的状态或逻辑分区的操作模式。例如,在一些实施方案中,两个桶可以用于针对给定逻辑分区的准入控制:供应容量桶PC和突发处理桶BH。根据这个实例中实际上的预准入策略,为了准许新请求,可以检验PC的填充数以确定是否存在至少一个令牌且根据后准入策略,如果准入请求,那么PC的填充数可以减少一。如果PC具有令牌,那么逻辑分区可以被认为在正常(非突发)模式中,且不需要在准许请求之前检验BH的填充数。但是,根据实际上的后准许策略,如果接受请求,那么仍然消耗来自BH的一个令牌。相比之下,继续实例,如果PC并不具有任何令牌,那么逻辑分区可被认为在突发模式中,且可以检验BH的填充数以确定BH是否具有至少一个令牌。在突发模式中,仅在BH具有可用令牌时,可准许请求,且如果准许请求,那么从BH消耗令牌。(在一些实施中,在突发模式中,还可在请求准许时使PC的令牌填充数递减,这可能使PC的填充数为负。)在一些实施方案中,可以基于给定桶的消耗策略对于不同类型的操作从给定桶消耗不同数量的令牌。在一些实施方案中,令牌消耗策略还可以指定:空闲期间衰减参数,其指示如果在一些时间内对应数据对象并非工作请求的目标,那么是否从桶删除令牌(且以何种速率删除);或空闲时传送参数,其指示如果令牌未在一些时间间隔期间使用,那么令牌是否应从一个桶传送至另一个桶。
性质302所描绘的实施方案中可以包括初始令牌填充数参数306,其指示在启动或初始化期间多少令牌将放置于桶中。令牌再填入策略参数314可以指示令牌应以何种速率添加至桶和/或在何种情形下令牌添加至桶以(例如)帮助保持与桶关联的数据对象已配置的工作速率。在一些实施方案中,桶的一个或多个参数可以随着时间推移改变—例如,默认再填入速率可以应用于桶,但是在某些条件下,可使用非默认速率。最大填充数参数318可以指示桶的最大容量,而最小填充数参数322可以指示桶的填充数的下界。在一些实施中,桶的填充数在一些情形下可以被认为是负的(例如,最小填充数可以小于零)。例如,在一个实施方案中,为了简单起见,准入控制器180可以假设传入客户端请求将各导致大约一个实际I/O操作。但是,在已接受操作请求R之后,在一些情况下,作为准许R的结果所需要的实际工作量可能实质上大于假设的一个I/O:例如,期望由一次读取完成的读取请求可能以要求1000次读取的表的扫描结束。在这样的情境中,为了确保在随后准入控制决定中反映意外额外工作的影响,对应于额外工作的令牌的数量(例如,1000-1=999个令牌)可从桶中减去,这可能至少暂时使得令牌计数为负。令牌计数可以(例如)基于桶的再填入速率和传入请求速率最终重新进入正范围。令牌亏缺策略参数324可以指定关于允许令牌亏缺(或负填充数)所处的条件,允许多长时间保持亏缺,需采取什么措施来从亏缺恢复等等的规则。在一些实施方案中,不同类型的操作可以具有不同准入控制规则,且可在可适用操作类型参数326中指定使用桶时的操作类型。在不同实施方案中,可以只采用图3中所示的实例参数子集,但在其它实施方案中,可以使用图3中所示的桶配置参数之外的额外桶配置参数。在至少一些实施方案中,可以可编程地设置或修改(例如,使用网络服务调用)图3中所示的多种性质的值和/或设置以及其它准入控制设置(诸如是否支持突发模式操作)。如前所述,在一些实施方案中,不同桶可以分别用于读取和写入。在其中给定桶用于仅仅针对特定类型的I/O操作(例如,读取或写入,但并非两者)的准入控制的实施方案中,下文描述中关于那个桶使用时的通用术语“I/O操作”可以被认为指称那个特定类型的I/O操作。
图4图示根据至少一些实施方案的对象分区和关联的基于规定数量的数据修改策略的实例。如所示的数据对象101A包括三个逻辑分区O1-P1、O1-P2和O1-P3。对于每个逻辑分区,存储(N+1)个物理副本410:一个主副本(诸如,分区O1-P1的O1-P1-M,分区O1-P2的O1-P2-M和分区O1-P3的O1-P3-M)和N个从副本。当接受写入操作时,在所描绘的实施方案中,在写入操作被认为成功之前,对应的数据修改传播至包括主副本412和两个从副本416的规定数量430。因此,在所示的实例中,写入复制的规定数量大小设置为3。最终,在所描绘的实施方案中,写入可以传播至所有N个从副本。
在至少一些实施中,各自令牌桶可以维持于每个从副本以及主副本处,但是仅规定数量的桶集可以用于针对写入的准入控制目的。如前所描述,关于从副本本地桶集(例如,O1-P1-S1和O1-P1-S2的桶集)的信息可以传递至主副本,可以基于传递的信息更新主副本的从副本快照桶集,且主副本本地桶集以及从副本快照桶集可以用于准入控制。在其它实施方案中,对于主副本处的准入控制,考虑关于所有从副本的桶集的信息,而并非仅仅涉及规定数量的那些从副本。
桶集内容
图5图示根据至少一些实施方案的可以维持于数据对象101的逻辑分区103的主副本412处的令牌桶的类型的实例。如所示,在所描绘的实施方案中可以使用两个桶集,其中三个桶在主副本桶集152中且单个桶在从副本快照桶集155中。在一些实施中,桶集152和155可以实施为准入控制器180的存储器中数据结构且可以根据需要写入至持久性存储器。在至少一些实施方案中,图5中(和图7中)所示的桶可以只用于写入准许控制且不同桶可以用于读取。在其中给定桶用于仅仅针对特定类型的I/O操作(读取或写入,但并非两者)的准入控制的实施方案中,下文描述中关于那个桶使用时的通用术语“I/O操作”可以被认为单独指称那个特定类型的I/O操作。
在所描绘的实施方案中,拥有数据对象101的客户端190已指定(和/或合同上有义务支付)分区103的特定平均吞吐量级别,其可以称作供应吞吐量。在至少一些实施方案中,这样的供应吞吐量可以(例如)由客户端在创建对象时基于由客户端估计的目标或期望吞吐量速率指定。在一个实施方案中,可以允许客户端(和/或存储服务)在对象创建之后改变供应吞吐量级别。供应容量桶150A可用于确保至少在较均匀的工作负载条件下,存储数据对象的服务可以支持多达供应吞吐量的I./O速率。可以至少部分对由客户端指定的目标吞吐量确定供应容量桶的多种配置参数。例如,如果目标吞吐量是每秒100个I/O,那么供应容量桶150A可以最初填充有100个令牌,其最大填充数可以设置为100且其默认再填入速率可以设置为100个令牌/秒。只要客户端请求以平均100个请求/秒到达且在时间上相当均匀地分布,一般可在以上实例中保持目标吞吐量。应注意,在至少一些实施方案中,并非实施供应容量桶(诸如150A)。
为了处理其中(继续以上实例)在几秒内,I/O请求以每秒200个请求到达的I/O请求的突然突发,在一些实施方案中,可以实施突发处理桶150B。突发处理桶可以被认为“库”,来自供应容量桶150A的未使用令牌存储至所述“库”中(如由箭头552指示)且可从所述库消耗这些存入令牌以根据需要处理请求突发。例如,如果客户端已将100个请求/秒的供应吞吐量供应给分区,但是在5秒内每秒只发出50个请求,那么在那些5秒中的每个内来自供应容量桶150A的每秒50个未使用令牌可以存入突发处理桶150B中。因此,在所描绘的实施方案中,在5秒之后250个令牌可以存入突发处理桶中且取决于突发处理桶的消耗策略,如果以大于供应的100/秒速率接收请求且在以大于供应的100/秒速率接收请求时,那么可以消耗这些存入的令牌。在一些实施方案中,并非从桶150A存入未使用的令牌或除了从桶150A存入未使用的令牌之外,可以基于诸如存储节点处的可用过剩I/O容量,客户端愿意支付突发的价格等等的因素确定突发处理桶150B的填充数。应注意,在至少一些实施方案中,并不需要实施突发处理桶。
主副本共享装置桶150C在图5中所示的实施方案中可以存储指示驻留主副本412的数据的共享装置102(在图1中示出其上驻留多个分区的副本的共享装置102的实例)的可用吞吐量容量的令牌。因而,例如,如果在一个实施方案中,其上存储主副本的数据的共享固态驱动器102A可以处理多达每秒1000个I/O请求,那么共享装置桶150C可以填充有1000个令牌,使其最大填充数设置为1000个令牌,具有每个I/O请求1个的消耗速率和1000个令牌/秒的默认令牌再填入速率。在至少一些实施方案中,对于准入控制,可以由驻留于给定共享存储装置102上的若干或所有副本使用相同共享装置桶—例如,在图1中所示的实例配置中,置于存储装置102A上的O1-P1-M1、O2-P1-S1和O3-P1-S2可以使用共同共享装置桶150C(或相同共享装置桶150C的各自逻辑等效物)。因为对置于共享存储装置102上的不同副本的工作负载可以不同,所以针对任何一个分区的准入控制决定可能需要考虑装置上的其它副本的工作负载(至少在突发模式期间),且在描绘的实施方案中,共享装置150C可以用来这样做。在其它实施方案中或在一些条件下(例如,如果存储装置被配置来存储一个副本的最大值),共享装置桶150可以不实施于主副本处。包括于主副本桶集中的桶的数量(和特定类型)在不同实施方案中可以不同。在一些实施方案中,可以采用除了图5中所示的桶之外的其它类型桶。
在所描绘的实施方案中,从副本快照桶集155可以包括共同代理从副本共享装置桶157(其在本文中还可以称作“共同代理桶”)。主副本412可以被配置来接收(例如)呈如下文所描述的维持于每个从副本处的共享装置桶的填充数的快照(时间点表示)形式的其对应从副本处的工作负载条件的指示,所述指示可以用作正用于从副本的存储装置102处的可用吞吐量容量的指示符。使用来自一个或多个从副本中的每个的吞吐量容量的最新可用指示,可以在所描绘的实施方案中确定从副本之中的可用吞吐量容量的最小值的估计。(应注意,因为在至少一些实施中,对于不同从副本,可用容量指示可对应于略微不同的时间点,且因为快照到达主副本且被处理可能要花费一些时间,所以最小值的估计并不完全准确,尤其在可用吞吐量容量在任何给定存储装置102快速地改变的高吞吐量环境中)。共同代理桶157的填充数可以被设置来反映一个或多个从副本处的估计的最小可用容量。例如,考虑其中主副本412具有两个从副本416A和416B且写入在被认为成功之前必须复制至两个从副本的实例情境。每个副本置于不同存储装置102上且每个存储装置同样可以具有其它分区的多个副本的数据,所述多个副本中的每个可贡献于各自存储装置上的总I/O工作负载。在突发模式期间在主副本412处接受写入请求之前,主副本412的准入控制器180可能希望确定(除了主副本的可用I/O容量之外,主副本桶集152可以用于哪个写入请求)正用于从副本416A和416B两者的共享存储装置102是否具有足够I/O容量来用于复制写入。相应地,共同代理桶157中的令牌填充数可以被设置来基于主副本处的最新可用从副本信息表示两个从副本416A和416B的共享装置处的较小(即,最小)可用容量。如果主副本处的来自从副本416A的最近通信指示从副本416A的共享存储装置具有等于50个令牌的当前可用容量,且来自从副本416B的最近通信指示从副本416B的共享存储装置具有等于30个令牌的当前可用容量,那么在这个实例中,桶157的填充数将设置为30个令牌。
当接收新写入请求时,其桶集示出于图5中所示的实施方案中的主副本412的准入控制器可以首先被配置来确定桶150A是否具有足够令牌。在一个实施方案中,可以要求单个令牌来准许写入请求。如果桶150A在这样的情境中具有至少一个令牌,那么逻辑分区可以被认为在正常或非突发模式中(低于供应限制)且存储服务有义务接受请求。可相应地接受写入请求,且可从桶150A消耗一个令牌。此外,在至少一些实施方案中,可以从桶150B、150C和157中的每个消耗一个令牌。在大多数情形下,准入控制参数可以被设置为在大多数情形下,如果桶150A具有令牌,那么桶150B、150C和157还极可能包含令牌。但是,如果在正常模式下这些其它桶的任何一个并不包含令牌,那么在任何情况下其填充数递减而导致负令牌填充数。
如果在接受写入请求时,桶150A不具有令牌(或具有负令牌填充数),那么逻辑分区可以被认为在突发模式中。可以各检验桶150B、150C和157以确定其是否具有至少一个令牌,且如果所有这些桶各具有至少一个令牌,那么可接受写入。如果其各包含至少一个令牌,那么可接受写入且每个桶150B、150C、157和150A的令牌计数可递减。如果桶150B、15C和157的任何一个为空,那么可以拒绝写入请求(或可以延迟接受直至足够令牌可用为止)。由于这样的准入控制策略考虑用于分区的副本的所有装置之中的最受资源约束的存储装置,所以其被认为“保守”或“安全”。例如,在以上实例中,考虑其中在接收写入请求时,从副本416A的存储装置具有相当于50个令牌的容量,从副本416B的存储装置具有相当于30个令牌的容量,且桶150C具有40个令牌的情境。因为桶157的填充数将设置为30(50和30的最小值),且从所有四个桶要求一个令牌,所以即使其它副本具有较高可用容量,仍将在突发模式期间在作出准入控制决定时考虑416B的装置的可用容量。应注意,在一些(通常较罕见)情形下,在一个实施方案中,情况可能是尽管尽最大努力在主副本处自从副本获得最近容量信息和基于最近信息作出准入控制决定,从副本仍不能够完成由准入控制机制接受的写入操作的复制—例如,因为从副本的共享存储装置处的工作负载自与主副本的最后通信起非常快速地增加。在这样的情形下,从副本处的写入复制可能失败且可在一些实施中就写入请求未成功告知请求客户端。在其它实施方案中,写入复制可以延迟和/或(例如)使用相同从副本或不同从副本(如果其可用)重试一些次数,而非告知请求器写入失败。在一些实施方案中,当接收写入请求时,可以各检验桶150A、150B、150C和157的填充数(例如,不管桶150A是否具有令牌)以确保在准许写入之前每个桶具有至少一个令牌。
在其它实施方案中,可以采用这个基本方法上的变化—例如,如果在一些实施方案中,在某些特殊情形下,需要允许写入,那么给定桶能够从不同桶借入令牌。一般来说,主副本桶集152的桶可以用作主副本处的可用I/O容量(和/或供应容量限制)的指示,而从副本快照桶集155的桶可以表示关于从副本处的吞吐量容量条件的主副本处的最新可用信息。在不同实施方案中,可以实施主副本桶集中的桶的不同组合—例如,在一个实施方案中,只使用桶150C(其中没有桶专用于供应吞吐量或突发),在另一实施方案中,只使用桶150A和150C(其中没有桶专用于突发处理)等等。
图6图示根据至少一些实施方案的可以维持于数据对象101的逻辑分区103的从副本416处的令牌桶的类型的实例。如所示,在所描绘的实施方案中,从副本桶集172的内容类似于图5的主副本桶集152的内容,其中主要差异是从副本桶集的桶表示从副本,而非主副本处的条件且用于从副本,而非主副本处的准入控制。如图6中所指示,在至少一些实施方案中,因为可以在主副本处作出针对给定逻辑分区的所有副本的写入准入控制决定,所以所描绘的桶171(即使其被设置来反映从副本处的当前写入活动和/或从副本处的供应写入吞吐量限制)可以不用于从副本处的写入准入控制决定。图6中所示的桶对写入控制决定的贡献可以(例如)经由如下文所描述将桶171C的填充数快照发送至主副本而可为间接。
供应容量桶171A可以保持表示由拥有分区的客户端同意的(从副本)供应吞吐量级别,突发处理桶171B可以用于处理从副本416处的I/O突发,且从副本共享装置桶171C可以存储指示存储从副本416的数据的共享装置处的可用容量的令牌。在至少一些实施方案中,可以至少部分通过以类似于图5中所示的未使用令牌从桶150A至桶150B的传送的方式,如由箭头652所指示,逻辑上从桶171A传送未使用的供应令牌来填充突发处理桶171B。在一个实施方案中,类似或相同装置102和/或存储节点110可以用于不同数据对象的多种分区—例如,用于多种副本的存储装置可以具有类似性能规格,且存储节点110可以各具有相同计算和总存储规格。结果,在一些实施方案中,图6中所示的从副本侧桶171A、171B和171C的参数(例如,其初始容量、再填入速率等等)可以至少在默认情况下设置为相同于对应主副本桶150A、150B或150C的参数的值。在其它实施方案中,不同桶参数设置可用于从副本,而非主副本。一般来说,对于读取请求的准入控制,可以类似于桶150用于主副本处的读取准入控制的方式使用给定从副本处的桶171。在一些实施方案中,在单个副本处(例如,在从副本处或在主副本处)处理给定读取请求,且因此对于读取准入控制决定并不要求关于其它副本处的可用容量的信息。在其中客户端愿意从可能略微过时的从副本使读取得到满足的实施方案中,读取可以(例如)针对“最不忙”副本(从副本或主副本)。在至少一些实施方案中,可基于主副本处可用的信息(包括主副本处可用的关于从副本的信息)在主副本处对所有副本执行针对逻辑分区103的写入请求的准入控制决定。应注意,即使当在主副本处对写入执行准入控制决定时,在这样的实施方案中,在从副本处复制写入时,仍依据可适用消耗策略在从副本处消耗令牌。
如前所描述,关于从副本416所驻留的共享装置102处的可用I/O容量的信息可以(例如)根据从副本更新策略传递至主副本以帮助主副本处的保守型写入准入控制。在图6中所描绘的实施方案中,可以使用(例如)图8a或图8b中所示的技术中的一个将包含从副本共享装置桶171C的填充数快照650的消息发送至主副本412。应注意,在一些实施中,对于从副本416,根本不需要维持桶;例如,关于由从副本使用的共享装置处的可用容量的信息可以周期性供应至主副本412而无必要实施对从副本而言为特定的桶171。
在图5中所示的实施方案中,共同代理桶157用于在主副本处维持从副本装置信息。在一些实施方案中,可以使用其它方法,而非使用表示所有从副本的共同代理桶和计算主副本处的可用从副本装置容量的最小值以确定共同代理桶的填充数。图7图示根据至少一些实施方案的可以维持于数据对象分区的主副本处的令牌桶的类型的另一实例。在图7中所示的实施方案中,对于每个主副本,实施总数n个从副本。图7中的桶的主副本侧布置相同于图5中所示的布置。但是,图7中所示的实施方案中的从副本快照桶集包括每个从副本一个桶,而非图5的单个共同代理桶。从副本快照共享装置桶157A存储指示关于从副本#1共享存储装置处的可用容量的最新可用信息的令牌,桶157B存储指示关于从副本#2共享存储装置处的可用容量的最新可用信息的令牌等等。从副本快照共享装置桶在本文中可以简单地称作“从副本快照桶”或“快照桶”。当接收写入请求时,可以首先检验桶150A。如果在图5中所示的实施方案的情况下,桶150A中存在足够令牌,那么在请求速率低于供应限制时,可以准许写入。即使在正常模式期间,如果准许写入,那么可以从图7中所示的每个桶消耗令牌。
如果在供应容量桶150A中未存在足够令牌,那么逻辑分区可以被认为在突发模式中。在突发模式期间,准入控制器180可以被配置来只当在主副本桶集的桶150B和150C中的每个中和从副本快照桶集155的Q个桶中的每个中一个令牌可用时允许继续进行写入,其中在写入被认为成功之前其必须完成的副本数量是(Q+1)(例如,Q个从副本和一个主副本)。因此,准入控制器180可以使用从副本快照桶集(其桶填充数追踪(在来自从副本的最新可用通信允许下尽可能接近)从副本共享驱动器桶171C的桶填充数)以确保在突发模式中在准许写入请求之前成功写入到至少规定数量的副本。在一些实施方案中,不管针对写入的规定数量大小如何,可以自从副本快照桶集中的N个桶中的每个消耗令牌。在其中消耗来自仅规定数量(而非每个)从副本共享装置桶的令牌的实施方案中,写入可以首先复制至其令牌被消耗的对应从副本(即,在写入复制至其它从副本之前)。在一个实施方案中,不管桶150A是否具有足够令牌,可以检验图7的主副本桶集152的所有桶以确保其具有足够令牌来允许继续进行写入且此外,可以检验从副本快照桶集155的至少Q个桶以确保在允许继续进行写入之前其具有足够令牌。
在至少一些实施方案中,除了图5至图7中所示的基于副本的令牌桶和/或共享装置令牌桶的类型之外或并非上述类型,可以对写入准入控制采用一个或多个节点级令牌桶。例如,对应于存储主副本数据的至少一部分的存储节点110,可以在一个实施方案中实施节点能力桶,其中节点能力桶的令牌填充数至少部分基于视作整体的存储节点110的一些性能能力或限制集的度量。这样的度量可以(例如)指示存储节点的可用处理容量(例如,就CPU循环、利用限制或速度而言)、存储器限制、线程计数限制、操作系统逻辑资源限制(例如,打开的文件或套接字的数量)、联网限制或对可以用于写入或读取的任何其它类型的能力的限制。在这样的实施方案中,针对写入的至少一些准入控制决定可以基于节点能力桶中可用的令牌的数量。在一些实施方案中,给定节点能力桶可以用于针对其数据存储于给定存储节点110上的多个副本中的每个的准入控制决定(例如,针对多于一个主副本或多于一个从副本或主副本和从副本的组合)。在至少一个实施方案中,节点能力桶可以包括于主副本桶集中(和/或从副本桶集中)。
应注意,在一些实施方案中,可以经由编程接口(例如,网络服务应用程序编程接口(API)或其它API、网页、命令行工具或定制图形用户界面)配置准入控制策略的多种性质。因此,例如,关于对于给定数据对象或分区到底是否支持突发模式写入操作的决定,在多种操作模式中从哪个桶集消耗多少令牌或图3中所示的多种其它桶性质的值/设置在这样的实施方案中可以至少部分基于经由这样的编程接口从授权实体(诸如拥有数据对象的客户端)接收的配置请求。
如前所述,在其中从多个桶(诸如,图5的桶150A、150B、150C和157或图6或图7中所示的桶)消耗令牌以接受特定I/O请求来执行的至少一些实施方案中,原子操作(诸如交易或受锁定保护的软件例行程序)可以用于从相关桶集合消耗令牌。在一些实施方案中,原子操作可以包括检查桶的令牌填充数和同样再填入桶,即,所有三个类型的桶操作可以在单个原子操作中执行:桶填充数的检查,填充数的减少和再填入操作。这样的原子操作可以帮助减少达成不一致状态的概率,其中例如,在接收允许I/O操作的决定之后,在从其中一个桶消耗适当数量的令牌之前,所述桶用完令牌(由于另一I/O请求)。在一些实施方案中,在这样组合的原子操作内可以不执行至少一些消耗和/或再填入操作。
在主副本处收集从副本侧信息
图8a和图8b图示根据至少一些实施方案的用于在主副本处获得从副本吞吐量容量信息的各自交互集。在图8a中所描绘的实施方案中,主副本412根据写入针对的数据对象的实际上的持久性策略和/或复制策略将对应于接受的写入请求810的写入复制请求815发送至从副本416。从副本416接收写入复制请求,执行适当写入操作且将写入应答820发送回至主副本。除了从副本写入操作的结果之外,写入应答820还包括指示从副本存储装置102处的可用吞吐量容量的背载填充数快照650(例如,自尝试写入复制时起,其上驻留从副本数据的共享装置的桶171C的填充数)。(本文中使用的术语“背载”指示关于从副本共享存储装置的信息添加至通信上的信息,其已以任何方式发生而不管正使用的准入控制的特定方法如何或即使根本不使用准入控制;因此,快照的通信通常引发非常少的开销,尤其相比于将快照作为独立消息发送的成本)。如上文所描述,快照650可以在主副本处使用以更新从副本快照桶集的填充数。应注意,在至少一些实施方案中,可发送快照而不管从副本是否成功地复制写入;例如,即使因为一些原因,不能在从副本处复制写入,但共享装置的容量的更新视图可以提供至主副本。在一个实施中,仅写入应答的子集可以包括背载填充数快照—例如,从副本416可以选择将填充数快照添加至随机选择的写入应答或可以选择每100毫秒将背载信息添加到多达一个写入应答。
在一些实施方案中,并非使用写入应答820来刷新从副本吞吐量可用性的主副本视图或除了使用写入应答820来刷新从副本吞吐量可用性的主副本视图之外,如图8b中所示,可以使用心跳机制。在所描绘的实例中,从副本可以被配置来将周期性心跳消息830发送至主副本(和/或其它从副本),其指示从副本的健康状态(例如,指示从副本可供使用且可进行网络访问)。在所描绘的实施方案中,填充数快照650可以背载至心跳消息830上。在一些实施方案中,发送至主副本412的所有心跳消息可以包括填充数快照650,但在其它实施方案中,心跳消息的一些所选子集可以用于背载吞吐量容量信息。应注意,在一些实施方案中,其它机制可以用于将从副本装置吞吐量容量传达至主副本,例如,在一个实施方案中,如果在X分钟内不接收任何写入复制请求且不使用心跳,那么从副本可以将单独包括填充数快照的专用消息传输至主副本(即,并不采用背载)。在一些实施方案中,主副本可以周期性或根据需要,将容量更新请求发送至从副本以获得或更新关于从副本的吞吐量容量的信息。
用于基于令牌的写入准入控制的方法
图9是根据至少一些实施方案的图示可以被执行来在网络可访问服务下对写入实施基于令牌的准入控制机制的操作的方面的流程图。如图9中的元素902所示,可以确定给定数据对象101(诸如,关系或非关系数据库的表,文件或文件系统,卷或任何其它类型的数据对象)的存储参数。可以确定许多不同参数的值,诸如其中分布数据对象的逻辑分区103的数量,因为持久性和/或可用性原因维持的每个逻辑分区的物理副本的数量,写入副本规定数量大小(例如,在认为对应写入请求成功之前,需要在多少副本处保持写入)等等。在不同实施方案中,可以基于各种因素的任何组合选择参数的值,诸如客户端提供的规格(例如,在对象创建时)或偏好、与客户端相称的,将代表客户端维持数据对象的服务级别协议、系统默认值、被获得来用于期望具有类似工作负载的其它数据对象的度量等等。在所描绘的实施方案中,可以维持对应于数据对象101的每个逻辑分区103的至少一个主副本412和至少一个从副本416。
如图9的元素906中所示,服务可以初始化和存储对应于给定逻辑分区103的主副本412的主副本桶集152和从副本快照桶集157,每个桶集包括一个或多个令牌桶202。每个桶可以包括可用于限制针对逻辑分区103的输入/输出(I/O)操作的吞吐量的令牌的各自可再填入集合,且每个桶可以具有指示对于允许的I/O操作,在何种情形下(且如果有的话,多少)令牌将从桶消耗的各自令牌消耗策略。主副本桶集152可以包括对主副本而言为本地的至少一些信息—例如,在一个实施中,主副本桶集的特定桶150C的当前令牌计数可以反映其上存储主副本数据的共享存储装置处的可用吞吐量容量。主副本桶集的其它桶可以用于实现与逻辑分区关联的供应吞吐量级别(例如,已请求和/或支付的数据对象的拥有者的I/O操作的速率)或处理I/O工作负载中的短期突发。从副本快照桶集可以包括表示一个或多个从副本416处的可用吞吐量容量的桶—例如,一个这样的桶可以指示与其上存储从副本数据的共享存储装置关联的桶中存在的令牌数量的主副本视图。在一些实施方案中,不同桶集可以用于读取的准入控制,而非写入的准入控制。
主副本在所描绘的实施方案中可以使用特定从副本桶更新协议获得关于从副本处的可用吞吐量容量的信息(元素910)。例如,指示由从副本使用的共享存储装置的可用吞吐量容量的维持于从副本处的令牌桶(诸如图6的桶171C)的填充数的快照或时间点值可以在一个实施方案中于写入应答消息中发送至主副本和/或于心跳消息中自从副本发送至主副本。主副本在所描绘的实施方案中可以使用经由协议获得的信息以更新从副本快照桶集的一个或多个桶中的令牌填充数(元素914)。在至少一些实施方案中,通过添加或背载已因为其它原因发送至主副本(例如,以应答写入复制请求或以确认从副本可供使用且正运行)的消息内的从副本侧可用容量快照,可以使由写入准入控制机制引入的开销最小化。
例如,考虑其中逻辑分区具有主副本M和其数据分别存储于共享存储装置D1和D2上的两个从副本S1和S2的实施方案。装置特定令牌桶SB1和SB2可以维持于各自从副本S1和S2处,其分别指示D1和D2的当前可用吞吐量容量。共同代理桶CPB可以维持于主副本处的从副本快照桶集中以存储关于D1和D2之中的最小吞吐量容量的可用的最新信息。S1可以将背载于时间T1时的写入应答内的填充数(SB1)(即,当前SB1中的令牌的数量)提供至主副本。类似地,S2可以在时间(T1+delta1)时的写入应答中将填充数(SB2)提供至主副本。当主副本接收填充数(SB1)时,其可以将填充数(SB1)与填充数(CPB)(共同代理桶的当前令牌计数)相比较,且如果填充数(SB1)小于填充数(CPB),那么填充数(CPB)可以设置为填充数(SB1)。当在主副本处接收填充数(SB2)时,可以执行类似检验。因此,主副本可以使用共同代理桶保持追踪两个从副本的装置特定桶的最小吞吐量容量,但在任何给定瞬间,主副本视图取决于多频繁地更新从副本侧信息而相对于从副本的一者或两者略微过时。在一些实施中,各自快照桶可以如图7中所示维持于对应于每个从副本的主副本处,而非共同代理桶。
如元素918中所指示,可以接收针对逻辑分区的写入请求(诸如,对于逻辑分区的一些部分的创建、更新或删除请求)。在所描绘的实施方案中,可以相对于主副本或在主副本处对逻辑分区的所有副本处理针对写入的准入控制。准入控制机制可以确定足够令牌是否存在于主副本桶集和从副本快照桶集的一个或两个桶集处,其中令牌的足够性基于桶的各自消耗策略为桶集中的每个桶作出解释。在一个实施中,例如,如果特定桶(例如,供应容量桶,诸如图5的主副本桶集的桶150A)基于其消耗策略具有足够令牌,那么可以准许请求而不管其它桶的状态如何。在这样的实施中,如果特定桶不具有足够令牌,那么如图10中所示和下文所描述,可以检查其它桶的填充数且基于那些其它桶的内容准许请求。在另一实施中,在每个桶集的每个桶中需要一个令牌以允许写入请求。在多个桶实施于给定桶集内的一个实施中,可从桶集的一个或多个桶要求零个令牌,但可从桶集的一个或多个其它桶中的每个要求一个或多个令牌。在其它实施中,可取决于写入请求的参数而从多种桶要求不同数量的令牌—例如,如果准入控制机制能够确定写入请求将导致较大数量的物理或逻辑写入,那么可从特定桶消耗多于一个令牌。
如果如对应于图9的元素922的操作中确定,基于实际上的消耗策略或若干策略,在每个桶集中找到足够令牌,那么写入请求可以被接受来执行(元素926)。可以从每个桶集消耗适当数量的令牌,且写入复制请求可以从主副本发送至适当数量的从副本。如果写入成功地复制于规定数量的副本处(如元素928中确定),那么可以告知请求客户端写入成功(元素932)。如果未找到足够令牌(如元素922中确定)或如果写入在规定数量副本处未成功(如元素928中确定),那么在一些实施方案中,可以告知客户端写入失败(元素936)。在其它实施方案中,在延迟之后重试写入。
图10是根据至少一些实施方案的图示可以被执行来在网络可访问服务下对突发模式写入实施基于令牌的准入控制机制的操作的方面的流程图。所描绘的实施方案中的主副本桶集可以包括类似于图5的供应容量桶150A、突发处理桶150B和主副本共享装置150C的供应容量桶150A、突发处理桶150B和从副本共享装置150C。从副本快照桶集可以包括类似于图5中所示的共同代理桶157的共同代理桶157。如元素1001中所示,可以在与写入所针对的逻辑分区的主副本关联的准入控制器180处接收写入请求。
如果主副本供应容量桶150A基于其消耗策略具有足够令牌(如元素1004中确定),那么逻辑分区可以被认为在正常(非突发)模式中,且可以接受写入请求(元素1007)。可以从供应容量桶消耗(移除)一个或多个令牌以反映写入的接受(元素1010)。在至少一些实施方案中,还可以基于桶的各自消耗策略从主副本桶集和/或从副本快照桶集的其它桶移除令牌—例如,在一个简答实施中,可以从桶150A、150B、150C和157中的每个消耗一个令牌。在所描述的实施方案中,取决于多种桶的再填入速率可以将令牌添加至主副本桶集的一个或多个桶(元素1034)。(对从副本快照桶集的填充数的改变可以如上文所描述,基于自从副本接收的通信;关于这样的通信的操作的实例图示于图11a和图11b中。)
但是如果主副本供应容量桶150A不具有足够令牌(如还在元素1004中确定),那么逻辑分区可以被认为在突发模式中。在所描绘的实施方案中,在突发模式中,可以检验桶150B、150C和150D中的每个以基于其消耗策略确定其是否各具有足够令牌。如元素1014中所示,可以首先检验突发处理桶150B以(例如)确定逻辑分区是否在配置的突发峰值容量限制内和/或具有足够的存入令牌来允许突发。如果桶150B具有足够令牌,那么接下来可以检验主副本共享装置桶150C(元素1018)以(例如)确定在用于主副本数据的共享存储装置处足够吞吐量容量是否可用。接着,如果主副本共享装置桶150C具有足够令牌,那么可以检验从副本快照共同代理桶157以(例如)确定(若干)从副本是否可能在其各自共享装置处具有足够吞吐量容量(元素1022)。(应注意,在其中对于每个从副本,从副本快照桶集具有一个快照桶的实施方案中,如图7中所示,可以检验快照桶的至少一个子集中的每个,而非检验共同代理桶。)如果在对应于元素1014、1018和1022的操作中检验的所有桶具有足够令牌,那么写入请求可以被接受来执行(元素1026)。可以从每个桶150B、150C和157消耗适当数量的令牌(元素1030)。在一些实施方案中,可以视情况同样从供应容量桶150A“消耗”令牌(这可导致供应容量桶的负填充数)。主副本桶集的多种桶可以依照其各自再填入速率再填入(元素1034)。如果元素1014、1018和1022中所示的任何一个操作指示对应桶并不具有足够令牌,那么写入请求可以被拒绝(或延迟/重试)且在一些实施中,可以关于拒绝通知客户端(元素1038)。应注意,在突发模式期间检验桶的顺序在不同实施中可以不同,且所有桶检验,令牌消耗操作和/或多种桶的再填入在至少一些实施方案中可以执行于单个原子操作(诸如交易)内。
图11a和图11b是根据至少一些实施方案的图示可以被执行来在主副本处获得从副本共享存储器桶填充数的操作的方面的流程图。如元素1102中所示,写入复制请求815可以根据数据对象的持久性要求从主副本412传输至从副本416。写入应答820可在主副本处自从副本获得(元素1106),其可包括指示由从副本使用中的共享存储装置102的可用吞吐量容量的背载从副本填充数快照650。在一些实施方案中,如前所述,仅写入应答的子集可包含背载从副本填充数快照。具有从副本填充数快照的写入应答在一些实施方案中可以发送至主副本而不管写入在从副本处是成功还是失败,使得背载从副本状态信息可以独立于写入复制失败而在主副本处接收。如果应答包括背载从副本填充数快照,那么快照可以用于调整或更新主副本的从副本快照桶集155中的一个或多个桶的填充数(元素1108)(如果需要的话)且更新的从副本快照桶集可以用于(例如)在突发模式期间对主副本处的随后写入请求作出准入控制决定(元素1112)。应注意,在一些情况下无需对从副本快照桶集进行调整—例如,如果使用共同代理桶(诸如图5中所示的共同代理桶)且新接收的快照指示令牌填充数比对于不同从副本共享装置桶已经知道的填充数高,那么可以不对共同代理桶的填充数作出改变。
如图10b的元素1152中所示,在一些实施方案中,主副本412可以被配置来自从副本接收指示从副本的健康状态的心跳或“我活着”消息。表示正用于从副本数据的共享存储装置102处的可用吞吐量容量的填充数快照650可以背载于心跳消息中。除了验证从副本的健康状态之外,主副本可以从心跳消息提取填充数快照650(元素1156)。可以根据快照调整从副本快照桶集的一个或多个表的填充数(元素1158)且更新的从副本快照桶集可以用于作出随后写入准入控制决定(元素1162)。如在图10a中所示的实施方案的情况下,在一些情况下无需对从副本快照桶集进行调整—例如,如果使用共同代理桶(诸如图5中所示的共同代理桶)且新接收的快照指示令牌填充数比对于不同从副本共享装置桶最后接收的填充数高。在一些实施中,仅心跳消息的子集可包含背载从副本填充数快照。
应注意,在多种实施方案中,图9、图10、图11a和图11b的流程图中所示的一些操作可以省略或以不同于所示的顺序的顺序执行或可以并行,而非连续执行。
使用案例
针对写入的保守型基于令牌的准入控制的上文描述技术在各种不同情境中可用。例如,在一些数据库环境中,客户端可以具有非常大的(太字节或拍字节)表或表集且非常高的I/O速率可以针对表。持久性/冗余要求可以规定对于每个表维持若干副本,且在声明写入成功之前在若干副本处保持每个写入。在这样情境中,表经常可以跨越不同存储节点和/或装置分片或分区且驻留于给定存储装置上的数据集可以包括来自许多不同表的许多不同分区的副本的部分。一般来说,随着时间推移预期针对给定存储装置的工作负载的变化可能非常困难。此外,给定分区的副本可以跨越多于一个数据中心或甚至在不同城市、州或国家中分布。因此,当关于接受还是拒绝给定写入请求作出决定时,尤其在写入请求速率超过代表客户端强制执行的供应吞吐量限制时的突发操作模式期间,如本文所描述,来自多于一个副本的有效传输的最近吞吐量容量信息或工作负载条件的可用性可能非常有用。这样的准入控制机制可以帮助减少接受的写入请求的复制失败(或源自写入重试的非期望较长客户端感知的延迟)的发生率且从而可增加总体客户满意度。
说明性计算机系统
在至少一些实施方案中,实施包括实施基于令牌的准入控制和/或复制对象分区所在的存储节点的技术的一个或多个本文描述的技术的一部分或所有的服务器可以包括通用计算机系统,其包括或被配置来访问一个或多个计算机可访问介质。图12图示这样的通用计算装置3000。在所示实施方案中,计算装置3000包括经由输入/输出(I/O)接口3030耦接至系统存储器3020的一个或多个处理器3010。计算装置3000还包括耦接至I/O接口3030的网络接口3040。
在多种实施方案中,计算装置3000可以是包括一个处理器3010的单处理器系统或包括若干处理器3010(例如,两个、四个、八个或另一合适数量)的多处理器系统。处理器3010可以是能够执行指令的任何合适处理器。例如,在多种实施方案中,处理器3010可以是通用或嵌入式处理器,其实施各种指令集架构(ISA)(诸如x86、PowerPC、SPARC或MIPSISA或任何其它合适ISA)中的任何一个。在多处理器系统中,处理器3010中的每个可以通常,但不一定实施相同ISA。
系统存储器3020可以被配置来存储可由(若干)处理器3010访问的指令和数据。在多种实施方案中,可以使用任何合适存储器技术(诸如静态随机访问存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/快闪类型存储器或任何其它类型存储器)实施系统存储器3020。在所示的实施方案中,实施一个或多个所期望功能的程序指令和数据(诸如上文描述的那些方法、技术和数据)示出为作为代码3025和数据3026存储于系统存储器3020内。
在一个实施方案中,I/O接口3030可以被配置来协调处理器3010、系统存储器3020与包括网络接口3040或其它外围接口(诸如用于存储数据对象分区的物理副本的多种类型的持久性和/或易失性存储装置)的装置中的任何外围装置之间的I/O流量。在一些实施方案中,I/O接口3030可以执行任何必要协议、时序或其它数据转变以将来自一个组件(例如,系统存储器3020)的数据信号转换为适合于由另一组件(例如,处理器3010)使用的格式。在一些实施方案中,I/O接口3030可以包括对通过多种类型的外围总线(诸如,例如,外围组件互连(PCI)总线标准或通用串行总线(USB)标准)附接的装置的支持。在一些实施方案中,I/O接口3030的功能可以分成两个或更多个单独组件,诸如,例如,北桥和南桥。同样,在一些实施方案中,I/O接口3030(诸如系统存储器3020的接口)的一些或所有功能可以直接并入至处理器3010中。
网络接口3040可以被配置来允许数据在附接至网络或若干网络3050的计算装置3000与其它装置3060(诸如,例如,图1至图11b中所示的其它计算系统或装置)之间交换。在多种实施方案中,网络接口3040可以经由任何合适的有线或无线通用数据网络(诸如,例如,以太网网络类型)支持通信。此外,网络接口3040可以经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络),经由存储区域网络(诸如光纤通道SAN)或经由任何其它合适类型的网络和/或协议支持通信。
在一些实施方案中,系统存储器3020可以是计算机可访问介质的一个实施方案,其被配置来存储如上文针对图1至图11b所描述的用于实施对应方法和设备的实施方案的程序指令和数据。但是,在其它实施方案中,可以在不同类型的计算机可访问介质上接收、发送或存储程序指令和/或数据。一般来说,计算机可访问介质可以包括非暂时性存储介质或存储器介质,诸如磁性介质或光学介质,例如,经由I/O接口3030耦接至计算装置3000的磁盘或DVD/CD。非暂时性计算机可访问存储介质还可以包括任何易失性或非易失性介质,诸如RAM(例如,SDRAM、DDRSDRAM、RDRAM、SRAM等等)、ROM等等,其可以作为系统存储器3020或另一类型的存储器包括于计算装置3000的一些实施方案中。进一步来说,计算机可访问介质可以包括经由(诸如)可以经由网络接口3040实施的通信介质(诸如网络和/或无线链路)传递的传输介质或信号,诸如电信号、电磁信号或数字信号。多个计算装置的部分或所有(诸如图12中所示的计算装置的部分或所有)在多种实施方案中可以用于实施所描述的功能;例如,运行于各种不同装置和服务器上的软件组件可以协作以提供功能。在一些实施方案中,除了使用通用计算机系统实施之外或并非使用通用计算机系统实施,可以使用存储装置、网络装置或特殊用途计算机系统实施所描述的功能的部分。如本文中使用的术语“计算装置”是指至少所有这些类型的装置且并不限于这些类型的装置。
可鉴于以下条例更好地理解前述实施方案:
1.一种方法,其包括:
存储对应于包括一个或多个逻辑分区的数据对象的逻辑分区的逻辑分区的主副本和逻辑分区的一个或多个从副本,其中根据复制策略在主副本和至少一个从副本处复制对逻辑分区的写入;
存储对应于主副本的包括一个或多个桶的主副本桶集和包括一个或多个桶的从副本快照桶集,其中主副本桶集和从副本快照桶集的每个桶(a)包括可用于限制针对逻辑分区的操作的吞吐量的各自可再填入令牌集合和(b)具有指示对于允许的操作将消耗的令牌数量的令牌消耗策略;
至少部分基于从副本桶更新协议更新从副本快照桶集的特定桶的令牌填充数,其中根据从副本桶更新协议,主副本被配置来获得存储一个或多个从副本的特定从副本的数据的至少一部分的共享存储装置处的可用吞吐量容量的指示,其中共享存储装置可被配置来存储对应于一个或多个数据对象的一个或多个逻辑分区的数据;
响应于接收针对逻辑分区的写入请求,
根据主副本桶集和从副本快照桶集的桶的各自令牌消耗策略,至少部分基于在主副本桶集和从副本快照桶集的至少一个桶集中足够数量的令牌是否可用而确定写入请求是否被接受来执行;且
响应于确定写入请求将被接受来执行,发起对应于写入请求的一个或多个数据修改操作。
2.根据第1条所述的方法,其还包括:
至少部分基于主副本桶集的特定桶的令牌填充数确定逻辑分区是否在突发操作模式中;且
响应于确定逻辑分区在突发操作模式中,至少部分基于在(a)主副本桶集和(b)从副本快照桶集中足够数量的令牌是否可用而确定写入请求是否被接受来执行。
3.根据第1条所述的方法,其中一个或多个从副本包括特定从副本和第二从副本,所述方法还包括:
存储对应于特定从副本的第一共享装置桶,其令牌填充数指示共享存储装置处的可用吞吐量容量;
存储对应于第二从副本的第二共享装置桶,其令牌填充数指示存储第二从副本的数据的至少一部分的第二共享存储装置处的可用吞吐量容量,其中第二共享存储装置可被配置来存储对应于一个或多个数据对象的一个或多个逻辑分区的数据;
且其中实施所述从副本桶更新协议包括主副本获得(a)第一共享装置桶的令牌填充数和(b)第二共享装置桶的令牌填充数的各自时间点快照。
4.根据第3条所述的方法,其中从副本快照桶集包括共同代理桶,其中实施所述从副本更新协议包括:
至少部分基于各自时间点快照确定第一和第二共享装置桶的令牌填充数之中的令牌填充数的最小值的估计;且
至少部分基于估计更新共同代理桶的令牌填充数;
且其中根据与共同代理桶关联的令牌消耗策略,所述方法还包括:
基于确定共同代理桶包括至少一个令牌且主副本桶集的至少一个桶包括至少一个令牌而接受写入请求来执行。
5.根据第3条所述的方法,其中从副本快照桶集包括对应于特定从副本的第一快照桶和对应于第二从副本的第二快照桶,其中实施所述从副本桶更新协议包括:
基于第一共享装置桶的令牌填充数的时间点指示更新第一快照桶的令牌填充数;
基于第二共享装置桶的令牌填充数的时间点指示更新第二快照桶的令牌填充数;
且其中所述方法还包括:
基于确定第一快照桶包括至少一个令牌且第二快照桶包括至少一个令牌且主副本桶集的至少一个桶包括至少一个令牌而接受写入请求来执行。
6.根据第1条所述的方法,其还包括:
将对应于写入请求的写入复制请求从主副本传输至特定从副本;且
在主副本处接收写入复制请求的应答,其中应答包括根据从副本桶更新协议的共享存储装置处的可用吞吐量容量的指示。
7.一种系统,其包括:
一个或多个处理器;和
存储器,其耦接至一个或多个处理器且存储程序指令,所述程序指令在由一个或多个处理器执行时,促使一个或多个处理器执行:
存储对应于数据对象的一个或多个逻辑分区的逻辑分区的主副本的包括一个或多个桶的主副本桶集和包括一个或多个桶的从副本快照桶集,其中主副本桶集和从副本快照桶集的每个桶包括可用于限制针对逻辑分区的写入操作的吞吐量的各自令牌集合;
至少部分基于存储逻辑分区的特定从副本的数据的至少一部分的共享存储装置处的可用吞吐量容量的指示更新从副本快照桶集的特定桶的令牌填充数;
响应于接收针对逻辑分区的写入请求,
根据主副本桶集和从副本快照桶集的桶的各自令牌消耗策略,至少部分基于在(a)主副本桶集和(b)从副本快照桶集的至少一个桶集中足够数量的令牌是否可用而确定写入请求是否被接受来执行;且
响应于确定写入请求将被接受来执行,发起对应于写入请求的一个或多个数据修改操作。
8.根据第7条所述的系统,其中程序指令在由一个或多个处理器执行时,促使一个或多个处理器执行:
存储包括特定从副本和第二从副本的逻辑分区的多个从副本;
存储对应于特定从副本的第一共享装置桶,其令牌填充数指示共享存储装置处的可用吞吐量容量;
存储对应于第二从副本的第二共享装置桶,其令牌填充数指示存储第二从副本的数据的至少一部分的第二共享存储装置处的可用吞吐量容量;
且其中所述更新特定桶的令牌填充数至少部分基于主副本获得(a)第一共享装置桶的令牌填充数的快照和(b)第二共享装置桶的令牌填充数的快照。
9.根据第8条所述的系统,其中特定桶包括对应于至少特定从副本和第二从副本的组合的共同代理桶,其中程序指令在由一个或多个处理器执行时促使一个或多个处理器执行:
至少部分基于获得第一和第二共享装置桶的各自快照确定第一和第二共享装置桶的令牌填充数之中的最小令牌填充数的估计;
基于估计更新共同代理桶的令牌填充数;且
至少部分基于共同代理桶包括至少一个令牌的指示接受写入请求来执行。
10.根据第8条所述的系统,其中从副本快照桶集包括对应于特定从副本的第一快照桶和对应于第二从副本的第二快照桶,其中程序指令在由一个或多个处理器执行时促使一个或多个处理器执行:
基于第一共享装置桶的令牌填充数的指示更新第一快照桶的令牌填充数;
基于第二共享装置桶的令牌填充数的指示更新第二快照桶的令牌填充数;
至少部分基于确定第一快照桶包括至少一个令牌且第二快照桶包括至少一个令牌而接受写入请求来执行。
11.根据第7条所述的系统,其中程序指令在由一个或多个处理器执行时,促使一个或多个处理器执行:
将对应于写入请求的复制请求从主副本传输至特定从副本;且
在主副本处接收复制请求的应答,其中应答包括共享存储装置处的可用吞吐量容量的指示。
12.根据第7条所述的系统,其中程序指令在由一个或多个处理器执行时促使一个或多个处理器执行:
在主副本处从特定从副本接收指示特定从副本的健康状态的心跳消息,其中心跳消息包括共享存储装置处的可用吞吐量容量的指示。
13.根据第7条所述的系统,其中主副本桶集包括供应容量桶,其中程序指令在由一个或多个处理器执行时促使一个或多个处理器执行:
至少部分基于由被授权来访问数据对象的客户端提供的目标吞吐量的指示配置供应容量桶的一个或多个参数,所述参数包括供应容量桶的初始令牌填充数和再填入速率;且
至少部分基于确定供应容量桶包括至少一个令牌而确定写入请求将被接受来执行。
14.根据第13条所述的系统,其中主副本桶集包括突发处理桶,其中程序指令在由一个或多个处理器执行时促使一个或多个处理器执行:
将令牌添加至突发处理桶,其中添加的令牌数量至少部分基于确定在特定时期期间针对逻辑分区的操作的测量速率小于目标吞吐量;且
响应于(a)接收不同写入请求且(b)确定在接收不同写入请求时,供应容量桶并不包含令牌,至少部分基于确定突发处理桶包括至少一个令牌而接受不同写入请求来执行。
15.根据第7条所述的系统,其中主副本桶集包括主副本共享装置桶,其令牌填充数至少部分基于用于存储主副本数据的至少一部分的不同共享存储装置的可用吞吐量容量,其中程序指令在由一个或多个处理器执行时促使一个或多个处理器执行:
至少部分基于确定主副本共享装置桶包括至少一个令牌而接受写入请求来执行。
16.根据第7条所述的系统,其中主副本桶集包括节点能力桶,其令牌填充数至少部分基于存储主副本数据的至少一部分的存储节点的性能能力的度量,其中程序指令在由一个或多个处理器执行时促使一个或多个处理器执行:
至少部分基于确定节点能力桶包括至少一个令牌而接受写入请求来执行。
17.根据第7条所述的系统,其中程序指令在由一个或多个处理器执行时促使一个或多个处理器执行:
根据经由编程接口接收的配置请求修改准入控制策略的性质;
响应于接收针对逻辑分区的不同写入请求,至少部分基于性质确定不同写入请求是否将被接受来执行。
18.一种存储程序指令的非暂时性计算机可访问存储介质,所述程序指令在执行于一个或多个处理器上时促使所述一个或多个处理器执行:
存储对应于数据对象的逻辑分区的主副本和包括特定从副本的一个或多个从副本,其中主副本包括存储于第一存储装置上的数据且特定从副本包括存储于第二存储装置上的数据;
接收针对逻辑分区的至少一部分的写入请求;
至少部分基于(a)主副本处的可用吞吐量容量和(b)使用基于令牌的协议获得的特定从副本处的可用吞吐量容量的指示的一个或多个而确定是否接受写入请求来执行;
响应于接受写入请求来执行,发起对应于写入请求的一个或多个数据修改操作。
19.根据第18条所述的非暂时性计算机可访问存储介质,其中程序指令在执行于一个或多个处理器上时促使处理器执行:
存储对应于主副本的包括一个或多个桶的主副本桶集和包括一个或多个桶的从副本快照桶集,其中主副本桶集和从副本快照桶集的每个桶包括各自令牌集合;
更新表示主副本处的可用吞吐量容量的主副本桶集的至少一个特定桶的令牌填充数;
更新表示特定从副本处的可用吞吐量容量的从副本快照桶集的至少一个特定桶的令牌填充数;
且其中所述确定是否接受写入请求来执行包括:
响应于确定逻辑分区在突发操作模式中,检查主副本桶集的特定桶的令牌填充数和从副本快照桶集的特定桶的令牌填充数。
20.根据第19条所述的非暂时性计算机可访问存储介质,其中程序指令在由一个或多个处理器执行时促使一个或多个处理器执行:
根据所述接受写入请求来执行,从主副本桶集的特定桶消耗至少一个令牌且自从副本快照桶集的特定桶消耗至少一个令牌。
21.根据第20条所述的非暂时性计算机可访问存储介质,其中在原子操作内消耗来自主副本桶集的特定桶的至少一个令牌和来自从副本快照桶集的特定桶的至少一个令牌。
22.根据第19条所述的非暂时性计算机可访问存储介质,其中程序指令在执行于一个或多个处理器上时促使处理器执行:
存储包括特定从副本和第二从副本的逻辑分区的多个从副本;
存储对应于特定从副本的第一共享装置桶,其令牌填充数指示第二存储装置处的可用吞吐量容量;
存储对应于第二从副本的第二共享装置桶,其令牌填充数指示存储第二从副本的数据的至少一部分的第三存储装置处的可用吞吐量容量;
且其中所述更新从副本快照桶集的特定桶的令牌填充数至少部分基于获得(a)第一共享装置桶的令牌填充数和(b)第二共享装置桶的令牌填充数的各自快照。
23.根据第22条所述的非暂时性计算机可访问存储介质,其中从副本快照桶集的特定桶包括共同代理桶,其中程序指令在由一个或多个处理器执行时促使一个或多个处理器执行:
确定第一和第二共享装置桶的令牌填充数之中的最小令牌填充数的估计;
基于估计更新共同代理桶的填充数;且
至少部分基于确定共同代理桶包括至少一个令牌而接受写入请求来执行。
24.根据第18条所述的非暂时性计算机可访问存储介质,其中程序指令在由一个或多个处理器执行时促使一个或多个处理器执行:
将对应于写入请求的复制请求从主副本传输至特定从副本;且
在主副本处接收复制请求的应答,其中应答包括特定从副本处的可用吞吐量容量的指示。
25.根据第18条所述的非暂时性计算机可访问存储介质,其中程序指令在由一个或多个处理器执行时促使一个或多个处理器执行:
在主副本处从特定从副本接收指示特定从副本的健康状态的心跳消息,其中心跳消息包括共享存储装置处的可用吞吐量容量的指示。
26.根据第18条所述的非暂时性计算机可访问存储介质,其中数据对象包括数据库表的内容。
结论
多种实施方案可以还包括在计算机可访问介质上接收、发送或存储根据以上描述实施的指令和/或数据。一般来说,计算机可访问介质可以包括存储介质或存储器介质,诸如磁性介质或光学介质,(例如,磁盘或DVD/CD-ROM)、易失性或非易失性介质(诸如RAM(例如,SDRAM、DDR、RDRAM、SRAM等等)、ROM等等)以及经由通信介质(诸如网络和/或无线链路)传递的传输介质或信号,诸如电信号、电磁信号或数字信号。
如附图简述中所示和本文中所描述的多种方法表示方法的例示性实施方案。可以在软件、硬件或其组合中实施方法。方法的顺序可以改变且多种元素可以添加、重新排列、组合、省略、修改等等。
如对获益于本公开内容的所属领域一般技术人员明显的是,可作出多种修改和改变。旨在包括所有这样的修改和改变且相应地,在说明性,而非限制性意义考虑以上描述。

Claims (15)

1.一种方法,其包括:
存储对应于包括一个或多个逻辑分区的数据对象的逻辑分区的所述逻辑分区的主副本和所述逻辑分区的一个或多个从副本,其中根据复制策略在所述主副本和所述至少一个从副本处复制对所述逻辑分区的写入;
存储对应于所述主副本的包括一个或多个桶的主副本桶集和包括一个或多个桶的从副本快照桶集,其中所述主副本桶集和所述从副本快照桶集中的每个桶(a)包括可用于限制针对所述逻辑分区的操作的吞吐量的各自可再填入令牌集合并且(b)具有指示对于允许的操作将消耗的令牌数量的令牌消耗策略;
至少部分基于从副本桶更新协议更新所述从副本快照桶集中的特定桶的令牌填充数,其中根据所述从副本桶更新协议,所述主副本被配置来获得存储所述一个或多个从副本中的特定从副本的数据的至少一部分的共享存储装置处的可用吞吐量容量的指示,其中所述共享存储装置可被配置来存储对应于一个或多个数据对象的一个或多个逻辑分区的数据;
响应于接收针对所述逻辑分区的写入请求,
根据所述主副本桶集和所述从副本快照桶集中的所述桶的各自令牌消耗策略,至少部分基于在所述主副本桶集和所述从副本快照桶集中的至少一个桶集中足够数量的令牌是否可用而确定所述写入请求是否将被接受来执行;且
响应于确定所述写入请求被接受来执行,发起对应于所述写入请求的一个或多个数据修改操作。
2.根据权利要求1所述的方法,其还包括:
至少部分基于所述主副本桶集中的特定桶的令牌填充数确定所述逻辑分区是否在突发操作模式中;且
响应于确定所述逻辑分区在突发操作模式中,至少部分基于在(a)所述主副本桶集和(b)所述从副本快照桶集中足够数量的令牌是否可用而确定所述写入请求是否将被接受来执行。
3.根据权利要求1所述的方法,其中所述一个或多个从副本包括所述特定从副本和第二从副本,其还包括:
存储对应于所述特定从副本的第一共享装置桶,其令牌填充数指示所述共享存储装置处的可用吞吐量容量;
存储对应于所述第二从副本的第二共享装置桶,其令牌填充数指示存储所述第二从副本的数据的至少一部分的第二共享存储装置处的可用吞吐量容量,其中所述第二共享存储装置可被配置来存储对应于一个或多个数据对象的一个或多个逻辑分区的数据;
且其中实施所述从副本桶更新协议包括所述主副本获得(a)所述第一共享装置桶的所述令牌填充数和(b)所述第二共享装置桶的所述令牌填充数的各自时间点快照。
4.根据权利要求1所述的方法,其还包括:
将对应于所述写入请求的写入复制请求从所述主副本传输至所述特定从副本;且
在所述主副本处接收所述写入复制请求的应答,其中所述应答包括根据所述从副本桶更新协议的所述共享存储装置处的所述可用吞吐量容量的指示。
5.一种系统,其包括:
一个或多个处理器;和
存储器,其耦接至所述一个或多个处理器且存储程序指令,所述程序指令在由所述一个或多个处理器执行时,促使所述一个或多个处理器执行:
存储对应于数据对象的一个或多个逻辑分区的逻辑分区的主副本的包括一个或多个桶的主副本桶集和包括一个或多个桶的从副本快照桶集,其中所述主副本桶集和所述从副本快照桶集中的每个桶包括可用于限制针对所述逻辑分区的写入操作的吞吐量的各自令牌集合;
至少部分基于存储所述逻辑分区的特定从副本的数据的至少一部分的共享存储装置处的可用吞吐量容量的指示更新所述从副本快照桶集中的特定桶的令牌填充数;
响应于接收针对所述逻辑分区的写入请求,
根据所述主副本桶集和所述从副本快照桶集中的所述桶的各自令牌消耗策略,至少部分基于在(a)所述主副本桶集和(b)所述从副本快照桶集中的至少一个桶集中足够数量的令牌是否可用而确定所述写入请求是否将被接受来执行;且
响应于确定所述写入请求将被接受来执行,发起对应于所述写入请求的一个或多个数据修改操作。
6.根据权利要求5所述的系统,其中所述程序指令在由所述一个或多个处理器执行时促使所述一个或多个处理器执行:
存储包括所述特定从副本和第二从副本的所述逻辑分区的多个从副本;
存储对应于所述特定从副本的第一共享装置桶,其令牌填充数指示所述共享存储装置处的可用吞吐量容量;
存储对应于所述第二从副本的第二共享装置桶,其令牌填充数指示存储所述第二从副本的数据的至少一部分的第二共享存储装置处的可用吞吐量容量;
且其中所述更新所述特定桶的所述令牌填充数至少部分基于所述主副本获得(a)所述第一共享装置桶的所述令牌填充数的快照和(b)所述第二共享装置桶的所述令牌填充数的快照。
7.根据权利要求6所述的系统,其中所述特定桶包括对应于至少所述特定从副本和所述第二从副本的组合的共同代理桶,其中所述程序指令在由所述一个或多个处理器执行时促使所述一个或多个处理器执行:
至少部分基于获得所述第一和第二共享装置桶的各自快照确定所述第一和第二共享装置桶的所述令牌填充数之中的最小令牌填充数的估计;
基于所述估计更新所述共同代理桶的令牌填充数;且
至少部分基于所述共同代理桶包括至少一个令牌的指示接受所述写入请求来执行。
8.根据权利要求6所述的系统,其中所述从副本快照桶集包括对应于所述特定从副本的第一快照桶和对应于所述第二从副本的第二快照桶,其中所述程序指令在由所述一个或多个处理器执行时促使所述一个或多个处理器执行:
基于所述第一共享装置桶的所述令牌填充数的指示更新所述第一快照桶的所述令牌填充数;
基于所述第二共享装置桶的所述令牌填充数的指示更新所述第二快照桶的所述令牌填充数;
至少部分基于确定所述第一快照桶包括至少一个令牌且所述第二快照桶包括至少一个令牌而接受所述写入请求来执行。
9.根据权利要求5所述的系统,其中所述程序指令在由所述一个或多个处理器执行时促使所述一个或多个处理器执行:
将对应于所述写入请求的复制请求从所述主副本传输至所述特定从副本;且
在所述主副本处接收所述复制请求的应答,其中所述应答包括所述共享存储装置处的所述可用吞吐量容量的指示。
10.根据权利要求5所述的系统,其中所述程序指令在由所述一个或多个处理器执行时促使所述一个或多个处理器执行:
在所述主副本处从所述特定从副本接收指示所述特定从副本的健康状态的心跳消息,其中所述心跳消息包括所述共享存储装置处的所述可用吞吐量容量的指示。
11.根据权利要求5所述的系统,其中所述主副本桶集包括供应容量桶,其中所述程序指令在由所述一个或多个处理器执行时促使所述一个或多个处理器执行:
至少部分基于由被授权来访问所述数据对象的客户端提供的目标吞吐量的指示配置所述供应容量桶的一个或多个参数,所述参数包括所述供应容量桶的初始令牌填充数和再填入速率;且
至少部分基于确定所述供应容量桶包括至少一个令牌而确定所述写入请求将被接受来执行。
12.根据权利要求11所述的系统,其中所述主副本桶集包括突发处理桶,其中所述程序指令在由所述一个或多个处理器执行时促使所述一个或多个处理器执行:
将令牌添加至所述突发处理桶,其中添加的令牌数量至少部分基于确定在特定时期期间针对所述逻辑分区的操作的测量速率小于所述目标吞吐量;且
响应于(a)接收不同写入请求且(b)确定在接收所述不同写入请求时,所述供应容量桶并不包含令牌,至少部分基于确定所述突发处理桶包括至少一个令牌而接受所述不同写入请求来执行。
13.根据权利要求5所述的系统,其中所述主副本桶集包括主副本共享装置桶,其令牌填充数至少部分基于用于存储主副本的数据的至少一部分的不同共享存储装置的可用吞吐量容量,其中所述程序指令在由所述一个或多个处理器执行时促使所述一个或多个处理器执行:
至少部分基于确定所述主副本共享装置桶包括至少一个令牌而接受所述写入请求来执行。
14.根据权利要求5所述的系统,其中所述主副本桶集包括节点能力桶,其令牌填充数至少部分基于存储所述主副本的数据的至少一部分的存储节点的性能能力的度量,其中所述程序指令在由所述一个或多个处理器执行时促使所述一个或多个处理器执行:
至少部分基于确定所述节点能力桶包括至少一个令牌而接受所述写入请求来执行。
15.一种系统,其包括:
一个或多个处理器;和
一个或多个存储器,所述一个或多个存储器具有在其上存储的程序指令,所述程序指令在执行于一个或多个处理器上时促使所述一个或多个处理器执行:
存储对应于数据对象的逻辑分区的主副本和包括特定从副本的一个或多个从副本,其中所述主副本包括存储在第一存储装置上的数据且所述特定从副本包括存储在第二存储装置上的数据;
接收针对所述逻辑分区的至少一部分的写入请求;
至少部分基于(a)所述主副本处的可用吞吐量容量和(b)使用基于令牌的协议获得的所述特定从副本处的可用吞吐量容量的指示中的一个或多个而确定是否将接受所述写入请求来执行;
响应于接受所述写入请求来执行,发起对应于所述写入请求的一个或多个数据修改操作。
CN201480023068.XA 2013-03-13 2014-03-11 针对复制写入的基于令牌的准入控制 Active CN105144161B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/800,796 US11086898B2 (en) 2013-03-13 2013-03-13 Token-based admission control for replicated writes
US13/800,796 2013-03-13
PCT/US2014/022916 WO2014164584A1 (en) 2013-03-13 2014-03-11 Token-based admission control for replicated writes

Publications (2)

Publication Number Publication Date
CN105144161A true CN105144161A (zh) 2015-12-09
CN105144161B CN105144161B (zh) 2019-05-10

Family

ID=51532974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480023068.XA Active CN105144161B (zh) 2013-03-13 2014-03-11 针对复制写入的基于令牌的准入控制

Country Status (8)

Country Link
US (1) US11086898B2 (zh)
EP (1) EP2973067B1 (zh)
JP (1) JP6139773B2 (zh)
KR (1) KR101797836B1 (zh)
CN (1) CN105144161B (zh)
AU (1) AU2014249180B2 (zh)
CA (1) CA2905282C (zh)
WO (1) WO2014164584A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107105050A (zh) * 2017-05-11 2017-08-29 北京奇艺世纪科技有限公司 一种业务对象的存储、下载方法及系统
CN107579926A (zh) * 2017-10-20 2018-01-12 南京易捷思达软件科技有限公司 基于令牌桶算法的Ceph云存储系统的QoS设置方法
CN108573013A (zh) * 2017-12-08 2018-09-25 北京金山云网络技术有限公司 请求处理方法、装置、电子设备及计算机可读存储介质
CN108614877A (zh) * 2018-04-27 2018-10-02 携程商旅信息服务(上海)有限公司 基于令牌桶的数据复制过程的监控方法及系统
CN110096237A (zh) * 2019-04-30 2019-08-06 北京百度网讯科技有限公司 副本处理方法及节点、存储系统、服务器、可读介质
CN110381078A (zh) * 2019-07-29 2019-10-25 迈普通信技术股份有限公司 令牌续期的确定方法、装置、电子设备及存储介质
CN111386522A (zh) * 2017-11-22 2020-07-07 亚马逊科技公司 数据库表的多区多主复制

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332365B2 (en) 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
US9553821B2 (en) * 2013-06-25 2017-01-24 Amazon Technologies, Inc. Equitable distribution of excess shared-resource throughput capacity
US10764185B2 (en) * 2013-06-25 2020-09-01 Amazon Technologies, Inc. Token-based policies burst-mode operations
US10205666B2 (en) * 2013-07-29 2019-02-12 Ampere Computing Llc End-to-end flow control in system on chip interconnects
US9569513B1 (en) * 2013-09-10 2017-02-14 Amazon Technologies, Inc. Conditional master election in distributed databases
US9378039B2 (en) * 2013-09-24 2016-06-28 Verizon Patent And Licensing Inc. Virtual machine storage replication schemes
US9794135B2 (en) 2013-11-11 2017-10-17 Amazon Technologies, Inc. Managed service for acquisition, storage and consumption of large-scale data streams
US9471585B1 (en) * 2013-12-20 2016-10-18 Amazon Technologies, Inc. Decentralized de-duplication techniques for largescale data streams
US9390120B1 (en) * 2013-12-31 2016-07-12 Google Inc. System and methods for organizing hierarchical database replication
US9785510B1 (en) 2014-05-09 2017-10-10 Amazon Technologies, Inc. Variable data replication for storage implementing data backup
US8850108B1 (en) * 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9639481B2 (en) 2014-08-08 2017-05-02 PernixData, Inc. Systems and methods to manage cache data storage in working memory of computing system
US9489239B2 (en) * 2014-08-08 2016-11-08 PernixData, Inc. Systems and methods to manage tiered cache data storage
US9734021B1 (en) 2014-08-18 2017-08-15 Amazon Technologies, Inc. Visualizing restoration operation granularity for a database
US9654483B1 (en) * 2014-12-23 2017-05-16 Amazon Technologies, Inc. Network communication rate limiter
US9537777B1 (en) * 2015-03-30 2017-01-03 EMC IP Holding Company LLC Adjusting input/output operation arrival times to represent a token bucket that enforces maximum rate and burst size limits
US10623486B2 (en) * 2015-06-15 2020-04-14 Redis Labs Ltd. Methods, systems, and media for providing distributed database access during a network split
US10387578B1 (en) * 2015-09-28 2019-08-20 Amazon Technologies, Inc. Utilization limiting for nested object queries
US10423493B1 (en) 2015-12-21 2019-09-24 Amazon Technologies, Inc. Scalable log-based continuous data protection for distributed databases
US10567500B1 (en) 2015-12-21 2020-02-18 Amazon Technologies, Inc. Continuous backup of data in a distributed data store
US10853182B1 (en) 2015-12-21 2020-12-01 Amazon Technologies, Inc. Scalable log-based secondary indexes for non-relational databases
US10754844B1 (en) 2017-09-27 2020-08-25 Amazon Technologies, Inc. Efficient database snapshot generation
US10990581B1 (en) 2017-09-27 2021-04-27 Amazon Technologies, Inc. Tracking a size of a database change log
US10852951B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for improving I/O performance by introducing extent pool level I/O credits and user I/O credits throttling on Mapped RAID
AU2018359380B2 (en) * 2017-10-31 2021-03-11 Ab Initio Technology Llc Managing a computing cluster interface
US11182372B1 (en) 2017-11-08 2021-11-23 Amazon Technologies, Inc. Tracking database partition change log dependencies
US11042503B1 (en) 2017-11-22 2021-06-22 Amazon Technologies, Inc. Continuous data protection and restoration
US11269731B1 (en) 2017-11-22 2022-03-08 Amazon Technologies, Inc. Continuous data protection
EP3493069B1 (en) * 2017-11-29 2021-02-17 ARM Limited Resource allocation for atomic data access requests
US10621049B1 (en) 2018-03-12 2020-04-14 Amazon Technologies, Inc. Consistent backups based on local node clock
US11126505B1 (en) 2018-08-10 2021-09-21 Amazon Technologies, Inc. Past-state backup generator and interface for database systems
US11392610B2 (en) * 2018-10-05 2022-07-19 Red Hat, Inc. Scalable object storage with intelligent replication
US11042454B1 (en) 2018-11-20 2021-06-22 Amazon Technologies, Inc. Restoration of a data source
US11061927B2 (en) * 2019-04-03 2021-07-13 Sap Se Optimization of relocated queries in federated databases using cross database table replicas
US11030220B2 (en) * 2019-09-13 2021-06-08 Amazon Technologies, Inc. Global table management operations for multi-region replicated tables
CN112751693B (zh) * 2019-10-31 2022-09-06 北京金山云网络技术有限公司 分布式存储系统的数据处理方法、装置及电子设备
US20220021953A1 (en) * 2020-07-16 2022-01-20 R9 Labs, Llc Systems and methods for processing data proximate to the point of collection
US11435954B2 (en) * 2021-01-29 2022-09-06 EMC IP Holding Company LLC Method and system for maximizing performance of a storage system using normalized tokens based on saturation points
US11934273B1 (en) * 2022-10-19 2024-03-19 Dell Products L.P. Change-based snapshot mechanism

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080008094A1 (en) * 2006-07-10 2008-01-10 International Business Machines Corporation Methods for Distributing Rate Limits and Tracking Rate Consumption across Members of a Cluster
US20090003204A1 (en) * 2007-06-29 2009-01-01 Packeteer, Inc. Lockless Bandwidth Management for Multiprocessor Networking Devices
US20110075562A1 (en) * 2009-09-25 2011-03-31 Isaksson Martin Rate Shaping For Wireless Communication Using Token Bucket That Allows Token Debt
CN102035865A (zh) * 2009-09-30 2011-04-27 阿里巴巴集团控股有限公司 数据存储及数据寻址方法、系统和设备
CN102648448A (zh) * 2009-10-26 2012-08-22 亚马逊技术股份有限公司 供应并管理已复制数据

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7290009B1 (en) 1999-08-25 2007-10-30 The Trustees Of Columbia University In The City Of New York System and method for allocating resources using spot market and derivative market techniques
US7228354B2 (en) 2002-06-28 2007-06-05 International Business Machines Corporation Method for improving performance in a computer storage system by regulating resource requests from clients
US7130917B2 (en) 2002-09-26 2006-10-31 Cisco Technology, Inc. Quality of service in a gateway
US20040111308A1 (en) 2002-12-09 2004-06-10 Brighthaul Ltd. Dynamic resource allocation platform and method for time related resources
US6805277B1 (en) 2003-04-16 2004-10-19 Lotes Co., Ltd. Process for soldering electric connector onto circuit board
ATE543302T1 (de) 2003-05-15 2012-02-15 Ericsson Telefon Ab L M Methode für die verteilung des netzverkehrs entsprechend sla und qos betrachtungen
US7289447B2 (en) 2003-10-21 2007-10-30 Comcast Cable Holdings, Llc Method and packet-level device for traffic regulation in a data network
US7657706B2 (en) 2003-12-18 2010-02-02 Cisco Technology, Inc. High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory
US20060288184A1 (en) 2005-06-17 2006-12-21 Seagate Technology Llc Admission control in data storage devices
US8743693B2 (en) 2005-09-30 2014-06-03 Alcatel Lucent Method for dynamically adjusting token bucket sizes
US7640231B2 (en) 2005-11-16 2009-12-29 International Business Machines Corporation Approach based on self-evolving models for performance guarantees in a shared storage system
US7801912B2 (en) * 2005-12-29 2010-09-21 Amazon Technologies, Inc. Method and apparatus for a searchable data service
US7685109B1 (en) 2005-12-29 2010-03-23 Amazon Technologies, Inc. Method and apparatus for data partitioning and replication in a searchable data service
US7962563B2 (en) 2006-03-24 2011-06-14 International Business Machines Corporation System and method for managing storage system performance as a resource
US7760641B2 (en) 2006-07-10 2010-07-20 International Business Machines Corporation Distributed traffic shaping across a cluster
US20080189700A1 (en) 2007-02-02 2008-08-07 Vmware, Inc. Admission Control for Virtual Machine Cluster
DE602007002820D1 (de) 2007-08-31 2009-11-26 Alcatel Lucent Verfahren zur Steuerung einer Paketstromübertragung
US7711789B1 (en) 2007-12-07 2010-05-04 3 Leaf Systems, Inc. Quality of service in virtual computing environments
US7979652B1 (en) 2007-12-20 2011-07-12 Amazon Technologies, Inc. System and method for M-synchronous replication
US7911958B2 (en) 2008-05-13 2011-03-22 Broadcom Corporation Token bucket with variable token value
US8392312B2 (en) 2008-09-24 2013-03-05 Netapp, Inc. Adaptive scheduling of storage operations based on utilization of a multiple client and server resources in a distributed network storage system
US8250197B2 (en) 2008-10-28 2012-08-21 Vmware, Inc. Quality of service management
US8483194B1 (en) 2009-01-21 2013-07-09 Aerohive Networks, Inc. Airtime-based scheduling
US8615584B2 (en) 2009-12-03 2013-12-24 International Business Machines Corporation Reserving services within a cloud computing environment
US8190593B1 (en) 2010-04-14 2012-05-29 A9.Com, Inc. Dynamic request throttling
US9323775B2 (en) 2010-06-19 2016-04-26 Mapr Technologies, Inc. Map-reduce ready distributed file system
US9219654B2 (en) 2010-06-25 2015-12-22 Cox Communications, Inc. Preloading token buckets for dynamically implementing speed increases
AU2011293350B2 (en) 2010-08-24 2015-10-29 Solano Labs, Inc. Method and apparatus for clearing cloud compute demand
US9467505B2 (en) 2010-08-27 2016-10-11 Vmware, Inc. Saturation detection and admission control for storage devices
US8984508B2 (en) 2011-06-02 2015-03-17 Vmware, Inc. System and method for restarting a workload based on global load balancing
US8595267B2 (en) 2011-06-27 2013-11-26 Amazon Technologies, Inc. System and method for implementing a scalable data storage service

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080008094A1 (en) * 2006-07-10 2008-01-10 International Business Machines Corporation Methods for Distributing Rate Limits and Tracking Rate Consumption across Members of a Cluster
US20090003204A1 (en) * 2007-06-29 2009-01-01 Packeteer, Inc. Lockless Bandwidth Management for Multiprocessor Networking Devices
US20110075562A1 (en) * 2009-09-25 2011-03-31 Isaksson Martin Rate Shaping For Wireless Communication Using Token Bucket That Allows Token Debt
CN102035865A (zh) * 2009-09-30 2011-04-27 阿里巴巴集团控股有限公司 数据存储及数据寻址方法、系统和设备
CN102648448A (zh) * 2009-10-26 2012-08-22 亚马逊技术股份有限公司 供应并管理已复制数据

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107105050A (zh) * 2017-05-11 2017-08-29 北京奇艺世纪科技有限公司 一种业务对象的存储、下载方法及系统
CN107105050B (zh) * 2017-05-11 2020-01-31 北京奇艺世纪科技有限公司 一种业务对象的存储、下载方法及系统
CN107579926A (zh) * 2017-10-20 2018-01-12 南京易捷思达软件科技有限公司 基于令牌桶算法的Ceph云存储系统的QoS设置方法
CN107579926B (zh) * 2017-10-20 2021-02-09 南京易捷思达软件科技有限公司 基于令牌桶算法的Ceph云存储系统的QoS设置方法
CN111386522A (zh) * 2017-11-22 2020-07-07 亚马逊科技公司 数据库表的多区多主复制
CN111386522B (zh) * 2017-11-22 2023-11-03 亚马逊科技公司 用于数据存储的系统和方法
CN108573013A (zh) * 2017-12-08 2018-09-25 北京金山云网络技术有限公司 请求处理方法、装置、电子设备及计算机可读存储介质
CN108614877A (zh) * 2018-04-27 2018-10-02 携程商旅信息服务(上海)有限公司 基于令牌桶的数据复制过程的监控方法及系统
CN110096237A (zh) * 2019-04-30 2019-08-06 北京百度网讯科技有限公司 副本处理方法及节点、存储系统、服务器、可读介质
CN110096237B (zh) * 2019-04-30 2022-02-08 北京百度网讯科技有限公司 副本处理方法及节点、存储系统、服务器、可读介质
CN110381078A (zh) * 2019-07-29 2019-10-25 迈普通信技术股份有限公司 令牌续期的确定方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
KR20150130406A (ko) 2015-11-23
JP6139773B2 (ja) 2017-05-31
JP2016517080A (ja) 2016-06-09
CN105144161B (zh) 2019-05-10
WO2014164584A1 (en) 2014-10-09
AU2014249180A1 (en) 2015-10-08
AU2014249180B2 (en) 2017-03-16
EP2973067B1 (en) 2023-08-16
EP2973067A4 (en) 2016-12-14
CA2905282C (en) 2019-02-19
KR101797836B1 (ko) 2017-11-15
US20140279905A1 (en) 2014-09-18
EP2973067A1 (en) 2016-01-20
US11086898B2 (en) 2021-08-10
CA2905282A1 (en) 2014-10-09

Similar Documents

Publication Publication Date Title
CN105144161A (zh) 针对复制写入的基于令牌的准入控制
US10997163B2 (en) Data ingestion using file queues
US11803492B2 (en) System resource management using time-independent scheduling
US9990147B2 (en) Methods and apparatus for optimizing resource utilization in distributed storage systems
US9361034B2 (en) Transferring storage resources between snapshot storage pools and volume storage pools in a distributed network
KR102025934B1 (ko) 분산형 시스템에서의 범위들의 분할 및 이동
AU2019202695A1 (en) Opportunistic resource migration to optimize resource placement
CN102981929B (zh) 磁盘镜像的管理方法和系统
CN106462601A (zh) 针对多盘区操作的原子写入
JP2017515215A (ja) 分散格納システムにおける名前空間管理
US9860317B1 (en) Throughput throttling for distributed file storage services with varying connection characteristics
CN106462544A (zh) 分布式存储系统中的会话管理
US20220261286A1 (en) Scheduling Input/Output Operations For A Storage System
US11461156B2 (en) Block-storage service supporting multi-attach and health check failover mechanism
US11467913B1 (en) Snapshots with crash consistency in a storage system
US11650961B2 (en) Managing replica unavailability in a distributed file system
Thu Dynamic replication management scheme for effective cloud storage

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