具有多媒体资产的数据存储系统的制作方法

文档序号:16852470发布日期:2019-02-12 22:51阅读:208来源:国知局
具有多媒体资产的数据存储系统的制作方法

本申请要求2016年9月30日提交的名称为“datastoragesystemwithmultimediaassets”的美国专利申请15/282,837的优先权,其公开内容据此全文以引用方式并入。



背景技术:

本公开涉及数据存储系统。具体地讲,本公开涉及可存储多媒体资产的数据存储系统。

相关技术的描述

多媒体资产可以各种格式(例如,流格式、盘格式等)广泛地供用户使用。多媒体资产的示例可包括数字视频,诸如电影、体育视频、新闻广播、音乐视频、音乐会视频、各种类型的电视节目、在线视频、流式视频等。多媒体资产的其他示例可包括数字音乐,诸如音频剪辑、音乐专辑、流媒体音乐、播客等。

附图说明

在附图中示出了各种实施方案,以用于示例性目的,并且绝不应理解为限制本公开的范围。此外,可组合不同的所公开实施方案的各种特征以形成另外的实施方案,这是本公开的一部分。

图1是根据一个实施方案的示例性多媒体资产的图。

图2是根据一个实施方案的示例性系统架构的图。

图3是根据一个实施方案的示例性存储阵列的图。

图4a是根据一个实施方案的示出存储设备的区块的示例性数据布局的示例性表。

图4b是根据一个实施方案的示出存储设备的区块的示例性数据布局的示例性表。

图4c是根据一个实施方案的示出存储设备的区块的示例性数据布局的示例性表。

图5是根据一个实施方案的示出用于将多媒体资产存储在存储阵列中的示例性过程的流程图。

图6是根据一个实施方案的示出用于将多媒体资产存储在存储阵列中的示例性过程的流程图。

图7是根据一个实施方案的示出用于将多媒体资产存储在存储阵列中的示例性过程的流程图。

具体实施方式

虽然描述了某些实施方案,但是这些实施方案仅作为示例呈现,并且不旨在限制保护范围。实际上,本文描述的新颖方法和系统可以各种其他形式体现。此外,在不脱离保护范围的情况下,可以对本文描述的方法和系统的形式进行各种省略、替换和改变。

多媒体资产

多媒体资产(例如,数字视频、数字音乐等)可以各种格式广泛地供用户使用。多媒体资产可存储在数据存储系统中,以允许多个用户访问多媒体资产。例如,内容分配网络可包括数据存储系统以存储多个多媒体资产,并且可允许用户经由网络访问(例如,消耗、播放、观看、收听等)多媒体资产。

图1是根据一个实施方案的示例性多媒体资产100的图。多媒体资产100可被分成不同的部分。多媒体资产的一部分可为多媒体资产的段(例如,多媒体资产中的时间段)或层。在一个实施方案中,多媒体资产100可为流式视频。流式视频可以是在计算设备正在下载(例如,从服务器计算设备下载)流式视频时可由计算设备可播放(例如,可观看、可消耗等)的视频。在一个实施方案中,多媒体资产100可为自适应流式视频。自适应流式视频可以是如下视频,其中可以在自适应流式视频的回放期间(例如,在观看期间或在消耗期间)调整视频的质量(例如,比特率、每秒帧数、分辨率等)。例如,基于计算设备经历的网络状况(例如,网络带宽、滞后、分组/数据的丢失等),自适应流式视频的回放可从较高分辨率变为较低分辨率(或者反之亦然)。一种类型的自适应流式视频可为可伸缩视频编码(svc)视频(其可为一种类型的h.264视频)。在一个实施方案中,多媒体资产100可为svc视频。

如上所述,多媒体资产100可为svc视频。svc视频包括层110a至层110x。在一个实施方案中,层110a可以是svc视频的基本层。基本层(例如,层110a)可编码数字视频的最低时间、空间和/或质量表示。例如,基本层可在较低分辨率(例如,640×480像素的分辨率,或480p)下编码数字视频,并且/或者可在每秒20帧(fps)的帧速率下编码数字视频。层110b至层110x可以是svc视频的增强层。增强层可编码数字视频的较高时间、空间和/或质量表示的附加信息和/或数据。例如,增强层可包括可用于以较高分辨率播放(例如,解码、重构等)svc视频的信息/数据。本领域的普通技术人员理解,svc视频可具有不同数量的增强层。在一个实施方案中,层110a可被称为层1或第一层,层110b可被称为层2或第二层,层110c可被称为层3或第三层等。

在一个实施方案中,层110a至层110x中的每一个可包括帧(例如,视频帧)并且/或者可包括可用于播放(例如,解码、重构)帧的数据。例如,层110a中的每个正方形可包括svc视频的一个帧的数据。在另一个示例中,层110b中的每个正方形可包括用于svc视频的附加帧的数据(例如,可包括用于较高fps的附加帧)。在又一个示例中,层110c中的每个正方形可包括用于以较高分辨率播放(例如,解码、重构等)层110a的帧的数据。

如图1所示,多媒体资产100还可包括不同段120和130。段120和130中的每一个可与多媒体资产100中的时间段相关联(例如,在播放/消耗多媒体资产时的时间段)。例如,段120和130中的每一个可以是具有数字视频的场景。场景可涉及基于一个或多个标准(例如,共同地点、共同演员、一段时间内的连续发生等)组合的一组帧。场景还可描绘位置中的事件和/或动作。场景还可涉及多媒体视频资产100中描绘的时间、地点(例如,位置)和/或角色(例如,演员、人和/或主题)的关联。场景类型的各种示例包括但不限于爱情场景、梦幻场景、动作场景、追逐场景、闪回场景、战斗场景、碰撞场景、开场场景、闭幕场景等。在另一个示例中,段120和130中的每一个可与数字视频的内容相关联。例如,段120可以是记录的新闻广播的一部分,或者可以是记录的课堂讲座的一部分。

在一个实施方案中,段可包括来自多个层的数据/信息的部分。例如,段120可包括来自层110a的数据/信息的一部分,来自层110b的数据/信息的一部分,来自层110c的数据/信息的一部分等。尽管两个段120和130在图1中示出,但本领域的普通技术人员应当理解,多媒体资产100可包括任何数量的不同段。

在一个实施方案中,多媒体资产100可与多个重要性级别中的一个相关联。重要性级别可为可指示多媒体资产100对用户的重要性的数据(例如,数字、值、字母数字串等)。例如,重要性级别可指示多媒体资产100对用户的价值,并且可用于确定多媒体资产100应该被保护多少(例如,如何存储多媒体资产100以防止多媒体资产100的丢失)。在另一个实施方案中,不同层110a至层110x可具有不同的重要性级别。例如,层110a可与最高重要性级别相关联,并且层110x可与最低重要性级别相关联。本领域的普通技术人员理解,可使用各种表示来表示重要性级别。例如,可使用数值表示,使得数字越低,重要性级别越高(或者反之亦然)。多媒体资产100和/或层110a至层110x的重要性级别可基于用户输入(例如,可由用户提供)并且/或者可基于多媒体资产(例如,基于多媒体资产100的视频内容分析(vca))的分析,如下文更详细地讨论。

在一个实施方案中,层110a至层110x和/或多媒体资产100的段(例如,段120和130)可各自与不同的访问频率级别相关联。访问频率级别可为数据(例如,数字、值、字母数字串等),其可指示用户可访问段和/或层的频率,或可指示对用户可访问段和/或层的频率的预测。例如,段120可与较高的访问频率级别相关联,因为段120可以是不同用户经常观看的数字视频的段。在另一个示例中,层110a可与较高的访问频率级别相关联,因为层110a可以是svc视频的基本层,并且当用户播放svc视频时基本层可被访问最多(例如,因为增强层,诸如层110b至层110x,可使用来自基本层110a的数据)。本领域的普通技术人员理解,可使用各种表示来表示访问频率级别。例如,可使用数值表示,使得数字越低,访问频率级别越高(或者反之亦然)。访问频率级别也可称为热度级别。

虽然本公开可涉及数字视频(诸如svc视频),但本领域的普通技术人员理解,本文所述的实施方案、示例和/或具体实施可适用于其他类型的多媒体资产(例如,数字音乐)。本领域的普通技术人员还理解,本文所述的实施方案、示例和/或具体实施可应用于数据对象(例如,文件),其中数据对象的不同部分可与不同的重要性级别和/或访问频率级别相关联。

存储系统一般可将多媒体资产的部分存储在同一位置。例如,svc视频的不同层可存储在同一数据存储设备上(例如,在同一硬盘驱动器上)和/或存储设备中的同一位置上(例如,在同一组磁道/扇区上)。这可导致更慢地访问多媒体资产的被频繁访问的部分,因为所有部分均可存储在同一存储设备上或存储设备中的同一位置上。此外,存储系统通常可对具有相同重要性的多媒体资产进行处理,即使一些多媒体资产和/或多媒体资产的部分对于用户而言可能比其他多媒体资产和/或多媒体资产的其他部分更重要。

本文所述的某些实施方案提供了基于重要性级别(例如,用户可能想要保护多媒体资产的程度)和性能级别(例如,可访问多媒体资产的一部分的频率),在存储阵列中的不同存储驱动器的不同区块上存储多媒体资产的不同部分的能力。存储阵列中的存储驱动器可被分成区块,并且每个区块可与性能得分(指示可访问数据的速度)和可靠性得分(指示对数据丢失提供了多少保护)相关联。多媒体资产的这些部分可基于多媒体资产的这些部分的重要性级别和/或访问频率级别,以适当的性能级别和/或可靠性级别存储在区块上。这可允许更快地访问多媒体资产的被频繁访问的部分,并且可允许更多保护以防止多媒体资产的这些部分的丢失。

数据存储系统

图2是根据一个实施方案的示例性系统架构200的图。系统架构包括网络205、服务器计算设备210、存储阵列220、客户端计算设备230和服务器计算设备240。在一些实施方案中,服务器计算设备210、存储阵列220、客户端计算设备230和服务器计算设备240中的每一者可耦接到网络205。在其他实施方案中,存储阵列220可直接或通过单独的网络(附图中未示出)耦接到服务器计算设备240和/或服务器计算设备210。网络105可包括公共网络(例如,互联网)、专用网络(例如,局域网(lan)),或者广域网(wan)诸如互联网、有线网络(例如,以太网网络)、无线网络(例如,802.11网络或wi-fi网络)、蜂窝网络(例如,长期演进(lte)网络)、路由器、集线器、交换机、服务器计算机、其他类型的计算机网络,和/或它们的组合。

存储阵列220可存储一个或多个多媒体资产(例如,图1中所示的多媒体资产100)和/或其他数据对象(例如,文件)。存储阵列220可包括多个数据存储设备(例如,多个存储驱动器,诸如硬盘驱动器、固态驱动器(ssd)等)。存储驱动器可包含磁性介质、硬盘介质和/或固态介质。虽然本文中的某些描述一般可指代固态存储器或闪存存储器,但是应当理解,固态存储器和/或闪存存储器可包括各种类型的固态非易失性存储器设备中的一种或多种,诸如闪存集成电路,硫族化物ram(c-ram)、相变存储器(pc-ram或pram)、可编程金属化单元ram(pmc-ram或pmcm)、双向统一存储器(oum)、电阻ram(rram)、nand存储器(例如,单层单元(slc)存储器、多层单元(mlc)存储器或其任何组合)、nor存储器、eeprom、铁电存储器(feram)、磁阻ram(mram)、其他分立nvm(非易失性存储器)芯片,或其任何组合。

