具有网络服务客户接口的分布式存储系统技术方案

技术编号:9254253 阅读:171 留言:0更新日期:2013-10-16 20:50
一种分布式的基于网络服务的存储系统。系统可包括配置成根据网络服务协议接收对给定的数据对象的访问的给定客户请求的网络服务接口,该请求包括相应于对象的键值。系统还可包括配置成存储对象的复本的存储节点,和配置成为每个对象存储相应的键映射项目的键映射实例,其中通过相应的唯一定位器值可访问每个复本。对于给定的对象,相应的键映射项目包括键值和相应于对象的复本的每个定位器值。协调器可从网络服务接口接收给定的客户请求,响应性地访问键映射实例以识别相应于键值的定位器值,且对于特定的定位器值,从相应的存储节点取回相应的复本。

【技术实现步骤摘要】
具有网络服务客户接口的分布式存储系统本分案申请是基于申请号为200680053577.2,申请日为2006年11月30日,专利技术名称为“具有网络服务客户接口的分布式存储系统”的中国专利申请的分案申请。
本专利技术涉及数据存储系统,尤其是涉及配置成提供对存储器的访问作为网络服务的存储系统。
技术介绍
很多不同的计算应用依赖于用于持久存储各种应用程序数据的一些类型的存储介质。例如,普通办公应用程序和多媒体应用程序产生并使用各种类型和格式的应用数据,例如其中包括文档、电子表格、静止的图像、音频和视频数据。经常地,这样的数据被存储,用于以用户名义的重复的访问或使用。例如,用户可能希望在一段时间内存储和处理很多文档或其它数据,并可能期望在需要时数据以可预测的状态可容易得到。在传统计算系统中,由应用程序用于持久的应用程序数据存储的存储介质通常大部分为磁性固定的驱动器或“硬驱动器”,虽然也可使用光和固态存储设备。这样的设备集成在执行应用程序的计算机系统中或可通过本地外围接口或网络访问该系统。一般来说,用作应用程序存储的设备由管理设备级行为的操作系统管理,以向需要存储访问的各种应用程序提供相容的存储接口,例如文件系统接口。应用程序存储的该常规模型呈现一些限制。首先,它通常限制应用程序数据的可访问性。例如,如果应用程序数据存储在特定计算机系统的本地硬驱动器上,它可能对在其它系统上执行的应用程序是不可访问的。即使数据存储在网络可访问的设备上,在当前网络外部的系统上执行的应用程序可能不能访问该设备。例如,由于安全原因,企业通常限制对其局域网(LAN)的访问,以便企业外部的系统不能访问企业内部的系统或资源。因此,在便携式设备(例如,笔记本或手持式计算机、个人数字助理、移动电话设备等)上执行的应用程序可能经历访问持久地与固定的系统或网络关联的数据的困难。传统的应用程序存储模型还可能不能充分确保所存储的数据的可靠性。例如,传统操作系统一般默认将应用程序数据的一个备份存储在一个存储设备上,如果希望数据冗余,则要求用户或应用程序产生并管理其自己的应用程序数据的备份。虽然个别存储设备或第三方软件可提供一些程度的冗余,但这些功能部件对应用程序可能不是始终如一地可得到的,因为应用程序可得到的存储资源可能在应用程序安装中极大地变化。操作系统作为媒介的传统存储模型还可能限制数据的交叉平台可访问性。例如,不同的操作系统可以不同的、不兼容的格式存储用于相同的应用程序的数据,这可能使在一个平台(例如,操作系统和基本的计算机系统硬件)上执行的应用程序的用户难以访问通过在不同平台上执行的应用程序存储的数据。
技术实现思路
公开了分布式基于网络服务的存储系统的不同实施方式。根据一个实施方式,系统可包括配置成根据网络服务协议来接收对数据对象的访问的客户请求的网络服务接口。对给定数据对象的访问的给定客户请求可包括相应于给定数据对象的键值。系统还可包括配置成存储数据对象的复本的很多存储节点,其中每个复本可通过相应的定位器值(locatorvalue)访问,且其中每个定位器值在系统内是唯一的。系统可进一步包括配置成存储每个数据对象的相应的键映射项目的键映射实例,其中对于给定的数据对象,相应的键映射项目包括键值和相应于给定数据对象的每个存储的复本的每个定位器值。系统还可包括配置成从网络服务接口接收对数据对象的访问的客户请求的协调器。响应于给定的客户请求,协调器可配置成访问键映射实例,以识别相应于键值的一个或更多定位器值,并且对于特定的定位器值,访问相应的存储节点以取回相应的复本。在系统的特定实现中,网络服务接口可进一步配置成根据网络服务协议来接收存储数据对象的客户请求,其中存储特定数据对象的特定客户请求包括相应于特定数据对象的健值。协调器可进一步配置成从网络服务接口接收存储数据对象的客户请求,并响应于特定的客户请求,协调器可配置成将特定数据对象的一个或更多复本存储到一个或更多相应的存储节点。响应于存储特定数据对象的给定复本,给定的存储节点可配置成将相应于给定复本的定位器值返回到协调器。附图说明图1是示出用于向用户提供存储作为网络服务的存储模型的一个实施方式的结构图。图2是示出存储服务系统体系结构的一个实施方式的结构图。图3是示出存储服务系统组件的物理部署的一个实施方式的结构图。图4是示出存储节点的一个实施方式的结构图。图5是示出配置成组织存储节点内的数据对象的数据结构的一个实施方式的结构图。图6是示出执行对象获取操作的方法的一个实施方式的流程图。图7是示出执行对象放置操作的方法的一个实施方式的流程图。图8是示出执行对象释放操作的方法的一个实施方式的流程图。图9是示出重装对象存储空间的方法的一个实施方式的流程图。图10是示出一组键映射实例数据结构的一个实施方式的结构图。图11A-D示出键映射实例的分级实现的一个实施方式。图12是概述键映射实例内分级层次间的关系的结构图。图13是示出执行键映射项目放置操作的方法的一个实施方式的流程图。图14是示出执行键映射项目获取操作的方法的一个实施方式的流程图15A是示出使用更新传播来使键映射实例同步的方法的一个实施方式的流程图。图15B是示出使用反熵协议(anti-entropyprotocol)来使键映射实例同步的方法的一个实施方式的流程图。图16是示出复制器键映射项目的一个实施方式的结构图。图17示出不平衡索引数据结构的一个实施方式。图18示出用在不平衡索引数据结构中的索引节点的一个实施方式。图19示出分层索引数据结构的一个实施方式。图20是示出遍历不平衡索引数据结构的方法的一个实施方式的流程图。图21是示出处FINGERPRINT反熵协议消息的方法的一个实施方式的流程图。图22是示出处理FILTER反熵协议消息的方法的一个实施方式的流程图。图23示出发现和故障检测监控进程(DFDD)的一个实施方式。图24示出可由DFDD实例维持的全局操作状态机的一个实施方式。图25是示出根据基于闲聊(gossip-based)的协议使DFDD实例同步的方法的一个实施方式的流程图。图26是示出在存储服务系统内的存储类的操作的方法的一个实施方式的流程图。图27是示出根据存储节点的当前状态信息动态地确定用于存储数据对象的一个或更多复本的写入计划的一个实施方式的流程图。图28是示出动态地确定关于对象的写入计划的一个实施方式的流程图,该对象的一个或更多复本已被存储在存储节点中间。图29是示出计算机系统的示例性实施方式的流程图。虽然本专利技术易受各种更改和可选形式的影响,但是其具体的实施方式作为例子在附图中示出并将在这里被详细描述。然而应理解,附图和对其的详细描述不是用来将本专利技术限制到所公开的特定形式,而是相反,本专利技术包括落在如所附权利要求界定的本专利技术的实质和范围内的所有更改、等效物和可选方案。具体实施方式当计算应用程序变成更加数据密集的以及地理上分散的时,对应用程序数据的可靠、与位置无关的访问的需要便增加了。例如,多媒体应用程序如授权、存储和重放应用程序要求当多媒体内容的质量和数量提高时逐步增加数据存储的量。进一步地,可能期望从不同位置访问应用程序数据,而不考虑存储数据的设备的位置如何。例如,虽然很多计算机包括相当数量的基于磁盘的存储器,但是以统一和本文档来自技高网
...

