CN103744624B - 一种实现存储***ssd缓存数据选择性升级的***架构 - Google Patents

一种实现存储***ssd缓存数据选择性升级的***架构 Download PDF

Info

Publication number
CN103744624B
CN103744624B CN201410011514.7A CN201410011514A CN103744624B CN 103744624 B CN103744624 B CN 103744624B CN 201410011514 A CN201410011514 A CN 201410011514A CN 103744624 B CN103744624 B CN 103744624B
Authority
CN
China
Prior art keywords
data
module
upgrading
data block
ssd
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
Application number
CN201410011514.7A
Other languages
English (en)
Other versions
CN103744624A (zh
Inventor
温源
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201410011514.7A priority Critical patent/CN103744624B/zh
Publication of CN103744624A publication Critical patent/CN103744624A/zh
Application granted granted Critical
Publication of CN103744624B publication Critical patent/CN103744624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种实现存储***SSD缓存数据选择性升级的***架构,该***架构采用数据选择性升级算法,将初次命中的数据块保存在一个名为候选升级队列的队列中,利用追踪每个候选升级队列中命中块的命中计数,当达到升级限值时,才会将命中的数据块从HDD硬盘缓存至SSD缓存中,从而实现延迟缓存数据,减少写操作,延长SSD寿命的目标;采用本发明的***架构,能够保证SSD缓存数据的选择性升级,高效缓存数据,满足用户对高性能存储***的诉求。

Description

一种实现存储***SSD缓存数据选择性升级的***架构
技术领域
本发明涉及一种实现存储***SSD缓存的数据选择性升级的***架构,通常用于存储***中,旨在提供一种SSD缓存数据的选择性升级的***架构。
技术背景
随着当今社会的进步,需要处理的数据信息越来越多,数据量呈***式增长。这给传统的存储***带来了诸多问题。传统存储***一般使用机械式硬盘(HDD),传统存储***的性能已经成为瓶颈。近两年,SSD即固态存储硬盘开始兴起。一方面,SSD本身具有快速随机存取、低耗能、超轻超薄、低故障率(非机械部件)等特点。另一方面,由于技术发展,SSD逐渐解决了容量小,顺序存取速度慢的问题。当前市场上的最新SSD,单盘容量达到几TB,PCIE接口的SSD 吞吐量超过1GB/s,IOPS达到几十万次/s。SSD性能全面超过传统机械硬盘,而其存取速度、响应时间等关键指标更是大幅超过传统机械硬盘。
但是因为SSD的价格要远远高于HDD硬盘,因此将SSD作为缓存既能满足当今数据处理的性能要求,又能不提高存储***成本。
SSD具有一些特性,一是SSD具有寿命限制,SSD具有擦写次数限制的问题,每次写操作都会导致SSD执行一次擦写,因此写操作的数量会直接影响擦写次数,从而影响SSD的寿命;二是SSD的容量还远远小于HDD硬盘,因此SSD空间是极其珍贵的。
发明内容
本发明要解决的技术问题是:
SSD缓存的数据选择性升级急需解决两个问题,一是解决SSD寿命问题,如何减少对SSD的写操作,从而延长SSD的寿命;二是如何有效的利用SSD的空间,保证缓存最有价值的数据。
通过该存储***SSD缓存的数据选择性升级的***架构,能够实现SSD缓存数据的动态升级,大幅减少SSD写入量,增加写入命中率,延长SSD的寿命,高效利用SSD的存储空间,满足存储***高性能的需求。
本发明所采用的技术方案为:
一种实现存储***SSD缓存数据选择性升级的***架构,该***架构支持在不同的操作***,实现SSD缓存数据的选择性升级。该***架构采用数据选择性升级算法,将初次命中的数据块保存在一个名为候选升级队列的队列中,利用追踪每个候选升级队列中命中块的命中计数,当达到升级限值时,才会将命中的数据块从HDD硬盘缓存至SSD缓存中,从而实现延迟缓存数据,减少写操作,延长SSD寿命的目标;
该***包括: 1)缓存数据查询模块; 2)候选升级数据查询模块; 3)候选升级数据处理模块; 4)升级限值统计模块; 5)数据迁移模块; 6)命中计数调整模块,其中:
模块1)缓存数据查询模块,负责在缓存数据队列中查询所给数据块是否存在,如果存在,直接返回数据块在SSD缓存中的位置;若不存在,返回零;
模块2)候选升级数据查询模块,负责在候选升级队列中查询所给数据块是否存在,如果存在,返回所给数据块的命中计数;若不存在,返回零;
模块3)候选升级数据处理模块,负责候选升级所给数据块命中计数增加并重新入队的操作;
模块4)升级限值统计模块,统计升级限值,首先计算缓存数据队列中所缓存的所有数据块的平均命中数,计算公式为升级基本限值=数据块的命中总数/数据块的个数,升级基本限值是一个动态改变的值,做为数据升级的依据,此外,升级限值针对读取和写入分别有一个默认额外值,读取默认额外值小于写入默认额外值,这是因为SSD缓存更适合作为读缓存。最终的升级限值会判断读写情况,其值为升级基本限值和读写默认额外值的总和,只有命中计数大于该值的数据块才会被缓存至SSD缓存中;
模块5)数据迁移模块,负责将数据块从HDD拷贝至SSD缓存中;
模块6)命中计数调整模块,负责所有命中的数据块的命中计数的调整,是一个单独的线程,由用户指定时间进行,一般情况下选择业务少的时间进行,因为数据块的命中计数只会增加,因此该模块会动态的减少缓存数据队列和候选升级队列中数据块的命中计数,减少值为候选升级队列所有数据块的平均命中数,数据块命中计数调整值计算公式为当前命中计数-减少值,若所计算结果小于等于0,则将该数据块的命中计数调整为1,保证命中计数的合理性。
所述架构数据选择性升级整体流程如下:
1、当有读写IO到来,调用模块1)查询该读写IO对应的数据块是否在SSD缓存中,若存在,直接返回数据块在SSD缓存中的位置;若不存在,返回零,说明该数据块有可能需要升级,需要调用模块2);
2、模块2)会根据读写IO对应的数据块在候选升级队列中查询是否存在,查询结束后会调用模块3)根据返回结果作相应处理;
3、模块3)根据模块2)返回结果,若返回零,说明该数据块之前未命中过,要将该数据块加入到候选升级队列中,并将命中计数记为1;若返回非零,说明该数据块被命中过,返回值为该数据块的命中计数,并调用模块4)获取升级限值;
4、模块3)判断该数据块是否该升级,若该数据块的命中计数小于升级限值,则将该数据块的命中计数加一并重新入队;若该数据块的命中计数大于等于升级限值,则将该数据块的命中计数加一,并调用模块5);
5、模块4)计算此时的升级基本限值,并判断该读写IO的类型,若为读操作,则返回升级基本限值和读取默认额外值的总和,并调用模块3);若为写操作,则返回升级基本限值和写入默认额外值的总和,并调用模块3);
6、模块5)完成数据迁移,并将该数据块从候选升级队列删除,加入至缓存数据队列中。
根据SSD缓存的实时情况动态调整升级限值,实现SSD缓存数据的选择性升级,从而保证将存储***最热点的数据缓存至SSD缓存中,避免SSD空间的浪费,高效的利用SSD缓存空间。
本发明的有益效果为:
采用本发明的***架构,能够保证SSD缓存数据的选择性升级,高效缓存数据,满足用户对高性能存储***的诉求。实现SSD缓存数据的选择性升级,根据SSD缓存的实时情况动态调整升级限值,延缓数据进入SSD缓存,大幅度减少SSD的写入量,保证缓存中的数据就是最热点的数据,延长SSD的寿命,保证SSD缓存空间的高效利用,整体提高存储***性能。
因此采用此***架构,能够高效、智能的实现存储***SSD缓存数据的选择性升级。
附图说明
图1为本发明数据选择性升级整体流程示意图;
图2为候选升级数据处理流程示意图;
图3为命中计数调整流程示意图。
具体实施方式
下面参照附图,通过具体实施方式对本发明进一步说明:
本发明实施方案简单,只需要在LINUX内核中安装本发明的***模块程序即可。根据本发明,SSD缓存***能够自动实现缓存数据的选择性升级,当存储***需要升级缓存数据时,SSD缓存***会智能的进行数据迁移操作,将数据从HDD拷贝至SSD缓存中,满足SSD缓存***的数据选择性升级特性。
一种实现存储***SSD缓存数据选择性升级的***架构,该***架构支持在不同的操作***,实现SSD缓存数据的选择性升级。该***架构采用数据选择性升级算法,将初次命中的数据块保存在一个名为候选升级队列的队列中,利用追踪每个候选升级队列中命中块的命中计数,当达到升级限值时,才会将命中的数据块从HDD硬盘缓存至SSD缓存中,从而实现延迟缓存数据,减少写操作,延长SSD寿命的目标;
该***包括: 1)缓存数据查询模块; 2)候选升级数据查询模块; 3)候选升级数据处理模块; 4)升级限值统计模块; 5)数据迁移模块; 6)命中计数调整模块,其中:
模块1)缓存数据查询模块,负责在缓存数据队列中查询所给数据块是否存在,如果存在,直接返回数据块在SSD缓存中的位置;若不存在,返回零;
模块2)候选升级数据查询模块,负责在候选升级队列中查询所给数据块是否存在,如果存在,返回所给数据块的命中计数;若不存在,返回零;
模块3)候选升级数据处理模块,负责候选升级所给数据块命中计数增加并重新入队的操作;
模块4)升级限值统计模块,统计升级限值,首先计算缓存数据队列中所缓存的所有数据块的平均命中数,计算公式为升级基本限值=数据块的命中总数/数据块的个数,升级基本限值是一个动态改变的值,做为数据升级的依据,此外,升级限值针对读取和写入分别有一个默认额外值,读取默认额外值小于写入默认额外值,这是因为SSD缓存更适合作为读缓存。最终的升级限值会判断读写情况,其值为升级基本限值和读写默认额外值的总和,只有命中计数大于该值的数据块才会被缓存至SSD缓存中;
模块5)数据迁移模块,负责将数据块从HDD拷贝至SSD缓存中;
模块6)命中计数调整模块,负责所有命中的数据块的命中计数的调整,是一个单独的线程,由用户指定时间进行,一般情况下选择业务少的时间进行,因为数据块的命中计数只会增加,因此该模块会动态的减少缓存数据队列和候选升级队列中数据块的命中计数,减少值为候选升级队列所有数据块的平均命中数,数据块命中计数调整值计算公式为当前命中计数-减少值,若所计算结果小于等于0,则将该数据块的命中计数调整为1,保证命中计数的合理性。
如图1所示,所述架构数据选择性升级整体流程如下:
1、当有读写IO到来,调用模块1)查询该读写IO对应的数据块是否在SSD缓存中,若存在,直接返回数据块在SSD缓存中的位置;若不存在,返回零,说明该数据块有可能需要升级,需要调用模块2);
2、模块2)会根据读写IO对应的数据块在候选升级队列中查询是否存在,查询结束后会调用模块3)根据返回结果作相应处理;
3、模块3)根据模块2)返回结果,若返回零,说明该数据块之前未命中过,要将该数据块加入到候选升级队列中,并将命中计数记为1;若返回非零,说明该数据块被命中过,返回值为该数据块的命中计数,并调用模块4)获取升级限值;
4、模块3)判断该数据块是否该升级,若该数据块的命中计数小于升级限值,则将该数据块的命中计数加一并重新入队;若该数据块的命中计数大于等于升级限值,则将该数据块的命中计数加一,并调用模块5);
5、模块4)计算此时的升级基本限值,并判断该读写IO的类型,若为读操作,则返回升级基本限值和读取默认额外值的总和,并调用模块3);若为写操作,则返回升级基本限值和写入默认额外值的总和,并调用模块3);
6、模块5)完成数据迁移,并将该数据块从候选升级队列删除,加入至缓存数据队列中。
根据SSD缓存的实时情况动态调整升级限值,实现SSD缓存数据的选择性升级,从而保证将存储***最热点的数据缓存至SSD缓存中,避免SSD空间的浪费,高效的利用SSD缓存空间。
如图2所示,候选升级数据处理流程为:
1、模块3)根据模块2)返回结果,若返回零,说明该数据块之前未命中过,要将该数据块加入到候选升级队列中,并将命中计数记为1;
2、若返回非零,说明该数据块被命中过,返回值为该数据块的命中计数,并调用模块4)获取升级限值;
3、比较命中数与升级限值,如果命中数小于或等于升级限值,则讲该数据块的命中数加一并重新入队;
4、如果命中数大于升级限值,则将该数据块的命中数加一,并调用数据迁移模块5)。
如图3所示,命中计数调整流程为:
1、模块6)获取候选升级队列所有数据块的平均命中数;
2、顺序取出缓存数据队列中节点,减少该节点命中数并重新入队;
3、判断是否全部调整完毕,如否,则重复上一步骤;
4、如全部调整完毕,则顺序取出候选升级队列中节点;
5、判断节点命中计数减去平均命中是否小于1,如是,则令该节点命中计数等于1并重新入队;
6、如否,则减少该节点命中数并重新入队;
7、判断是否全部调整完毕,如否,则返回步骤4;
8、如全部调整完毕,流程完成。