数据存储设备中的每一个可被分成多个区块(例如,每个数据存储设备上的存储空间可被分成多个区块),如下文更详细地讨论。如下文更详细地讨论,可靠性得分和/或性能得分可与每个区块相关联。可靠性得分可以是数据(例如,数字、值、字母数字串等),其可指示区块可如何对数据丢失提供保护(例如,区块对数据丢失有多大抵抗力,如何可恢复存储在区块上的数据等)。例如,可靠性得分越高,区块可对数据丢失提供越多的保护(并且反之亦然)。本领域的普通技术人员理解可使用各种可靠性得分范围。例如,该可靠性得分可以是范围从1到3的数值,其中1可指示对区块的最大保护/可靠性,并且3可指示对区块的最小保护/可靠性。性能得分可为数据(例如,数字、值、字母数字串等),其可指示区块中的数据可被访问(例如,读取或写入)的速度。例如,性能得分越高,就可越快地访问区块中的数据(并且反之亦然)。本领域的普通技术人员理解可使用各种性能得分范围。例如,性能得分可以是范围从1到4的数值,其中1可指示对区块的数据的最快访问,并且4可指示对区块的数据的最慢访问。

在一个实施方案中,性能得分的范围(例如,数量)可不等于多媒体资产中的层数。当性能得分的范围不等于层数(例如,当存在较少的性能得分或者当性能得分的范围较小)时,性能得分可被称为粗略性能得分。在另一个实施方案中,性能得分的范围(例如,数量)可大于多媒体资产中的层数。当性能得分的范围大于层数(例如,当存在较多的性能得分或者当性能得分的范围较大)时,性能得分可被称为精细性能得分。

在一个实施方案中,可基于与多媒体资产相关联的重要性级别、与多媒体资产相关联的访问频率级别、区块的可靠性得分和/或区块的性能得分,多媒体资产可跨存储阵列220存储(例如,多媒体资产的不同段和/或层可存储在不同的数据存储设备上),如下文更详细地讨论的。在一个实施方案中,存储阵列220可包括多个同质驱动器。例如,存储阵列220可包括具有相同容量(例如,存储容量、存储空间等)、相同的型号/制造商、相同的磁盘布局(例如,每个磁道的相同扇区、相同的块大小等)和/或相同类型的存储介质(例如,磁盘、闪存存储器等)的多个存储驱动器。在另一个实施方案中,存储阵列可包括多个异质驱动器。例如,存储阵列220可包括具有不同容量(例如,存储容量、存储空间等)、不同型号/制造商、不同磁盘布局(例如,每个磁道的不同扇区、不同的块大小等)和/或不同类型的存储介质的存储驱动器。

在一个实施方案中,存储阵列的区块和/或存储驱动器可使用不同的独立磁盘冗余阵列(raid)保护级别和/或不同的编码方案/格式(例如,不同的纠删码)。例如,存储驱动器上的所有区块都可使用相同的raid级别。在另一个示例中,存储装置中的一些区块可使用一个raid级别,并且存储驱动器中的其他区块可使用另一个raid级别。在又一个示例中,存储驱动器上的所有区块可使用相同的编码方案/格式。在又一个示例中,存储驱动器上的一些区块可使用一个编码方案/格式,并且存储驱动器上的其他区块可使用另一个编码方案/格式。在一个实施方案中,存储阵列220可以是分簇raid阵列。分簇raid阵列可以是如下raid阵列,其中每个raid组的raid条带均组合地跨分簇raid阵列中的所有存储驱动器传播。

在一个实施方案中,可基于用户输入、配置文件、参数等来确定存储阵列的区块所使用的raid级别和/或编码方案/格式。例如,用户可提供输入以指示哪些区块应该使用哪种raid级别和/或编码方案/格式。在另一个示例中,配置文件可指示哪些区块应使用哪个raid级别和/或编码方案/格式。在一个实施方案中,可使用平衡不完全区组设计(bibd)来确定哪些区块应使用哪个raid级别和/或编码方案/格式。

客户端计算设备230可允许用户使用多媒体应用程序231来播放(例如,消耗、观看、收听等)多媒体资产(或访问数据对象诸如文件)。多媒体应用程序231可为允许用户播放多媒体资产(例如,允许用户观看数字视频或收听数字音乐)的应用程序(例如,软件、应用程序等)。多媒体应用程序231的示例包括但不限于媒体播放器应用程序、web浏览器、音乐播放器应用程序、视频播放器应用程序等。客户端计算设备230可通过网络205和/或经由服务器计算设备240访问存储阵列220上的多媒体资产。客户端计算设备的示例可包括但不限于电话(例如,智能电话、蜂窝电话等)、有线机顶盒、智能电视、游戏机、膝上型计算机、平板电脑、台式计算机、可穿戴计算机和/或其他网络连接的计算设备。

在一个实施方案中,服务器计算设备240可以是向用户提供多媒体资产的内容平台(例如,内容分配网络/平台)的一部分。例如,服务器计算设备240可允许用户流式传输和/或下载存储在存储阵列220上的数字视频(例如,多媒体资产)。服务器计算设备240包括分配模块241,其可提供和/或管理对存储在存储阵列220中的多媒体资产的访问。例如,分配模块241可认证用户和/或客户端计算设备230。分配模块241可从存储阵列220获得(例如,读取)多媒体资产的段和/或层,并且可向客户端计算设备230提供段和/或层。分配模块241还可允许客户端计算设备230从存储阵列220获得多媒体资产的段和/或层。

服务器计算设备210包括多媒体处理模块211。在一个实施方案中,多媒体处理模块211可分析多媒体资产。多媒体处理模块211可确定多媒体资产和/或多媒体资产的部分(例如,多媒体资产的段和/或层)的重要性级别。例如,多媒体处理模块211可使用vca分析多媒体资产,并且可确定多媒体资产是婚礼视频。多媒体处理模块211确定用户可能不想丢失婚礼视频并且可将多媒体资产与高重要性级别相关联(例如,可为多媒体资产分配高重要性级别)。

在一个实施方案中,多媒体处理模块211可执行vca来分析多媒体资产。在另一个实施方案中,vca可由可位于服务器计算设备210上或另一台服务器计算设备上的另一个模块(例如,vca模块、应用程序、软件等)执行。本领域的普通技术人员理解,可使用多种技术、方法、功能、操作、算法来执行vca。

在一个实施方案中,多媒体处理模块211可接收多媒体资产和/或多媒体资产的部分的重要性级别。例如,多媒体处理模块211可从配置文件读取多媒体资产的重要性级别。在另一个示例中,用户可提供(用户输入以指示)多媒体资产和/或多媒体资产的部分的重要性级别。

