CN103858112A - 一种数据缓存方法、装置及*** - Google Patents
一种数据缓存方法、装置及*** Download PDFInfo
- Publication number
- CN103858112A CN103858112A CN201380002567.6A CN201380002567A CN103858112A CN 103858112 A CN103858112 A CN 103858112A CN 201380002567 A CN201380002567 A CN 201380002567A CN 103858112 A CN103858112 A CN 103858112A
- Authority
- CN
- China
- Prior art keywords
- cache
- storer
- data
- storage space
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种数据缓存方法及装置,应用于控制器中,所述控制器和存储设1备连接,控制器包括一级缓存,所述存储设备包括二级缓与存储器,所述二级缓存用于中继所述一级缓存与所述存储器之间交互的数据,方法包括:查询二级缓存的命中率,如果低于扩容阈值,从所述存储器中获取存储空间给所述二级缓存使用。本发明可以提高二级缓存的命中率。
Description
技术领域
本发明涉及IT领域,特别涉及一种存储技术。
背景技术
在存储领域中,磁盘等存储介质虽然可以提供大量的存储空间,但数据的读/写(Input/Output,I/O)的速度往往不高。为了提高数据的读/写速度,会使用缓存(Cache)来暂存数据。主机读数据时,数据先从磁盘读取到控制器的缓存中,再发给主机;主机往磁盘写数据时,先把数据发送给缓存,再从缓存把数据写入主机中。
控制器中,常见的作为缓存的存储介质例如同步动态随机存储设备(Synchronous Dynamic Random Access Memory,SDRAM),往往成本较高,因此厂商为存储***提供的SDRAM存储空间有限。为了节约成本,部分厂商使用了多级缓存技术,把原来的SDRAM作为一级缓存,在SDRAM之外增加相对廉价的闪存(Flash Memory)介质例如固态硬盘(Solid state disk,SSD)作为第二级的缓存,称为SSD Cache(SSD缓存)。SSD Cache位于SDRAM和磁盘之间,当SDRAM的空间不够用时,把SDRAM中的数据转发到SSD Cache中,然后由SSD Cache把数据写入磁盘。
然而,由于SSD的成本仍然比磁盘等介质更高,因此二级缓存的空间仍然是有限的。当短时间内出现有大量的数据读/写操作时,SSD的存储空间无法满足需求,造成SSD和SDRAM之间会出现数据阻塞。以至于对部分读/写请求所对应的数据而言,存储***不得不绕过SSD Cache,直接在SDRAM和磁盘之间进行传递。这种绕开二级缓存SSD的做法也称为SSD没有命中,由于磁盘的读/写速度比SDRAM、SSD都低,SSD命中率越低,对存储***整体效率的影响越明显。
如何提高二级缓存的命中率,是需要解决的问题。
发明内容
本发明提供一种数据缓存技术,可以提高二级缓存的命中率。
第一方面,本发明提供一种数据缓存方法,应用于控制器中,所述控制器和存储设备连接,控制器包括一级缓存,所述存储设备包括二级缓与存储器,所述二级缓存用于存储一级缓存发往存储器的数据,所述方法包括:查询所述二级缓存对读请求的命中率;判断命中率是否低于扩容阈值,如果低于所述扩容阈值,从所述存储器中获取存储空间给所述二级缓存使用,其中,从所述存储器中获取的存储空间是新增存储空间;使用所述二级缓存中新增存储空间,缓存所述一级缓发送的存储数据。
第二方面,本发明提供一种数据缓存装置,用于对存储设备的存储空间进行管理,存储设备包括二级缓存与存储器,该装置包括:命中率查询模块,用于查询二级缓存对读请求的命中率,所述二级缓存用于缓存一级缓存发送的数据;扩容模块,用于判断命中率是否低于扩容阈值,如果低于所述扩容阈值,从所述存储器中获取存储空间给所述二级缓存使用,其中,从所述存储器中获取的存储空间是新增存储空间;缓存模块,用于使用所述新增存储空间,缓存所述一级缓存发往所述存储器发送的存储数据。
本发明用存储器的存储空间对二级缓存扩容,提高了二级缓存的命中率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本发明的一些实施例,还可以根据这些附图获得其他的附图。
图1是本发明实施例结构图;
图2是本发明一种数据缓存方法的实施例流程图;
图3是本发明一种数据缓存装置实施例的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例所获得的所有其他实施例,都属于本发明保护的范围。
本发明存储***由控制器和存储设备组成。存储设备提供存储空间,控制器对存储设备提供管理,并对主机提供读/写访问,对主机而言,存储设备可以是不可见的。存储设备和控制器在物理上可以是分开的两个设备;也可以集成在一个设备内,二者集成在一个设备时可以称为存储服务器。
控制器包括处理器和缓存,本发明实施例中把控制器中的缓存称为一级缓存。存储设备由缓存和多个存储器组成,本发明实施例把存储设备提供的缓存称为二级缓存。控制器发往存储设备的数据,先存入一级缓存,存入一级缓存以后。一级缓存中的数据可以根据数据的冷热程度,周期性的把相对冷的数据转移到二级缓存。二级缓存中的数据,周期性的把相对冷的数据转移到存储器中。把上一级存储器件中相对较冷的数据转移到下一级存储器件的过程,也称为淘汰。此外,控制器可以在数据写入一级缓存后,发送写入完成的响应消息给主机,告诉主机已经完成写入操作;也可以在数据写入存储器后,发送写入完成的响应消息给主机,告诉主机已经完成写入操作。
一级缓存和二级缓存可以是同一种存储介质,也可以不同。当采用不同介质时,一级缓存读/写速度可以比二级缓存更快,成本也更高,例如一级缓存是SDRAM,而二级缓存31是SSD。一级缓存和二级缓存使用的存储介质本身,可以是易失性存储RAM(Random Access Memory),也可以是非易失性存储。但是对控制器而言,把他们作为易失性存储使用,一级缓存和二级缓存中的存储的数据都可以通过老化算法进行淘汰,例如使用冷热数据的识别方法进行淘汰,以提高它们的利用率。本发明实施例中,一级缓存可以再次细分为多个不同的小级别,可以每个级别采用不同的存储介质,小级别存储介质之间串联,并通过淘汰算法进行数据传递。
由于缓存的读写速度总体比存储器更高。因此在接收到主机的读数据时,控制器优先从一级缓存、一级缓存中获取读请求数据,如果没有找到,再到存储器中获取读请求数据。在某一个介质中找到读请求数据称为命中,在一定数量的读请求中,某个介质被命中的比例,称为这个介质的命中率,命中率用于记录从二级缓存中读取待数据时,成功读取的数量或者比例。
具体而言,如果一级缓存被命中,也就是说一级缓存中存在读请求数据,则一级缓存把读请求数据发送给主机;如果二级缓存被命中,则读请求数据从二级缓存发给一级缓存,然后从一级缓存发送给主机;如果存储器被命中,则,则读请求数据从存储器发给一级缓存,然后从一级缓存发送给主机。
出于成本的考虑,二级缓存SSD的存储空间是有限的,当短期有大量读请求时,往往会导致二级缓存命中率降低。虽然可以通过增加二级缓存的总容量来部分的解决这个问题,然而这种提高总容量后,会引起二级缓存的总利用率降低,这与降低二级缓存的成本这一目标是背道而驰的。此外,存储设备在出厂时其内部已经安装二级缓存、存储器等各个部件,用户想要增加额外的缓存,可能存储设备内部已经没有足够的空间安装。即使有空间,这个安装额外缓存的过程也比较复杂,普通用户难以实施。本发明实施例中,符号“/”是“或”的意思。
本发明实施例可以临时增加二级缓存的存储空间,满足突发性需求,而且实施方便,对成本增加不明显。
如图1所示,是本发明实施例结构图。主机1通过控制器2访问存储设备3,控制器2中处理器21和一级缓存22通信。一级缓存22和二级缓存31通信,一级缓存和存储器通信32、存储器34以及存储器34通信,一级缓存22和主机1通信。控制器2可以通过二级缓存31和存储设备3中的存储器进行数据交换;可选的,也可以绕过二级缓存31,由一级缓存22经过直连通道访问存储器。
基于图1的架构,以写数据为例,可以划分为以下步骤:主机发送写请求给一级缓存22;一级缓存22可以是SDRAM;然后一级缓存22把数据缓存到二级缓存31中,接着,二级缓存把数据写入存储设备3中。存储设备3包括多种类型的存储器,例如存储器32是SSD,存储器33是SAS(Serial Attached SCSI)盘,存储器34是SATA(Serial ATA)盘,这三种存储器的读写速度依次降低。存储设备3根据数据冷热程度不同,把数据分别存储在不同速度的存储介质中。例如把热数据存储到SSD盘中,普通数据存储到SAS盘中,冷数据存储到SATA盘中。数据的冷热程度可以描述指数据被访问的频度,越频繁被访问的数据越热,反之越冷。
本发明实施例中,当出现读/写高峰以至二级缓存31命中率降低时,可以把存储器32的一部分存储空间在逻辑上挪给二级缓存使用。如图中所示,把存储器32中的存储空间321挪作二级缓存31中的存储空间311使用,增加了二级缓存31的存储空间。当读/写高峰过去后,二级缓存命中率过高,可以把这部分挪来的空间返还给存储器32。更进一步的,甚至可以在SSD Cache命中率高于预设值时,或者存储器32的存储空间不足时,把原本属于二级缓存31的存储空间挪给存储器32使用。如果把存储器33的存储空间挪给二级缓存31使用,则缓存31将由不同存储介质组成。
表1是一种策略示例,控制器21周期性查询二级缓存31的命中率(具体而言,可以由处理器21执行这个查询),命中率越低,需要从SSD存储器32分片给二级缓存31的空间越多。除了按比例来分配空间,也可以按容量大小来分配空间,例如命中率每下降5%,从SSD存储器32中分配1GB(吉比特)存储空间给二级缓存31。还可以以固定大小整数倍划分空间给二级缓存31,并且检测划分后命中率的变化情况,直至满足条件。例如以100MB(兆比特)的整数倍把SSD存储器32中存储空间分配给二级缓存31使用,直至命中率达到95%后,才停止分配。
表1
图2提供了一种数据缓存方法的实施例流程图。本发明各方法实施例,可以由控制器2执行方法步骤来实现,具体而言可以由图1中的控制器2的处理器21执行方法来实现。一级缓存22中存储有计算机指令,处理器21通过执行一级缓存22的计算机指令,来执行下面的方法。除了和一级缓存22集成在一起,也可以把存储这个计算机指令的存储空间独立出来,作为单独的运行内存。
步骤11,查询二级缓存对读请求的命中率。命中率可以描述处理读请求时,从二级缓存中得到读请求数据的数量。读请求数据也就是读请求所请求读取的数据。
二级缓存中存储的数据的热度比存储器中更高。当二级缓存的存储空间足够时,在一段时间内的读请求数据,如果无法从一级缓存无法中找到,都可以从二级缓中找到。
控制器可以优先查找一级缓存,如果在一级缓存中没有找到带读取的数据,进一步找二级缓存,如果二级缓存中也没有找到,就到存储器中查找。如果二级缓存的存储空间不足,没有存储足够多的热数据,那么就会存在一部分读请求数据在一级缓存中没有找到后,在二级缓存中也没有找到,控制器要从存储器中获得读请求数据。也就是说二级缓存没有被命中。例如,如果在一段时间内,平均100个对二级缓存的读请求中,有80个在二级缓存中找到读请求数据,有20个没有找到,那么命中率就是80%。
本步骤可以周期性执行,也可以在每次收到读/写请求后执行。
步骤12,如果命中率低于扩容阈值,从存储器中挪用存储空间给二级缓存使用,从而扩大二级缓存的存储空间。
存储设备中包括多种规格存储介质的存储器,其中一种和二级缓存相同,例如都是SSD存储器。可以将SSD存储器的存储空间挪给二级缓存使用。可以把整个SSD磁盘作为可以被挪用的范围,也可以在SSD存储器中开辟一部分共享空间,在共享空间的范围内,挪用给二级缓存。
具体而言,控制器记录并管理各存储器的存储空间,控制器还记录并管理缓存(例如一级缓存和二级缓存)的存储空间,例如记录有存储器和缓存中各类存储介质的地址。按照这个地址写入数据,就可以把数据写入存储介质中。步骤12中,可以由控制器把原本标记为属于存储器的存储介质地址,标记为属于二级缓存的存储介质地址。此外,还可以用标识记录这部分存储空间来源于哪个存储器,当二级缓存的空闲空间太大时,可以优先把这部分原本属于存储设备的存储空间返还给存储设备。
命中率用于描述二级缓存的被利用的程度,以便当二级缓存利用率降低时,启动对二级缓存进行扩容。因此命中率的表现实现可以有多种,除了用百分比表示。也可以用存储空间大小表示,例如在从二级缓存中获取数据的过程中,如果平均每秒有100MB(兆字节)的数据无法找到,就认为命中率达到扩容阈值,可以对二级缓存进行扩容。命中率还可以用读请求的数量表示。比如当每秒超过10个针对二级缓存的读请求没有成功响应时,认为符合扩容阈值,扩大二级缓存的存储空间。
步骤13,使用二级缓存中新增的存储空间来缓存数据。当一级缓存通过老化算法进行数据淘汰时,可以把相对较冷的数据转移到二级缓存新增的存储空间中。转移来的数据缓存到二级缓存后,可以供后续读请求使用,提高二级缓存的命中率。缓存作为动词时,是临时存储的意思,被缓存的数据所占用的存储空间可以被新数据替换;收到取消缓存的指令后,可以释放为了缓存数据而占用的存储空间。
本发明实施例中,二级缓存的介质在物理上可以是易失性的也可以是非易失性的。在逻辑上可以设置为易失性的,可以为缓存新的数据腾出存储空间。
步骤14,把二级缓存所缓存的数据发送给下一级存储器件。下一级存储器件例如是存储器。当二级缓存被写满后,可以根据淘汰算法,把较冷的数据转移到存储器中,二级缓存中保留相对较热的数据。本发明实施例中,存储设备由多个存储器组成,不同存储器的层级不同。在被转移到存储器的数据中,相互之间也存在冷热区别,可以依据数据的冷热程度,热数据优先存储到存储设备的高速存储器中,冷数据优先存储到存储设备的低速存储器中。也可以按照数据的重要性分析,越重要的数据存放到可靠性越高的存储器中。
把缓存的数据传递到下一级存储器件后,即可释放数据所占用的存储空间。以便二级缓存可以再次缓存新的数据。释放方式有两种,一种是主动擦除数据占用的存储空间;另一种可以把数据占用的存储空间标记为可以被再次写入。
步骤15,当所述命中率升高至减容阈值时,把所述新增存储空间返还给存储器。步骤15是可选步骤。
本发明实施例中,介绍了把原本属于存储器的存储空间共享给缓存使用。在其他实施例中,也可以把缓存的存储空间共享给存储器使用;还可以设置独立于存储设备和缓存的第三方存储空间,由存储器和缓存共同使用。此外,本发明实施例介绍了一种缓存和存储器共享存储空间的技术,缓存分为2个层级。
在其他实施例中,一级缓存或者二级缓存可以只有一级或者细分成更多层级,不同层级读写速度不同。再者,本发明实施例中,缓存和存储器存在同样规格的存储介质闪存(Flash Memory),在其他实施例中,可以是不同规格的存储介质之间共享存储空间。
例如把存储器由磁盘组成,二级缓存由SSD组成,把存储器的磁盘空间共享给二级缓存使用;或者存储器由SSD和磁盘组成,一级级缓存由SDRAM组成,把存储器中的SSD或者磁盘的存储空间共享给一级缓存,控制器把共享给自己的存储空间和原本的SDRAM一起作为一级缓存使用。
在本发明另外一种实施例中,由控制器提供的二级缓存的存储空间可以为0,也就是说存储器不提供二级缓存,直接由存储设备的存储器提供存储空间作为二级缓存,这样可以简化控制器的结构。
一级缓存和存储器之间还可以设置直连通道,当二级缓存空间不足时,由直连通道旁路二级缓存,通过直连通道传递一级缓存和所述存储器之间交互的数据。
如图3所示,是本发明数据缓存装置一种实施例的结构图,可以执行前述的方法实施例。数据缓存装置4包括一级缓存41、命中率查询模块42、扩容模块43、缓存模块44以及发送模块45。数据缓存装置4和存储设备3连接,存储设备3包括二级缓存31以及存储器32。
一级缓存41,用于缓存数据。读写数据的速度可以比二级缓存31以及存储设备3更快。
二级缓存31,和所述一级缓存41以及所述存储设备3连接。可以中继所述一级缓存与所述存储器之间的写数据,数据先从一级缓存转移到二级缓存,再从二级缓存转移到磁盘。二级缓存31的读写数据的速度可以比存储器3更快。
命中率查询模块42,用于查询二级缓存31的命中率。
当二级缓存31的存储空间足够时,如果主机发出的是写请求,写请求中携带的数据经过控制器到达一级缓存41后,一级缓存41通过淘汰算法,把相对较冷的数据转移到二级缓存31。对二级缓存31中的数据定期进行淘汰,把较冷的数据转移到存储器32。按照数据读取速度的不同,存储器32分为不同等级,较热的数据存储到读取速度较快的存储器32中。在存储***中,一级缓存41中存储的数据是最热的数据,二级缓存31次之,数据读取速度较高的存储器32再其次,数据读取速度最低的存储器存储的是最冷的数据。
如果在二级缓存31中没有找到带读取的数据,也就是说二级缓存31没有被命中,那么可以绕开二级缓存31,直接从存储器32中读取主机请求的数据给一级缓存41。例如,如果在一段时间内,对二级缓存31的读请求中,平均100个中有80个从二级缓存31中找到了请求的数据,有20个读请求没有找到,那么命中率就是80%。
命中率查询模块42的查询操作可以周期性执行,也可以在每次收到写请求后执行。
扩容模块43,用于判断命中率是否低于预设的扩容阈值,如果低于扩容阈值,从所述存储设备3的存储器32中获取存储空间给所述二级缓存31使用,其中,从存储器32中获取的存储空间我们称为新增存储空间。
存储器32包括多种规格的存储介质,其中一种和二级缓存31相同,例如以闪存(Flash)作为存储介质的固态硬盘SSD存储器。可以将SSD存储器的存储空间挪给二级缓存31使用。可以把整个SSD磁盘作为可以被挪用的范围,也可以在SSD存储器中开辟一部分共享空间,在共享空间的范围内,挪用给二级缓存31。
具体而言,扩容模块43记录有存储器32的存储空间并对存储空间进行管理,扩容模块43还记录有缓存(包括一级缓存41和二级缓存31)的存储空间并进行管理,例如记录有存储器32和缓存中各类存储介质的地址。按照存储介质提供的地址写入数据,就可以把数据写入存储介质中。可以由控制器把原本标记为归属于存储器32的的地址,标记为归属于二级缓存31,实现存储空间的转移。此外,还可以用标识记录这部分存储空间来源于存储器32,当二级缓存31的空闲空间太大时,可以优先把这部分原本属于存储器32的存储空间返还给存储器32。
命中率用于描述二级缓存31的可利用程度,以便当二级缓存31利用率降低(达到预设的扩容阈值)时,启动对二级缓存31进行扩容。
可选的,当所述命中率升高至减容阈值时,扩容模块43可以把所述新增存储空间返还给存储器32。
缓存模块44,用于使用所述二级缓存31中新增存储空间,缓存来自一级缓存41的数据。缓存模块44拥有调度功能,可以调度二级缓存31中的存储空间,缓存模块44本身可以没有存储空间。缓存模块44,还可以指令把一级缓存41中的数据不经过二级缓存31直接发给存储器32。
如果控制器收到的是写请求所请求的数据,称为写数据,则二级缓存31从一级缓存41中获得写数据然后缓存。
本发明实施例中,二级缓存31的介质在物理上可以是易失性的也可以是非易失性的。在逻辑上可以设置为易失性的。
对所述装置收到对所述存储数据的读请求,缓存模块44可以从所述新增存储空间中,获得所述存储数据发送给一级缓存。
缓存模块44还用于,当所述二级缓存无法命中时,通过直连通道从所述存储器获得数据到所述一级缓存。
缓存模块44,还可以用于把新增存储空间中缓存的数据,发送给所述二级缓存31存储器32。这个功能是可选的。
本发明实施例中,存储器32有多个,不同存储器32的层级不同。可以依据数据的冷热程度,热数据优先存储到高速存储器32中,冷数据优先存储到低速存储器32中。也可以按照数据的重要性分析,越重要的数据存放到可靠性越高的存储器32中。
把二级缓存的数据传递到下一级存储器件后,可用释放数据所占用的存储空间供缓存下一次写入的数据使用;也可以不释放,供后续读取。释放方式有两种,一种是主动擦除数据占用的存储空间;另一种可以把数据占用的存储空间标记为可以被再次写入。
在另外一种实施方式中,数据缓存装置4可以不包括一级缓存41,也就是说数据缓存装置4由命中率查询模块42、扩容模块43、缓存模块44以及发送模块45的功能不变。例如数据缓存装置4是集成在控制器中的软件或硬件,控制器还包括一级缓存41。
本实施例中,介绍了把原本属于存储器32的存储空间共享给二级缓存31使用。在其他实施例中,也可以把二级缓存31的存储空间共享给存储器32使用;还可以设置独立于存储器32和二级缓存31的第三方存储空间,由存储器32和二级缓存31共同使用。本发明实施例介绍了一种缓存和存储器32共享存储空间的技术,缓存分为2个层级,存储器32也由不同存储器组成。
由于二级缓存31和存储器32在物理位置上都位于存储设备3中,而且控制器对二级缓存31和存储器32的管理方式接近,相对而言,控制器对一级缓存41的管理方式差别比较明显。因此把存储器32的存储空间挪给二级缓存31的做法,比把存储器32的存储空间挪给以及缓存41更加简单易行。
本领域普通技术人员将会理解,本发明的各个方面、或各个方面的可能实现方式可以被具体实施为***、方法或者计算机程序产品。例如提供一次存储介质,用于存储上述方法实施例的程序产品。因此,本发明的各方面、或各个方面的可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模块”或者“***”。此外,本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包含但不限于电子、磁性、光学、电磁、红外或半导体***、设备或者装置,或者前述的任意适当组合,如随机存取存储设备(RAM)、只读存储设备(ROM)、可擦除可编程只读存储设备(EPROM或者快闪存储设备)、光纤、便携式只读存储设备(CD-ROM)。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
Claims (21)
1.一种数据缓存方法,应用于控制器中,所述控制器和存储设备连接,其特征在于,控制器包括一级缓存,所述存储设备包括二级缓与存储器,所述二级缓存用于存储一级缓存发往存储器的数据,所述方法包括:
查询所述二级缓存对读请求的命中率;
判断命中率是否低于扩容阈值,如果低于所述扩容阈值,从所述存储器中获取存储空间给所述二级缓存使用,其中,从所述存储器中获取的存储空间是新增存储空间;
使用所述二级缓存中新增存储空间,缓存所述一级缓发送的存储数据。
2.如权利要求1所述的方法,其特征在于:
所述存储器的存储介质与所述二级缓存的存储介质相同。
3.如权利要求2所述的方法,其特征在于:
所述存储介质是闪存。
4.如权利要求1所述的方法,其特征在于,所述缓存所述一级缓发送的存待储数据之后,进一步包括:
如果控制器收到对所述存储数据的读请求,则从所述新增存储空间中,获得所述存储数据。
5.如权利要求1所述的方法,其特征在于:
所述一级缓存和所述存储器之间存在直连通道,所述直连通道旁路所述二级缓存,当所述二级缓存无法命中时,所述一级缓存通过所述直连通道从所述存储器获得数据。
6.如权利要求1所述的方法,其特征在于:
当所述命中率升高至减容阈值时,把所述新增存储空间返还给所述存储器。
7.一种数据缓存装置,用于对存储设备的存储空间进行管理,存储设备包括二级缓存与存储器,其特征在于,该装置包括:
命中率查询模块,用于查询二级缓存对读请求的命中率,所述二级缓存用于缓存一级缓存发送的数据;
扩容模块,用于判断命中率是否低于扩容阈值,如果低于所述扩容阈值,从所述存储器中获取存储空间给所述二级缓存使用,其中,从所述存储器中获取的存储空间是新增存储空间;
缓存模块,用于使用所述新增存储空间,缓存所述一级缓存发往所述存储器发送的存储数据。
8.如权利要求7所述的装置,其特征在于:
所述存储器的存储介质与所述二级缓存的存储介质相同。
9.如权利要求8所述的装置,其特征在于:
所述存储介质是闪存。
10.如权利要求7所述的装置,其特征在于,所述缓存模块进一步用于:
对所述装置收到对所述存储数据的读请求,从所述新增存储空间中,获得所述存储数据。
11.如权利要求7所述的装置,其特征在于,所述一级缓存和所述存储器之间存在直连通道,所述直连通道旁路所述二级缓存,所述缓存模块用于:
当所述二级缓存无法命中时,通过所述直连通道从所述存储器获得数据到所述一级缓存。
12.如权利要求7所述的装置,其特征在于,所示扩容模块进一步用于:当所述命中率升高至减容阈值时,把所述新增存储空间返还给所述存储器。
13.如权利要求7所述的装置,其特征在于,所述装置进一步包括一级缓存,用于缓存数据。
14.一种存储***,其特征在于:包括权7-13任一项所述的数据缓存装置,以及存储装置,所述存储装置包括二级缓存以及存储器。
15.一种控制器,所述控制器和存储设备连接,所述存储设备包括存储器与二级缓存,其中,所述控制器包括:
一级缓存,用于缓存数据以及用于存储程序指令,和所述二级缓存连接;
处理器,和所述一级缓存连接,通过运行所述程序指令,执行以下步骤:
查询所述二级缓存对读请求的命中率;
判断命中率是否低于扩容阈值,如果低于所述扩容阈值,从所述存储器中获取存储空间给所述二级缓存使用,其中,从所述存储器中获取的存储空间是新增存储空间;
使用所述二级缓存中新增存储空间,缓存所述一级缓发送的存储数据。
16.如权利要求15所述的控制器,所述处理器进一步用于执行:
所述存储器的存储介质与所述二级缓存的存储介质相同。
17.如权利要求16所述的控制器,所述处理器进一步用于执行:
所述存储介质是闪存。
18.如权利要求15所述的控制器,所述处理器进一步用于执行:
在所述缓存所述一级缓发送的存待储数据之后,如果收到对所述存储数据的读请求,则从所述新增存储空间中,获得所述存储数据。
19.如权利要求15所述的控制器,其中,所述一级缓存和所述存储器之间存在直连通道,所述直连通道旁路所述二级缓存,所述处理器进一步用于执行:
当所述二级缓存无法命中时,通过所述直连通道从所述存储器获得数据发送给所述一级缓存。
20.如权利要求15所述的控制器,其中:
当所述命中率升高至减容阈值时,把所述新增存储空间返还给所述存储器。
21.一种存储***,包括控制器和存储设备,所述控制器和所述存储设备连接,所述存储设备包括存储器与二级缓存,其中,所述控制器包括:
一级缓存,用于缓存数据以及用于存储程序指令,和所述二级缓存连接;
处理器,和所述一级缓存连接,通过运行所述程序指令,执行以下步骤:
查询所述二级缓存对读请求的命中率;
判断命中率是否低于扩容阈值,如果低于所述扩容阈值,从所述存储器中获取存储空间给所述二级缓存使用,其中,从所述存储器中获取的存储空间是新增存储空间;
使用所述二级缓存中新增存储空间,缓存所述一级缓发送的存储数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/091194 WO2015100653A1 (zh) | 2013-12-31 | 2013-12-31 | 一种数据缓存方法、装置及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103858112A true CN103858112A (zh) | 2014-06-11 |
Family
ID=50864335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380002567.6A Pending CN103858112A (zh) | 2013-12-31 | 2013-12-31 | 一种数据缓存方法、装置及*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103858112A (zh) |
WO (1) | WO2015100653A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298471A (zh) * | 2014-09-16 | 2015-01-21 | 青岛海信信芯科技有限公司 | 一种高速缓存的数据写入方法及装置 |
CN105138292A (zh) * | 2015-09-07 | 2015-12-09 | 四川神琥科技有限公司 | 磁盘数据读取方法 |
CN105183394A (zh) * | 2015-09-21 | 2015-12-23 | 北京奇虎科技有限公司 | 一种数据存储处理方法和装置 |
CN105630698A (zh) * | 2014-10-28 | 2016-06-01 | 华为技术有限公司 | 配置扩展缓存的方法、装置及扩展缓存 |
WO2016082205A1 (zh) * | 2014-11-28 | 2016-06-02 | 华为技术有限公司 | 一种多级缓存的功耗控制方法、装置及设备 |
CN106354423A (zh) * | 2015-07-13 | 2017-01-25 | 爱思开海力士有限公司 | 存储***和存储***的操作方法 |
CN106789431A (zh) * | 2016-12-26 | 2017-05-31 | ***股份有限公司 | 一种超时监控方法及装置 |
CN108287793A (zh) * | 2018-01-09 | 2018-07-17 | 网宿科技股份有限公司 | 响应消息的缓冲方法及服务器 |
CN109426446A (zh) * | 2017-08-29 | 2019-03-05 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
CN112199383A (zh) * | 2020-10-19 | 2021-01-08 | 珠海金山网络游戏科技有限公司 | 数据更新方法及装置 |
CN112860599A (zh) * | 2019-11-28 | 2021-05-28 | 中国电信股份有限公司 | 数据缓存处理方法、装置以及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852318A (zh) * | 2006-04-19 | 2006-10-25 | 华中科技大学 | 适用于对象网络存储的分布式多级缓存*** |
CN102231137A (zh) * | 2011-05-26 | 2011-11-02 | 浪潮(北京)电子信息产业有限公司 | 一种数据存储***及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7519775B2 (en) * | 2006-02-23 | 2009-04-14 | Sun Microsystems, Inc. | Enforcing memory-reference ordering requirements at the L2 cache level |
US20080028150A1 (en) * | 2006-07-28 | 2008-01-31 | Farnaz Toussi | Autonomic Mode Switching for L2 Cache Speculative Accesses Based on L1 Cache Hit Rate |
CN101196852B (zh) * | 2008-01-03 | 2010-06-16 | 杭州华三通信技术有限公司 | 分布式缓存方法及其***、以及缓存设备和非缓存设备 |
CN101493795A (zh) * | 2008-01-24 | 2009-07-29 | 杭州华三通信技术有限公司 | 存储***和存储控制器以及存储***中的缓存实现方法 |
CN101510176B (zh) * | 2009-03-26 | 2012-05-30 | 浙江大学 | 通用操作***对cpu二级缓存访问的控制方法 |
CN103383666B (zh) * | 2013-07-16 | 2016-12-28 | 中国科学院计算技术研究所 | 改善缓存预取数据局部性的方法和***及缓存访问方法 |
-
2013
- 2013-12-31 WO PCT/CN2013/091194 patent/WO2015100653A1/zh active Application Filing
- 2013-12-31 CN CN201380002567.6A patent/CN103858112A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852318A (zh) * | 2006-04-19 | 2006-10-25 | 华中科技大学 | 适用于对象网络存储的分布式多级缓存*** |
CN102231137A (zh) * | 2011-05-26 | 2011-11-02 | 浪潮(北京)电子信息产业有限公司 | 一种数据存储***及方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298471A (zh) * | 2014-09-16 | 2015-01-21 | 青岛海信信芯科技有限公司 | 一种高速缓存的数据写入方法及装置 |
CN105630698A (zh) * | 2014-10-28 | 2016-06-01 | 华为技术有限公司 | 配置扩展缓存的方法、装置及扩展缓存 |
WO2016082205A1 (zh) * | 2014-11-28 | 2016-06-02 | 华为技术有限公司 | 一种多级缓存的功耗控制方法、装置及设备 |
CN106354423A (zh) * | 2015-07-13 | 2017-01-25 | 爱思开海力士有限公司 | 存储***和存储***的操作方法 |
CN105138292A (zh) * | 2015-09-07 | 2015-12-09 | 四川神琥科技有限公司 | 磁盘数据读取方法 |
CN105183394A (zh) * | 2015-09-21 | 2015-12-23 | 北京奇虎科技有限公司 | 一种数据存储处理方法和装置 |
CN106789431A (zh) * | 2016-12-26 | 2017-05-31 | ***股份有限公司 | 一种超时监控方法及装置 |
US11611634B2 (en) | 2016-12-26 | 2023-03-21 | China Unionpay Co., Ltd. | Method and device for timeout monitoring |
CN109426446A (zh) * | 2017-08-29 | 2019-03-05 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
CN108287793A (zh) * | 2018-01-09 | 2018-07-17 | 网宿科技股份有限公司 | 响应消息的缓冲方法及服务器 |
CN112860599A (zh) * | 2019-11-28 | 2021-05-28 | 中国电信股份有限公司 | 数据缓存处理方法、装置以及存储介质 |
CN112860599B (zh) * | 2019-11-28 | 2024-02-02 | 中国电信股份有限公司 | 数据缓存处理方法、装置以及存储介质 |
CN112199383A (zh) * | 2020-10-19 | 2021-01-08 | 珠海金山网络游戏科技有限公司 | 数据更新方法及装置 |
CN112199383B (zh) * | 2020-10-19 | 2024-07-16 | 珠海金山数字网络科技有限公司 | 数据更新方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2015100653A1 (zh) | 2015-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103858112A (zh) | 一种数据缓存方法、装置及*** | |
US20190347032A1 (en) | Dynamic data relocation using cloud based ranks | |
CN110688062B (zh) | 一种缓存空间的管理方法及装置 | |
CN107885456A (zh) | 减少io命令访问nvm的冲突 | |
US20190004968A1 (en) | Cache management method, storage system and computer program product | |
CN101644996A (zh) | 索引数据的存储方法和存储控制装置 | |
US11726906B2 (en) | Memory device and non-transitory computer readable recording medium | |
CN101493795A (zh) | 存储***和存储控制器以及存储***中的缓存实现方法 | |
TWI584120B (zh) | 用於動態調適快取的方法及系統 | |
CN102063386B (zh) | 一种单载体多目标的缓存***的缓存管理方法 | |
US20230342294A1 (en) | Memory device and non-transitory computer readable recording medium | |
CN104391653A (zh) | 一种基于数据块的高速缓存设计方法 | |
CN102263818A (zh) | 一种文件数据存放和读取的方法和装置 | |
CN103412727B (zh) | 优化固态硬盘的删减命令的方法及其固态硬盘 | |
US9798661B2 (en) | Storage system and cache control method | |
CN115080459A (zh) | 缓存管理方法及装置、计算机可读存储介质 | |
CN105204787A (zh) | 一种pcie ssd阵列的数据读方法、***及读写方法 | |
CN104252423A (zh) | 基于多内核处理器的一致性处理方法和装置 | |
CN107885667A (zh) | 降低读命令处理延迟的方法与装置 | |
CN107688435B (zh) | Io流调节方法与装置 | |
US10860498B2 (en) | Data processing system | |
US20170318114A1 (en) | Methods for managing multi-level flash storage and devices thereof | |
CN100405777C (zh) | 以太网存储区域网络中基于目标器内存设备的缓存方法 | |
CN104123243A (zh) | 数据缓存***及方法 | |
CN105204786A (zh) | 一种pcie ssd阵列的数据写方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140611 |