Claims (2)

1.一种实现存储***SSD缓存数据选择性升级的***架构,其特征在于:该***架构采用数据选择性升级算法,将初次命中的数据块保存在一个名为候选升级队列的队列中,利用追踪每个候选升级队列中命中块的命中计数,当达到升级限值时,才会将命中的数据块从HDD硬盘缓存至SSD缓存中,从而实现延迟缓存数据,减少写操作,延长SSD寿命的目标;
该***包括: 1)缓存数据查询模块; 2)候选升级数据查询模块; 3)候选升级数据处理模块; 4)升级限值统计模块; 5)数据迁移模块; 6)命中计数调整模块,其中:
模块1)缓存数据查询模块,负责在缓存数据队列中查询所给数据块是否存在,如果存在,直接返回数据块在SSD缓存中的位置;若不存在,返回零;
模块2)候选升级数据查询模块,负责在候选升级队列中查询所给数据块是否存在,如果存在,返回所给数据块的命中计数;若不存在,返回零;
模块3)候选升级数据处理模块,负责将候选升级查询模块所给出的数据块命中计数增加并重新入队的操作;
模块4)升级限值统计模块,统计升级限值,首先计算缓存数据队列中所缓存的所有数据块的平均命中数,计算公式为升级基本限值=数据块的命中总数/数据块的个数,升级基本限值是一个动态改变的值,做为数据升级的依据,此外,升级限值针对读取和写入分别有一个默认额外值,读取默认额外值小于写入默认额外值,最终的升级限值会判断读写情况,其值为升级基本限值和读写默认额外值的总和,只有命中计数大于等于该值的数据块才会被缓存至SSD缓存中;
模块5)数据迁移模块,负责将数据块从HDD拷贝至SSD缓存中;
模块6)命中计数调整模块,负责将候选升级队列中对应的数据块的命中计数的调整,是一个单独的线程,由用户指定时间进行,数据块命中计数调整值计算公式为当前命中计数-减少值,减少值为候选升级队列所有数据块的平均命中数;若所计算结果小于等于0,则将该数据块的命中计数调整为1,保证命中计数的合理性;
所述架构数据选择性升级整体流程如下:
a、当有读写IO到来,调用模块1)查询该读写IO对应的数据块是否在SSD缓存中,若存在,直接返回数据块在SSD缓存中的位置;若不存在,返回零,说明该数据块有可能需要升级,需要调用模块2);
b、模块2)会根据读写IO对应的数据块在候选升级队列中查询是否存在,查询结束后会调用模块3)根据返回结果作相应处理;
c、模块3)根据模块2)返回结果,若返回零,说明该数据块之前未命中过,要将该数据块加入到候选升级队列中,并将命中计数记为1;若返回非零,说明该数据块被命中过,返回值为该数据块的命中计数,并调用模块4)获取升级限值;
d、模块3)判断该数据块是否该升级,若该数据块的命中计数小于升级限值,则将该数据块的命中计数加一并重新入队;若该数据块的命中计数大于等于升级限值,则将该数据块的命中计数加一,并调用模块5);
e、模块4)计算此时的升级基本限值,并判断该读写IO的类型,若为读操作,则返回升级基本限值和读取默认额外值的总和,并调用模块3);若为写操作,则返回升级基本限值和写入默认额外值的总和,并调用模块3);
f、模块5)完成数据迁移,并将该数据块从候选升级队列删除,加入至缓存数据队列中。
2.根据权利要求1所述的一种实现存储***SSD缓存数据选择性升级的***架构,其特征在于:根据SSD缓存的实时情况动态调整升级限值,实现SSD缓存数据的选择性升级。
CN201410011514.7A 2014-01-10 2014-01-10 一种实现存储***ssd缓存数据选择性升级的***架构 Active CN103744624B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410011514.7A CN103744624B (zh) 2014-01-10 2014-01-10 一种实现存储***ssd缓存数据选择性升级的***架构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410011514.7A CN103744624B (zh) 2014-01-10 2014-01-10 一种实现存储***ssd缓存数据选择性升级的***架构