在一个实施方案中,多媒体处理模块211还可确定多媒体资产和/或多媒体资产的部分的访问频率级别(例如,热度级别)。例如,多媒体处理模块211可基于层的类型确定多媒体资产的层的访问频率级别。多媒体资产的基本层可被分配最高的重要性级别(例如,可能是最重要的),并且高于基本层的增强层的重要性级别可增加(例如,图1中的层110c可具有比层110b更低的重要性级别,层110d可具有比层110c更低的重要性级别等)。

在另一个实施方案中,多媒体处理模块211可基于多媒体资产的vca确定多媒体资产和/或多媒体资产的部分的访问频率级别。例如,多媒体资产的vca可确定观看多媒体资产的用户可频繁地访问某些段(例如,某些场景、某些内容、某些时间段等)。多媒体处理模块211可为某些段分配更高的访问频率级别。如上所述,vca可由多媒体处理模块211执行,或可由另一个模块和/或计算设备执行。同样如上所述,本领域的普通技术人员理解,可使用多种技术、方法、功能、操作、算法来执行vca。

在一个实施方案中,多媒体处理模块211可接收多媒体资产和/或多媒体资产的部分的访问频率级别。例如,多媒体处理模块211可从配置文件读取多媒体资产的访问频率级别。在另一个示例中,用户可提供(用户输入以指示)多媒体资产和/或多媒体资产的部分的访问频率级别。

在一个实施方案中,多媒体处理模块211可基于多媒体资产的重要性级别、多媒体资产的一个或多个访问频率级别、与存储阵列中的一组区块相关联的性能得分和/或与该组区块相关联的可靠性得分来识别该组区块。例如,如果多媒体资产的重要性级别高,则多媒体处理模块211可将多媒体资产存储在具有高可靠性得分的区块上,因为高重要性得分可指示用户不想丢失多媒体资产,并且区块的高可靠性可指示区块对数据丢失提供更高(或最大的保护)。在另一个示例中,如果部分的访问频率级别高,则多媒体处理模块211还可在具有高性能得分的区块上存储多媒体资产的这些部分(例如,段和/或层),因为高性能得分可指示可以更快地访问这些部分,并且高访问频率级别可指示可以频繁访问这些部分。在一个实施方案中,多媒体处理模块211可基于多媒体资产和/或多媒体资产的部分的重要性级别和访问频率级别(例如,热度级别)来识别与适当的性能得分和适当的可靠性得分相关联的区块。例如,多媒体处理模块211可基于多媒体资产的一部分的访问频率级别来识别具有一定性能级别的区块,该性能级别指示区块可能能够提供对数据的足够快的访问。在另一个示例中,多媒体处理模块211可基于多媒体资产的一部分的重要性级别识别具有一定可靠性级别的区块,该可靠性级别指示区块可能能够提供对数据的足够保护。

多媒体处理模块211可将多媒体资产和/或多媒体资产的部分存储在所识别的区块上。例如,多媒体处理模块211可将多媒体资产的一部分写入到区块(例如,将该部分存储在区块上)。在另一个示例中,多媒体处理模块可使多媒体资产的部分被写入到区块(例如,可传输使多媒体资产的部分被写入到区块的指令或其他数据)。

在一个实施方案中,多媒体处理模块211可确定存储阵列220中每个区块的可靠性得分。如上所述,存储阵列220可包括多个存储驱动器,并且每个存储驱动器可被划分为多个区块。多媒体处理模块211可基于区块的raid级别确定区块的可靠性得分。例如,不同的raid级别可对数据丢失提供或多或少的保护。如果区块使用对数据丢失提供更多保护的raid级别,则区块可被分配更高的可靠性得分(并且反之亦然)。多媒体处理模块211还可基于区块使用的编码方案/格式来确定区块的可靠性得分。例如,不同的编码方案/格式可对数据丢失提供或多或少的保护。如果区块使用对数据丢失提供更多保护的编码方案/格式,则区块可被分配更高的可靠性得分(并且反之亦然)。多媒体处理模块211可基于区块所在的存储驱动器的类型来确定区块的可靠性得分。例如,如果区块位于“企业类型”的存储驱动器(例如,不易发生故障和/或由企事业使用的驱动器)上,则区块的可靠性得分可以更高。

在一个实施方案中,多媒体处理模块211可确定存储阵列中每个区块的性能得分。区块的性能得分可基于区块所在的存储设备的存储介质类型。例如,位于ssd的闪存存储器(例如,存储设备)中的区块可被分配比位于硬盘驱动器(例如,存储设备)的磁盘中的区块更高的性能得分。

在实施方案中,区块的性能得分可基于区块所在的存储驱动器的磁盘布局。例如,区块的性能得分可基于存储驱动器中每个磁道的扇区(spt)、存储驱动器的每分钟转数(rpm)、存储驱动器的块大小等。

在一个实施方案中,性能得分的范围可等于多媒体资产中的层数(例如,可使用粗略性能得分)。例如,如果该多媒体资产是具有四个层(例如,一个基本层和三个增强层)的svc视频,则该性能得分的范围可从1到4。存储阵列220可使用同质存储驱动器,该同质存储驱动器使用磁性/旋转介质(例如,存储阵列220中的所有存储驱动器可具有相同的存储容量、相同型号/制造商等)。当性能得分的范围等于层数并且存储阵列220使用同质驱动器时,以下公式(1)可用于确定存储阵列220的当前区块的性能得分:

其中i是当前区块,其中spti是当前区块所在的每个磁道的扇区数量,sptmin是存储驱动器中每个磁道的最小扇区数量,sptmax是存储驱动器中每个磁道的最大扇区数量,并且l是多媒体资产中的层数。性能得分si可四舍五入到下一个整数。

在一个实施方案中,性能得分的范围可等于多媒体资产中的层数(例如,可使用粗略性能得分),并且存储阵列220可使用异质存储驱动器,该异质存储驱动器使用磁性/旋转介质(例如,存储阵列220中的存储驱动器可具有不同存储容量、不同型号/制造商等)。当性能得分的范围等于层数并且存储阵列220使用异质驱动器时,以下公式(2)至(5)可用于确定存储阵列220的当前区块的性能得分:

