CN110309180B - 一种基于数据资源转化效率模型的缓存方法 - Google Patents
一种基于数据资源转化效率模型的缓存方法 Download PDFInfo
- Publication number
- CN110309180B CN110309180B CN201910502646.2A CN201910502646A CN110309180B CN 110309180 B CN110309180 B CN 110309180B CN 201910502646 A CN201910502646 A CN 201910502646A CN 110309180 B CN110309180 B CN 110309180B
- Authority
- CN
- China
- Prior art keywords
- data
- block
- reuse distance
- stack
- area
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于数据资源转化效率模型的缓存方法,针对计算机存储领域的缓存策略问题。数据缓存的本质可以视作为动态I/O数据流的热数据识别问题,传统缓存策略方案大多仅考虑数据流中所反映的新进度和频率指标来确定热数据,然而热数据的判断不能仅仅只依靠这些指标,因为随着对负载认识的加深,一定会有例如重用距离特征等其它更精确和适合指标出现,同时负载是变化的,而新进度和频率指标反映的更多的一种宏观的规律,在具体的数据流时间段中,这种判断方法不一定正确。因此针对这一问题,本方法从数据的资源转效率的角度来定义和解决热数据识别的问题,并提出一种基于数据资源转化效率模型的缓存方法,以提升现有算法的性能。
Description
技术领域
本发明涉及存储系统技术领域,具体涉及一种基于数据资源转化效率模型的缓存方法。
背景技术
随着数据总量的不断增长以及新型存储材质的研发,计算机的存储材质和存储架构也在不断地发生着变化。例如基于闪存的固态硬盘,在现在的计算机存储架构中非常常见的作为替代HDD普通硬盘的存储介质或者计算机内存和磁盘设备的缓存介质,又例如新型非易失存储材质如3D Xpoint,NVDIMM,STT-MRAM的出现,在现在的计算机存储架构中已经设计成为替代内存DRAM存储介质或者与内存DRAM相结合来提高内存性能的选择。
在现有的计算机系统架构中,将不同热度的数据放在不同类型的存储介质中,一直是计算机存储系统中一种经济且高效的存储方式。然而现在的缓存方法的设计大多是基于局部性和数据的访问频率来进行设计,而这在目前的大规模动态I/O数据流背景或环境下,对热点数据的识别能力和不同类型热数据的分类力度是不够的,因为新进度和频率指标反映的是一种宏观统计的规律,但是在具体的I/O数据流时间段中则不一定正确或适用,也因此无法更精确地识别和处理热点数据。
通过研究目前缓存和闪存的数据缓存算法,发现这些算法首先数据的设计指标主要还是新进度和数据访问频率,对其它更细粒度的数据特征指标如重用距离特征指标的考虑还比较少,另外这些算法的主要缺点仍然是因为无法精细化地识别和处理热点数据,而导致缓存污染问题的存在,当然还存在算法不具备有动态性和无法捕捉大于缓存的热数据等问题。
因此如何在目前大规模的I/O数据流环境中,在保证尽量小的系统内存开销和计算开销的前提下,快速及时高效地识别出这其中的热点数据是目前研究中的一个非常重要的问题。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种基于数据资源转化效率模型的缓存方法。
本发明的目的可以通过采取如下技术方案达到:
一种基于数据资源转化效率模型的缓存方法,该缓存方法将缓存区域划分为新数据区域N、短重用距离热数据区域S、长重用距离热数据区域L和数据临时放置区域T,缓存区域中数据块类型分为贮存数据块R和元数据历史块H,其中,所述的贮存数据块R用于真实数据块信息,所述的元数据历史块H用于存储记载真实数据块的地址的元数据信息;同时,所述的短重用距离热数据区域S中贮存数据块按照数据的重用距离特征分为短重用距离贮存数据块SR和长重用距离贮存数据块LR;所述的新数据区域N存储的数据块类型仅有贮存数据块R,其存储的是新访问的数据块;所述的短重用距离热数据区域S存储的数据块类型有短重用距离贮存数据块SR、长重用距离贮存数据块LR和元数据块历史块H;所述的长重用距离热数据区域L存储的数据块类型有贮存数据块R和元数据历史块H;数据临时放置区域T存储的数据块类型仅有贮存数据块R;
该缓存方法针对负载数据流中不同类型数据进行缓存分配的步骤如下:
S1、当缓存满时,对于负载数据流中的每一个读请求或者写请求,有且仅有以下五种情况发生:A.新数据区域N中数据栈命中;B.短重用距离热数据区域S中数据栈命中;C.长重用距离热数据区域L中数据栈命中;D.数据临时放置区域T中数据栈命中;E.缓存未命中,针对以上情况,当满足A时,则执行步骤S2;当满足B时,则执行步骤S3;当满足C时,则执行步骤S4;当满足D时,则执行步骤S5;当满足E时,则执行步骤S6;
S2、当发生新数据区域N中数据栈命中时,首先检查短重用距离热数据区域S中数据栈是否存储有该命中数据对应的元数据块历史块H,如果有,则删除这个元数据历史块;其次检查短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,Smax为短重用距离热数据区域S的最大区域数据数量,如果短重用距离热数据区域S中数据栈的数据个数等于参数Smax,则对短重用距离热数据区域S中数据栈的尾部数据做不申请贮存数据空间的迁移处理操作;最后将该命中数据从新数据区域N中数据栈迁移至短重用距离热数据区域S中数据栈的首部;
S3、当发生短重用距离热数据区域S中数据栈命中时,针对该命中数据块的类型做不同的处理,如果是元数据历史块H,则先删除该元数据历史块,然后做申请贮存数据空间操作,最后将该数据以短重用距离贮存数据块SR的形式存储在短重用距离热数据区域S中数据栈的首部;如果是短重用距离贮存数据块SR,则将该命中数据块迁移至短重用距离热数据区域S中数据栈的首部;如果是长重用距离贮存数据块LR,则也只将该命中数据块迁移至短重用距离热数据区域S中数据栈的首部;
S4、当发生长重用距离热数据区域L中数据栈命中时,针对该命中数据块的类型做不同的处理,如果是元数据历史块H,首先检查栈短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,若短重用距离热数据区域S中数据栈的数据个数小于参数Smax,则做申请贮存数据空间操作,否则若短重用距离热数据区域S中数据栈的数据个数等于参数Smax,则对短重用距离热数据区域S中数据栈的尾部数据做申请贮存数据空间的迁移处理操作,最后将该命中数据以长重用距离贮存数据块LR的形式存储至短重用距离热数据区域S中数据栈的首部;如果是贮存数据块R,首先检查短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,若短重用距离热数据区域S中数据栈的数据个数小于参数Smax,则将该命中数据以迁移至短重用距离热数据区域S中数据栈的首部,同时如果该命中数据之前是处在长重用距离热数据区域L中数据栈的尾部,做数据栈剪枝操作,若短重用距离热数据区域S中数据栈的数据个数等于参数Smax,首先对短重用距离热数据区域S中数据栈的尾部数据做不申请贮存数据空间的迁移处理操作,再将该命中数据以长重用距离贮存数据块LR的形式存储至短重用距离热数据区域S中数据栈的首部,同时如果该命中数据之前是处在长重用距离热数据区域L中数据栈的尾部,做数据栈剪枝操作;
S5、当发生数据临时放置区域T中数据栈命中时,首先检查短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,如果短重用距离热数据区域S中数据栈的数据个数等于参数Smax,则对短重用距离热数据区域S中数据栈的尾部数据做不申请贮存数据空间的迁移处理操作;最后将该命中数据从数据临时放置区域T中数据栈迁移至短重用距离热数据区域S中数据栈的首部;
S6、当缓存发生未命中时,首先检查短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,若短重用距离热数据区域S中数据栈的数据个数小于参数Smax,则做申请贮存数据空间操作,否则若短重用距离热数据区域S中数据栈的数据个数等于参数Smax,则对短重用距离热数据区域S中数据栈的尾部数据做申请贮存数据空间的迁移处理操作;最后将该新数据插入到新数据区域N中数据栈的首部,同时将该新数据的对应的元数据历史块H插入到新数据区域N中数据栈的首部。
进一步地,对短重用距离热数据区域S中数据栈的尾部数据进行迁移处理操作分为需要申请贮存数据空间和不需要申请贮存数据空间两种,其中,
(1)对于不需要申请贮存数据空间的情形:先驱逐短重用距离热数据区域S中数据栈尾部的数据块,然后针对该驱逐数据块的数据类型做出不同的如下处理:如果该驱逐数据块的数据类型为元数据历史块H,将该驱逐数据块同样以元数据历史块的形式插入到长重用距离热数据区域L中数据栈的首部;如果该驱逐数据块为短重用距离贮存数据块SR,则将该驱逐数据块以贮存数据块的形式插入到数据临时放置区域T中数据栈的首部,同时将该驱逐数据块以元数据历史块的形式插入到长重用距离热数据区域L中数据栈的首部;如果该驱逐数据块为长重用距离贮存数据块LR,将该驱逐数据块同样以贮存数据块的形式插入到长重用距离热数据区域L中数据栈的首部;
(2)对于需要申请贮存数据空间的情形:先驱逐短重用距离热数据区域S中数据栈尾部的数据块,然后针对该驱逐数据块的数据类型做出不同的如下处理:如果该驱逐数据块为元数据历史块H,将该驱逐数据块同样以元数据历史块的形式插入到长重用距离热数据区域L中数据栈的首部,同时做申请贮存数据空间操作;如果该驱逐数据块为短重用距离贮存数据块SR,将该驱逐数据块以元数据历史块的形式插入到长重用距离热数据区域L中数据栈的首部;如果该驱逐数据块为长重用距离贮存数据块LR,同样将该驱逐数据块以贮存数据块的形式插入到长重用距离热数据区域L中数据栈的首部,同时做申请贮存数据空间操作。
进一步地,对长重用距离热数据区域L中数据栈的尾部数据进行迁移处理操作时的申请贮存数据空间操作的具体实施如下:
如果数据临时放置区域T中数据栈不为空,则删除数据临时放置区域T中数据栈尾部的一个数据块;否则如果新数据区域N中数据栈的数据块个数大于参数Nmin,Nmin为新数据区域N可以被淘汰数据的最少区域数据数量,则删除新数据区域N中数据栈尾部的一个数据块;否则删除数据临时放置区域T中数据栈尾部的一个数据块,同时进行数据栈剪枝操作。
进一步地,进行申请贮存数据空间操作时的数据栈剪枝操作的具体实施如下:
删除长重用距离热数据区域L中数据栈的倒数第一个贮存数据块与倒数第二个贮存数据块之间的所有元数据历史块。
进一步地,所述的参数Smax设置为缓存数量大小的[40%,60%]。
进一步地,所述的参数Nmin设置为缓存数量大小的[1%,20%]。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明公开的缓存方法相比缓存中的LRU、2Q、LIRS、ARC等算法具有比较好的性能提升,与闪存中的TLL和MFH算法相比也具有比较良好的优势。
(2)本发明公开的缓存方法可有效解决短重用距离热数据引起的缓存污染问题,同时通过利用数据的重用距离特征,可以有效解决好不同类型数据块的缓存贮存时间分配问题。
(3)本发明公开的缓存方法是基于数据资源转化效率模型提出的缓存方法,因此算法在频率等指标测量上的额外开销是很小的,同时对于算法可能产生的元数据开销,本方法建议可以通过限制元数据的数量来达到减少此开销的目的,并且对算法性能的影响不会很大。
附图说明
图1是本发明公开的一种基于数据资源转化效率模型的缓存方法的算法结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
本实施例公开了一种基于数据资源转化效率模型的缓存方法,应用在I/O数据流的数据缓存场景中,由于传统的方法对于动态I/O数据流中的热数据的识别方法主要依据于局部性原理和数据的访问频率这些宏观的指标,而负载是实时变化的,在具体的I/O流时间短中可能不一定适合,因此在这里我们基于数据资源转化效率模型来识别出I/O数据中不同类型的热数据,并以此解决不同类型热数据的缓存贮存时间分配问题。
根据附图1所示,一种基于数据资源转化效率模型的缓存方法,该缓存方法包括缓存区域划分方法和具体负载数据流中不同类型数据的缓存分配方法,其中:
上述缓存区域划分方法具体如下:
(a)整个缓存划分有四个区域:新数据区域N、短重用距离热数据区域S、长重用距离热数据区域L和数据临时放置区域T。缓存具有贮存数据块R和元数据历史块H两种类型的数据块,贮存数据块R存储的是真实数据块信息,元数据历史块H则仅仅存储的是元数据信息(真实数据块的地址信息);同时短重用距离热数据区域S中贮存数据块按照数据的重用距离特征分为短重用距离贮存数据块SR和长重用距离贮存数据块LR;
(b)新数据区域N存储的数据块类型仅有贮存数据块R,其存储的是新访问的数据块;短重用距离热数据区域S存储的数据块类型有短重用距离贮存数据块SR、长重用距离贮存数据块LR和元数据块历史块H三种;
长重用距离热数据区域L存储的数据块类型有贮存数据块R和元数据历史块H两种;数据临时放置区域T存储的数据块类型仅有贮存数据块R。
(c)整个缓存有两个参数Nmin和Smax,Nmin为新数据区域N可以被淘汰数据的最少区域数据数量,Smax为短重用距离热数据区域S的最大区域数据数量,同时Nmin和Smax的值都小于缓存数据个数。
注意在实际应用中Nmin设置为缓存数量大小的[1%,20%],优选为10%,Smax设置为缓存数量大小的[40%,60%],优选为50%,但是这并不构成对本发明技术方案的限制。
上述具体负载数据流中不同类型数据的缓存分配方法包括下列步骤:
S1、当缓存满时,对于负载数据流中的每一个读请求或者写请求,有且仅有以下五种情况发生:A.新数据区域N中数据栈命中;B.短重用距离热数据区域S中数据栈命中;C.长重用距离热数据区域L中数据栈命中;D.数据临时放置区域T中数据栈命中;E.缓存未命中。针对以上情况,当满足A时,则执行步骤S2;当满足B时,则执行步骤S3;当满足C时,则执行步骤S4;当满足D时,则执行步骤S5;当满足E时,则执行步骤S6;
S2、当发生新数据区域N中数据栈命中时,首先需检查短重用距离热数据区域S中数据栈是否存储有该命中数据对应的元数据块历史块H,如果有,则需要删除这个元数据历史块;其次检查短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,Smax为短重用距离热数据区域S的最大区域数据数量,如果短重用距离热数据区域S中数据栈的数据个数等于参数Smax,则需要对短重用距离热数据区域S中数据栈的尾部数据做不申请贮存数据空间的迁移处理操作;最后将该命中数据从新数据区域N中数据栈迁移至短重用距离热数据区域S中数据栈的首部;
S3、当发生短重用距离热数据区域S中数据栈命中时,需要针对该命中数据块的类型做不同的处理,如果是元数据历史块H,则要先删除该元数据历史块,然后做申请贮存数据空间操作,最后将该数据以短重用距离贮存数据块SR的形式存储在短重用距离热数据区域S中数据栈的首部;如果是短重用距离贮存数据块SR,则将该命中数据块迁移至短重用距离热数据区域S中数据栈的首部;如果是长重用距离贮存数据块LR,则也只需将该命中数据块迁移至短重用距离热数据区域S中数据栈的首部即可;其中,所谓迁移,即数据块储存类型不会变化;
S4、当发生长重用距离热数据区域L中数据栈命中时,需要针对该命中数据块的类型做不同的处理,如果是元数据历史块H,首先需要检查栈短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,若短重用距离热数据区域S中数据栈的数据个数小于参数Smax,则需要做申请贮存数据空间操作,否则若短重用距离热数据区域S中数据栈的数据个数等于参数Smax,则需要对短重用距离热数据区域S中数据栈的尾部数据做申请贮存数据空间的迁移处理操作,最后将该命中数据以长重用距离贮存数据块LR的形式存储至短重用距离热数据区域S中数据栈的首部;如果是贮存数据块R,首先需要检查短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,若短重用距离热数据区域S中数据栈的数据个数小于参数Smax,则将该命中数据迁移至短重用距离热数据区域S中数据栈的首部,同时如果该命中数据之前是处在长重用距离热数据区域L中数据栈的尾部,需要做数据栈剪枝操作,若短重用距离热数据区域S中数据栈的数据个数等于参数Smax,首先需要对短重用距离热数据区域S中数据栈的尾部数据做不申请贮存数据空间的迁移处理操作,再将该命中数据以长重用距离贮存数据块LR的形式存储至短重用距离热数据区域S中数据栈的首部,同时如果该命中数据之前是处在长重用距离热数据区域L中数据栈的尾部,需要做数据栈剪枝操作;
S5、当发生数据临时放置区域T中数据栈命中时,首先需检查短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,如果短重用距离热数据区域S中数据栈的数据个数等于参数Smax,则需要对短重用距离热数据区域S中数据栈的尾部数据做不申请贮存数据空间的迁移处理操作;最后将该命中数据从数据临时放置区域T中数据栈迁移至短重用距离热数据区域S中数据栈的首部;
S6、当缓存发生未命中时,首先需要检查短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,若短重用距离热数据区域S中数据栈的数据个数小于参数Smax,则需要做申请贮存数据空间操作,否则若短重用距离热数据区域S中数据栈的数据个数等于参数Smax,则需要对短重用距离热数据区域S中数据栈的尾部数据做申请贮存数据空间的迁移处理操作;最后将该新数据插入到新数据区域N中数据栈的首部,同时将该新数据的对应的元数据历史块H插入到新数据区域N中数据栈的首部。
在本实施例中,步骤S2、S4、S5和S6中对短重用距离热数据区域S中数据栈的尾部数据进行迁移处理操作的具体实施如下:
该操作分为需要申请贮存数据空间和不需要申请贮存数据空间两种,对于不需要申请贮存数据空间的情形,先驱逐短重用距离热数据区域S中数据栈尾部的数据块,然后针对该驱逐数据块的数据类型做出不同的如下处理:如果该驱逐数据块的数据类型为元数据历史块H,将该驱逐数据块同样以元数据历史块的形式插入到长重用距离热数据区域L中数据栈的首部;如果该驱逐数据块为短重用距离贮存数据块SR,则将该驱逐数据块以贮存数据块的形式插入到数据临时放置区域T中数据栈的首部,同时将该驱逐数据块以元数据历史块的形式插入到长重用距离热数据区域L中数据栈的首部;如果该驱逐数据块为长重用距离贮存数据块LR,将该驱逐数据块同样以贮存数据块的形式插入到长重用距离热数据区域L中数据栈的首部;
对于需要申请贮存数据空间的情形,依旧先驱逐短重用距离热数据区域S中数据栈尾部的数据块,然后针对该驱逐数据块的数据类型做出不同的如下处理:如果该驱逐数据块为元数据历史块H,将该驱逐数据块同样以元数据历史块的形式插入到长重用距离热数据区域L中数据栈的首部,同时做申请贮存数据空间操作;如果该驱逐数据块为短重用距离贮存数据块SR,将该驱逐数据块以元数据历史块的形式插入到长重用距离热数据区域L中数据栈的首部;如果该驱逐数据块为长重用距离贮存数据块LR,同样将该驱逐数据块以贮存数据块的形式插入到长重用距离热数据区域L中数据栈的首部,同时做申请贮存数据空间操作。
在本实施例中,步骤S3、S4和S6中对长重用距离热数据区域L中数据栈的尾部数据进行迁移处理操作时的申请贮存数据空间操作的具体实施如下:
如果数据临时放置区域T中数据栈不为空,则删除数据临时放置区域T中数据栈尾部的一个数据块;否则如果新数据区域N中数据栈的数据块个数大于参数Nmin,Nmin为新数据区域N可以被淘汰数据的最少区域数据数量,则删除新数据区域N中数据栈尾部的一个数据块;否则删除数据临时放置区域T中数据栈尾部的一个数据块,同时进行数据栈剪枝操作。
本实施例中,步骤S4中进行申请贮存数据空间操作时的数据栈剪枝操作的具体实施如下:
该操作指删除长重用距离热数据区域L中数据栈的倒数第一个贮存数据块与倒数第二个贮存数据块之间的所有元数据历史块。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (6)
1.一种基于数据资源转化效率模型的缓存方法,其特征在于,该缓存方法将缓存区域划分为新数据区域N、短重用距离热数据区域S、长重用距离热数据区域L和数据临时放置区域T,缓存区域中数据块类型分为贮存数据块R和元数据历史块H,其中,所述的贮存数据块R用于真实数据块信息,所述的元数据历史块H用于存储记载真实数据块的地址的元数据信息;同时,所述的短重用距离热数据区域S中贮存数据块按照数据的重用距离特征分为短重用距离贮存数据块SR和长重用距离贮存数据块LR;所述的新数据区域N存储的数据块类型仅有贮存数据块R,其存储的是新访问的数据块;所述的短重用距离热数据区域S存储的数据块类型有短重用距离贮存数据块SR、长重用距离贮存数据块LR和元数据块历史块H;所述的长重用距离热数据区域L存储的数据块类型有贮存数据块R和元数据历史块H;数据临时放置区域T存储的数据块类型仅有贮存数据块R;
该缓存方法针对负载数据流中不同类型数据进行缓存分配的步骤如下:
S1、当缓存满时,对于负载数据流中的每一个读请求或者写请求,有且仅有以下五种情况发生:A.新数据区域N中数据栈命中;B.短重用距离热数据区域S中数据栈命中;C.长重用距离热数据区域L中数据栈命中;D.数据临时放置区域T中数据栈命中;E.缓存未命中,针对以上情况,当满足A时,则执行步骤S2;当满足B时,则执行步骤S3;当满足C时,则执行步骤S4;当满足D时,则执行步骤S5;当满足E时,则执行步骤S6;
S2、当发生新数据区域N中数据栈命中时,首先检查短重用距离热数据区域S中数据栈是否存储有该命中数据对应的元数据块历史块H,如果有,则删除这个元数据历史块;其次检查短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,Smax为短重用距离热数据区域S的最大区域数据数量,如果短重用距离热数据区域S中数据栈的数据个数等于参数Smax,则对短重用距离热数据区域S中数据栈的尾部数据做不申请贮存数据空间的迁移处理操作;最后将该命中数据从新数据区域N中数据栈迁移至短重用距离热数据区域S中数据栈的首部;
S3、当发生短重用距离热数据区域S中数据栈命中时,针对该命中数据块的类型做不同的处理,如果是元数据历史块H,则先删除该元数据历史块,然后做申请贮存数据空间操作,最后将该数据以短重用距离贮存数据块SR的形式存储在短重用距离热数据区域S中数据栈的首部;如果是短重用距离贮存数据块SR,则将该命中数据块迁移至短重用距离热数据区域S中数据栈的首部;如果是长重用距离贮存数据块LR,则也只将该命中数据块迁移至短重用距离热数据区域S中数据栈的首部;
S4、当发生长重用距离热数据区域L中数据栈命中时,针对该命中数据块的类型做不同的处理,如果是元数据历史块H,首先检查栈短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,若短重用距离热数据区域S中数据栈的数据个数小于参数Smax,则做申请贮存数据空间操作,否则若短重用距离热数据区域S中数据栈的数据个数等于参数Smax,则对短重用距离热数据区域S中数据栈的尾部数据做申请贮存数据空间的迁移处理操作,最后将该命中数据以长重用距离贮存数据块LR的形式存储至短重用距离热数据区域S中数据栈的首部;如果是贮存数据块R,首先检查短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,若短重用距离热数据区域S中数据栈的数据个数小于参数Smax,则将该命中数据以迁移至短重用距离热数据区域S中数据栈的首部,同时如果该命中数据之前是处在长重用距离热数据区域L中数据栈的尾部,做数据栈剪枝操作,若短重用距离热数据区域S中数据栈的数据个数等于参数Smax,首先对短重用距离热数据区域S中数据栈的尾部数据做不申请贮存数据空间的迁移处理操作,再将该命中数据以长重用距离贮存数据块LR的形式存储至短重用距离热数据区域S中数据栈的首部,同时如果该命中数据之前是处在长重用距离热数据区域L中数据栈的尾部,做数据栈剪枝操作;
S5、当发生数据临时放置区域T中数据栈命中时,首先检查短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,如果短重用距离热数据区域S中数据栈的数据个数等于参数Smax,则对短重用距离热数据区域S中数据栈的尾部数据做不申请贮存数据空间的迁移处理操作;最后将该命中数据从数据临时放置区域T中数据栈迁移至短重用距离热数据区域S中数据栈的首部;
S6、当缓存发生未命中时,首先检查短重用距离热数据区域S中数据栈的数据个数是否小于参数Smax,若短重用距离热数据区域S中数据栈的数据个数小于参数Smax,则做申请贮存数据空间操作,否则若短重用距离热数据区域S中数据栈的数据个数等于参数Smax,则对短重用距离热数据区域S中数据栈的尾部数据做申请贮存数据空间的迁移处理操作;最后将该新数据插入到新数据区域N中数据栈的首部,同时将该新数据的对应的元数据历史块H插入到新数据区域N中数据栈的首部。
2.根据权利要求1所述的一种基于数据资源转化效率模型的缓存方法,其特征在于,对短重用距离热数据区域S中数据栈的尾部数据进行迁移处理操作分为需要申请贮存数据空间和不需要申请贮存数据空间两种,其中,
(1)对于不需要申请贮存数据空间的情形:先驱逐短重用距离热数据区域S中数据栈尾部的数据块,然后针对该驱逐数据块的数据类型做出不同的如下处理:如果该驱逐数据块的数据类型为元数据历史块H,将该驱逐数据块同样以元数据历史块的形式插入到长重用距离热数据区域L中数据栈的首部;如果该驱逐数据块为短重用距离贮存数据块SR,则将该驱逐数据块以贮存数据块的形式插入到数据临时放置区域T中数据栈的首部,同时将该驱逐数据块以元数据历史块的形式插入到长重用距离热数据区域L中数据栈的首部;如果该驱逐数据块为长重用距离贮存数据块LR,将该驱逐数据块同样以贮存数据块的形式插入到长重用距离热数据区域L中数据栈的首部;
(2)对于需要申请贮存数据空间的情形:先驱逐短重用距离热数据区域S中数据栈尾部的数据块,然后针对该驱逐数据块的数据类型做出不同的如下处理:如果该驱逐数据块为元数据历史块H,将该驱逐数据块同样以元数据历史块的形式插入到长重用距离热数据区域L中数据栈的首部,同时做申请贮存数据空间操作;如果该驱逐数据块为短重用距离贮存数据块SR,将该驱逐数据块以元数据历史块的形式插入到长重用距离热数据区域L中数据栈的首部;如果该驱逐数据块为长重用距离贮存数据块LR,同样将该驱逐数据块以贮存数据块的形式插入到长重用距离热数据区域L中数据栈的首部,同时做申请贮存数据空间操作。
3.根据权利要求1所述的一种基于数据资源转化效率模型的缓存方法,其特征在于,对长重用距离热数据区域L中数据栈的尾部数据进行迁移处理操作时的申请贮存数据空间操作的具体实施如下:
如果数据临时放置区域T中数据栈不为空,则删除数据临时放置区域T中数据栈尾部的一个数据块;否则如果新数据区域N中数据栈的数据块个数大于参数Nmin,Nmin为新数据区域N可以被淘汰数据的最少区域数据数量,则删除新数据区域N中数据栈尾部的一个数据块;否则删除数据临时放置区域T中数据栈尾部的一个数据块,同时进行数据栈剪枝操作。
4.根据权利要求1所述的一种基于数据资源转化效率模型的缓存方法,其特征在于,进行申请贮存数据空间操作时的数据栈剪枝操作的具体实施如下:
删除长重用距离热数据区域L中数据栈的倒数第一个贮存数据块与倒数第二个贮存数据块之间的所有元数据历史块。
5.根据权利要求1所述的一种基于数据资源转化效率模型的缓存方法,其特征在于,所述的参数Smax设置为缓存数量大小的[40%,60%]。
6.根据权利要求3所述的一种基于数据资源转化效率模型的缓存方法,其特征在于,所述的参数Nmin设置为缓存数量大小的[1%,20%]。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910502646.2A CN110309180B (zh) | 2019-06-11 | 2019-06-11 | 一种基于数据资源转化效率模型的缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910502646.2A CN110309180B (zh) | 2019-06-11 | 2019-06-11 | 一种基于数据资源转化效率模型的缓存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110309180A CN110309180A (zh) | 2019-10-08 |
CN110309180B true CN110309180B (zh) | 2021-06-11 |
Family
ID=68075845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910502646.2A Active CN110309180B (zh) | 2019-06-11 | 2019-06-11 | 一种基于数据资源转化效率模型的缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110309180B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788995A (zh) * | 2009-12-31 | 2010-07-28 | 成都市华为赛门铁克科技有限公司 | 一种热点数据识别方法及装置 |
CN109656958A (zh) * | 2018-12-18 | 2019-04-19 | 北京小米移动软件有限公司 | 数据查询方法以及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9330108B2 (en) * | 2013-09-30 | 2016-05-03 | International Business Machines Corporation | Multi-site heat map management |
-
2019
- 2019-06-11 CN CN201910502646.2A patent/CN110309180B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788995A (zh) * | 2009-12-31 | 2010-07-28 | 成都市华为赛门铁克科技有限公司 | 一种热点数据识别方法及装置 |
CN109656958A (zh) * | 2018-12-18 | 2019-04-19 | 北京小米移动软件有限公司 | 数据查询方法以及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110309180A (zh) | 2019-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10303596B2 (en) | Read-write control method for memory, and corresponding memory and server | |
US9177670B1 (en) | Method and apparatus for flash cache management | |
CN108762664B (zh) | 一种固态硬盘页级缓存区管理方法 | |
CN103399823B (zh) | 业务数据的存储方法、设备和系统 | |
US7937522B2 (en) | Method for flash memory data management | |
CN107391398B (zh) | 一种闪存缓存区的管理方法及系统 | |
CN109783020A (zh) | 一种基于ssd-smr混合键值存储系统的垃圾回收方法 | |
CN112395212B (zh) | 减少键值分离存储系统的垃圾回收和写放大的方法及系统 | |
CN109471594B (zh) | 一种mlc闪存读写方法 | |
CN107423229B (zh) | 一种面向页级ftl的缓冲区改进方法 | |
CN108845957B (zh) | 一种置换和回写自适应的缓冲区管理方法 | |
CN109324979B (zh) | 3d闪存固态盘系统的数据缓存划分方法及数据分配方法 | |
CN106354658A (zh) | 一种降低混合映射算法中映射表内存资源占用的方法 | |
CN108089825A (zh) | 一种基于分布式集群的存储系统 | |
CN106909323B (zh) | 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统 | |
CN109558093B (zh) | 一种针对图像处理型负载的混合内存页面迁移方法 | |
CN104714898A (zh) | 一种Cache的分配方法和装置 | |
CN107506466A (zh) | 一种小文件存储方法及系统 | |
CN109582222B (zh) | 一种主机感知瓦记录磁盘中持久缓存的清理方法 | |
CN111078143B (zh) | 基于段映射进行数据布局和调度的混合存储方法及系统 | |
CN102763070B (zh) | 磁盘缓存的管理方法及装置 | |
CN108563586B (zh) | 一种分离固态盘中垃圾回收数据与用户数据的方法 | |
CN110309180B (zh) | 一种基于数据资源转化效率模型的缓存方法 | |
CN108897618B (zh) | 一种异构内存架构下基于任务感知的资源分配方法 | |
CN107967306B (zh) | 一种存储系统中关联块的快速挖掘方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |