用于缓存数据的系统和方法技术方案

技术编号:22174497 阅读:32 留言:0更新日期:2019-09-21 15:09
在此描述的各实施方式包括用于缓存数据的方法、设备和系统。一方面,在具有内存和一个或多个处理器的计算系统中执行以下方法,所述内存包括多个不同的内存类型,每个内存类型基于该内存类型的读取延迟被分配给多个内存层的相应内存层。该方法包括:(1)识别多个区间,包括第一区间,每个区间包括存储在内存中的相应数据集;(2)为第一区间确定第一读取频率;(3)基于所确定的第一读取频率将第一区间存储在多个不同内存层的特定内存层中。

System and method for caching data

【技术实现步骤摘要】
【国外来华专利技术】用于缓存数据的系统和方法
本专利技术一般地涉及缓存数据,包括但不限于多层缓存体系结构。
技术介绍
多年来,数据通常存储在硬盘驱动器(HDD)上的固定大小的扇区或磁盘块中,硬盘驱动器具有带多个同心轨道的旋转盘片。当数据在连续的块和轨道中被组合在一起时,可以相对快速地访问它,但是,如果从磁盘上不同位置的块或轨道访问数据,由于磁头的移动相对较大,访问速度会慢很多。这会显著降低读写性能(例如,降低一百倍)。传统上,应用软件在物理服务器上运行,通常每台服务器上具有一个应用程序。每个服务器都有自己的一组磁盘,因此通常一个应用程序拥有自己的一组磁盘。然而,近年来,许多服务器被虚拟化,物理服务器集群运行多个虚拟服务器,每个虚拟服务器都运行共享磁盘驱动器或磁盘驱动器阵列的应用程序。当多个应用程序访问多个文件时,这些文件可能散布在磁盘驱动器上。这意味着在虚拟化环境中,应用程序性能会因磁头移动导致磁盘性能不佳而受到不良影响。虽然磁盘容量持续呈指数级增长且成本持续下降,但磁盘随机性能几乎没有变化。因此,尽管可以不必为了容量而采用大的HDD阵列,但为了提供应用程序需要的或用户期望的读取性能,大的HDD阵列仍然有必要。固态存储设备(SSD)能够提供比HDD更高的性能,但其成本要高得多。此外,服务器中可用的内存量显著增加,因此工作数据集可以从磁盘驱动器一次读取,然后存储在内存中,从而减少磁盘读取次数。由于SSD和内存的成本降低,使用混合存储系统成为可能,对于容量使用HDD等,但将被频繁访问的数据存储在内存或SSD中。但是,确定哪些数据应该存储在哪里,是一个难题。因此,需要以更有效率、更准确和更有效果的方法在共享存储系统上存储数据的系统和/或设备。这样的系统、设备和方法可选择地补充或者取代现有的用于缓存数据的系统、设备和方法。
技术实现思路
读缓存和写缓存之间存在差异。磁盘驱动器和存储阵列通常包括某种形式的基于内存的回写式缓存器。它允许少量的写入数据被暂存在缓存器中,然后重新排序,由此它可以以使磁头移动最小化的方式将其写入磁盘。在一些实施方式中,写入被缓存在SSD层,然后在后台写回到HDD层,以便使HDD磁头移动最小化。读缓存与写缓存不同。读缓存的目标是将最频繁访问的数据存储在低延迟内存层(例如,闪存)中,将次等最常访问的数据存储在中等延迟层(例如,SSD)中,其余的存储在低延迟层(例如,HDD)中。有效的读缓存需要预测哪些数据在不久的将来可能被读取。难点在于为每层识别适当的数据。存储器读缓存算法可以基于处理器内存缓存算法。对于被读取然后在缓存中保留一段时间,并且在新数据进入一段时间之后老化移出的数据,使用一种实施最近最少使用(LRU)算法的技术。如果数据在缓存中时被重新读取,则数据被刷新,由此便不会那么快速地老化。LRU的问题在于,如果大量数据正在被读取,则在数据从缓存中老化移出之前可能不会被重新读取。例如,在一天内读取的数据可能高达太字节(即百万兆)或更多。4GB内存缓存在数据老化移出之前将能够保持数据5分钟。简单的LRU缓存每10分钟就会丢失1次访问数据或者每天丢失访问数据144次。所需要的是一种在更长时间内,即数小时或数天量级上查看数据的方法。另一个问题是,如果被读取的所有数据都被添加到该缓存中,则SSD读取缓存会引发开销(overhead),因为之后每次读取未在缓存中的数据都将导致向SSD缓存写入。理想情况下,只有被合理频繁地读取的数据才应该被添加到SSD缓存中。同样,所需要的是一种识别被频繁重读但有时读取之间的间隔相对较长的数据的方法。例如,特定的一组数据在一天时间内可以被多次读取,但是在读取之间具有不活动的时段。在这些不活动的时段该数据应该存储在缓存中。在相对较长的时间段内监视数据访问以确定如何以及在何处最有效地存储数据的问题是所涉及数据的量。例如,具有相对较低读取量(平均每秒1000个输入/输出(IOPS))的系统每天将具有大约100,000,000次读取。缓存系统需要跟踪这些读取而不显著影响性能。即使对每次读取仅记录最少的信息也会产生可观的跟踪数据,例如,一天的数据读取应当会很容易地消耗掉几千兆字节的内存。在一些实施方式中,通过将缓存分成固定大小的段并缓存整个段来解决该问题。然而,大量的小段仍然消耗可观的内存,而少量的大段则会导致浪费,因为实际上每个段可能只有一小部分被频繁访问。对于应用程序或操作系统元数据块,这尤其明显,这些元数据块可能与单个磁盘块一样小,但可能会被非常频繁地重新读取。因此,这个挑战在于:(1)识别被频繁重读(即使读取之间的间隔可能相对比较长的情况)的数据;(2)有效地识别所述数据而不会显著影响性能且不会消耗过多内存;(3)以最小的浪费(例如,避免缓存不可能被重读的数据)识别所述数据。在一些实施方式中,读取跟踪器将确定缓存良好候选者的数据的功能与缓存所述数据的功能相分离。在一些实施方式中,即使读取之间的间隔相对较长,所述读取跟踪器也识别被频繁读取的数据,并把缓存候选者的数据通知一个或多个缓存模块。(A1)一方面,一些实施方式包括一种在具有内存和一个或多个处理器的计算系统中执行的方法,该内存包括多个不同的内存类型,每个内存类型基于该内存类型的读取延迟(有时也称为读取时间或访问时间)被分配给多个内存层的相应内存层。该方法包括:(1)识别多个区间,包括第一区间,每个所述区间包含存储在所述内存中的相关数据集;(2)为所述第一区间确定第一读取频率;以及(3)基于所确定的第一读取频率将所述第一区间存储在所述多个不同的内存层的特定内存层中。(A2)在A1的所述方法的一些实施方式中,所述多个不同的内存类型包括多个不同类型的物理内存。(A3)在A2的所述方法的一些实施方式中,所述多个不同类型的物理内存包括硬盘驱动器(HDD)存储器、固态驱动器(SSD)存储器和随机存取存储器(RAM)。(A4)在A2的所述方法的一些实施方式中,在每个内存层中能够存储的数据总量对应于被分配到相应内存层的所有内存的物理存储大小。(A5)在A1-A4的所述方法的一些实施方式中:(1)所述内存包括多个内存块;且(2)识别所述第一区间,其包括:确定所述多个内存块中的哪一个或多个内存块被读取的时间接近,以及被读取时间接近的所述内存块在所述内存中的位置是否彼此接近。(A6)在A1-A5的所述方法的一些实施方式中,识别所述第一区间包括将多个数据块识别作为所述第一区间。(A7)在A1-A6的所述方法的一些实施方式中,为所述第一区间确定第一读取频率,其包括在预设的时间间隔内确定对所述第一区间的读取次数。(A8)在A7的所述方法的一些实施方式中,所述预设的时间间隔是一个或多个小时。(A9)在A7的所述方法的一些实施方式中,所述预设的时间间隔是一天或多天。(A10)在A7-A9的所述方法的一些实施方式中,所述方法还包括:基于所述内存中所识别的区间的数量来调整所述预设的时间间隔。(A11)在A7-A10的所述方法的一些实施方式中,所述预设的时间间隔包括从所述确定第一读取频率中排除的非跟踪时间段。(A12)在A7-A11的所述方法的一些实施方式中:(1)所述第一区间包括多个数据块;且(2)确定对所述第一区间的所述读取次数包括在访问一个或多个数据块之后增加本文档来自技高网
...

