当前位置: 首页 > 专利查询>谷歌公司专利>正文

在存储节点上存储数据制造技术

技术编号:15746156 阅读:370 留言:0更新日期:2017-07-03 00:51
本申请的各实施例涉及在存储节点上存储数据。用于在存储节点上存储数据的方法、系统和装置,包括在计算机存储介质上编码的计算机程序。在一个方面中,一种方法包括接收将跨越各自包括高速缓存的多个存储节点存储的文件。通过各自在不同存储节点上存储文件的部分存储文件。向第一存储节点的高速缓存写入第一部分,直至确定第一存储节点的高速缓存为满。响应于确定第一存储节点的高速缓存为满,选择不同的第二存储节点。为文件的每个部分记录该部分的位置,该位置至少指示存储该部分的存储节点。

Storing data on a storage node

Embodiments of this application involve storing data on a storage node. A method, system, and device for storing data on a storage node, including a computer program encoded on a computer storage medium. In one aspect, a method includes receiving files that are stored across multiple storage nodes including caches. Store files by storing portions of files on different storage nodes. A first portion is written to a cache of the first memory node until the cache of the first memory node is determined to be full. In response to determining that the cache of the first storage node is full, a different second storage node is selected. Records the location of the part for each part of the file, which indicates at least the storage node of the section.

