用于实施可扩展数据存储服务的系统和方法技术方案

技术编号:10459479 阅读:83 留言:0更新日期:2014-09-24 14:53
本发明专利技术公开了一种实施可扩展数据存储服务的系统,系统可以代表客户端将表格维护在非关系数据存储装置中。所述系统可以提供通过其接收服务请求的网络服务接口以及API,API可用来请求创建、删除或描述表格;存储、检索、删除项目或修改其属性;或用筛选的项目和/或其返回属性查询(或扫描)表格。可以调用异步工作流程以创建或删除表格。可以使用简易或组合主键分区并索引存储在表格中的项目。所述系统可以不强加预定义限制于表格大小,且可以采用灵活的纲目。服务可以提供尽力而为吞吐量模型或既定吞吐量模型。所述系统可以响应于检测到工作量变化、节点故障或其它状况或异常而自动地扩展和/或再分区表格。

【技术实现步骤摘要】
【国外来华专利技术】用于实施可扩展数据存储服务的系统和方法背景多个前沿技术组织正投资构建出售“软件即服务”的技术。这些服务向客户端或订户提供对共享存储装置(例如,数据库系统)和/或计算资源的访问。在多层电子商务系统内,可以将不同资源分配给订户和/或来自整个机器的订户应用、CPU、存储器、网络带宽和I/O能力。出于多种原因中的任何一种(包括安全问题、灾难预防和恢复问题、数据局部性和可用性问题等),代表用户管理大量数据的数据库系统可以在通常在不同位置中的两个或更多个机器上分布和/或复制所述数据。可以用任何数量的方式配置这些机器,包括配置成共享资源池。客户端应用与数据库服务器之间的交互通常包括读操作(只读查询)、写操作(用来存储数据)和可使用读取-修改-写入工作流程而概念化的更新操作。附图说明图1是示出被配置来实施基于网络服务的数据存储服务的系统架构的一个实施方案的方框图。图2A至图2C是示出根据一个实施方案的网络服务平台的各种组件的方框图。图3A和图3B是示出根据一个实施方案的将数据作为项目存储在多个表格中的方框图。图4是示出根据一个实施方案的包括数值属性的三个项目的方框图,所述数值属性被指定为存储所述三个项目的表格的主键。图5是示出用于代表存储服务客户端创建由数据存储服务维护的表格的方法的一个实施方案的流程图。图6是示出用于响应于通过网络服务API接收的请求而创建表格的方法的一个实施方案的流程图。图7是示出用于生成表格元数据的方法的一个实施方案的流程图。图8是示出CreateTable工作流程的一个实施方案的流程图。图9是示出用于响应于更新项目的请求而更新项目的方法的一个实施方案的流程图。图10是示出用于使用支持条件更新和/或多个输出选项的API来更新项目的方法的一个实施方案的流程图。图11是示出用于将在非关系数据存储装置中维护的表格分区的方法的一个实施方案的流程图。图12是示出用于执行查询的方法的一个实施方案的流程图。图13是示出用于执行查询的方法的另一实施方案的流程图。图14是示出用于执行表格扫描操作的方法的一个实施方案的流程图。图15是示出根据一个实施方案的用于执行已指定扫描或响应限制的查询或扫描操作的方法的流程图。图16是示出根据一个实施方案的用于提供数据存储服务的系统的数据模型的部分的方框图。图17是示出用于使用优选吞吐量模型来代表数据存储服务客户端创建并管理表格的方法的一个实施方案的流程图。图18是示出用于当维护或修改既定吞吐量水平时为针对特定表格的请求服务的方法的一个实施方案的流程图。图19是示出用于当由数据存储服务代表存储服务客户端维护的表格的分区“有效”时移动所述分区的副本的方法的一个实施方案的流程图。图20是示出用于使用物理拷贝机制移动副本的方法的一个实施方案的流程图。图21是示出用于响应于划分由数据存储服务维护的表格的分区的请求而划分所述分区的方法的一个实施方案的流程图。图22是示出用于响应于检测异常而移动由数据存储服务维护的表格的分区的方法的一个实施方案的流程图。图23是示出用于响应于检测到存储节点上的热点而移动或划分由数据存储服务维护的表格的分区的方法的一个实施方案的流程图。图24是示出用于代表一个或多个存储服务客户端维护并管理多个表格的方法的一个实施方案的流程图。图25是示出根据一个实施方案的可以适用于实施数据存储服务的计算节点的方框图。虽然本文中已通过以多个实施方案和说明性附图为实例的方式描述实施方案,但是本领域那些技术人员应认识到实施方案不限于已描述的实施方案或附图。应了解,附图和附图的详述不旨在将实施方案限于所公开的特定形式,而恰恰相反,本专利技术将涵盖落在如由所附权利要求定义的精神和范围内的所有修改、等效物和替代。本文中使用的标题是仅出于组织目的且并非意指用来限制描述或权利要求的范围。如本申请全文中使用,以允许意义(即,意指具有……的可能)而非强制意义(即,意指必须)使用单词“可以(may)”。类似地,单词“包括(include)”、“包括(including)”和包括(includes)意指包括但不限于。实施方案详述可以以各种组合且在各种实施方案中采用本文中描述的系统和方法以实施向存储服务客户端(例如,用户、订户或代表用户或订户访问数据存储服务的客户端应用)提供数据存储服务的基于网络的服务。如本文中详述,在一些实施方案中,服务可以支持代表客户端在非关系数据存储装置(例如,非关系数据库)中维护表格的无缝扩展。在一些实施方案中,服务可以通过复制而提供高水平的持续性和可用性。在一些实施方案中,服务本身可能不一定强加最大表格大小或最大吞吐量的限制,且即使是具有大规模扩展的表格也不一定需要客户端分区。服务可以支持响应于检测到各种异常(例如,故障或错误状况、热点或表格大小和/或服务请求吞吐量中的增加)而对数据进行自动现场再分区,和/或对数据进行显式(例如,积极主动和/或订户起始的)现场再分区以支持规划或期望的表格大小和/或吞吐量增加。换句话说,在一些实施方案中,服务可以响应于接收到存储、检索、修改或删除可扩展表格中的项目的一个或多个请求而开始对表格再调整(扩展)和/或再分区。在各种实施方案中,本文中描述的服务可以支持灵活的纲目、多个可用一致性模型、各种服务水平和/或商业模型选项、多个索引选项和/或多个查询类型。在一些实施方案中,存储服务客户端(例如,用户、订户或客户端应用)可以通过使用相对较小(且相对简易)的API集的网络服务接口与服务进行交互,使得服务的客户端在很大程度上从数据库管理的负担中解脱。服务可以展现出服务请求中的低等待时间。与一些先前数据存储服务不同的是,服务可以低成本支持可预测性能,同时支持多重租赁和自动热管理。在各种实施方案中,本文中描述的数据存储服务可以提供应用程序接口(API),其包括支持对由所述服务代表存储服务客户端维护的表格中的数据进行下列操作中的一些或所有:放置(或存储)项目、获取(或检索)具有指定主键的一个或多个项目、删除项目、更新单个项目中的属性、使用索引查询项目和扫描整个表格(例如,列出整个表格的项目),从而视情况筛选返回的项目。在一些实施方案中,除了支持最终一致读取操作以外,服务(和/或实施服务的底层系统)还可以支持强一致性模型。在一些实施方案中,经由API作出的服务请求可以包括一个或多个用户优选(诸如优选一致性模型、优选服务请求吞吐量水平或请求保证的服务请求吞吐量水平)的指示。在其它实施方案中,这些用户优选中的一些或所有可以在创建表格时被指定,或可以是客户端专用、账号专用、各种表格类型专用或由全系统默认值指定,而非基于预请求指定。API可以支持极端扩展和/或支持的可预测性能多于由先前数据存储系统和服务提供的可预测性能。在一些实施方案中,服务(和/或底层系统)可以强加上限于个别项目的大小,以(例如)允许服务将项目的全部内容存储在底层数据存储系统中的单个分区中。这又可以促进对项目执行自动更新且不大幅减小吞吐量,且使得可以更加容易地将项目内容维护在稳定工作集中。换句话说,在一些实施方案中,限制个别项目的大小可以促进系统中的强一致性和高性能两者。图1中示出被配置来实施诸如本文中描述的基于网络服务的数据存储服务的系统架构的一个实施方案。应注意,在给定组件的一个本文档来自技高网...
用于实施可扩展数据存储服务的系统和方法