Publications (2)

Publication Number Publication Date
CN103744624A CN103744624A (zh) 2014-04-23
CN103744624B true CN103744624B (zh) 2017-09-22

Family

ID=50501645

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410011514.7A Active CN103744624B (zh) 2014-01-10 2014-01-10 一种实现存储***ssd缓存数据选择性升级的***架构

Country Status (1)

Country Link
CN (1) CN103744624B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10754578B2 (en) 2018-05-09 2020-08-25 Micron Technology, Inc. Memory buffer management and bypass
US10942854B2 (en) 2018-05-09 2021-03-09 Micron Technology, Inc. Prefetch management for memory
US11010092B2 (en) 2018-05-09 2021-05-18 Micron Technology, Inc. Prefetch signaling in memory system or sub-system
US10714159B2 (en) 2018-05-09 2020-07-14 Micron Technology, Inc. Indication in memory system or sub-system of latency associated with performing an access command

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102203749A (zh) * 2010-12-31 2011-09-28 华为技术有限公司 多级缓存下固态硬盘的写方法及装置
KR20110115759A (ko) * 2010-04-16 2011-10-24 성균관대학교산학협력단 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치
CN102760101A (zh) * 2012-05-22 2012-10-31 中国科学院计算技术研究所 一种基于ssd 的缓存管理方法及***
CN102779017A (zh) * 2012-06-29 2012-11-14 华中科技大学 一种固态盘中数据缓存区的控制方法
CN102799535A (zh) * 2012-06-29 2012-11-28 记忆科技(深圳)有限公司 固态硬盘的数据处理方法及固态硬盘
CN102831088A (zh) * 2012-07-27 2012-12-19 国家超级计算深圳中心(深圳云计算中心) 基于混合存储器的数据迁移方法和装置
CN103186350A (zh) * 2011-12-31 2013-07-03 北京快网科技有限公司 混合存储***及热点数据块的迁移方法
CN103257935A (zh) * 2013-04-19 2013-08-21 华中科技大学 一种缓存管理方法及其应用

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4988007B2 (ja) * 2010-05-13 2012-08-01 株式会社東芝 情報処理装置およびドライバ

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110115759A (ko) * 2010-04-16 2011-10-24 성균관대학교산학협력단 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치
CN102203749A (zh) * 2010-12-31 2011-09-28 华为技术有限公司 多级缓存下固态硬盘的写方法及装置
CN103186350A (zh) * 2011-12-31 2013-07-03 北京快网科技有限公司 混合存储***及热点数据块的迁移方法
CN102760101A (zh) * 2012-05-22 2012-10-31 中国科学院计算技术研究所 一种基于ssd 的缓存管理方法及***
CN102779017A (zh) * 2012-06-29 2012-11-14 华中科技大学 一种固态盘中数据缓存区的控制方法
CN102799535A (zh) * 2012-06-29 2012-11-28 记忆科技(深圳)有限公司 固态硬盘的数据处理方法及固态硬盘
CN102831088A (zh) * 2012-07-27 2012-12-19 国家超级计算深圳中心(深圳云计算中心) 基于混合存储器的数据迁移方法和装置
CN103257935A (zh) * 2013-04-19 2013-08-21 华中科技大学 一种缓存管理方法及其应用

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Improving Flash-based Disk Cache with Lazy Adaptive Replacement;Sai Huang 等;《Mass Storage Systems and Technologies(MSST),2013 IEEE 29th Symposium on》;20130510;第1-10页 *
基于固态硬盘的云存储分布式缓存策略;李东阳 等;《计算机工程》;20130813;第39卷(第4期);第32-35页 *