【技术保护点】
1.一种计算系统,包括:内存,其包括多个不同的内存类型,每个内存类型基于所述内存类型的读取延迟被分配给多个内存层的相应内存层;多个缓存模块,所述多个缓存模块的每个缓存模块被构造成针对所述多个不同的内存类型的相应内存类型管理数据缓存;和读取跟踪模块,其连接到所述内存和所述多个缓存模块,所述读取跟踪模块被构造成:识别多个区间,包括第一区间,所述第一区间包含存储在所述内存中的相关数据集;确定所述第一区间的第一读取频率;以及管理所述内存中所述多个区间的缓存,包括:基于所确定的第一读取频率指示所述多个缓存模块的特定缓存模块,将所述第一区间存储在所述多个不同的内存层的对应内存层中。

【技术特征摘要】
【国外来华专利技术】2016.12.09 US 62/432,024;2017.03.13 US 15/457,5901.一种计算系统,包括:内存,其包括多个不同的内存类型,每个内存类型基于所述内存类型的读取延迟被分配给多个内存层的相应内存层;多个缓存模块,所述多个缓存模块的每个缓存模块被构造成针对所述多个不同的内存类型的相应内存类型管理数据缓存;和读取跟踪模块,其连接到所述内存和所述多个缓存模块,所述读取跟踪模块被构造成:识别多个区间,包括第一区间,所述第一区间包含存储在所述内存中的相关数据集;确定所述第一区间的第一读取频率;以及管理所述内存中所述多个区间的缓存,包括:基于所确定的第一读取频率指示所述多个缓存模块的特定缓存模块,将所述第一区间存储在所述多个不同的内存层的对应内存层中。2.根据权利要求1所述的计算系统,其中,所述多个不同的内存类型包括多个不同类型的物理内存。3.根据权利要求2所述的计算系统,其中,所述多个不同类型的物理内存包括硬盘驱动器HDD存储器、固态驱动器SSD存储器和随机存取存储器RAM。4.根据权利要求2所述的计算系统,其中,在每个内存层中能够存储的数据总量对应于被分配给相应内存层的所有内存的物理存储容量。5.根据权利要求1所述的计算系统,其中,所述多个区间包括比所述第一区间大的第二区间。6.根据权利要求1所述的计算系统,其中,所述内存被划分为多个虚拟盘,且其中所述读取跟踪模块针对所述多个虚拟盘中的每个虚拟盘跟踪读取。7.根据权利要求6所述的计算系统,其中,所述多个虚拟盘中每个虚拟盘都被分配给相应的用户。8.根据权利要求6所述的计算系统,其中,所述读取跟踪模块分别地针对所述多个虚拟盘中的每个虚拟盘跟踪读取。9.根据权利要求1所述的计算系统,其中,基于所确定的第一读取频率,所述读取跟踪模块将所述第一区间分配给多个频率水平的特定频率水平。10.一种用于缓存数据的方法,包括:在具有内存和一个或多个处理器的计算系统中,所述内存包括多个不同的内存类型,每个内存类型基于该内存类型的读取延迟被分配给多个内存层中的相应内存层:识别多个区间,包括第一区间,每个所述区间包含存储在所述内存中的相应的相关数据集;确定所述第一区间的第一读取频率;以及基于所确定的第一读取频率将所述第一区间存储在所述多个不同的内存层的特定内存层中。11.根据权利要求10所述的方法,其中,所述内存包括多个内存块;以及其中识别所述第一区间包括确定所述多个内存块中的哪一个或多个内存块被读取的时间接近,以及读取时间接近的所述内存块在所述内存中的位置是否彼此接近。12.根据权利要求10所述的方法,其中,识别所述第一区间包括识别多个数据块作为所述第一区间。13.根据权利要求10所述的方法,其中,确定所述第一区间的第一读取频率包括:在预设的时间间隔内确定对所述第一区间的读取次数。14.根据权利要求13所述的方法,其中,所述预设的时间间隔...

【专利技术属性】
技术研发人员:克里斯托弗·J·法里
申请(专利权)人:魔法存储器有限公司
类型:发明
国别省市:英国,GB

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

1