用于数据块的需求确定的制作方法_2

文档序号:9510116阅读:来源:国知局
到的计算机可执行指令或数据结构在网络接口模块(例如,“NIC”)内的RAM中缓冲,并且然后在最后传送到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因此,应理解的是,可以将计算机存储介质包括在也(或者甚至主要地)利用传输介质的计算机系统部件中。
[0014]计算机可执行指令包括例如当在处理器处执行时促使通用计算机、专用计算机或专用处理设备执行某个功能或功能组的指令和数据。计算机可执行指令可以是例如二进制中间格式指令(诸如汇编语言)或者甚至源代码。虽然以特定于结构特征和/或方法动作的语言描述了主题,但应理解的是,在所附权利要求中定义的主题不一定限于所述特征或上文描述的动作。而是,所述特征和动作是作为实现权利要求的示例性形式而公开的。
[0015]本领域的技术人员将认识到,可在具有许多类型的计算机系统配置的网络计算环境中实践本发明,所述计算机系统配置包括个人计算机、台式计算机、膝上型计算机、信息处理机、手持式设备、多处理器系统、基于微处理器的或可编程消费电子产品、网络PC、微型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等。还可在分布式系统环境中实践本发明,其中通过网络而链接(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备两者中。
[0016]图2图示出其中可以示例的方式采用本文所述的原理的系统200。系统200包括位于存储分级结构220内的某处的数据块210。该系统还包括执行逻辑以确定数据块210应位于存储分级结构220内的哪个位置的部件230。现在将更详细地描述系统200的这些元件中的每一个元件。
[0017]数据块210可以是固定大小数据块或不同大小的块或者固定大小和可变大小块的组合。例如,假设系统200在文件系统内操作。在该情况下,数据块可能是特定大小(例如,仅仅作为示例,可能是1MB)的固定大小文件部分。当文件在该特定大小以下时,数据块可包括整个文件,并且因此小于该特定大小。因此,在该情况下,数据块210的集合在那些数据块是文件的一部分时包括固定大小的块,或者在那些数据块是整个文件时包括可变大小的块。
[0018]也就是说,这仅仅是示例,本文所述的原理并不依赖于在文件系统层级可见的数据块。例如,系统200可在处于计算系统的高速缓存层级的文件系统层级以上操作。在该情况下,数据块可能是数据块,因为其对高速缓存系统可见。系统200还可接近于物理层级操作,在该情况下,数据块可能是数据段,因为其对那些较低层级可见。因此,本文所述的原理不限于在文件系统层级的操作。无论如何,仅仅出于示例性目的,本文所述的原理可偶尔将数据块称为文件部分或文件,其为对文件系统可见的数据块。
[0019]数据块210中的每一个位于存储分级结构220的层级内。存储分级结构是包括两个或更多个层级的任何存储分级结构。例如,在图2中,仅仅出于示例性目的,将存储分级结构220图示为包括三个层级:高层级221、中间层级222以及低层级223。存储分级结构的特征在于在分级结构中的层级越高,其存储数据的(每比特)成本越高。
[0020]虽然使用术语“存储”来修饰术语“分级结构”,但不应将其理解为在存储分级结构220的所有层级中都要求非易失性。常见的是,存储分级结构的较高层级实际上是易失性的。例如,随机存取存储器(RAM)传统上是易失性的,但是这并不所要求的。在一个实施例中,仅仅作为示例,高层级221可以是闪存,低层级223可能是固态盘或机械盘,而中间层级222可能是中间的某个层级。作为所有层级都为非易失性的另一示例,高层级221可能由字节可寻址非易失性存储器(NVM)或者以NAND支持的DRAM或其他NVM技术构成,所述字节可寻址非易失性存储器(NVM)诸如MRAM、RRAM、STT-RAM、FERAM等。中间层级222可以是固态驱动器,并且较低层级23可能是硬盘驱动器。然而,这些仅仅是示例。省略号224表示本文所述的原理不限于存储分级结构220内的层级的数目,只要存在至少两个这样的层级即可。出于讨论的目的,数据块210中的一个(标记为数据块211)位于存储分级结构220的中间层级222内。部件230包括数个可执行模块,其包括例如需求计算部件231和驱逐/提升部件232。省略号233表示在多少部件对下面描述的、归因于需求计算部件231和驱逐/提升部件232的功能性有所贡献方面存在灵活性。部件231和232可由计算系统(例如,计算系统100)的一个或多个处理器(例如,图1的处理器102)执行,其执行存储在组成计算机程序产品的一个或多个计算机可读存储介质上的计算机可执行指令。将相对于图3来描述部件230的操作。
[0021]图3图示出用于将数据库定位于存储分级结构内的方法300的流程图。可针对多个数据块中的每一个执行方法300。出于说明性目的,将相对于图2的系统200来描述方法300,其中,部件230确定与数据块211相关联的需求,并且确定是提升数据块211 (其将涉及到将数据块211从存储分级结构220的中间层级222提升至高层级221)还是驱逐数据块211(其将涉及到将数据块211从存储分级结构220的中间层级222驱逐到低层级223)。
[0022]通过标识将针对提升和/或驱逐被评估的数据块(动作301)而发起方法300。参考图2,并且在本文所述的示例中,所标识的数据块是数据块211,其当前在存储分级结构220的中间层级222中。
[0023]方法300包括在多个时间段内累积用于数据块的需求统计(动作310)。针对每个时间段执行图3中的动作310的内容。在一个实施例中,时间段可以是相对小的,可能小到仅几秒。可由例如图2的需求计算部件231来执行需求统计的累积。
[0024]特别地,针对正在由方法300评估的给定数据块,并且针对每个时间段,需求计算部件231评估在相应时间段内的对数据的数据块的输入/输出操作(动作311)。基于该评估,需求计算部件231针对该数据块向时间段分配需求值(动作312)。作为示例,假设时间段可能是5秒。可能的是,可在一周的时段内累计该需求值。现在将描述该过程的数个示例和变体。
[0025]在第一示例中,输入/输出操作的评估(动作311)可能简单地确定在该时间段期间在数据块上是否发生了输入/输出操作。在更一般情况下,如果在该时间段期间在数据块上发生了输入/输出操作,则需求值的分配(动作312)可向数据块和时间段的组合分配较高需求值(例如,1 一一),并且如果在该时间段期间在数据块上未发生输入/输出操作,则为数据块和时间段的组合分配较低需求值(例如,0—零)。该第一示
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1