【技术保护点】
一种方法,其包括:由计算机执行:接收在非关系数据存储装置中创建表格的请求,其中所述请求指定所述表格的识别符和索引存储在所述表格中的项目的主键;且响应于所述接收:在所述非关系数据存储装置中创建可扩展表格,其中所述可扩展表格被配置来存储多个项目,所述多个项目的每个包括所述主键的值,且其中所述可扩展表格不具有预定大小限制;且响应于接收访问所述可扩展表格的一个或多个请求而以编程方式执行调整所述可扩展表格的大小或分区所述可扩展表格中的至少一个。

【技术特征摘要】
【国外来华专利技术】2011.06.27 US 13/170,0311.一种用于实施可扩展数据存储服务的方法,其包括:由一个或多个计算装置执行:通过网络服务接口接收在非关系数据存储装置中创建表格的请求,其中所述请求指定所述表格的识别符和索引存储在所述表格中的项目的主键;响应于所述接收:在所述非关系数据存储装置中创建可扩展表格,其中所述可扩展表格被配置来存储多个项目,所述多个项目的每个包括所述主键的值,且其中所述可扩展表格不具有预定大小限制;接收将多个项目存储在所述可扩展表格中的一个或多个请求;响应于所述接收将多个项目存储在所述可扩展表格中的一个或多个请求,确定所述可扩展表格是否应当被分区;和响应于确定所述可扩展表格应当被分区而以编程方式分区所述可扩展表格。2.根据权利要求1所述的方法,其中创建所述可扩展表格包括开始执行异步表格创建工作流程;且其中所述方法还包括:接收描述在所述非关系数据存储装置中维护的一个或多个表格的请求;和响应于接收到描述一个或多个表格的所述请求,返回关于所述一个或多个表格的信息,其中关于所述一个或多个表格的所述信息包括指示是否已由所述异步表格创建工作流程成功地创建所述可扩展表格的信息。3.根据权利要求1所述的方法,其中所述确定所述可扩展表格应当被分区包括:确定所述多个项目不能存储在所述可扩展表格的单个分区内。4.根据权利要求1所述的方法,其中所述主键包括被指定为散列键属性的单个属性;其中存储在所述可扩展表格中的所述项目中的每个包括所述散列键属性的各自值;且其中以编程方式分区所述可扩展表格包括取决于所述可扩展表格中的所述项目的各自散列键属性值的散列表将所述项目分成两个或更多个分区。5.根据权利要求1所述的方法,其中所述主键包括被指定为散列键属性的属性和被指定为范围键属性的另一属性;其中存储在所述可扩展表格中的所述项目中的每个包括所述散列键属性的各自值和所述范围键属性的各自值;其中所述范围键属性值唯一地识别来自所述可扩展表格中具有相同散列键属性值的所有项目中的特定项目,其中具有所述相同散列键的所述项目根据所述项目各自范围键属性值来排序;且其中以编程方式分区所述可扩展表格包括取决于所述可扩展表格中具有相同散列键属性值的项目的各自范围键属性值将所述项目分成两个或更多个分区。6.根据权利要求1所述的方法,其中所述以编程方式分区所述可扩展表格包括将所述可扩展表格分成两个或更多个分区,和将所述两个或更多个分区中的每个存储在多个计算节点中的不同计算节点上。7.根据权利要求1所述的方法,其中所述以编程方式分区所述可扩展表格包括当所述可扩展表格的分区的一个或多个副本继续接收并处理请求时移动或划分所述分区。8.根据权利要求1所述的方法,其中所述以编程方式分区所述可扩展表格响应于接收到数量增加的请求而执行,所述请求将以下项作为目标:所述可扩展表格中的项目、所述可扩展表格的特定分区中的项目或存储在与所述可扩展表格中的项目的至少一个子集相同的计算节点上的项目;或响应于接收到数量减少的请求而执行,所述请求将以下项作为目标:所述可扩展表格中的项目、所述可扩展表格的特定分区中的项目或存储在与所述可扩展表格中的项目...

【专利技术属性】
技术研发人员:S·斯瓦苏布拉玛尼恩S·斯泰法尼C·布拉高哈因R·A·布拉克曼T·A·拉斯R·S·布拉德福德G·A·M·姆卡李斯特J·库莱斯扎J·哈米尔顿L·F·卡布莱拉
申请(专利权)人:亚马逊科技公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1