云存储环境中基于一致性的服务级协定的制作方法

文档序号:8386208阅读:167来源:国知局
云存储环境中基于一致性的服务级协定的制作方法
【专利说明】云存储环境中基于一致性的服务级协定
[0001]背景
[0002]云存储服务(诸如流行的“NoSQL”类数据存储)已经被设计成满足从社交网络到电子商务的各种应用的需求。此类存储服务将应用数据复制在多个机器上以使其高度可用并且改善性能。许多提供松弛形式的一致性、最终一致性,以便实现弹性可扩展性和良好性能,而一些争取强一致性以维持单副本可串行性的语义。为了在即使全面的数据中心故障期间也允许本地访问和确保数据生存性,许多存储系统提供将数据复制到世界的不同区域的选项,称作“地域复制”。
[0003]随着数据在世界级范围上被复制,在性能和一致性之间固有的折衷由于各数据中心间的高通信等待时间而被扩大。具有不同一致性的读之间的性能差异可能是巨大的。强一致性读一般涉及多个副本或被主站点服务,而最终一致性读可由最近的副本来答复。即使在数据中心内,也已经测出强一致性读的等待时间是具有较弱会话保证的读的八倍。通过地域复制,性能差异可能超过两个数量级。
[0004]概述
[0005]提供应用编程接口,该应用编程接口允许应用指派多个服务级协定给它们的事务,这些事务对所复制的云存储服务中的数据进行读和写。该服务级协定包括等待时间界限和一致性保证。应用可进一步根据服务级协定的合需性向服务级协定中的每一个服务级协定指派效用值。监视器组件针对等待时间和一致性来监视云存储服务中的各副本节点,并且在从应用收到事务时,监视器确定副本节点中的哪一些可能在满足服务级协定中的服务级协定中的任一个的情况下来履行该事务。在可以满足多个服务级协定的情况,选择可以根据具有最大预期效用的服务级协定来履行该事务的副本节点。可以基于所满足的服务级协定的效用针对事务向该应用收费。
[0006]在一个实现中,服务级协定由计算设备选择。事务请求由计算设备生成。所生成的事务请求和所选择的服务级协定由计算设备提供。与该事务请求相关联的结果以及遵从了服务级协定的指示由计算设备接收。
[0007]在一个实现中,事务请求在计算设备处被收到。事务请求包括多个服务级协定。有关多个节点的信息在计算设备处被收到。基于服务级协定和有关节点的信息,由计算设备确定是否能在一个节点处根据服务级协定中的任一个来履行该事务请求。如果确定能在一个节点处根据服务级协定中的任一个来履行该事务请求,则在该节点处根据服务级协定中的一个或多个来履行该事务请求,并且由计算设备提供在该节点处根据服务级协定中的一个或多个履行了该事务的指示。
[0008]提供本概述以便以简化的形式介绍将在以下【具体实施方式】中进一步描述的一些概念。本
【发明内容】
并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
【附图说明】
[0009]当结合附图进行阅读时,可以更好地理解以上概述以及以下对说明性实施例的详细说明。出于说明各实施例的目的,在附图中示出各实施例的示例性构造;然而,各实施例不局限于所公开的具体方法和手段。在附图中:
[0010]图1是用于在云存储服务中启用服务级协定的示例环境的图示;
[0011]图2是示例服务级协定引擎和示例节点的图示;
[0012]图3是用于提供事务请求和多个服务级协定给云存储服务的方法的实现的操作流程;
[0013]图4是用于根据多个服务级协定履行事务请求的方法的实现的操作流程;以及
[0014]图5是根据所提供的系统的一种实现的计算系统环境的框图。
[0015]详细描述
[0016]图1是用于在云存储服务中启用服务级协定的示例环境100的图示。环境100可以包括通过网络120互相通信的客户端设备110和云存储服务150。网络120可以是包括公共交换电话网(PSTN)、蜂窝电话网和分组交换网(例如,因特网)的各种网络类型。
[0017]在一些实现中,客户端设备110可以包括台式个人计算机、工作站、膝上计算机、PDA、智能电话、蜂窝电话或任意启用WAP的设备或能够直接或间接与网络120对接的任意其它计算设备。例如,可使用诸如图5中所示的计算设备500的通用计算设备来实现客户端设备110。尽管仅示出一台客户端设备110,但这仅用于说明目的,对于可被支持的客户端设备110的数量不存在限制。
[0018]云存储服务150可以提供分布式数据存储和数据处理服务给客户端设备110。可以使用各种云计算系统(诸如微软的WINDOWS AZURE)来实现云存储服务150。可以使用其他云服务。
[0019]云存储服务150可以包括多个计算节点180 ( S卩,节点180a-n)。节点180可以提供计算和数据存储服务给客户端设备110。具体而言,节点180可以为客户端设备110存储一个或多个数据对象,并且可为客户端设备110从所存储的数据对象中检索数据值。可以使用一个或多个通用计算设备(诸如计算系统500)来实现节点180中的每个节点。尽管仅示出四个节点180,但这仅出于说明目的,对于可支持的节点180的最小数目或最大数目不存在限制。
[0020]云存储服务150可以提供计算和数据服务给在客户端设备110上执行的一个或多个应用115。可以使用云存储服务150的应用115的示例可以包括在线购物应用、电子邮件应用、社交网络应用和游戏应用。可以支持其它类型的应用115。
[0021]在一些实现中,云存储服务150可以接收和履行来自客户端设备110的应用115的一个或多个事务请求117。事务请求117可以包括put (发送)请求和get (获取)请求。put请求可以是在数据对象处存储数据值的请求,而get请求可以是从数据对象检索所存储的数据值的请求。get请求可以包括键118,该键118在云存储服务150中唯一地标识存储所请求的数据值的数据对象。可以从所标识的数据对象读该数据值。数据对象可以被存储在云服务存储150中的一个或多个节点180处。一系列事务请求117可以被编组在一起成为本文中所称的会话。
[0022]put请求可以具有数据值和键118,该键118标识数据值可被写到的数据对象。数据值可被写到在节点180中的一个或多个处的所标识的数据对象。在put请求是存储新数据值的请求的情况,可以在节点180中的一个或多个上创建数据对象,并且可以在该新数据对象处存储该数据值。此外,键118可以被指派给该数据对象并且被提供给应用115和/或客户端设备110。
[0023]在一些实现中,节点180可以被分成所谓的主节点和副节点。每个主节点可以与由云存储服务150维护的诸数据对象的子集相关联。针对与主节点相关联的数据对象的put请求被路由到主节点并且被主节点履行。主节点可以周期性地将对数据对象作出的更新推送到副节点中的一个或多个。每个副节点可以类似地与由云存储服务150维护的诸数据对象的子集相关联。副节点可以向其他副节点推送从主节点收到的更新。从主节点履行的get事务可以被保证包括最新近更新的数据值,而从副节点履行的get事务可能不具有最新近更新的数据值。
[0024]可以理解,每个节点180可以位于不同的地理位置,并且因此可以相对于客户端设备110具有不同的等待时间。例如,与客户端设备110位于相同城市的节点180能够比与客户端设备110位于不同城市的节点180更快地履行get事务请求117。此外,由于节点复制数据的方式及与每一节点180相关联的各种地理位置,具有数据对象的最新数据值的节点(即,最一致)可能不是具有最低总等待时间的节点。
[0025]不同的应用115可能对于数据值的等待时间和一致性具有不同的要求或需求。例如,视频游戏应用可能对数据值事务的低等待时间的重视程度高于一致性,以减少滞后。类似地,银行应用可能对一致性的重视程度高于低等待时间。
[0026]因此,为了帮助云存储服务150和/或应用115选择最合适的节点180来处理事务请求117,客户端设备110可以进一步包括服务级协定引擎116。服务级协定引擎116可以允许应用115使用应用编程接口为每个事务请求117 (或会话)指定一个或多个服务级协定119。服务级协定119可以指定一个或多个性能保证和/或一致性保证。
[0027]更具体而言,服务级协定119可以指定等待时间界限和一致性保证。等待时间界限可以是最小可接受等待时间(例如,100ms、200ms、300ms,等等),并且一致性保证可以是最小可接受一致性(例如,最新近数据值、不落后于200ms、不落后于500ms,等等)。
[0028]服务级协定引擎116可以使用键118和关于节点180中每个节点的信息来确定(如果有的话)节点180中的哪些节点可以根据与事务请求117相关联的服务级协定119来履行事务请求117。关于每个节点180的信息可以包括:与每个节点180相对于客户端设备110的往返通信等待时间有关的信息,以及与每个节点180所存储或维护的数据值的一致性有关的信息(例如,由节点180维护的数据对象的最近更新时间或版本号)。
[0029]如果可以根据服务级协定119履行事务请求117,则服务级协定引擎116可以履行事务请求117。否则,服务级协定引擎116可以返回错误或服务级协定引擎116不能使用指定的服务级协定119来履行事务请求117的指示。
[0030]服务级协定11
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1