【技术实现步骤摘要】
在存储节点上存储数据分案申请说明本申请是国际申请日为2012年1月19日、于2013年9月10日进入中国国家阶段、国家申请号为201280012751.4、名称为“在存储节点上存储数据”的中国专利技术专利申请的分案申请。有关申请的交叉引用本申请要求对通过引用将其公开内容结合于此、名称为STORINGDATAONSTORAGENODES、于2011年1月20日提交的第13/010,548号美国专利申请的优先权。
本说明书涉及在物理存储设备上存储数字数据。
技术介绍
数据分条(striping)包括跨越存储设备阵列存储数据。取代向单个设备写入所有数据,向多个设备并行写入数据,从而使得写入数据的总速率大于仅用单个设备而可能的速率。数据分条可以与其他数据存储技术(例如,存储冗余数据、随着数据的检错或者纠错码)组合以创建快速、可靠的存储。
技术实现思路
计算机存储系统在存储节点阵列上存储文件。每个存储节点包括一个或者多个存储设备,并且每个存储节点包括高速缓存(例如,随机存取存储器(RAM))和更慢存储装置(例如,硬盘)。高速缓存可以比更慢存储装置存储数据更快。例如,存储节点可以是具有高速缓存能力的硬盘。计算机存储系统从文件向第一存储节点写入数据直至第一存储节点的高速缓存为满,并且然后从文件向第二存储节点写入数据。第一存储节点从第一存储节点的高速缓存向第一存储节点的更慢存储装置复制数据。计算机存储系统继续向各种存储设备写入数据,从而使得完全存储文件。无论存储节点是否被附着到例如个别计算机或者多个数据处理装置,都可以用相同方式写入向存储节点写入的数据。一般而言,可以在包括以下动作的方法中体现在本说明书中描述的主题内容的一个创新方面:接收将跨越各自包括高速缓存的多个存储节点存储的文件;通过各自在不同存储节点上存储文件的多个部分存储文件,包括向第一存储节点的高速缓存写入第一部分直至确定第一存储节点的高速缓存为满并且响应于确定第一存储节点的高速缓存为满选择不同的第二存储节点;以及为文件的每个部分记录该部分的位置,该位置至少指示存储该部分的存储节点。这一方面的其他实施例包括对应系统、装置和在计算机存储设备上编码的被配置用于执行方法的动作的计算机程序。这些和其他实施例可以可选地包括以下特征中的一个或者多个特征。确定第一存储节点的高速缓存为满包括确定用于写入第一部分的数据存储速率已经下降。确定第一存储节点的高速缓存为满包括比较第一部分的数量与第一存储节点的高速缓存的已知大小并且确定数量等于或者超过已知大小。选择第二存储节点包括从存储节点随机选择第二存储节点。选择第二存储节点包括选择具有以往最远写入时间的存储节点。动作还包括向多个存储节点中的每个存储节点分配权值,并且其中选择第二存储节点包括使用权值。每个存储节点的权值基于存储节点的性能特性。选择第二存储节点基于以下各项中的一项或者多项:第二存储节点的性能特性、第二存储节点的使用历史和用于第二存储节点的以往性能记录。选择第二存储节点基于以下各项中的一项或者多项:由第二存储节点存储的绝对数据数量和由第二存储节点存储的相对于第二存储节点的容量的数据数量。第一存储节点响应于向第一存储节点的高速缓存写入第一部分从第一存储节点的高速缓存向更慢存储装置复制第一部分。存储文件包括向第二存储节点写入第二部分。向第二存储节点写入第二部分包括向第二存储节点的高速缓存写入第二部分直至确定第二存储节点的高速缓存为满。存储文件包括继续向各种存储节点写入文件的部分直至在存储节点中完全存储文件。动作还包括:接收对于文件的请求;从第一存储节点读取第一部分;以及从第二存储节点读取第二部分。可以实施在本说明书中描述的主题内容的特定实施例以便实现以下优点中的一个或者多个优点。计算机存储系统可以通过向具有高速缓存的存储节点写入来增加它的存储速度。在高速缓存模式中更频繁地保持存储节点以减少延时并且增加吞吐量。计算机存储系统可以使用存储日志来恢复存储的数据。在附图和以下描述中阐述在本说明书中描述的主题内容的一个或者多个实施例的细节。主题内容的其他特征、方面和优点将从描述、附图和权利要求变得清楚。附图说明图1是示例存储系统的框图。图2是用于在各自具有高速缓存的存储节点的阵列上存储数据的示例技术的流程图。图3是用于在各自具有高速缓存的存储节点的阵列上存储数据的示例技术的流程图。图4是用于从各自具有高速缓存的存储节点的阵列读取数据的示例技术的流程图。图5是用于存储数据的示例计算系统的示意图。在各种附图中的相似标号和标示指示相似要素。具体实施方式图1是示例存储系统102的框图。存储系统102包括可以在地理上分布的一个或者多个数据处理装置。存储系统102在存储节点110a-110d的阵列上存储数字数据文件。存储系统102可以通过计算机网络106从客户端设备104或者从另一来源接收电子文件(或者“文件”)。文件可以是任何数据,例如,文本、图像、音频内容、视频内容或者其组合。文件可以如例如通过网络文件系统协议由存储系统102接收。其他协议是可能的。存储系统102可以例如通过在正常操作期间产生服务日志来创建数据以用于存储。存储系统102可以基于其他数据(例如,通过从高分辨率源图像产生小缩略图图像)创建数据以用于存储。存储引擎108确定如何分布文件的内容以用于在存储节点110a-110d上存储。每个存储节点110包括高速缓存112和一个或者多个更慢存储装置114设备。高速缓存112可以例如是RAM、闪存、硬盘等。更慢存储装置114也可以是RAM或者硬盘,但是更慢存储装置114比高速缓存112花费更长时间来存储数据。更慢存储装置114通常具有比高速缓存112更大的存储容量。首先向高速缓存112写入向存储节点110写入的数据,因为可以在高速缓存112中比更慢存储装置114更快地存储数据。存储节点110然后从高速缓存112向更慢存储装置114复制数据。例如,存储节点110可以是具有RAM高速缓存的硬盘。首先向RAM高速缓存写入并且然后向盘复制向存储节点110写入的数据。在另一示例中,存储节点110是具有共享RAM高速缓存的硬盘阵列,例如,廉价盘冗余阵列(RAID)设备。虽然存储节点110包括多个盘,但是存储引擎108可以将存储节点在逻辑上作为单个设备来寻址。存储引擎108通过从文件向存储节点写入数据的一部分来存储文件。存储引擎108向该存储节点写入数据直至确定存储节点的高速缓存为满。高速缓存在它存储达到或者接近它的容量的数据数量以使得它不再可以接受新数据以用于存储时为满。以下描述用于确定高速缓存为满的技术。存储引擎108然后从文件向不同存储节点写入数据的另一部分直至确定不同存储节点的高速缓存为满。由存储引擎108写入的部分未必在文件中相邻,并且无需有序写入文件的内容。存储引擎108继续从文件在各种存储节点上写入数据直至完全写入文件的内容。备选地,写入少于整个文件的内容。如果所有存储节点具有为满的高速缓存,则存储引擎108可以等待直至高速缓存具有自由空间(在向更慢存储装置复制它的内容之后)或者向更慢存储装置直接写入。在一些实现方式中,无论是否所有存储节点具有为满的高速缓存,存储引擎108继续选择用于写入到的新存储节点直至它发现可用的存储节点。本文档来自技高网...
在存储节点上存储数据