tl=sptl*rpml(3)

tmin=minsptil*rpml(4)

tmax=maxsptl*rpml(5)

其中i是当前区块,spti是当前区块所在的存储驱动器的spt,minspti是当前区块所在的存储驱动器的最小spt,maxspti是当前区块所在的存储驱动器的最大spt,rpmi是当前区块所在的存储驱动器的rpm,并且l是多媒体资产中的层数。性能得分si可四舍五入到下一个整数。

在一个实施方案中,性能得分的范围可等于多媒体资产中的层数(例如,可使用粗略性能得分),并且存储阵列220可使用异质存储驱动器,该异质存储驱动器使用闪存存储器(例如,存储阵列220可包括具有不同存储容量、不同型号/制造商等的ssd)。当性能得分的范围等于层数并且存储阵列220使用异质驱动器(该异质驱动器使用闪存存储器)时,以下公式(6)至(7)可用于确定存储阵列220的当前区块的性能得分:

tj=(wrj*trl)+(wwj*twj)(7)

其中j是当前区块,trj是存储设备的读吞吐量(例如,以兆字节/秒为单位的读吞吐量),twj是存储设备的写吞吐量,wrj是读吞吐量的加权系数,wwj是写吞吐量的加权系数,并且l是多媒体资产中的层数。性能得分sj可四舍五入到下一个整数。

在一个实施方案中,多媒体处理模块211可周期性地重新确定存储阵列220中的区块的可靠性得分和/或性能得分。例如,当存储设备更频繁地使用时,存储设备可能更容易出现故障(例如,故障前的平均时间可能降低)。存储设备的区块的可靠性得分可更改/更新以指示区块对数据丢失提供较少的保护,因为存储设备更容易出现故障。在另一个示例中,当更频繁地使用存储设备时,存取数据的时间量可增加(例如,存储设备诸如马达中的部件的性能可能会降低,这可能导致访问数据的时间量增大)。存储设备的区块的性能得分可更改/更新以指示其可能需要更长时间访问数据。在一个实施方案中,当区块的性能得分和/或可靠性得分更改/更新时,多媒体资产的部分可基于更改/更新的性能得分和/或可靠性得分被移动到不同的区块。例如,如果区块的可靠性得分降低(指示区块对数据丢失提供较少的保护),则具有高重要性级别的多媒体资产的一部分可被移动到具有适当的重要性级别的另一个区块。

图3是根据一个实施方案的示例性存储阵列220的图。如上所述,存储阵列220包括多个存储驱动器310、320和330。同样如上所述,存储驱动器可被分成区块(例如,存储驱动器的存储空间可被分成区块)。例如,存储驱动器310包括多个区块(如存储驱动器310中的矩形框所示),存储驱动器320包括多个区块(如存储驱动器320中的矩形框所示),并且存储驱动器330包括多个区块(如存储驱动器330中的矩形框所示)。在一个实施方案中,存储驱动器310可包括磁性存储介质(例如,磁性旋转盘),存储驱动器320可包括磁性存储介质和闪存存储器(例如,可以是混合存储驱动器),并且存储驱动器330可包括闪存存储器(例如,可以是ssd)。本领域的普通技术人员理解,在其他实施方案中,存储阵列220中可包括不同数量和/或不同类型的存储驱动器。

每个区块(例如,存储驱动器310、存储驱动器320和存储驱动器330中的每个矩形框)可与可靠性得分和性能得分相关联。与区块相关联的可靠性得分和性能得分表示为x:y,其中x为可靠性得分,并且y为性能得分。例如,具有符号3:1的区块可具有3的可靠性得分和1的性能得分。在图3所示的存储阵列220中,较低可靠性得分可指示较高级别的保护(并且反之亦然),并且较低性能得分可指示较快的访问(并且反之亦然)。本领域的普通技术人员理解,其他实施方案可使用各种范围、值和/或表示来表示可靠性得分和/或性能得分。例如,在一些实施方案中,较低的数字可指示对数据丢失的较少保护或对数据的较慢访问。

如上所述,可将多媒体资产(或数据对象诸如文件)分成不同的部分,诸如段或层。例如,参考图1,多媒体资产100可以是svc视频,该svc视频被分成层110a至层110x以及段120和段130。如上所述,每个部分(例如,每个段或层)可与重要性级别和访问频率级别相关联。在一个实施方案中,如上所述,多媒体处理模块(例如,图2中所示的多媒体处理模块211)可基于多媒体资产的部分的重要性级别和访问频率级别来识别具有适当的可靠性得分和/或性能得分的存储阵列220的区块。

例如,参考图1,多媒体资产100的层110a可为基本层。由于增强层110b至110x可使用基本层,所以该基本层可能是最重要的层。当用户消耗(例如,观看、收听等)多媒体资产100时,基本层也可以是最频繁被访问的层。因为层110a可为基本层,所以层110a可存储在具有符号1:1的区块上(例如,最高的保护级别和最快的访问)。层110c可为增强层并且可能不如基本层重要,但是被频繁访问。因为增强层不那么重要但被频繁访问,所以层110c可存储在具有符号3:1的区块上(例如,最低的保护级别和最快的访问)。段130可为多媒体资产的不被频繁访问并且不重要的一部分。例如,段130可以是体育比赛(例如,足球比赛)的数字视频中的商业广告。因为段130不那么重要并且不被频繁访问,所以段130可存储在具有符号3:4的区块上(例如,最低的保护级别和最慢的访问)。段120可为多媒体资产的重要但不被频繁访问的一部分。例如,段120可以是记录的课堂讲座的一部分,其中教授讨论背景材料而不是新主题。因为段120重要但不被频繁访问,所以段120可存储在具有符号1:4的区块上(例如,最高的保护级别和最慢的访问)。

