CN104866433A - 基于历史信息的多级缓存方法 - Google Patents
基于历史信息的多级缓存方法 Download PDFInfo
- Publication number
- CN104866433A CN104866433A CN201510291853.XA CN201510291853A CN104866433A CN 104866433 A CN104866433 A CN 104866433A CN 201510291853 A CN201510291853 A CN 201510291853A CN 104866433 A CN104866433 A CN 104866433A
- Authority
- CN
- China
- Prior art keywords
- data block
- buffer memory
- level
- memory rank
- prompt value
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于历史信息的多级缓存方法,使用历史提示信息来处理数据块,有效地对数据块进行升级和降级处理,有效提升分布式系统的I/O性能。另外,本发明根据数据块最近的k步升级或降级操作,把数据块从低级缓存升级到高级缓存,或从高级缓存降级到低级缓存,与现有的缓存算相比,在不同I/O负载下,本发明达到了更好的性能。
Description
技术领域
本发明涉及一种基于历史信息的多级缓存方法。
背景技术
随着互联网服务的飞速发展,许多数据中心已经建立起大型的分布式存储系统,这些系统运用了多级分层存储系统来满足I/O不断增长的高性能要求。在一个典型的分层结构中,高存储级的存储结构作为低存储级的缓存,从而形成了分布式多级缓存系统。这样的多级缓存能处理可能会根据工作负载的访问模式在不同的存储级别间移动的数据。为了识别和处理这些数据,提示是有效提高存储系统性能的方法。
在早期关于协同缓存的研究中,提示(hint)被用作对存储系统进行全局性的近似评估。随着多级缓存的技术发展,特别是专用缓存方案的进展,提示不仅能展示全局性管理数据块的状态,还能展示存储系统中一个具体数据块的动态信息。根据在多级系统中承担的不同功能,提示可以被分为三类
●降级提示:从高级存储降级的数据带有的标识。每一个典型的降级提示只花费几比特的空间。
●升级提示:从低级存储升级的数据带有的标识。
●应用提示:显示数据从属不同的应用的标识。一些应用提示是静态的,然而更高级的动态应用提示,是基于不同的访问模式或I/O应用完善定义的。
要在多级缓存中高效利用提示,一个很具挑战性的问题就是如何确定数据的使用频率,然后将高频数据升级到高存储级别,将低频数据降级到低存储级别。现有的提示所提供的信息不足以有效预测数据使用频率。降级提示携带来自高级存储级别的历史提示信息,而升级提示携带来自低级存储级别。两类提示缓存记录最近的提示操作,而应用提示一般是基于应用的,难以总结一般规律。普遍来说,这些提示只是记录一个块最近的提示信息,会遗失部分反映块在存储级别间移动的重要提示信息。这部分信息实际上和数据使用频率有相关性。
另一个有挑战性的问题是如何对升级提示和降级提示进行统一的管理。在以往的研究中,升级和降级提示被分别地管理,然而单凭其中一种提示未必能准确找出活跃的块。
发明内容
本发明的目的在于提供一种基于历史信息的多级缓存方法,能够有效地对数据块进行升级和降级处理,有效提升分布式系统的I/O性能。
为解决上述问题,本发明提供一种基于历史信息的多级缓存方法,包括:
根据数据块的缓存级别的升级或降级的历史信息判断是否启动缓存级别的升级或降级策略;
若判断为启动缓存级别的升级或降级策略时,对数据块执行缓存级别的升级或降级策略。
进一步的,在上述方法中,数据块的缓存级别的升级或降级的历史信息为一k步提示值,k为一预设的正整数,k步提示值为一个长度为k的01串,第i位表示数据块最近第i次的缓存级别的升级或降级情况,当为缓存级别的升级时k步提示值的k位置1,当为缓存级别的升级时k步提示值的k位置0。
进一步的,在上述方法中,所述数据块的k步提示值的第k位的值根据该数据块的最近一次的降级提示或升级提示确定,其中,降级提示表示从相邻的较高级Li-1到降级到目前的缓存级别Li,升级提示表示从相邻的较低级Li+1升级到目前的缓存级别Li。
进一步的,在上述方法中,根据数据块的缓存级别的升级或降级的历史信息判断是否启动缓存级别的升级或降级策略中,
当数据块的k步提示值过小时,判断为启动缓存级别的升级策略;
当数据块的k步提示值过在时,判断为启动缓存级别的降级策略。
进一步的,在上述方法中,数据块的k步提示值的初始值根据如下方式确定:
当数据块在存储设备中,则将该数据块的k步提示值的每一位都设置为0;
当数据块在某一缓存级别中,则所有次的降级提示或升级提示计算出该数据块的k步提示值,其中,若某次无降级提示或升级提示,则该k步提示值的对应位设置为0。
进一步的,在上述方法中,对数据块执行缓存级别的降级策略包括:
获取某一个缓存级别Li中最小的k步提示值记作
在缓存级别Li中找到k步提示值为的数据块ε;
从数据块ε中选择最接近LRU列表底部的数据块ε′,并将其降级到缓存级别Li+1的LRU列表的顶部,并更新数据块ε′的k步提示值。
进一步的,在上述方法中,对数据块执行缓存级别的升级策略包括:
对数据块σ的读请求,如果在缓存级别L1至Li-1中均没有找到数据块σ,直到在缓存级别Li中找到数据块σ,则计算出缓存级别Li-1中最小的k步提示值记作并将对数据块σ的读请求和发送到较低的缓存级别Li;
根据计算出缓存级别Li中对数据块σ执行缓存级别的升级策略的条件是否满足,若满足,则将数据块σ从缓存级别Li升级到Li-1并更新数据块σ的k步提示值,而且读请求也完成。
进一步的,在上述方法中,将数据块σ从缓存级别Li升级到Li-1的步骤中,
如果缓存级别Li-1已满,缓存级别Li-1中的另一个数据块会被执行缓存级别的降级策略而降级至缓存级别Li,为数据块σ腾出空间。
进一步的,在上述方法中,对数据块σ执行缓存级别的升级策略的条件为满足下式:
其中,表示缓存级别Li中的数据块σ的k步提示值。
进一步的,在上述方法中,更新数据块的k步提示值包括:
将该数据块更新前的k步提示值右移一位,即空出k步提示值的第k位;
根据该数据块最近一次的降级提示或升级提示确定并补上该数据块的k步提示值的第k位的值。
与现有技术相比,本发明使用历史提示信息来处理数据块,有效地对数据块进行升级和降级处理,有效提升分布式系统的I/O性能。另外,本发明根据数据块最近的k步升级或降级操作,把数据块从低级缓存升级到高级缓存,或从高级缓存降级到低级缓存,与现有的缓存算相比,在不同I/O负载下,本发明达到了更好的性能。
附图说明
图1是本发明一实施例的基于历史信息的多级缓存方法的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,本发明提供一种基于历史信息的多级缓存方法,包括:
步骤S1,根据数据块的缓存级别的升级或降级的历史信息判断是否启动缓存级别的升级或降级策略;
步骤S2,若判断为启动缓存级别的升级或降级策略时,对数据块执行缓存级别的升级或降级策略。本发明能根据缓存级别的升级或降级的历史信息,做出是否对数据块升级或者降级的决定。我们把现在通行的两种提示——升级提示和降级提示结合起来以实现专用性。尽管应用提示有一定用处,但它们被限制于特定的应用访问模式。在本发明中,我们集中讨论的是更一般化的升级和降级提示,以携带来自高缓存级和低缓存级数据块的附加信息。
本发明的基于历史信息的多级缓存方法的一优选的实施例中,步骤S1中的数据块的缓存级别的升级或降级的历史信息为一k步提示值,k为一预设的正整数,k步提示值为一个长度为k的01串,亦可看作一个长度为k的二进制数值,第i位表示数据块最近第i次的缓存级别的升级或降级情况,当为缓存级别的升级时k步提示值的k位置1,当为缓存级别的升级时k步提示值的k位置0。具体的,在目前的设计中,每一个数据块在一次执行中可以升或降一级。因此初始时活跃的数据块会从最低缓存级别(Ln)逐步升到最高级别(L1)。为了记录活跃数据块在不同缓存级别间的移动,k步提示值(KHV)用来标识一个数据块的缓存级别升级或降级情况,k步提示值为一个长度为k的01串,亦可看作一个长度为k的二进制数值,第i位表示数据块最近第i次的缓存级别升级或降级情况。
本发明的基于历史信息的多级缓存方法的一优选的实施例中,所述数据块的k步提示值的第k位的值根据该数据块的最近一次的降级提示或升级提示确定,其中,降级提示表示从相邻的较高级Li-1到降级到目前的缓存级别Li,升级提示表示从相邻的较低级Li+1升级到目前的缓存级别Li。具体的,缓存模型包含了n级L1,L2……Ln。L1为最高的缓存级别,Ln为最低的缓存级别,对于任意的缓存级别Li,降级提示记做Di表示从相邻的较高级Li-1到目前的缓存级别Li,而Pi代表从相邻的较低级Li+1到目前的缓存级别Li的升级提示。更活跃的数据块会被放置在更高的缓存级别Li中。如果将本发明跟LRU-k算法做比较,LRU-k记录在单级缓存中块最近k次被引用的时间,而本发明的算法记录多级缓存中块最近k次移动,即升级或降级。
本发明的基于历史信息的多级缓存方法的一优选的实施例中,步骤S1,根据数据块的缓存级别的升级或降级的历史信息判断是否启动缓存级别的升级或降级策略中,
当数据块的k步提示值过小时,判断为启动缓存级别的升级策略;
当数据块的k步提示值过在时,判断为启动缓存级别的降级策略。具体的,根据任意缓存级别KHV的平均水平,在一个数据块的KHV过大或者过小时,升级或者降级策略会被启动。一旦启动,根据对应的升级/降级策略,较活跃的数据块会升级,较不活跃的数据块会降级。
本发明的基于历史信息的多级缓存方法的一优选的实施例中,数据块的k步提示值的初始值根据如下方式确定:
当数据块在存储设备中,则将该数据块的k步提示值的每一位都设置为0;
当数据块在某一缓存级别中,则所有次的降级提示或升级提示计算出该数据块的k步提示值,其中,若某次无降级提示或升级提示,则该k步提示值的对应位设置为0。
本发明的基于历史信息的多级缓存方法的一优选的实施例中,步骤S2中,对数据块执行缓存级别的降级策略包括:
获取某一个缓存级别Li中最小的k步提示值记作
在缓存级别Li中找到k步提示值为的数据块ε,满足其中,表示数据块ε的k步提示值;
从数据块ε中选择最接近LRU(Least Recently Used,近期最少使用算法)列表底部的数据块ε′,并将其降级到缓存级别Li+1的LRU列表的顶部,并更新数据块ε′的k步提示值。
本发明的基于历史信息的多级缓存方法的一优选的实施例中,步骤S2中,对数据块执行缓存级别的升级策略包括:
对数据块σ的读请求,如果在缓存级别L1至Li-1中均没有找到数据块σ,直到在缓存级别Li中找到数据块σ,则计算出缓存级别Li-1中最小的k步提示值记作并将对数据块σ的读请求和发送到较低的缓存级别Li;
根据计算出缓存级别Li中对数据块σ执行缓存级别的升级策略的条件是否满足,若满足,则将数据块σ从缓存级别Li升级到Li-1并更新数据块σ的k步提示值,而且读请求也完成。
本发明的基于历史信息的多级缓存方法的一优选的实施例中,将数据块σ从缓存级别Li升级到Li-1的步骤中,
如果缓存级别Li-1已满,缓存级别Li-1中的另一个数据块会被执行缓存级别的降级策略而降级至缓存级别Li,为数据块σ腾出空间。即这个被降级的数据块会被前述实施例的缓存级别的降级策略处理。
本发明的基于历史信息的多级缓存方法的一优选的实施例中,对数据块σ执行缓存级别的升级策略的条件为满足下式:
其中,表示缓存级别Li中的数据块σ的k步提示值。具体的,如果缓存级别Li中存在一个数据块σ,它比Li-1中一个数据块要活跃,那么它应当被升级。举例而言,Li中带有k步提示值的数据块最有可能比Li-1中带有k步提示值的数据块更活跃。在缓存级别Li中,数据块σ能被升级的一个严格要求是:
本发明的基于历史信息的多级缓存方法的一优选的实施例中,更新数据块的k步提示值包括:
将该数据块更新前的k步提示值右移一位,即空出k步提示值的第k位,使原始的KHV会变成(k-1)步提示值;
根据该数据块最近一次的降级提示或升级提示确定并补上该数据块的k步提示值的第k位的值。
综上所述,本发明使用历史提示信息来处理数据块,有效地对数据块进行升级和降级处理,有效提升分布式系统的I/O性能。另外,本发明根据数据块最近的k步升级或降级操作,把数据块从低级缓存升级到高级缓存,或从高级缓存降级到低级缓存,与现有的缓存算相比,在不同I/O负载下,本发明达到了更好的性能。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (10)
1.一种基于历史信息的多级缓存方法,其特征在于,包括:
根据数据块的缓存级别的升级或降级的历史信息判断是否启动缓存级别的升级或降级策略;
若判断为启动缓存级别的升级或降级策略时,对数据块执行缓存级别的升级或降级策略。
2.如权利要求1所述的基于历史信息的多级缓存方法,其特征在于,数据块的缓存级别的升级或降级的历史信息为一k步提示值,k为一预设的正整数,k步提示值为一个长度为k的01串,第i位表示数据块最近第i次的缓存级别的升级或降级情况,当为缓存级别的升级时k步提示值的k位置1,当为缓存级别的升级时k步提示值的k位置0。
3.如权利要求2所述的基于历史信息的多级缓存方法,其特征在于,所述数据块的k步提示值的第k位的值根据该数据块的最近一次的降级提示或升级提示确定,其中,降级提示表示从相邻的较高级Li-1到降级到目前的缓存级别Li,升级提示表示从相邻的较低级Li+1升级到目前的缓存级别Li。
4.如权利要求3所述的基于历史信息的多级缓存方法,其特征在于,根据数据块的缓存级别的升级或降级的历史信息判断是否启动缓存级别的升级或降级策略中,
当数据块的k步提示值过小时,判断为启动缓存级别的升级策略;
当数据块的k步提示值过在时,判断为启动缓存级别的降级策略。
5.如权利要求4所述的基于历史信息的多级缓存方法,其特征在于,数据块的k步提示值的初始值根据如下方式确定:
当数据块在存储设备中,则将该数据块的k步提示值的每一位都设置为0;
当数据块在某一缓存级别中,则所有次的降级提示或升级提示计算出该数据块的k步提示值,其中,若某次无降级提示或升级提示,则该k步提示值的对应位设置为0。
6.如权利要求5所述的基于历史信息的多级缓存方法,其特征在于,对数据块执行缓存级别的降级策略包括:
获取某一个缓存级别Li中最小的k步提示值记作
在缓存级别Li中找到k步提示值为的数据块ε;
从数据块ε中选择最接近LRU列表底部的数据块ε′,并将其降级到缓存级别Li+1的LRU列表的顶部,并更新数据块ε′的k步提示值。
7.如权利要求6所述的基于历史信息的多级缓存方法,其特征在于,对数据块执行缓存级别的升级策略包括:
对数据块σ的读请求,如果在缓存级别L1至Li-1中均没有找到数据块σ,直到在缓存级别Li中找到数据块σ,则计算出缓存级别Li-1中最小的k步提示值记作并将对数据块σ的读请求和发送到较低的缓存级别Li;
根据计算出缓存级别Li中对数据块σ执行缓存级别的升级策略的条件是否满足,若满足,则将数据块σ从缓存级别Li升级到Li-1并更新数据块σ的k步提示值,而且读请求也完成。
8.如权利要求7所述的基于历史信息的多级缓存方法,其特征在于,将数据块σ从缓存级别Li升级到Li-1的步骤中,
如果缓存级别Li-1已满,缓存级别Li-1中的另一个数据块会被执行缓存级别的降级策略而降级至缓存级别Li,为数据块σ腾出空间。
9.如权利要求7所述的基于历史信息的多级缓存方法,其特征在于,对数据块σ执行缓存级别的升级策略的条件为满足下式:
其中,表示缓存级别Li中的数据块σ的k步提示值。
10.如权利要求6或7所述的基于历史信息的多级缓存方法,其特征在于,更新数据块的k步提示值包括:
将该数据块更新前的k步提示值右移一位,即空出k步提示值的第k位;
根据该数据块最近一次的降级提示或升级提示确定并补上该数据块的k步提示值的第k位的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510291853.XA CN104866433A (zh) | 2015-05-31 | 2015-05-31 | 基于历史信息的多级缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510291853.XA CN104866433A (zh) | 2015-05-31 | 2015-05-31 | 基于历史信息的多级缓存方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104866433A true CN104866433A (zh) | 2015-08-26 |
Family
ID=53912277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510291853.XA Pending CN104866433A (zh) | 2015-05-31 | 2015-05-31 | 基于历史信息的多级缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104866433A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834609A (zh) * | 2015-05-31 | 2015-08-12 | 上海交通大学 | 基于历史升降级频率的多级缓存方法 |
CN106294032A (zh) * | 2016-08-05 | 2017-01-04 | 上海交通大学 | 一种磁盘阵列单盘恢复的缓存方法及系统 |
CN106909518A (zh) * | 2017-01-24 | 2017-06-30 | 朗坤智慧科技股份有限公司 | 一种实时数据缓存机制 |
CN110704456A (zh) * | 2018-06-22 | 2020-01-17 | 中兴通讯股份有限公司 | 一种业务规则的更新方法及设备、计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314397A (zh) * | 2011-09-23 | 2012-01-11 | 浙江大学 | 缓存数据块的处理方法 |
CN104090852A (zh) * | 2014-07-03 | 2014-10-08 | 华为技术有限公司 | 管理混合缓存的方法及设备 |
-
2015
- 2015-05-31 CN CN201510291853.XA patent/CN104866433A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314397A (zh) * | 2011-09-23 | 2012-01-11 | 浙江大学 | 缓存数据块的处理方法 |
CN104090852A (zh) * | 2014-07-03 | 2014-10-08 | 华为技术有限公司 | 管理混合缓存的方法及设备 |
Non-Patent Citations (1)
Title |
---|
CHENTAO WU, XUBIN HE, QIANG CAO AND CHANGSHENG XIE: "Hint-K: An Efficient Multi-level Cache Using K-step Hints", 《INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834609A (zh) * | 2015-05-31 | 2015-08-12 | 上海交通大学 | 基于历史升降级频率的多级缓存方法 |
CN104834609B (zh) * | 2015-05-31 | 2017-12-22 | 上海交通大学 | 基于历史升降级频率的多级缓存方法 |
CN106294032A (zh) * | 2016-08-05 | 2017-01-04 | 上海交通大学 | 一种磁盘阵列单盘恢复的缓存方法及系统 |
CN106294032B (zh) * | 2016-08-05 | 2019-06-28 | 上海交通大学 | 一种磁盘阵列单盘恢复的缓存方法及系统 |
CN106909518A (zh) * | 2017-01-24 | 2017-06-30 | 朗坤智慧科技股份有限公司 | 一种实时数据缓存机制 |
CN110704456A (zh) * | 2018-06-22 | 2020-01-17 | 中兴通讯股份有限公司 | 一种业务规则的更新方法及设备、计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104866433A (zh) | 基于历史信息的多级缓存方法 | |
KR102210355B1 (ko) | 적응적 전력 제어 루프 | |
US8402223B2 (en) | Cache eviction using memory entry value | |
CN104834609B (zh) | 基于历史升降级频率的多级缓存方法 | |
KR101701068B1 (ko) | 비휘발성 메모리에 코드를 캐싱하는 방법들, 시스템들 및 장치 | |
KR102093244B1 (ko) | 잔상 제거 대상 위치 설정 방법, 유기 발광 표시 장치 및 이의 구동 방법 | |
CN103403674A (zh) | 执行基于策略的改变过程 | |
US20070255759A1 (en) | Method and Data Processing System for Managing Storage Systems | |
US10289567B2 (en) | Systems and method for delayed cache utilization | |
CN105531768A (zh) | 闪存中功率消耗的减小 | |
US20140100838A1 (en) | System, method and apparatus for handling power limit restrictions in flash memory devices | |
US9400746B2 (en) | Data storage device and flash memory control method | |
CN104331444A (zh) | 一种保护数据库的方法和装置 | |
WO2012096846A2 (en) | Method and system for cache endurance management | |
CN103999062A (zh) | 经分段的高速缓存 | |
KR20200080142A (ko) | 배타적 마지막 레벨 캐시를 위한 바이패스 예측기 | |
CN104572026B (zh) | 用于进行预取的数据处理方法和装置 | |
CN104750538A (zh) | 用于为目标应用提供虚拟存储池的方法和系统 | |
CN104166631A (zh) | LLC中Cache行的替换方法 | |
US9785374B2 (en) | Storage device management in computing systems | |
US9892054B2 (en) | Method and apparatus for monitoring system performance and dynamically updating memory sub-system settings using software to optimize performance and power consumption | |
CN104021226A (zh) | 预取规则的更新方法及装置 | |
US10114438B2 (en) | Dynamic power budgeting in a chassis | |
CN104516929A (zh) | 用于文件系统的方法和装置 | |
CN109948238A (zh) | 一种装配式设计文件的管理方法、装置、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150826 |