【技术保护点】
一种由数据处理装置执行的方法,所述方法包括:接收将跨越各自包括高速缓存的多个存储节点存储的文件;通过各自在不同的存储节点上存储所述文件的多个部分存储所述文件,包括向第一存储节点的高速缓存写入第一部分;从所述第一存储节点的高速缓存向所述第一存储节点的更慢存储装置复制所述第一部分,所述第一存储节点的所述更慢存储装置比所述第一存储节点的高速缓存慢;在日志内记录指定所述第一存储节点的所述更慢存储装置的数据,所述日志还指定多个存储节点的多个附加的、对应的更慢存储装置;确定所述第一存储节点的高速缓存为满并且作为响应选择不同的第二存储节点,其中选择所述第二存储节点包括:检查所述日志,以及将所述第二存储节点选择为在所述日志中具有如下对应的写入时间的所述存储节点:所述对应的写入时间在所述日志中的以往写入时间中最远。

【技术特征摘要】
2011.01.20 US 13/010,5481.一种由数据处理装置执行的方法,所述方法包括:接收将跨越各自包括高速缓存的多个存储节点存储的文件;通过各自在不同的存储节点上存储所述文件的多个部分存储所述文件,包括向第一存储节点的高速缓存写入第一部分;从所述第一存储节点的高速缓存向所述第一存储节点的更慢存储装置复制所述第一部分,所述第一存储节点的所述更慢存储装置比所述第一存储节点的高速缓存慢;在日志内记录指定所述第一存储节点的所述更慢存储装置的数据,所述日志还指定多个存储节点的多个附加的、对应的更慢存储装置;确定所述第一存储节点的高速缓存为满并且作为响应选择不同的第二存储节点,其中选择所述第二存储节点包括:检查所述日志,以及将所述第二存储节点选择为在所述日志中具有如下对应的写入时间的所述存储节点:所述对应的写入时间在所述日志中的以往写入时间中最远。2.根据权利要求1所述的方法,其中确定所述第一存储节点的高速缓存为满包括确定用于写入所述第一部分的数据存储速率已经下降。3.根据权利要求1所述的方法,其中确定所述第一存储节点的高速缓存为满包括比较所述第一部分的数量与所述第一存储节点的高速缓存的已知大小并且确定所述数量等于或者超过所述已知大小。4.根据权利要求1所述的方法,还包括响应于确定所述第二存储节点的高速缓存为满选择第三存储节点,以及向所述多个存储节点中的每个存储节点分配权值,并且其中选择所述第三存储节点包括使用所述权值。5.根据权利要求4所述的方法,其中每个存储节点的权值基于所述存储节点的性能特性。6.根据权利要求1所述的方法,还包括响应于确定所述第二存储节点的高速缓存为满选择第三存储节点,并且其中选择所述第三存储节点基于以下各项中的一项或者多项:所述第三存储节点的性能特性、所述第三存储节点的使用历史和用于所述第三存储节点的以往性能记录。7.根据权利要求1所述的方法,还包括响应于确定所述第二存储节点的高速缓存为满选择第三存储节点,并且其中选择所述第三存储节点基于由所述第三存储节点存储的相对于所述第三存储节点的容量的数据数量。8.根据权利要求1所述的方法,其中存储所述文件包括向所述第二存储节点写入第二部分。9.根据权利要求8所述的方法,其中向所述第二存储节点写入...

【专利技术属性】
技术研发人员:A·卡达奇L·E·格林菲尔德
申请(专利权)人:谷歌公司
类型:发明
国别省市:美国,US

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

1