图4a是根据一个实施方案的示出存储设备的区块的示例性数据布局的示例性表410。在一个实施方案中,表410的列可表示区块在存储设备内的位置。例如,第一列(从左到右)可表示位于存储设备的最外直径(od)或最外磁道上的区块,第二列(从左到右)可表示位于存储设备的下一个最外直径或下一个最外磁道上的区块等。最后一列可表示位于存储设备的最内直径(id)或最内磁道上的区块。在一个实施方案中,在最外磁道/直径上访问数据(例如,读/写数据)可比在最内磁道/直径上访问数据更快。因此,区块的性能得分可从最左侧列到最右侧列降低。该性能得分也可由于不同数量的spt从最顶部行到最底部行降低。

在一个实施方案中,存储设备可以是包括旋转磁性存储介质(例如,磁盘)的存储设备。如上所述,存储设备的区块可存储多媒体资产的部分。在一个实施方案中,精细性能级别可关联(例如,分配给)多媒体资产的部分。例如,性能级别可包括l个级别(其中多媒体资产的每个层为一个级别)并且l个级别中的每一个可分成h个子级别。性能级别的范围(或数量)可从1变化到l*h。

表400中的每个条目包括cx-sy形式的符号,其中x的范围从1到,并且y的范围从1到l。值cx可指示多媒体资产的一部分的访问频率(或预测的访问频率)。值sy可指示多媒体资产的该部分所属的层。每列中的符号可指示可存储在由每列表示的区块中的多媒体资产的层。例如,第一列包括从c1-s1到ch-s1(从顶部到底部)的符号。符号中的值s1可指示第一列中表示的区块将存储多媒体资产的第一层(例如,层1或基本层)的数据。在另一个示例中,第二列包括范围从c1-s2到ch-s2(从顶部到底部)的符号。符号中的值s2可指示第二列中表示的区块将存储多媒体资产的第二层(例如,层2或增强层)的数据。在又一个示例中,第三列包括范围从c1-sl到ch-sl(从顶部到底部)的符号。符号中的值sl可指示第二列中表示的区块将存储多媒体资产的第l层(例如,层l或增强层)的数据。

图4b是根据一个实施方案的示出存储设备的区块的示例性数据布局的示例性表420。在一个实施方案中,表420的列可表示区块在存储设备内的位置。例如,第一列(从左到右)可表示位于存储设备的最外直径(od)或最外磁道上的区块,第二列(从左到右)可表示位于存储设备的下一个最外直径或下一个最外磁道上的区块等。最后一列可表示位于存储设备的最内直径(id)或最内磁道上的区块。在一个实施方案中,在最外磁道/直径上访问数据(例如,读/写数据)可比在最内磁道/直径上访问数据更快。因此,区块的性能得分可从最左侧列到最右侧列降低。该性能得分也可由于不同数量的spt从最顶部行到最底部行降低。

在一个实施方案中,存储设备可以是包括旋转磁性存储介质(例如,磁盘)的存储设备。如上所述,存储设备的区块可存储多媒体资产的部分。在一个实施方案中,精细性能级别可关联(例如,分配给)多媒体资产的部分。例如,性能级别可包括h个级别,并且h个级别中的每一个可分成l个子级别。性能级别的范围(或数量)可从1变化到l*h。

表400中的每个条目包括cx-sy形式的符号,其中x的范围从1到h,并且y的范围从1到l。值cx可指示多媒体资产的一部分的访问频率(或预测的访问频率)。值sy可指示多媒体资产的该部分所属的层。每列中的符号可指示可存储在由每列表示的区块中的多媒体资产的部分的访问频率(或预测的访问频率)。例如,第一列包括从c1-s1到c1-sl(从顶部到底部)的符号。符号中的值c1可指示多媒体资产的被最频繁访问的部分存储在由第一列表示的区块中,并且这些部分可跨越多媒体资产的不同层。例如,参考图1,如果段130是被频繁访问的部分,则每个层110a至110x中与段130对应的数据可存储在由第一列表示的区块中。

图4c是根据一个实施方案的示出存储设备的区块的示例性数据布局的示例性表430。在一个实施方案中,表430的列可表示区块在存储设备内的位置。例如,第一列(从左到右)可表示位于存储设备的最外直径(od)或最外磁道上的区块,第二列(从左到右)可表示位于存储设备的下一个最外直径或下一个最外磁道上的区块等。最后一列可表示位于存储设备的最内直径(id)或最内磁道上的区块。在一个实施方案中,在最外磁道/直径上访问数据(例如,读/写数据)可比在最内磁道/直径上访问数据更快。因此,区块的性能得分可从最左侧列到最右侧列降低。该性能得分也可由于不同数量的spt从最顶部行到最底部行降低。

在一个实施方案中,存储设备可以是包括旋转磁性存储介质(例如,磁盘)的存储设备。如上所述,存储设备的区块可存储多媒体资产的部分。在一个实施方案中,精细性能级别可关联(例如,分配给)多媒体资产的部分。例如,性能级别可包括h个级别,并且h个级别中的每一个可分成l个子级别。性能级别的范围(或数量)可从1变化到l*h。

表400中的每个条目包括cx-sy形式的符号,其中x的范围从1到,并且y的范围从1到l。值cx可指示多媒体资产的一部分的访问频率(或预测的访问频率)。值sy可指示多媒体资产的该部分所属的层。每列中的符号可指示多媒体资产的部分基于值cx和sy的乘积存储在由列表示的区块中。例如,(cx和sy)的具有最低值的乘积可存储在第一列中,并且(cx和sy)的具有下一个最低值的乘积可存储在第二列中,等等。(cx和sy)的具有最高值的乘积可存储在最后一列中。在一个实施方案中,当列中的两个条目具有其相应的cx和sy的相同乘积时,具有较低cx值的条目可位于列中的较高条目/位置。这可指示在列内,具有较低cx值的条目可能是优选的(例如,可指示多媒体资产的被更频繁访问的部分位于提供更快访问的区块中)。在一个实施方案中,当列中的两个条目具有其相应的cx和sy的相同乘积时,具有较低sy值的条目可位于列中的较高条目/位置。这可指示在列内,具有较低sy值的条目可能是优选的(例如,可指示多媒体资产的更低层位于提供更快访问的区块中)。