Also Published As

Publication number Publication date
CN103744624A (zh) 2014-04-23

Similar Documents

Publication Publication Date Title
CN105117180B (zh) 一种数据存储方法和装置以及固态硬盘
CN101673188B (zh) 一种固态硬盘的数据存取方法
CN103744624B (zh) 一种实现存储***ssd缓存数据选择性升级的***架构
CN103777905B (zh) 一种软件定义的固态盘融合存储方法
US9274945B2 (en) Processing unit reclaiming requests in a solid state memory device
CN108829344A (zh) 数据存储方法、装置及存储介质
CN106095589B (zh) 一种分配分区的方法、装置及***
CN105302840B (zh) 一种缓存管理方法与设备
CN108763103A (zh) 一种内存管理方法、装置、***及计算机可读存储介质
CN105095116A (zh) 缓存替换的方法、缓存控制器和处理器
CN110058932A (zh) 一种用于数据流驱动计算的存储方法和存储***
CN109582215A (zh) 硬盘操作命令的执行方法、硬盘及存储介质
CN104571954A (zh) 一种数据存储方法及装置
CN105224474B (zh) 固态硬盘闪存转换层的实现***和闪存转换层的实现装置
CN104035925B (zh) 数据存储方法、装置和存储***
CN103345451A (zh) 一种在多核处理器中缓冲数据的方法
CN101373445A (zh) 一种内存调度方法及装置
CN104991743B (zh) 应用于固态硬盘阻变存储器缓存的损耗均衡方法
CN110109868A (zh) 用于索引文件的方法、装置和计算机程序产品
CN103927136B (zh) 输入输出io类型的识别方法和装置
CN106527987A (zh) 一种不带dram的ssd主控可靠性提升***及方法
CN101221465A (zh) 用于降低硬盘功耗的数据缓冲区实现方法
US10275363B2 (en) Cuckoo caching
CN103513935A (zh) 用于管理高速缓存存储器的方法和***
US11379375B1 (en) System and method for cache management

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant