CN101576856A - 一种基于长短周期访问频度的缓存数据替换方法 - Google Patents
一种基于长短周期访问频度的缓存数据替换方法 Download PDFInfo
- Publication number
- CN101576856A CN101576856A CNA2009100163633A CN200910016363A CN101576856A CN 101576856 A CN101576856 A CN 101576856A CN A2009100163633 A CNA2009100163633 A CN A2009100163633A CN 200910016363 A CN200910016363 A CN 200910016363A CN 101576856 A CN101576856 A CN 101576856A
- Authority
- CN
- China
- Prior art keywords
- buffer
- access frequency
- data
- module
- frequency 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
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000015654 memory Effects 0.000 claims description 53
- 230000007774 longterm Effects 0.000 claims description 10
- 238000003491 array Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于长短周期访问频度的缓存数据替换方法,属于一种磁盘阵列的数据缓存管理技术,利用缓存数据访问频度值,反映缓存数据在长短周期内被访问的情况,并按照缓存数据访问频度值的大小进行排序,查找最久未被使用的缓存数据,将该缓存数据替换出缓存区,并将新数据换入缓存区;结构包括缓存区、缓存替换接口模块、缓存访问频度统计模块、缓存访问频度排序模块、缓存访问频度值记录模块和缓存替换处理模块;本发明的一种基于长短周期访问频度的缓存数据替换方法和现有技术相比,通常用于磁盘阵列的数据缓存管理,优化缓存数据替换,充分利用***缓存资源,优化缓存空间利用率,提高缓存的命中率,进而提高磁盘阵列整体性能。
Description
技术领域
本发明涉及一种磁盘阵列的数据缓存管理技术,具体地说是一种基于长短周期访问频度的缓存数据替换方法。
背景技术
通常在磁盘阵列内部,为提高***的访问效率,一般将预留一段内存区域用作数据缓存。数据缓存分为读数据缓存与写数据缓存两种,读数据缓存主要为提高随机读的效率,而写数据缓存则主要为提高连续写的效率。数据缓存是磁盘阵列的重要资源,缓存命中率是影响磁盘阵列性能的重要指标,利用高效的缓存数据替换技术,可极大的优化缓存空间的利用率,提高缓存命中率,提高磁盘阵列的整体性能。
缓存替换技术必须以最大化主机端访问时的缓存命中率为出发点,因而需要考虑主机端的缓存数据访问方式。主机端对缓存数据主要有两种访问方式:长期周期访问和短期频繁访问。长期周期访问是指,缓存数据在间隔较长的时间内被周期性的重复访问,典型的应用包括日志、定时备份等。短期频繁访问是指,缓存数据在较短的时间内被频繁访问。为最大化主机端访问缓存的命中率,缓存中应尽量保存短期频繁被访问的数据,但是如果短期频繁被访问的数据在一段较长的时间内未被访问,那么它们也应该先于长期周期性访问的数据而被替换出缓存。这是因为,就访问方式而言,短期频繁访问的数据,在今后较长的时间内很少会被再次访问,而长期周期访问的数据,在今后较长的时间内将会被周期性的访问。
如何能够提供一种缓存数据替换技术,充分考虑到主机端的访问方式,兼顾长期周期访问和短期频繁访问的情况,是磁盘阵列缓存管理所面临的主要问题之一。
发明内容
本发明的技术任务是提供一种通过兼顾主机端的长短期访问,优化缓存数据替换的一种基于长短周期访问频度的缓存数据替换方法。
本发明的技术任务是按以下方式实现的,利用缓存数据访问频度值,反映缓存数据在长短周期内被访问的情况,并按照缓存数据访问频度值的大小进行排序,查找最久未被使用的缓存数据,将该缓存数据替换出缓存区,并将新数据换入缓存区;结构包括缓存区、缓存替换接口模块、缓存访问频度统计模块、缓存访问频度排序模块、缓存访问频度值记录模块和缓存替换处理模块;缓存区连接缓存替换接口模块和缓存访问频度统计模块,缓存替换接口模块连接缓存替换处理模块,缓存替换处理模块连接缓存访问频度排序模块,缓存访问频度统计模块和缓存访问频度排序模块均与缓存访问频度值记录模块连接。
缓存访问频度值记录模块以记录的形式存储数据访问频度值,提供对缓存数据访问频度值的查找、更新和替换接口;缓存访问频度统计模块主要负责计算缓存区内缓存数据的访问频度值,并且周期性的更新缓存访问频度值记录模块内的缓存数据的访问频度值;缓存访问频度排序模块可调用缓存访问频度记录模块内的缓存数据的访问频度值,并按照访问频度值进行排序;缓存替换处理模块负责对缓存数据进行替换,调用缓存访问频度排序模块查找访问频度值最小的缓存数据,通过缓存替换接口模块将该缓存数据替换出缓存区,并将新数据换入缓存区。
缓存数据替换流程为两条,其中一条的具体流程为:
(1)、缓存访问频度统计模块访问缓存区的缓存数据,并且计算缓存区内缓存数据的访问频度值;
(2)、缓存访问频度统计模块周期性的更新缓存访问频度值记录模块内的缓存数据的访问频度值;
(3)、当主机端访问缓存区内的缓存数据时,缓存访问频度统计模块重新计算缓存数据的访问频度值;
另一条的具体流程为:
(1)、缓存替换处理模块通过调用缓存替换接口模块提供的接口,向***内部发出缓存数据替换请求;
(2)、缓存访问频度排序模块调用缓存访问频度记录模块内的缓存数据的访问频度值,并按照访问频度值进行排序;
(3)、缓存替换处理模块进行缓存数据替换处理,调用缓存访问频度排序模块对访问频度值的排序,查找访问频度值最小的缓存数据;
(4)、缓存替换处理模块通过缓存替换接口模块将访问频度值最小的缓存数据替换出缓存区,并将新数据换入缓存区。
缓存数据的访问频度值的大小为4个字节,由高到低的每个字节,代表了间隔由短到长的周期内缓存数据被访问的情况;用Bn[i]表示由高到低的第n个字节的第i位的取值,若在单位时间内,缓存数据块被访问,则置B0[0]为1,否则置B0[0]为0;每隔8a个单位时间,采用如下规则更新缓存数据访问频度值:
(1)、Ba[i+1]=Ba[i](i=0,1,……,6)
(2)、Ba+1[i+1]=Ba+1[i](i=0,1,……,6)
(3)、Ba+1[0]=Ba[0]||Ba[1]||……||Ba[6]||Ba[7];
上述规则可以保证,若主机端访问方式为长期周期访问,那么低位字节中将有多位连续为1,若访问访问为短期频繁访问,那么高位字节中将有多位连续为1,而低位字节很少会出现多位连续为1的情况。
本发明的一种基于长短周期访问频度的缓存数据替换方法,通常用于磁盘阵列的数据缓存管理,具有以下优点:
(1)、充分考虑了主机端对缓存数据的访问方式,兼顾了长期周期访问和短期频繁访问;可以有效的优化缓存空间的利用率,提高缓存数据的命中率,提高磁盘阵列的整体性能。
(2)、使其应用在磁盘阵列***中,优化缓存数据的替换策略,能够充分利用缓存资源,降低***的运行开销,满足对磁盘阵列性能日益提高的要求。
附图说明
下面结合附图对本发明进一步说明。
附图1为一种基于长短周期访问频度的缓存数据替换方法的结构框图;
附图2为一种基于长短周期访问频度的缓存数据替换方法的流程图;
附图3为一种基于长短周期访问频度的缓存数据替换方法的缓存数据的访问频度值示例。
具体实施方式
参照说明书附图和具体实施例对本发明的一种基于长短周期访问频度的缓存数据替换方法作以下详细地说明。
实施例:
如图1所示,本发明的一种基于长短周期访问频度的缓存数据替换方法,其结构包括利用缓存数据访问频度值,反映缓存数据在长短周期内被访问的情况,并按照缓存数据访问频度值的大小进行排序,查找最久未被使用的缓存数据,将该缓存数据替换出缓存区,并将新数据换入缓存区;结构包括缓存区、缓存替换接口模块、缓存访问频度统计模块、缓存访问频度排序模块、缓存访问频度值记录模块和缓存替换处理模块;缓存区连接缓存替换接口模块和缓存访问频度统计模块,缓存替换接口模块连接缓存替换处理模块,缓存替换处理模块连接缓存访问频度排序模块,缓存访问频度统计模块和缓存访问频度排序模块均与缓存访问频度值记录模块连接。
缓存访问频度值记录模块以记录的形式存储数据访问频度值,提供对缓存数据访问频度值的查找、更新和替换接口;缓存访问频度统计模块主要负责计算缓存区内缓存数据的访问频度值,并且周期性的更新缓存访问频度值记录模块内的缓存数据的访问频度值;缓存访问频度排序模块可调用缓存访问频度记录模块内的缓存数据的访问频度值,并按照访问频度值进行排序;缓存替换处理模块负责对缓存数据进行替换,调用缓存访问频度排序模块查找访问频度值最小的缓存数据,通过缓存替换接口模块将该缓存数据替换出缓存区,并将新数据换入缓存区。
如图2所示,缓存数据替换流程为两条,其中一条的具体流程为:
(1)、缓存访问频度统计模块访问缓存区的缓存数据,并且计算缓存区内缓存数据的访问频度值;
(2)、缓存访问频度统计模块周期性的更新缓存访问频度值记录模块内的缓存数据的访问频度值;
(3)、当主机端访问缓存区内的缓存数据时,缓存访问频度统计模块重新计算缓存数据的访问频度值;
另一条的具体流程为:
(1)、缓存替换处理模块通过调用缓存替换接口模块提供的接口,向***内部发出缓存数据替换请求;
(2)、缓存访问频度排序模块调用缓存访问频度记录模块内的缓存数据的访问频度值,并按照访问频度值进行排序;
(3)、缓存替换处理模块进行缓存数据替换处理,调用缓存访问频度排序模块对访问频度值的排序,查找访问频度值最小的缓存数据;
(4)、缓存替换处理模块通过缓存替换接口模块将访问频度值最小的缓存数据替换出缓存区,并将新数据换入缓存区。
如图3所示,缓存数据的访问频度值的大小为4个字节,由高到低的每个字节,代表了间隔由短到长的周期内缓存数据被访问的情况;用Bn[i]表示由高到低的第n个字节的第i位的取值,若在单位时间内,缓存数据块被访问,则置B0[0]为1,否则置B0[0]为0;每隔8a个单位时间,采用如下规则更新缓存数据访问频度值:
(1)、Ba[i+1]=Ba[i](i=0,1,……,6)
(2)、Ba+1[i+1]=Ba+1[i](i=0,1,……,6)
(3)、Ba+1[0]=Ba[0]||Ba[1]||……||Ba[6]||Ba[7];
上述规则可以保证,若主机端访问方式为长期周期访问,那么低位字节中将有多位连续为1,若访问访问为短期频繁访问,那么高位字节中将有多位连续为1,而低位字节很少会出现多位连续为1的情况。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (4)
1、一种基于长短周期访问频度的缓存数据替换方法,其特征在于利用缓存数据访问频度值,反映缓存数据在长短周期内被访问的情况,并按照缓存数据访问频度值的大小进行排序,查找最久未被使用的缓存数据,将该缓存数据替换出缓存区,并将新数据换入缓存区;结构包括缓存区、缓存替换接口模块、缓存访问频度统计模块、缓存访问频度排序模块、缓存访问频度值记录模块和缓存替换处理模块;缓存区连接缓存替换接口模块和缓存访问频度统计模块,缓存替换接口模块连接缓存替换处理模块,缓存替换处理模块连接缓存访问频度排序模块,缓存访问频度统计模块和缓存访问频度排序模块均与缓存访问频度值记录模块连接。
2、根据权利要求1所述的一种基于长短周期访问频度的缓存数据替换方法,其特征在于缓存访问频度值记录模块以记录的形式存储数据访问频度值,提供对缓存数据访问频度值的查找、更新和替换接口;缓存访问频度统计模块主要负责计算缓存区内缓存数据的访问频度值,并且周期性的更新缓存访问频度值记录模块内的缓存数据的访问频度值;缓存访问频度排序模块可调用缓存访问频度记录模块内的缓存数据的访问频度值,并按照访问频度值进行排序;缓存替换处理模块负责对缓存数据进行替换,调用缓存访问频度排序模块查找访问频度值最小的缓存数据,通过缓存替换接口模块将该缓存数据替换出缓存区,并将新数据换入缓存区。
3、根据权利要求1所述的一种基于长短周期访问频度的缓存数据替换方法,其特征在于缓存数据替换流程为两条,其中一条的具体流程为:
(1)、缓存访问频度统计模块访问缓存区的缓存数据,并且计算缓存区内缓存数据的访问频度值;
(2)、缓存访问频度统计模块周期性的更新缓存访问频度值记录模块内的缓存数据的访问频度值;
(3)、当主机端访问缓存区内的缓存数据时,缓存访问频度统计模块重新计算缓存数据的访问频度值;
另一条的具体流程为:
(1)、缓存替换处理模块通过调用缓存替换接口模块提供的接口,向***内部发出缓存数据替换请求;
(2)、缓存访问频度排序模块调用缓存访问频度记录模块内的缓存数据的访问频度值,并按照访问频度值进行排序;
(3)、缓存替换处理模块进行缓存数据替换处理,调用缓存访问频度排序模块对访问频度值的排序,查找访问频度值最小的缓存数据;
(4)、缓存替换处理模块通过缓存替换接口模块将访问频度值最小的缓存数据替换出缓存区,并将新数据换入缓存区。
4、根据权利要求1所述的一种基于长短周期访问频度的缓存数据替换方法,其特征在于缓存数据的访问频度值的大小为4个字节,由高到低的每个字节,代表了间隔由短到长的周期内缓存数据被访问的情况;用Bn[i]表示由高到低的第n个字节的第i位的取值,若在单位时间内,缓存数据块被访问,则置B0[0]为1,否则置B0[0]为0;每隔8a个单位时间,采用如下规则更新缓存数据访问频度值:
(1)、Ba[i+1]=Ba[i](i=0,1,……,6)
(2)、Ba+1[i+1]=Ba+1[i](i=0,1,……,6)
(3)、Ba+1[0]=Ba[0]||Ba[1]||……||Ba[6]||Ba[7];
上述规则可以保证,若主机端访问方式为长期周期访问,那么低位字节中将有多位连续为1,若访问访问为短期频繁访问,那么高位字节中将有多位连续为1,而低位字节很少会出现多位连续为1的情况。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100163633A CN101576856A (zh) | 2009-06-18 | 2009-06-18 | 一种基于长短周期访问频度的缓存数据替换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100163633A CN101576856A (zh) | 2009-06-18 | 2009-06-18 | 一种基于长短周期访问频度的缓存数据替换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101576856A true CN101576856A (zh) | 2009-11-11 |
Family
ID=41271791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100163633A Pending CN101576856A (zh) | 2009-06-18 | 2009-06-18 | 一种基于长短周期访问频度的缓存数据替换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101576856A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999443A (zh) * | 2012-11-16 | 2013-03-27 | 广州优倍达信息科技有限公司 | 一种计算机缓存***的管理方法 |
CN103744800A (zh) * | 2013-12-30 | 2014-04-23 | 龙芯中科技术有限公司 | 面向重放机制的缓存操作方法及装置 |
EP2779170A1 (en) * | 2013-03-15 | 2014-09-17 | Seagate Technology LLC | Staging sorted data in intermediate storage |
CN105095107A (zh) * | 2014-05-04 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 清理缓存数据的方法及装置 |
US9384793B2 (en) | 2013-03-15 | 2016-07-05 | Seagate Technology Llc | Dynamic granule-based intermediate storage |
CN106302784A (zh) * | 2016-08-27 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种提高缓存速度的方法和装置 |
CN107291635A (zh) * | 2017-06-16 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种缓存替换方法和装置 |
CN110008190A (zh) * | 2019-03-21 | 2019-07-12 | 武汉理工大学 | 一种周期性的小文件缓存置换方法 |
CN111078585A (zh) * | 2019-11-29 | 2020-04-28 | 智器云南京信息科技有限公司 | 一种内存缓存管理方法、***、存储介质及电子设备 |
CN111221749A (zh) * | 2019-11-15 | 2020-06-02 | 新华三半导体技术有限公司 | 数据块写入方法、装置、处理器芯片及Cache |
WO2022021178A1 (zh) * | 2020-07-30 | 2022-02-03 | 华为技术有限公司 | 缓存方法、***和芯片 |
-
2009
- 2009-06-18 CN CNA2009100163633A patent/CN101576856A/zh active Pending
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999443B (zh) * | 2012-11-16 | 2015-09-09 | 广州优倍达信息科技有限公司 | 一种计算机缓存***的管理方法 |
CN102999443A (zh) * | 2012-11-16 | 2013-03-27 | 广州优倍达信息科技有限公司 | 一种计算机缓存***的管理方法 |
US9588886B2 (en) | 2013-03-15 | 2017-03-07 | Seagate Technology Llc | Staging sorted data in intermediate storage |
EP2779170A1 (en) * | 2013-03-15 | 2014-09-17 | Seagate Technology LLC | Staging sorted data in intermediate storage |
US9384793B2 (en) | 2013-03-15 | 2016-07-05 | Seagate Technology Llc | Dynamic granule-based intermediate storage |
US9740406B2 (en) | 2013-03-15 | 2017-08-22 | Seagate Technology Llc | Dynamic granule-based intermediate storage |
US9588887B2 (en) | 2013-03-15 | 2017-03-07 | Seagate Technology Llc | Staging sorted data in intermediate storage |
CN103744800A (zh) * | 2013-12-30 | 2014-04-23 | 龙芯中科技术有限公司 | 面向重放机制的缓存操作方法及装置 |
CN103744800B (zh) * | 2013-12-30 | 2016-09-14 | 龙芯中科技术有限公司 | 面向重放机制的缓存操作方法及装置 |
CN105095107A (zh) * | 2014-05-04 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 清理缓存数据的方法及装置 |
CN105095107B (zh) * | 2014-05-04 | 2019-07-16 | 腾讯科技(深圳)有限公司 | 清理缓存数据的方法及装置 |
CN106302784A (zh) * | 2016-08-27 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种提高缓存速度的方法和装置 |
CN107291635A (zh) * | 2017-06-16 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种缓存替换方法和装置 |
CN110008190A (zh) * | 2019-03-21 | 2019-07-12 | 武汉理工大学 | 一种周期性的小文件缓存置换方法 |
CN111221749A (zh) * | 2019-11-15 | 2020-06-02 | 新华三半导体技术有限公司 | 数据块写入方法、装置、处理器芯片及Cache |
CN111078585A (zh) * | 2019-11-29 | 2020-04-28 | 智器云南京信息科技有限公司 | 一种内存缓存管理方法、***、存储介质及电子设备 |
CN111078585B (zh) * | 2019-11-29 | 2022-03-29 | 智器云南京信息科技有限公司 | 一种内存缓存管理方法、***、存储介质及电子设备 |
WO2022021178A1 (zh) * | 2020-07-30 | 2022-02-03 | 华为技术有限公司 | 缓存方法、***和芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101576856A (zh) | 一种基于长短周期访问频度的缓存数据替换方法 | |
CN103345518B (zh) | 基于数据块的自适应数据存储管理方法及*** | |
CN107193646B (zh) | 一种基于混合主存架构的高效动态页面调度方法 | |
CN104834607B (zh) | 一种提高分布式缓存的命中率并减少固态硬盘磨损的方法 | |
CN102364474B (zh) | 用于机群文件***的元数据存储***和管理方法 | |
CN103336849B (zh) | 一种数据库检索***中提高检索速度的方法及装置 | |
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和*** | |
CN102129472B (zh) | 面向语义搜索引擎的高效混合存储结构的构建方法 | |
CN101782922B (zh) | 一种面向海量数据检索的多级桶哈希索引方法 | |
CN102629269B (zh) | 一种嵌入式数据库的检索及存储方法 | |
CN102136005B (zh) | 数据查询方法和装置 | |
CN102314397B (zh) | 缓存数据块的处理方法 | |
CN1499382A (zh) | 廉价冗余磁盘阵列***中高效高速缓存的实现方法 | |
CN102253941A (zh) | 一种缓存更新方法和缓存更新装置 | |
CN108762671A (zh) | 基于pcm和dram的混合内存***及其管理方法 | |
CN105279240A (zh) | 客户端起源信息关联感知的元数据预取方法及*** | |
CN108845957B (zh) | 一种置换和回写自适应的缓冲区管理方法 | |
CN109388341A (zh) | 一种基于Device Mapper的***存储优化方法 | |
CN104156432A (zh) | 一种文件访问方法 | |
CN116257523A (zh) | 一种基于非易失存储器的列式存储索引方法及装置 | |
Yao et al. | An advanced adaptive least recently used buffer management algorithm for SSD | |
On et al. | Lazy-update B+-tree for flash devices | |
US9261946B2 (en) | Energy optimized cache memory architecture exploiting spatial locality | |
CN103548005A (zh) | 替换缓存对象的方法和装置 | |
CN103020077A (zh) | 一种电力***实时数据库内存管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20091111 |