图5是根据一个实施方案的示出用于将多媒体资产存储在存储阵列中的示例性过程500的流程图。过程500可由多媒体处理模块、处理设备(例如,处理器、中央处理单元(cpu))和/或计算设备(例如,服务器计算设备)执行。多媒体处理模块、处理设备和/或计算设备可以是处理逻辑部件,该处理逻辑部件包括硬件(例如,电路、专用逻辑部件、可编程逻辑部件、微码等)、软件(例如,在处理器上运行以执行硬件模拟的指令)、固件或它们的组合。

过程500开始于框505,其中过程500可以任选地确定存储阵列中的区块的可靠性得分和/或性能得分,如上所述。例如,过程500可使用公式(1)至(7)中的一者或多者来对存储阵列中的区块的性能得分进行确定、计算等(如上所述)。在另一个示例中,过程500可基于由区块使用的raid级别和/或编码方案/格式方案来确定可靠性得分(如上所述)。过程500可任选地在框510处分析多媒体资产。例如,过程500可如上所述对多媒体资产执行vca。

在框515处,过程500可确定多媒体资产的重要性级别。例如,过程500可基于vca确定多媒体资产对用户的重要程度(例如,用户想要保护多媒体资产免于丢失的程度),如上文所述。在一些实施方案中,过程500也可确定多媒体资产的不同部分的重要性级别。例如,过程500可确定多媒体资产的段和/或层的重要性级别。过程500可基于框520处的vca确定多媒体资产和/或多媒体资产的部分(例如,段、层等)的一组访问频率级别(例如,热度级别),如上所述。访问频率级别可以是可指示多媒体资产的一部分可被多常/多频繁地访问的数据。例如,访问频率级别可以是指示多媒体资产的一部分可被多常访问的预测的数字。在另一个示例中,访问频率级别可以是指示多媒体资产的一部分先前多常被访问的数字。如上所述,多媒体资产可包括多个部分。

在框525处,过程500可识别存储阵列中的一组区块,如上所述。例如,过程500分析多媒体资产的一部分的重要性级别和访问频率级别。过程500可分析存储阵列的区块来识别对于多媒体资产的部分的重要性级别和访问频率级别具有适当的可靠性得分和性能得分的区块。在框530处,过程500可将多媒体资产的部分存储在该(识别)组区块中。如上所述,基于如上所述的区块的可靠性得分和性能得分,多媒体资产的不同部分可存储在存储阵列的不同存储驱动器上。例如,多媒体资产的第一部分(例如,第一层)可存储在来自第一存储驱动器的区块(与第一性能得分相关联)上,并且多媒体资产的第二部分(例如,第二层)可存储在来自第二存储驱动器的区块(与第二性能得分相关联)上。

图6是根据一个实施方案的示出用于将多媒体资产存储在存储阵列中的示例性过程600的流程图。过程600可由多媒体处理模块、处理设备(例如,处理器、中央处理单元(cpu))和/或计算设备(例如,服务器计算设备)执行。多媒体处理模块、处理设备和/或计算设备可以是处理逻辑部件,该处理逻辑部件包括硬件(例如,电路、专用逻辑部件、可编程逻辑部件、微码等)、软件(例如,在处理器上运行以执行硬件模拟的指令)、固件或它们的组合。

在框605处,过程600可确定存储阵列中是否存在具有针对多媒体资产的一部分的适当的可靠性得分和性能得分的区块。例如,过程600可分析多媒体资产的部分的访问频率级别和重要性级别并且可确定是否存在针对访问频率级别和重要性级别具有适当的性能得分和可靠性得分的任何区块。如果存在针对多媒体资产的部分具有适当的可靠性得分和性能得分的区块,则过程600可在块625处识别那些区块。如上所述,多媒体资产的该部分可存储在所识别的区块上(具有适当的可靠性得分和性能得分)。

如果对于多媒体资产的该部分没有具有适当的可靠性得分和/或适当的性能得分的区块,则过程600可确定优选的是可靠性还是性能。例如,过程600可确定用户是更喜欢对多媒体资产进行更多保护(针对丢失),还是更喜欢更快速地访问多媒体资产。过程600可基于用户输入(从用户接收)、配置文件、设置、参数等来确定可靠性或性能是否是优选的。过程600还可基于多媒体资产的vca确定可靠性或性能是否是优选的。例如,过程600可使用vca来确定多媒体资产是儿童毕业的视频,并且可确定多媒体资产对于用户可能是重要的,使得可靠性应该是优选的。

如果可靠性是优选的,则过程600可在框615处识别具有适当的可靠性得分但可能没有适当的性能得分的区块。在一个实施方案中,过程600可识别具有适当的可靠性得分的区块,其具有最接近适当的性能得分的性能得分。例如,如果性能得分为2是适当的但存储阵列不具有性能得分为2的区块,则过程600可识别具有次高性能得分(例如,性能得分为3)的区块。

如果性能是优选的,则过程600可在框620处识别具有适当的性能得分但可能没有适当的可靠性得分的区块。在一个实施方案中,过程600可识别具有适当的性能得分的区块,其具有最接近适当的可靠性得分的可靠性得分。例如,如果可靠性得分为1是适当的但存储阵列不具有可靠性得分为1的区块,则过程600可识别具有次高可靠性得分(例如,可靠性得分为2)的区块。

图7是根据一个实施方案的示出用于将多媒体资产存储在存储阵列中的示例性过程700的流程图。过程700可由多媒体处理模块、处理设备(例如,处理器、中央处理单元(cpu))和/或计算设备(例如,服务器计算设备)执行。多媒体处理模块、处理设备和/或计算设备可以是处理逻辑部件,该处理逻辑部件包括硬件(例如,电路、专用逻辑部件、可编程逻辑部件、微码等)、软件(例如,在处理器上运行以执行硬件模拟的指令)、固件或它们的组合。

在框705处,过程700可确定在确定存储阵列中的区块的性能得分时是应当使用精细性能得分还是粗略性能得分。例如,过程700可接收用户输入、访问配置文件、访问设置/参数等等,来确定是应使用精细性能得分还是粗略性能得分。如果应使用精细性能得分,则过程700可在框710处使用较大范围(或较大数目)的性能得分,如上所述。如果应使用粗略性能得分,则过程700可在框715处使用较小范围(例如,较小数目)的性能得分,如上所述。

图8是根据一个实施方案的计算设备800的图。计算设备800可执行可使计算设备800执行本文所讨论的任何一种或多种方法论(例如,操作、方法、功能等)的指令,可被执行。计算设备800可以是移动电话、智能电话、上网本计算机、机架式服务器、路由器计算机、服务器计算机、个人计算机、大型计算机、膝上型计算机、平板电脑、台式计算机等,在其中可执行用于使该机器执行本文所讨论的任何一种或多种方法论的一组指令。在另选实施方案中,机器可连接(例如,联网)到lan、内联网、外联网或互联网中的其他机器。机器可在客户端-服务器网络环境中以服务器机器的能力操作。机器可以是个人计算机(pc)、机顶盒(stb)、服务器、网络路由器、交换机或桥接器,或能够执行一组指令(顺序或其他)的任何机器,这些指令指定要由该机器采取的动作。此外,虽然仅示出了单个机器,但术语“机器”也应被视为包括单独或联合执行一组(或多组)指令的机器的任何集合,以执行本文所述的功能、操作、方法、算法中的任一者或多者等。

示例性计算设备800包括处理设备(例如,处理器、控制器、中央处理单元(cpu)等)802、主存储器804(例如,只读存储器(rom)、闪存存储器、动态随机存取存储器(dram)诸如同步dram(sdram))、网络访问接口808、直接访问接口809、输出设备810、输入设备812和数据存储设备818,它们通过总线830彼此通信。

处理设备802表示一个或多个通用处理设备,诸如微处理器、中央处理单元等。更具体地讲,处理设备802可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实现其他指令集的处理器或实现指令集的组合的处理器。处理设备802还可以是一个或多个专用处理设备,诸如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理设备802被配置为执行多媒体处理模块指令835(例如,用于图2中所示的多媒体处理模块211的指令),用于执行本文所讨论的操作和步骤。

计算设备800可包括网络访问接口808(例如,网络接口卡、wi-fi接口等),其可与网络(例如,图1中所示的网络170)通信。计算设备还可包括直接访问接口809(例如,usb接口、esata接口、thunderbolt接口等)。计算设备800还可包括输出设备810(例如,液晶显示器(lcd)或阴极射线管(crt))和输入设备812(例如,鼠标、键盘等)。在一个实施方案中,输出设备810和输入设备812可组合到单个部件或设备(例如,lcd触摸屏)中。

数据存储设备818可包括计算机可读存储介质828,在该计算机可读存储介质上存储有体现本文描述的任一种或多种方法论或功能的一组或多组指令(例如,多媒体处理模块指令835)。多媒体处理模块指令835还可在由计算设备800执行期间完全或至少部分地驻留在主存储器804内和/或处理设备802内。主存储器804和处理设备802也可构成计算机可读介质。还可以经由网络访问接口808和/或直接访问接口809发送或接收指令。

虽然计算机可读存储介质828在示例性实施方案中被示为单个介质,但是术语“计算机可读存储介质”应被视为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库和/或相关高速缓存和服务器)。术语“计算机可读存储介质”还应被视为包括能够存储、编码或携带一组指令以供机器执行并且使机器执行本公开的任一种或多种方法论的任何介质。术语“计算机可读存储介质”因此应被视为包括但不限于固态存储器、光学介质和磁性介质。

一般注解

本领域技术人员将理解,在一些实施方案中,其他类型的分布式数据存储系统可实现并同时保持在本公开的范围内。此外,本文所述的过程中采取的实际步骤可不同于附图中所描述或所示的那些。根据实施方案,可移除上述步骤中的某些步骤,可添加其他步骤。

虽然已经描述了某些实施方案,但是这些实施方案仅作为示例呈现,并且不旨在限制保护范围。实际上,本文描述的新颖方法和系统可以各种其他形式体现。此外,可以对本文描述的方法和系统的形式进行各种省略、替换和改变。所附权利要求及其等同物旨在涵盖落入保护范围和实质内的这些形式或修改。例如,图中所示的各种部件可实现为处理器、asic/fpga或专用硬件上的软件和/或固件。而且,上文公开的特定实施方案的特征和属性可以不同方式组合以形成另外的实施方案,所有这些都落入本公开的范围内。尽管本公开提供了某些优选实施方案和应用,但是对于本领域普通技术人员显而易见的其他实施方案,包括不提供本文所述的所有特征和优点的实施方案,也在本公开的范围内。因此,本公开的范围旨在仅通过参考所附权利要求来限定。

词语“示例”或“示例性”在本文中用于表示用作示例、实例或说明。本文中描述为“示例”或“示例性”的任何方面或设计不必被解释为比其他方面或设计更优选或更具优势。相反,使用词语“示例”或“示例性”旨在以具体方式呈现概念。如在本申请中所使用的,术语“或”旨在表示包含性的“或”而非排他性的“或”。即,除非另外指明,或者从上下文中明确指明,“x包括a或b”旨在表示任何天然包含的排列。即,如果x包括a;则x包括b;或者x包括a和b,那么在任何前述实例下满足“x包括a或b”。另外,本申请和所附权利要求中使用的冠词“一个”(“a”和“an”)通常应理解为表示“一个或多个”,除非另有说明或从上下文明确地指示为单数形式。此外,除非如此描述,否则贯穿使用术语“实施方案”或“一个实施方案”或“实施方式”或“一个实施方式”并非旨在表示相同的实施方案或实施方式。此外,本文使用的术语“第一”、“第二”、“第三”、“第四”等是指用于区分不同元件的标签,并且根据它们的数字标号可不一定具有顺序含义。

上述所有过程可通过由一个或多个通用或专用计算机或处理器执行的软件代码模块来体现,并且完全自动化。代码模块可存储在任何类型的计算机可读介质(例如,非暂态计算机可读介质)或其他计算机存储设备或存储设备的集合上。另选地,所述方法中的一些或全部可另选地体现在专用计算机硬件中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1