【技术保护点】
一种基于网络服务的数据存储系统,包括:网络服务平台,其配置成向客户提供数据存储网络服务,其中所述数据存储网络服务包括一个或多个网络服务端点;其中每个网络服务端点被配置成实现应用程序编程接口API或用于从所述客户接收网络服务调用以访问所述数据存储网络服务,其中至少一些网络服务调用指定相应的数据对象的对应标识符和操作,其中所述API指定至少两个可用操作,一个用于存储相应的数据对象,并且另一个用于检索相应的数据对象;以及其中响应于经由API接收网络服务调用中的一个,所述网络服务平台配置成指示数据存储网络服务在对应于由所述网络服务调用所指定的标识符的相应数据对象上执行操作;其中为存储所述相应的数据对象,所述网络服务平台被配置成从客户接收相应的数据对象并指示所述数据存储网络服务存储从所述客户接收的相应的数据对象;以及其中为检索所述相应的数据对象,所述网络服务平台被配置成指示所述数据存储网络服务检索所述相应的数据对象并将所述相应的数据对象发送到所述客户。

【技术特征摘要】
2005.12.29 US 60/754,726;2006.03.08 US 11/371,3041.一种基于网络服务的数据存储系统,包括:网络服务平台,其配置成向多个客户提供数据存储网络服务,其中所述数据存储网络服务包括一个或多个网络服务端点;其中每个网络服务端点被配置成实现应用程序编程接口API用于经由基于互联网的通信协议从所述客户接收网络服务调用以访问所述数据存储网络服务,其中至少一些网络服务调用指定相应的数据对象的对应标识符和操作,其中所述API指定至少两个可用操作,一个用于存储相应的数据对象,并且另一个用于检索相应的数据对象;以及其中响应于经由API接收网络服务调用中的一个,所述网络服务平台配置成指示数据存储网络服务在对应于由所述网络服务调用所指定的标识符的相应数据对象上执行操作;其中为存储所述相应的数据对象,所述网络服务平台被配置成从客户接收相应的数据对象并指示所述数据存储网络服务存储从所述客户接收的相应的数据对象;其中为检索所述相应的数据对象,所述网络服务平台被配置成指示所述数据存储网络服务检索所述相应的数据对象并将所述相应的数据对象发送到所述客户;以及其中所述网络服务平台被进一步配置成:取决于网络服务调用,确定每个客户的数据存储网络服务的实际使用量;以及存储所述数据存储网络服务的实际使用量的信息特征。2.如权利要求1所述的系统,其中所述数据对象的标识符表明键,并且其中为指示数据存储网络服务执行操作,所述网络服务平台被进一步配置成指定对应于所述数据对象的键。3.如权利要求1所述的系统,其中所述数据对象的标识符表明对应于数据存储网络服务的用户的命名空间,并且其中为指示所述数据存储网络服务执行操作,所述网络服务平台被进一步配置成指定与所述命名空间相关的数据对象。4.如权利要求3所述的系统,其中所述网络服务平台被进一步配置成:响应于经由所述API接收所述网络服务调用,取决于访问策略确定所述客户是否具有充分的特权在所述数据对象上执行操作;以及响应于根据访问策略确定客户不具有充分的特权执行操作,拒绝在所述数据对象上的操作。5.如权利要求4所述的系统,其中为确定所述客户是否具有充分的特权,所述网络服务平台被进一步配置成评估所述访问策略所表明的一个或多个项目,其中所述一个或多个项目包括下列中的一个或多个:表明用户具有对至少所述数据对象的访问的用户标识符,配置成对用户进行身份验证的身份验证凭证,或者指定所述用户对至少所述数据对象所具有的访问类型的信息。6.如权利要求1所述的系统,其中为接收网络服务调用,所述网络服务平台被配置成接收编码所述数据对象的标识符的统一资源定位符(URL)。7.如权利要求1所述的系统,其中为接收网络服务调用,所述网络服务平台被进一步配置成接收编码存储或检索所述数据对象的操作的统一资源定位符(URL)。8.如权利要求1所述的系统,其中所述API指定操作,以响应于客户请求在对象命名空间内创建新的存储桶用于为客户存储数据对象。9.如权利要求1所述的系统,其中所述API指定操作,以响应于客户请求,列出与给定存储桶相关联的对象。10.如权利要求9所述的系统,其中所述API指定操作,以响应于客户请求,读取与给定存储桶相关联的元数据,并且其中所述元数据包括表明下列中的一个或多个的信息:与所述给定存储桶相关联的使用历史,与所述给定存储桶相关联的计费历史,或者与所述给定存储桶相关联的状态信息。11.如权利要求9所述的系统,其中所述API指定操作,以响应于客户请求,读取或写入与给定存储桶相关联的访问策略。12.如权利要求1所述的系统,其中所述网络服务平台被进一步配置成确定所述操作是存储数据对象的操作,并且响应性地指示所述数据存储网络服务在多个存储节点的一个或多...

【专利技术属性】
技术研发人员:A·H·弗穆伦A·B·阿特拉斯D·M·巴斯J·D·科米A·K·弗西曼J·C·索伦森三世E·M·瓦格纳
申请(专利权)人:亚马逊科技公司
类型:发明
国别省市:

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

1