CN104239231B - 一种加速二级缓存预热的方法及装置 - Google Patents
一种加速二级缓存预热的方法及装置 Download PDFInfo
- Publication number
- CN104239231B CN104239231B CN201410441302.2A CN201410441302A CN104239231B CN 104239231 B CN104239231 B CN 104239231B CN 201410441302 A CN201410441302 A CN 201410441302A CN 104239231 B CN104239231 B CN 104239231B
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- metadata
- equipment
- master
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种加速二级缓存预热的方法及装置,其中,所述方法在二级缓存设备上保存与二级缓存数据相应的元数据,并对二级缓存数据进行压缩处理,实现二级缓存数据的写入和读取,其中,二级缓存数据的写入具体为:周期性扫描主缓存中的缓存数据,获得设定时间内使用次数量少的数据及其相应元数据,该元数据包含主缓存与二级缓存设备间的映射关系;对数据进行压缩处理;压缩后的数据及元数据一起写入二级缓存设备;二级缓存数据的读取具体为:遍历二级缓存设备上的元数据,读取二级缓存设备中的数据并解压缩后,根据元数据中的映射关系,将数据加载到主缓存中。与现有技术相比,本发明具有提高缓存数据预热的效率和二级缓存设备的利用率等优点。
Description
技术领域
本发明涉及计算机存储技术领域,具体涉及一种加速二级缓存预热的方法及装置。
背景技术
当前,随着信息化技术的不断发展,人们需要保存的资料、数据越来越多,对存储容量的需求越来越大,而且各种应用程序随着软、硬件的升级,对存储设备的性能要求也越来越高。从存储领域来看,不管是传统的存储设备,还是基于软件定义的新型存储设备,为了实现性能最大化和成本最低化,各存储厂商往往采用基于混合存储池的分级存储方式,通过采用大容量的固态硬盘(SSD)或者NVRAM等非易失性存储设备作为缓存,实现对磁盘、磁带等持久化存储设备的二级或者多级缓存系统,达到性能和价格的一个均衡。这样的系统性能虽然上无法和新型的全闪存存储阵列媲美,但在价格上却有巨大的优势,而且性能比传统存储阵列要高很多。性能的提升主要是依据存储系统的局部性原理,通过将热点数据(频繁访问的特定区域)缓存在高速设备中来实现。
这些二级或者多级缓存系统,作为高速访问设备(内存)和低速访问设备(磁盘、磁带)之间的缓存,屏蔽了不同设备之间访问速度的差距,以有限的投资,即能取得较好的加速效果,但也存在一些问题:比如需要一定时间的预热,即需要存储系统运行一段时间后,通过被动或者主动(数据预取)的方式,将数据从磁盘重新加载到二级缓存设备。而事实上,通常二级缓存设备(如SSD)本身就具有非易失的特性(即所存储的数据不会因为设备断电而丢失的存储器),需要预热的原因,很大程度上是因为二级缓存设备上保存的是纯粹的数据块,没保存元数据(即数据存储的属性、位置等信息,用来对数据进行定位、查找),且数据也是无组织的,导致缓存与二级缓存在系统重新上电后,无法直接使用,而需要一个重新预热的过程。预热的时间随着二级缓存大小以及业务IO的特性而不同,有些存储系统甚至需要几天时间连续运行来实现预热。另一方面,二级缓存的空间是十分宝贵的,传统的存储将裸数无组织存放的另一个缺陷是空间浪费严重。
综上可知,在传统的二级缓存系统设计和实现上,存在预热时间过长和空间浪费严重的问题,有改进和优化的空间。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种加速二级缓存预热的方法及装置,针对基于混合存储池的系统,通过持久化和压缩二级缓存数据,提高了缓存数据预热的效率,同时也提高了二级缓存设备的利用率,一定程度上降低了存储设备的成本。
本发明的目的可以通过以下技术方案来实现:
本发明提供一种加速二级缓存预热的方法,该方法在二级缓存设备上保存与二级缓存数据相应的元数据,并对二级缓存数据进行压缩处理,实现二级缓存数据的写入和读取,其中,
所述二级缓存数据的写入具体为:
1)周期性扫描主缓存中的缓存数据,获得设定时间内使用次数量少的数据及其相应元数据,该元数据包含主缓存与二级缓存设备间的映射关系;
2)对步骤1)获得的数据进行压缩处理;
3)将步骤2)中压缩后的数据及步骤1)中的元数据写入二级缓存设备;
所述二级缓存数据的读取具体为:
遍历二级缓存设备上的元数据,读取二级缓存设备中的数据并解压缩后,根据元数据中的映射关系,将数据加载到主缓存中。
所述元数据由超级块、索引块和索引块指针组织而成。
所述遍历二级缓存设备上的元数据具体为:
a)读取超级块,开始遍历元数据;
b)判断当前超级块所对应的索引块是否遍历完,若是,则结束,若否,则执行步骤c);
c)判断当前索引块所对应的索引块指针是否遍历完,若是,则返回步骤a),若否,则执行步骤d);
d)读取数据并解压缩,返回步骤c)。
数据加载到主缓存中后,应用程序读取数据时,首先判断是否在主缓存中命中数据时,若是,则直接从主缓存中读取,若否,则向磁盘设备读取,有效避免频繁向磁盘设备发起I/O请求。
所述二级缓存设备包括SSD或NVRAM。
本发明还提供一种加速二级缓存预热的装置,包括:
异步扫描模块,用于周期性扫描主缓存中的缓存数据,获得设定时间内使用次数量少的数据;
压缩模块,用于对写入二级缓存设备的数据进行压缩或对从二级缓存设备读取的数据进行解压缩;
异步预热模块,用于将二级缓存设备中的数据加载到主缓存。
所述异步预热模块包括:
元数据遍历单元,用于遍历二级缓存设备中保存的元数据;
数据传输单元,用于根据元数据遍历结果读取二级缓存设备中的数据并传输给压缩模块。
与现有技术相比,本发明具有以下有益效果:
1、在存储设备重新上电时,避免了从磁盘频繁加载数据到主缓存,减少了对磁盘进行的大量I/O操作,使得系统上电完毕就可以使用之前缓存的数据,加速了缓存的预热(系统上电后数据从磁盘搬移到缓存的过程),极大提高缓存的可用性。
2、通过压缩技术,使得小容量的二级缓存设备,可以达到大容量设备的缓存效果,提高了存储设备的性价比。
3、由于压缩技术的使用,使得需要加载的数据量变小,进一步加速了缓存的预热。
4、本发明设置异步预热模块,通过异步的方式,在系统加载存储池时实现缓存预热,不影响系统启动速度。
附图说明
图1为二级缓存设备上元数据组织方式示意图;
图2为混合存储池IO数据流示意图;
图3为本发明扫描流程示意图;
图4为本发明预热流程示意图;
图5为本发明装置的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本发明实施例提供一种加速二级缓存预热的方法,该方法在二级缓存设备上保存与二级缓存数据相应的元数据,并对二级缓存数据进行压缩处理,实现二级缓存数据的写入和读取。本发明方法主要包含以下几个要点:
1、引入一种元数据保存方式,如图1所示,通过超级块、索引块和索引块指针,实现元数据以该方式保存在二级缓存设备(SSD或者NVRAM)上。当主缓存中的数据写入二级缓存设备时,其相应的元数据也随之写入二级缓存设备。这样二级缓存设备重新上电后,通过索引元数据,我们可以将保存在二级缓存设备中的数据恢复到主缓存,提供给应用程序使用。
2、在缓存数据写入和读取过程中增加压缩模块,即数据保存到二级缓存设备前先经过压缩,数据恢复到主缓存时经过解压,这样既保证了数据的完整性,也大大减少了数据、元数据在二级缓存设备上占用的空间。
基于上述两点,本发明实施例提供一种加速二级缓存预热的方法对二级缓存数据的写入和读取具体描述如下:
(1)写入过程
1)如图3所示,周期性扫描主缓存中的缓存数据,获得设定时间内使用次数量少的数据及其相应元数据,该元数据包含主缓存与二级缓存设备间的映射关系;
2)对步骤1)获得的数据进行压缩处理;
3)将步骤2)中压缩后的数据及步骤1)中的元数据写入二级缓存设备。
(2)读取过程
虚拟池在上电时,启动一个异步预热任务,将二级缓存中数据加载到主缓存,加载过程中遍历二级缓存设备上的元数据,读取二级缓存设备中的数据并解压缩后,根据元数据中的映射关系,将数据加载到主缓存中。
如图4所示,所述遍历二级缓存设备上的元数据具体为:
a)读取超级块,开始遍历元数据;
b)判断当前超级块所对应的索引块是否遍历完,若是,则结束,若否,则执行步骤c);
c)判断当前索引块所对应的索引块指针是否遍历完,若是,则返回步骤a),若否,则执行步骤d);
d)读取数据并解压缩,返回步骤c)。
数据加载到主缓存中后,应用程序读取数据时,首先判断是否在主缓存中命中数据时,若是,则直接从主缓存中读取,若否,则向磁盘设备读取,有效避免频繁向磁盘设备发起I/O请求。
本发明中涉及到的数据IO流如图2所示,通过上述过程,可以大大降低系统上电时主缓存的预热时间,提高缓存设备空间的利用率,从而避免向磁盘(disk)发起大量I/O请求,最终提升了存储设备的性能。
如图5所示,本发明实施例还提供一种实现上述加速二级缓存预热方法的装置,包括:
异步扫描模块1,用于周期性扫描主缓存中的缓存数据,获得设定时间内使用次数量少的数据;
压缩模块2,用于对写入二级缓存设备的数据进行压缩或对从二级缓存设备读取的数据进行解压缩;
异步预热模块3,用于将二级缓存设备中的数据加载到主缓存。
所述异步预热模块包括:
元数据遍历单元,用于遍历二级缓存设备中保存的元数据;
数据传输单元,用于根据元数据遍历结果读取二级缓存设备中的数据并传输给压缩模块。
上述加速二级缓存预热的装置在初次使用时,需要在应用环境下进行正常预热。
在本发明实施例中,需要启动二级缓存装置,将主缓存中淘汰的数据和元数据写入二级缓存设备,在系统重新上电时,将二级缓存中的数据恢复到主缓存,这样系统在访问这些数据的时候就可以直接从主缓存中读取。
Claims (3)
1.一种加速二级缓存预热的方法,其特征在于,该方法在二级缓存设备上保存与二级缓存数据相应的元数据,并对二级缓存数据进行压缩处理,实现二级缓存数据的写入和读取,其中,
所述二级缓存数据的写入具体为:
1)周期性扫描主缓存中的缓存数据,获得设定时间内使用次数量少的数据及其相应元数据,该元数据包含主缓存与二级缓存设备间的映射关系,所述元数据由超级块、索引块和索引块指针组织而成;
2)对步骤1)获得的数据进行压缩处理;
3)将步骤2)中压缩后的数据及步骤1)中的元数据写入二级缓存设备;
所述二级缓存数据的读取具体为:
遍历二级缓存设备上的元数据,读取二级缓存设备中的数据并解压缩后,根据元数据中的映射关系,将数据加载到主缓存中,数据加载到主缓存中后,应用程序读取数据时,首先判断是否在主缓存中命中数据时,若是,则直接从主缓存中读取,若否,则向磁盘设备读取。
2.根据权利要求1所述的一种加速二级缓存预热的方法,其特征在于,所述遍历二级缓存设备上的元数据具体为:
a)读取超级块,开始遍历元数据;
b)判断当前超级块所对应的索引块是否遍历完,若是,则结束,若否,则执行步骤c);
c)判断当前索引块所对应的索引块指针是否遍历完,若是,则返回步骤a),若否,则执行步骤d);
d)读取数据并解压缩,返回步骤c)。
3.根据权利要求1-2任一所述的一种加速二级缓存预热的方法,其特征在于,所述二级缓存设备包括SSD或NVRAM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410441302.2A CN104239231B (zh) | 2014-09-01 | 2014-09-01 | 一种加速二级缓存预热的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410441302.2A CN104239231B (zh) | 2014-09-01 | 2014-09-01 | 一种加速二级缓存预热的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104239231A CN104239231A (zh) | 2014-12-24 |
CN104239231B true CN104239231B (zh) | 2018-01-30 |
Family
ID=52227345
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410441302.2A Active CN104239231B (zh) | 2014-09-01 | 2014-09-01 | 一种加速二级缓存预热的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104239231B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708819A (zh) * | 2015-07-17 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种数据缓存的预热方法及其装置 |
CN108009008B (zh) * | 2016-10-28 | 2022-08-09 | 北京市商汤科技开发有限公司 | 数据处理方法和系统、电子设备 |
CN108132757B (zh) * | 2016-12-01 | 2021-10-19 | 阿里巴巴集团控股有限公司 | 数据的存储方法、装置及电子设备 |
CN110647532B (zh) * | 2019-08-15 | 2022-08-05 | 苏州浪潮智能科技有限公司 | 一种数据一致性的维护方法与装置 |
CN113064553B (zh) * | 2021-04-02 | 2023-02-17 | 重庆紫光华山智安科技有限公司 | 数据存储方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794259A (zh) * | 2010-03-26 | 2010-08-04 | 成都市华为赛门铁克科技有限公司 | 数据存储方法和装置 |
CN101916228A (zh) * | 2010-08-17 | 2010-12-15 | 中国人民解放军国防科学技术大学 | 带有数据压缩功能的闪存转换层及实现方法 |
CN102609360A (zh) * | 2012-01-12 | 2012-07-25 | 华为技术有限公司 | 一种数据处理方法、装置及系统 |
US8775741B1 (en) * | 2009-01-13 | 2014-07-08 | Violin Memory Inc. | Using temporal access patterns for determining prefetch suitability |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4748807B2 (ja) * | 2007-01-31 | 2011-08-17 | キヤノン株式会社 | 復号回路 |
CN102567490B (zh) * | 2011-12-21 | 2013-12-04 | 华为技术有限公司 | 数据库内的描述信息的恢复和数据的缓存方法及设备 |
-
2014
- 2014-09-01 CN CN201410441302.2A patent/CN104239231B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8775741B1 (en) * | 2009-01-13 | 2014-07-08 | Violin Memory Inc. | Using temporal access patterns for determining prefetch suitability |
CN101794259A (zh) * | 2010-03-26 | 2010-08-04 | 成都市华为赛门铁克科技有限公司 | 数据存储方法和装置 |
CN101916228A (zh) * | 2010-08-17 | 2010-12-15 | 中国人民解放军国防科学技术大学 | 带有数据压缩功能的闪存转换层及实现方法 |
CN102609360A (zh) * | 2012-01-12 | 2012-07-25 | 华为技术有限公司 | 一种数据处理方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
一种海量存储系统二级缓存的设计与实现;叶晨等;《计算机与现代化》;20131218(第220期);第52-55页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104239231A (zh) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104239231B (zh) | 一种加速二级缓存预热的方法及装置 | |
CN102609360B (zh) | 一种数据处理方法、装置及系统 | |
KR101422557B1 (ko) | 예측 데이터 로더 | |
CN106030498B (zh) | 存储装置和数据处理方法以及存储系统 | |
US20090216945A1 (en) | Storage system which utilizes two kinds of memory devices as its cache memory and method of controlling the storage system | |
US20160092361A1 (en) | Caching technologies employing data compression | |
CN110413211B (zh) | 存储管理方法、电子设备以及计算机可读介质 | |
US11132145B2 (en) | Techniques for reducing write amplification on solid state storage devices (SSDs) | |
CN103678166A (zh) | 一种采用固态硬盘作为计算机高速缓存的实现方法及系统 | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
CN106681659A (zh) | 数据压缩的方法及装置 | |
CN100580669C (zh) | 在Flash存储介质上的关于文件分配表的缓存实现方法 | |
US8732404B2 (en) | Method and apparatus for managing buffer cache to perform page replacement by using reference time information regarding time at which page is referred to | |
Ahn et al. | A compressed file system manager for flash memory based consumer electronics devices | |
CN109375868B (zh) | 一种数据存储方法、调度装置、系统、设备及存储介质 | |
CN103500147A (zh) | 一种嵌入分层存储的pb级集群存储系统的方法 | |
CN111126619B (zh) | 一种机器学习方法与装置 | |
CN103761052A (zh) | 一种管理高速缓存的方法及存储装置 | |
CN102508790A (zh) | 一种应用于内容解析存储的基于内容的缓存方法 | |
CN115495020A (zh) | 文件处理方法、装置、电子设备和可读存储介质 | |
CN105589912A (zh) | 一种利用mram处理频写文件的方法及存储结构 | |
US20140317354A1 (en) | Electronic device, data caching system and method | |
US11016898B2 (en) | System and method for mixed tile-aware and tile-unaware traffic through a tile-based address aperture | |
CN109284231B (zh) | 内存访问请求的处理方法、装置及内存控制器 | |
CN107506156B (zh) | 一种块设备的io优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 201112 Shanghai, Minhang District, United Airlines route 1188, building second layer A-1 unit 8 Applicant after: SHANGHAI EISOO INFORMATION TECHNOLOGY CO., LTD. Address before: 201112 Shanghai, Minhang District, United Airlines route 1188, building second layer A-1 unit 8 Applicant before: Shanghai Eisoo Software Co.,Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |