CN111796757B - 一种固态硬盘缓存区管理方法和装置 - Google Patents

一种固态硬盘缓存区管理方法和装置 Download PDF

Info

Publication number
CN111796757B
CN111796757B CN201910277376.XA CN201910277376A CN111796757B CN 111796757 B CN111796757 B CN 111796757B CN 201910277376 A CN201910277376 A CN 201910277376A CN 111796757 B CN111796757 B CN 111796757B
Authority
CN
China
Prior art keywords
page
area
group node
aggregation
data page
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
CN201910277376.XA
Other languages
English (en)
Other versions
CN111796757A (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.)
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology 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 China Mobile Communications Group Co Ltd, China Mobile Suzhou Software Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201910277376.XA priority Critical patent/CN111796757B/zh
Publication of CN111796757A publication Critical patent/CN111796757A/zh
Application granted granted Critical
Publication of CN111796757B publication Critical patent/CN111796757B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种固态硬盘缓存区管理方法和装置,涉及固态硬盘(SSD)技术领域。所述方法包括:在固态硬盘的缓存区中划分页区域和聚合区域;所述聚合区域中包括至少一个组节点单元;不同的组节点单元对应不同的块标识;所述聚合区域中属于同一块标识的数据页聚合管理;当接收到数据页的读请求或写请求时,查看所述页区域中是否命中所述读请求或写请求,在所述页区域未命中所述读请求或写请求的情况下,查看所述聚合区域中是否命中所述读请求或写请求,基于查看结果响应所述读请求或写请求。本发明实施例的技术方案出一种新的缓存区管理方案,实现了固态硬盘在命中率和擦除次数两方面达到了一定程度的均衡。

Description

一种固态硬盘缓存区管理方法和装置
技术领域
本发明涉及固态硬盘(SSD,Solid State Disk)技术领域,具体涉及一种固态硬盘缓存区管理方法和装置。
背景技术
为提高存储系统的容量、提升输入/输出(I/O)速度、削减存储成本、降低读写时延、应对海量存储的需求,云存储架构的思想应运而生。在针对海量数据共享的数据密集型应用的管理过程中,对海量数据的读操作是大量的、经常的,而且实时性要求更高,虽然围绕内存的随机存储器(RAM,Random Access Memory)缓存技术在一定程度上可以缓解硬盘读写操作速率不高带来的压力,但受限于缓存空间的容量和处理页面置换导致的开销瓶颈的制约,硬盘响应性能也受到一定程度的影响。
固态硬盘作为新兴的存储介质,有着其独特的优点,其运用也越来越广泛,在云计算平台中也发挥着巨大的作用,随着云计算的运用越来越广泛,云计算平台的对于存储系统有着自己的要求,由于云计算平台上运行的应用一般均为网站后台之类,所以相应的对于其存储系统的响应时间有着较高的要求,所以针对云存储,需要作出响应的优化。
相比于传统的硬盘,固态硬盘具有许多优良特性:读写速度快、低功耗和高可靠性等,因此固态硬盘已广泛应用到多个领域。但是固态硬盘也继承了闪存的缺点,如读写不对称性、写前擦除、擦除次数有限等。在固态硬盘中引入缓存区可以有效地缓存频繁访问的数据,减少对闪存的写入次数,从而提升固态硬盘性能。因此固态硬盘的缓存区设计一直是研究热点。
然而,针对固态硬盘的缓存区的管理,目前尚无有效解决方案。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种固态硬盘缓存区管理方法和装置。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种固态硬盘缓存区管理方法,所述方法包括:
在固态硬盘的缓存区中划分页区域和聚合区域;所述聚合区域中包括至少一个组节点单元;不同的组节点单元对应不同的块标识;所述聚合区域中属于同一块标识的数据页聚合管理;
当接收到数据页的读请求或写请求时,查看所述页区域中是否命中所述读请求或写请求,在所述页区域未命中所述读请求或写请求的情况下,查看所述聚合区域中是否命中所述读请求或写请求,基于查看结果响应所述读请求或写请求。
上述方案中,当接收到数据页的读请求时,在所述页区域命中所述读请求的情况下,所述方法还包括:基于所述读请求携带的数据页标识从所述页区域中读取与所述数据页标识匹配的数据页,以响应所述读请求;
所述基于查看结果响应所述读请求,包括:
在所述聚合区域中命中所述读请求的情况下,从所述聚合区域中读取数据页;
在所述聚合区域中未命中所述读请求的情况下,从所述固态硬盘的闪存中读取数据页。
上述方案中,当接收到数据页的写请求时,所述基于查看结果响应所述写请求,包括:
在所述聚合区域中命中所述写请求的情况下,将命中的数据页从所述聚合区域中迁移至所述页区域中;
在所述聚合区域中未命中所述写请求的情况下,查看所述页区域的存储空间是否已满,在所述页区域的存储空间未满的情况下,将所述写请求对应的数据页写入所述页区域。
上述方案中,所述方法还包括:当所述页区域满足预设条件时,从所述页区域中选择第一目标数据页,从所述页区域剔除所述第一目标数据页,基于所述第一目标数据页的第一标识确定第一块标识,基于所述第一块标识将所述第一目标数据页存储至所述聚合区域。
上述方案中,所述页区域满足预设条件,包括:在所述页区域的存储空间已满的情况下,确定所述页区域满足预设条件。
上述方案中,属于同一块标识的数据页通过页列表链表聚合管理;所述聚合区域中通过组列表链表管理每个组节点单元和块标识的第一映射关系;每个组节点单元还设置有表征对应于块标识的数据页数量的第一参数;
所述基于所述第一块标识将所述第一目标数据页存储至所述聚合区域,包括:
基于所述第一块标识查询所述第一映射关系;
在所述第一映射关系中存在所述第一块标识对应的第一组节点单元的情况下,将所述第一目标数据页存储至所述第一组节点单元对应的区域,以及将所述第一目标数据页的信息添加至所述第一组节点单元对应的第一页列表链表中,将所述第一参数加一。
上述方案中,所述方法还包括:在所述第一映射关系中不存在所述第一块标识对应的第一组节点单元的情况下,创建新的组节点单元,在所述组列表链表中添加所述新的组节点单元对应的块标识和第一参数的映射关系;
将所述第一目标数据页存储至所述新的组节点单元对应的区域,以及将所述第一目标数据页的信息添加至所述新的组节点对应的新的页列表链表中,将所述新的组节点对应的第一参数加一。
上述方案中,所述基于所述第一块标识将所述第一目标数据页存储至所述聚合区域之前,所述方法还包括:
查看所述聚合区域的存储空间是否已满;
相应的,所述基于所述第一块标识将所述第一目标数据页存储至所述聚合区域,包括:
在所述聚合区域的存储空间未满的情况下,基于所述第一块标识将所述第一目标数据页存储至所述聚合区域。
上述方案中,所述方法还包括:在所述聚合区域的存储空间已满的情况下,在所述聚合区域中选择目标组节点单元;
从所述目标组节点单元对应的所有数据页中选择第二目标数据页,对所述第二目标数据页进行处理,以使所述目标组节点对应的存储区域能够继续写入数据页。
上述方案中,所述在所述聚合区域中选择目标组节点单元,包括:
在所述聚合区域的所有组节点单元中选择对应的第一参数最大的组节点单元作为目标组节点单元;
在第一参数最大的组节点单元的数量为至少两个的情况下,确定至少两个组节点单元对应的所有数据页中干净页的数量,选择干净页数量最大的组节点单元作为目标组节点单元。
上述方案中,每个组节点单元还设置有表征对应的数据页中是否含有脏页的第二参数;
所述对所述第二目标数据页进行处理,包括:
基于所述第二参数确定所述目标组节点单元对应的所有数据页中含有脏页时,将所述目标组节点单元对应的所有数据页写入所述固态硬盘的闪存中;或者,
基于所述第二参数确定所述目标组节点单元对应的所有数据页中不含有脏页时,丢弃所述目标组节点对应的所有数据页中的所有干净页。
本发明实施例还提供了一种固态硬盘缓存区管理装置,所述装置包括:划分单元和读写处理单元;其中,
所述划分单元,用于在固态硬盘的缓存区中划分页区域和聚合区域;所述聚合区域中包括至少一个组节点单元;不同的组节点单元对应不同的块标识;所述聚合区域中属于同一块标识的数据页聚合管理;
所述读写处理单元,用于当接收到数据页的读请求或写请求时,查看所述页区域中是否命中所述读请求或写请求,在所述页区域未命中所述读请求或写请求的情况下,查看所述聚合区域中是否命中所述读请求或写请求,基于查看结果响应所述读请求或写请求。
上述方案中,所述读写处理单元,还用于当接收到数据页的读请求时,查看所述页区域中是否命中所述读请求,在所述页区域命中所述读请求的情况下,基于所述读请求携带的数据页标识从所述页区域中读取与所述数据页标识匹配的数据页,以响应所述读请求;还用于在所述页区域未命中所述读请求的情况下,查看所述聚合区域中是否命中所述读请求,在所述聚合区域中命中所述读请求的情况下,从所述聚合区域中读取数据页;在所述聚合区域中未命中所述读请求的情况下,从所述固态硬盘的闪存中读取数据页。
上述方案中,所述读写处理单元,还用于当接收到数据页的写请求时,在所述聚合区域中命中所述写请求的情况下,将命中的数据页从所述聚合区域中迁移至所述页区域中;在所述聚合区域中未命中所述写请求的情况下,查看所述页区域的存储空间是否已满,在所述页区域的存储空间未满的情况下,将所述写请求对应的数据页写入所述页区域。
上述方案中,所述读写处理单元,还用于当所述页区域满足预设条件时,从所述页区域中选择第一目标数据页,从所述页区域剔除所述第一目标数据页,基于所述第一目标数据页的第一标识确定第一块标识,基于所述第一块标识将所述第一目标数据页存储至所述聚合区域。
上述方案中,所述读写处理单元,用于在所述页区域的存储空间已满的情况下,确定所述页区域满足预设条件。
上述方案中,属于同一块标识的数据页通过页列表链表聚合管理;所述聚合区域中通过组列表链表管理每个组节点单元和块标识的第一映射关系;每个组节点单元还设置有表征对应于块标识的数据页数量的第一参数;
所述读写处理单元,用于基于所述第一块标识查询所述第一映射关系;在所述第一映射关系中存在所述第一块标识对应的第一组节点单元的情况下,将所述第一目标数据页存储至所述第一组节点单元对应的区域,以及将所述第一目标数据页的信息添加至所述第一组节点单元对应的第一页列表链表中,将所述第一参数加一。
上述方案中,所述读写处理单元,还用于在所述第一映射关系中不存在所述第一块标识对应的第一组节点单元的情况下,创建新的组节点单元,在所述组列表链表中添加所述新的组节点单元对应的块标识和第一参数的映射关系;将所述第一目标数据页存储至所述新的组节点单元对应的区域,以及将所述第一目标数据页的信息添加至所述新的组节点对应的新的页列表链表中,将所述新的组节点对应的第一参数加一。
上述方案中,所述读写处理单元,还用于基于所述第一块标识将所述第一目标数据页存储至所述聚合区域之前,查看所述聚合区域的存储空间是否已满;在所述聚合区域的存储空间未满的情况下,基于所述第一块标识将所述第一目标数据页存储至所述聚合区域。
上述方案中,所述读写处理单元,还用于在所述聚合区域的存储空间已满的情况下,在所述聚合区域中选择目标组节点单元;从所述目标组节点单元对应的所有数据页中选择第二目标数据页,对所述第二目标数据页进行处理,以使所述目标组节点对应的存储区域能够继续写入数据页。
上述方案中,所述读写处理单元,用于在所述聚合区域的所有组节点单元中选择对应的第一参数最大的组节点单元作为目标组节点单元;在第一参数最大的组节点单元的数量为至少两个的情况下,确定至少两个组节点单元对应的所有数据页中干净页的数量,选择干净页数量最大的组节点单元作为目标组节点单元。
上述方案中,每个组节点单元还设置有表征对应的数据页中是否含有脏页的第二参数;
所述读写处理单元,用于基于所述第二参数确定所述目标组节点单元对应的所有数据页中含有脏页时,将所述目标组节点单元对应的所有数据页写入所述固态硬盘的闪存中;或者,基于所述第二参数确定所述目标组节点单元对应的所有数据页中不含有脏页时,丢弃所述目标组节点对应的所有数据页中的所有干净页。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例所述方法的步骤。
本发明实施例还提供了一种固态硬盘缓存区管理装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明实施例所述方法的步骤。
本发明实施例提供的固态硬盘缓存区管理方法和装置,所述方法包括:在固态硬盘的缓存区中划分页区域和聚合区域;所述聚合区域中包括至少一个组节点单元;不同的组节点单元对应不同的块标识;所述聚合区域中属于同一块标识的数据页聚合管理;当接收到数据页的读请求或写请求时,查看所述页区域中是否命中所述读请求或写请求,在所述页区域未命中所述读请求或写请求的情况下,查看所述聚合区域中是否命中所述读请求或写请求,基于查看结果响应所述读请求或写请求。采用本发明实施例的技术方案,通过将固态硬盘的缓存区划分页区域和聚合区域,聚合区域用于存储页区域剔除的数据页,并且聚合区域中属于同一块标识的数据页聚合管理;本发明实施例的技术方案提出一种新的缓存区管理方案,实现了固态硬盘在命中率和擦除次数两方面达到了一定程度的均衡;并且由于命中率的提高,相应的存储系统响应时间会缩短,满足了云计算平台对于存储系统的要求。
附图说明
图1为本发明实施例的固态硬盘缓存区管理方法的一种流程示意图;
图2为本发明实施例的固态硬盘的框架结构示意图;
图3为本发明实施例的固态硬盘缓存区管理方法的一种应用示意图;
图4为本发明实施例的固态硬盘缓存区管理方法的另一种流程示意图;
图5为本发明实施例的固态硬盘缓存区管理方法的又一种流程示意图;
图6为本发明实施例的固态硬盘缓存区管理方法的另一种应用示意图;
图7为本发明实施例的固态硬盘缓存区管理装置的组成结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细的说明。
本发明实施例提供了一种固态硬盘缓存区管理方法。图1为本发明实施例的固态硬盘缓存区管理方法的一种流程示意图;如图1所示,所述方法包括:
步骤101:在固态硬盘的缓存区中划分页区域和聚合区域;所述聚合区域中包括至少一个组节点单元;不同的组节点单元对应不同的块标识;所述聚合区域中属于同一块标识的数据页聚合管理;
步骤102:当接收到数据页的读请求或写请求时,查看所述页区域中是否命中所述读请求或写请求,在所述页区域未命中所述读请求或写请求的情况下,查看所述聚合区域中是否命中所述读请求或写请求,基于查看结果响应所述读请求或写请求。
本实施例中,将频繁访问的数据存放在缓冲区中,可以减少系统对闪存的直接访问,减少写次数和擦除次数,降低垃圾回收开销,提升固态硬盘的性能。本实施例在固态硬盘的缓存区中划分页区域(Page Region)和聚合区域(Group Region),页区域中以数据页作为管理粒度,即页区域中存储至少一个数据页;聚合区域中存储从页区域剔除的数据页,并将属于同一个块(Block)的数据页聚合管理,使得固态硬盘在命中率和擦除次数两方面达到一定程度的平衡。
在本发明的一种可选实施例中,在页区域中,可采用最近最少使用(LRU,LeastRecently Used)算法管理数据页。作为一种示例,若读请求或写请求对应的数据页在页区域命中,则将该数据页移动至LRU首端并更新数据。
本实施例中,聚合区域中包括至少一个组节点(Group Node)单元,其中,组节点单元为聚合区域中的基本单元;聚合区域中的至少一个组节点单元可通过组列表(GroupList)链表进行管理。其中,每个组节点单元对应设置有块标识,块标识也可称为块序号(Block Number),块标识表示物理块或闪存块序号,每个组节点单元可对应至少一个物理块或闪存块,不同的组节点单元对应不同的块标识,则所述组列表链表中可记载每个组节点单元和对应的块标识;其中,属于同一块标识的数据页可通过页列表(Page List)链表进行聚合管理。
本实施例中,在接收到数据页的读请求或写请求时,均是先查找页区域中是否命中,若读请求或写请求未在页区域中命中,则进一步在聚合区域中查找。
在本发明的一种可选实施例中,所述方法还包括:当所述页区域满足预设条件时,从所述页区域中选择第一目标数据页,从所述页区域剔除所述第一目标数据页,基于所述第一目标数据页的第一标识确定第一块标识,基于所述第一块标识将所述第一目标数据页存储至所述聚合区域。作为一种示例,所述页区域满足预设条件可包括:所述页区域的存储空间已满且有数据页待写入所述页区域。
本实施例中,数据页的标识具体可以是数据页的逻辑页号,则本实施例中的第一目标数据页的第一标识具体可以是第一目标数据页的逻辑页号,通过该逻辑页号计算得到对应的块标识(块序号)。由于聚合区域中的每个组节点单元对应不同的块标识,则可基于逻辑页号计算得到的第一块标识在组列表链表中进行查找,确定组列表链表中包含所述第一块标识时,表明所述第一块标识对应的组节点单元存在,也可表明所述第一块标识对应的物理块或闪存块存在,则可将第一目标数据页从页区域中剔除存储至聚合区域中,并且将所述第一目标页存储至所述第一块标识对应的页列表链表中进行聚合管理。
在本发明的一种可选实施例中,所述方法还包括:当所述聚合区域中的组节点单元中的第二目标数据页被命中时,将所述第二目标数据页迁移至所述页区域中。
本实施例中,所述第二目标数据页被命中具体可以是针对写请求在聚合区域中的命中,即写请求针对的数据页为聚合区域中的第二目标数据页;在这种情况下,将所述第二目标数据页从所述聚合区域中迁移至页区域中。
在本发明的一种可选实施例中,所述方法还包括:当所述缓存区的存储空间已满时,从所述聚合区域中选择目标组节点单元,将所述目标组节点单元中的至少部分数据页写入闪存或者丢弃。
本实施例中,在缓存区的存储空间已满的情况下,也即页区域和聚合区域的存储空间已满的情况下,采用预设的替换策略从聚合区域中选择目标组节点单元,并且从目标组节点单元中选择至少一个第二目标数据页。作为一种实施方式,选择的目标组节点单元为含有最多数据页的组节点单元。
作为一种实施方式,每个组节点单元还对应设置有第一参数,所述第一参数表征对应于块标识的数据页数量,也即所述第一参数表征对应的组节点单元所包含的数据页数量,作为一种示例,所述第一参数可通过页数量(Page Count)表示。可以理解,当有数据页添加至一组节点单元中的页列表链表中管理时,则该组节点单元对应的第一参数加一,即Page Count的数值+1;当组节点单元对应的数据页被移除,则该组节点单元对应的第一参数减一,即Page Count的数值-1。
则本实施例中,在页区域和聚合区域的存储空间已满的情况下,选择第一参数最大的组节点单元作为目标组节点单元,即选择所包含的数据页的数量最大的组节点单元作为目标组节点单元。在一种示例中,若第一参数最大的组节点单元的数量为至少两个,则在至少两个组节点单元中选择干净页最多的组节点单元作为目标组节点单元。其中,脏页表示被修改的数据页或者有改变或更新的数据页;对应的,本发明各实施例中的干净页指的是未被修改的数据页或者没有改变或更新的数据页。
本实施例中,作为一种实施方式,若目标组节点单元中含有脏页,则将目标组节点单元中的所有脏页和干净页一起顺序写入闪存中;若目标组节点单元中不含有脏页,则丢弃所述目标组节点单元中包含的所有干净页。
图2为本发明实施例的固态硬盘的框架结构示意图;如图2所示,固态硬盘包括缓存区(Buffer),缓存区中划分出页区域(Page Region)和聚合区域(Group Region),在页区域满足预设条件时,从页区域中剔除第一目标数据页存储至聚合区域;在聚合区域中的第二目标数据页被命中时,聚合区域中的第二目标数据页迁移至页区域中。
实际应用中,固态硬盘中还包括闪存转换层(FTL,Flash Translation Layer),通过FTL执行固态硬盘的读(Reads)操作和写(Writes)操作,以及固态硬盘内的块擦除(BlockErase)操作;在一种示例中,针对固态硬盘的读(Reads)操作和/或写(Writes)操作可以有主系统(Host System)发起。
图3为本发明实施例的固态硬盘缓存区管理方法的一种应用示意图;如图3所示,聚合区域(Group Region)中设置有用于聚合管理所有组节点(Group Node)单元的组列表(Group List)链表;其中,组列表(Group List)链表包括每个组节点单元下的块序号(Block Number)、页数量(Page Count)和脏页标识(Dirty Flag);其中,所述脏页标识表示该组节点单元下的数据页是否含有脏页,或者说该组节点单元下维护的页列表(PageList)链表中是否含有脏页;作为一种示例,若脏页标识=1可表示该组节点单元下的数据页含有脏页,则脏页标识=0可表示该组节点单元下的数据页不含有脏页。
则如图3所示,块序号(Block Number)为1的组节点单元下有四个数据页,则对应的页数量(Page Count)为4,块序号(Block Number)为2的组节点单元下有2个数据页,则对应的页数量(Page Count)为2。
结合图3所示,数据页通过Page表示;若页区域中有数据页被剔除,如虚线阴影表示的且被虚线框住的数据页,基于该数据页的逻辑页号计算确定的块序号为2,则将该数据页存放至块序号(Block Number)为2的组节点单元下,并且将该数据页添加至块序号(Block Number)为2的组节点单元下的页列表(Page List)链表中进行管理;相应的,块序号(Block Number)为2的组节点单元对应的页数量(Page Count)加1,即对应的页数量(Page Count)的取值由原本的2变为3。
下面结合具体的应用场景对本发明实施例的固态硬盘缓存区管理方法进行详细说明。
作为一种示例,针对读请求,图4为本发明实施例的固态硬盘缓存区管理方法的另一种流程示意图;本实施例为读请求的流程,具体如图4所示:
步骤201:接收到读请求;
步骤202:判断所述读请求是否在页区域中命中;当判断的结果为是时,执行步骤203;当判断的结果为否时,执行步骤204;
这里,可基于读请求中携带的数据页标识(如数据页的逻辑页号)在页区域中进行查找,查找是否存在与所述数据页标识匹配的数据页;若存在与数据页标识匹配的数据页,则可确定所述读请求在页区域命中;若不存在与数据页标识匹配的数据页,则可确定所述读请求未在页区域命中;
步骤203:在页区域中读取数据,即根据所述读请求携带的数据页标识从所述页区域中读取与所述数据页标识匹配的数据页,以响应所述读请求;
步骤204:判断所述读请求是否在聚合区域中命中;当判断的结果为是时,执行步骤205;当判断的结果为否时,执行步骤206;
这里,可根据所述读请求携带数据页标识(例如逻辑页号)确定块标识,判断所述聚合区域的组列表链表中是否含有所述块标识,在所述聚合区域的组列表链表中含有所述块标识的情况下,或者在所述聚合区域的组列表链表中含有所述块标识、并且所述块标识对应的页列表链表中含有该数据页的情况下,则可确定所述读请求在所述聚合区域中命中;相应的,在所述聚合区域的组列表链表中不含有所述块标识的情况下,或者在所述聚合区域的组列表链表中含有所述块标识、并且所述块标识对应的页列表链表中不含有该数据页的情况下,则可确定所述读请求未在所述聚合区域中命中。
步骤205:在聚合区域中读取数据,即根据所述读请求携带的数据页标识从所述聚合区域中读取与所述数据页标识匹配的数据页,以响应所述读请求;
步骤206:直接从固态硬盘的闪存中读取数据。
作为另一种示例,对于写请求,在所述页区域未命中所述写请求的情况下,查看所述聚合区域中是否命中所述写请求;在所述聚合区域中命中所述写请求的情况下,将命中的数据页从所述聚合区域中迁移至所述页区域中;在所述聚合区域中未命中所述写请求的情况下,查看所述页区域的存储空间是否已满,在所述页区域的存储空间未满的情况下,将所述写请求对应的数据页写入所述页区域。
可选地,所述方法还包括:当所述页区域满足预设条件时,从所述页区域中选择第一目标数据页,从所述页区域剔除所述第一目标数据页,基于所述第一目标数据页的第一标识确定第一块标识,基于所述第一块标识将所述第一目标数据页存储至所述聚合区域。
其中,作为一种示例,所述页区域满足预设条件,包括:在所述页区域的存储空间已满的情况下,确定所述页区域满足预设条件。
在本发明的一种可选实施例中,属于同一块标识的数据页通过页列表链表聚合管理;所述聚合区域中通过组列表链表管理每个组节点单元和块标识的第一映射关系;每个组节点单元还设置有表征对应于块标识的数据页数量的第一参数;
所述基于所述第一块标识将所述第一目标数据页存储至所述聚合区域,包括:基于所述第一块标识查询所述第一映射关系;在所述第一映射关系中存在所述第一块标识对应的第一组节点单元的情况下,将所述第一目标数据页存储至所述第一组节点单元对应的区域,以及将所述第一目标数据页的信息添加至所述第一组节点单元对应的第一页列表链表中,将所述第一参数加一。
在本发明的一种可选实施例中,所述方法还包括:在所述第一映射关系中不存在所述第一块标识对应的第一组节点单元的情况下,创建新的组节点单元,在所述组列表链表中添加所述新的组节点单元对应的块标识和第一参数的映射关系;将所述第一目标数据页存储至所述新的组节点单元对应的区域,以及将所述第一目标数据页的信息添加至所述新的组节点对应的新的页列表链表中,将所述新的组节点对应的第一参数加一。
在本发明的一种可选实施例中,所述基于所述第一块标识将所述第一目标数据页存储至所述聚合区域之前,所述方法还包括:查看所述聚合区域的存储空间是否已满;相应的,所述基于所述第一块标识将所述第一目标数据页存储至所述聚合区域,包括:在所述聚合区域的存储空间未满的情况下,基于所述第一块标识将所述第一目标数据页存储至所述聚合区域。
在本发明的一种可选实施例中,所述方法还包括:在所述聚合区域的存储空间已满的情况下,在所述聚合区域中选择目标组节点单元;从所述目标组节点单元对应的所有数据页中选择第二目标数据页,对所述第二目标数据页进行处理,以使所述目标组节点对应的存储区域能够继续写入数据页。
在本发明的一种可选实施例中,所述在所述聚合区域中选择目标组节点单元,包括:在所述聚合区域的所有组节点单元中选择对应的第一参数最大的组节点单元作为目标组节点单元;在第一参数最大的组节点单元的数量为至少两个的情况下,确定至少两个组节点单元对应的所有数据页中干净页的数量,选择干净页数量最大的组节点单元作为目标组节点单元。
在本发明的一种可选实施例中,每个组节点单元还设置有表征对应的数据页中是否含有脏页的第二参数;所述对所述第二目标数据页进行处理,包括:基于所述第二参数确定所述目标组节点单元对应的所有数据页中含有脏页时,将所述目标组节点单元对应的所有数据页写入所述固态硬盘的闪存中;或者,基于所述第二参数确定所述目标组节点单元对应的所有数据页中不含有脏页时,丢弃所述目标组节点对应的所有数据页中的所有干净页。
在本发明的一种可选实施例中,若在所述页区域和所述聚合区域均未命中所述写请求的情况下,则从闪存中读取所述写请求对应的数据页并保存在页区域。
下面结合具体的流程图对写请求操作进行具体说明。
图5为本发明实施例的固态硬盘缓存区管理方法的又一种流程示意图;本实施例为写请求的流程,具体如图5所示:
步骤301:接收到写请求;
步骤302:判断所述写请求是否在页区域中命中;当判断的结果为是时,执行步骤303;当判断的结果为否时,执行步骤304;
这里,可基于写请求中携带的数据页标识(如数据页的逻辑页号)在页区域中进行查找,查找是否存在与所述数据页标识匹配的数据页;若存在与数据页标识匹配的数据页,则可确定所述写请求在页区域命中;若不存在与数据页标识匹配的数据页,则可确定所述写请求未在页区域命中;
步骤303:在页区域中更新数据,即根据所述写请求携带的数据页标识从所述页区域中确定与所述数据页标识匹配的数据页,更新所述数据页以将数据写入数据页,以响应所述写请求;
步骤304:判断所述写请求是否在聚合区域中命中;当判断的结果为是时,执行步骤305;当判断的结果为否时,执行步骤306;
这里,可根据所述写请求携带数据页标识(例如逻辑页号)确定块标识,判断所述聚合区域的组列表链表中是否含有所述块标识,在所述聚合区域的组列表链表中含有所述块标识的情况下,或者在所述聚合区域的组列表链表中含有所述块标识、并且所述块标识对应的页列表链表中含有该数据页的情况下,则可确定所述写请求在所述聚合区域中命中;相应的,在所述聚合区域的组列表链表中不含有所述块标识的情况下,或者在所述聚合区域的组列表链表中含有所述块标识、并且所述块标识对应的页列表链表中不含有该数据页的情况下,则可确定所述写请求未在所述聚合区域中命中。
步骤305:将命中的数据页从聚合区域中迁移至页区域,以及在页区域中更新数据,即根据所述写请求携带的数据页标识从所述聚合区域中确定与所述数据页标识匹配的数据页,将该数据页迁移至页区域并更新所述数据页以将数据写入数据页,以响应所述写请求;
步骤306:判断页区域的存储空间是否已满;在判断的结果为是时,执行步骤308;在判断的结果为否时,执行步骤307;
步骤307:将数据页写入页区域;
步骤308:在页区域中选择目标数据页并剔除,剔除的目标数据页用于迁移至聚合区域中;
这里,可通过页级管理算法从页区域中选择至少一个数据页作为目标数据页;
步骤309:判断聚合区域的存储空间是否已满;在判断的结果为是时,执行步骤310至312;在判断的结果为否时,执行步骤312;
步骤310:在聚合区域中选择目标组节点单元;
这里,可基于组节点单元对应的第一参数(所述第一参数表征数据页数量)确定目标组节点单元;作为一种示例,可选择第一参数最大的组节点单元作为目标组节点单元;作为另一种示例,若第一参数最大的组节点单元的数量为至少两个,则选择其中干净页最多的组节点单元作为目标组节点单元;
步骤311:剔除目标组节点单元下的所有数据页;
这里,作为一种示例,若该目标组节点单元下的所有数据页均为干净页,则提出目标组节点单元下的所有数据页;作为另一种示例,若该目标组节点单元下的数据页含有脏页,则将该目标组节点单元下的脏页和干净页均顺序写入闪存中;
步骤312:根据目标数据页的逻辑页号确定块序号;
步骤313:判断聚合区域中与块序号对应的组节点单元是否存在;当判断的结果为是时,执行步骤314;当判断的结果为否时,执行步骤315;
步骤314:将目标数据页存储至聚合区域中组节点单元下的页列表链表管理,并且页数量加一;
步骤315:创建新的组节点单元,在所述组列表链表中添加所述新的组节点单元对应的块标识和第一参数的映射关系;将所述第一目标数据页存储至所述新的组节点单元对应的区域,以及将所述第一目标数据页的信息添加至所述新的组节点对应的新的页列表链表中,将所述新的组节点对应的第一参数加一。
在本发明实施例中,若写请求对应的数据页在页区域中命中,则将该数据页移动至LRU首端并更新数据;若写请求对应的数据页在聚合区域中命中,则将该数据页迁移至页区域并移动至LRU首端并更新数据。若写请求对应的数据页未在页区域和聚合区域中命中,则从闪存中读取数据页并存储至页区域中,且移动至LRU首端并更新数据。
图6为本发明实施例的固态硬盘缓存区管理方法的另一种应用示意图;如图6所示,最上方的方块代表从页区域中被剔除出的数据页,其中,LPN代表逻辑页号,白色的方块代表干净页,灰色的方块代表脏页。Page Count代表一个组节点单元中的数据页数量,脏页标识(Dirty Flag)表示组节点单元中是否含有脏页;作为一种示例,Dirty Flag=1则表示组节点单元中的数据页中含有脏页;Dirty Flag=0则表示组节点单元中的数据页中不含有脏页。虚线框代表一个组节点单元,所有组节点单元的信息结合构成一个组列表(GroupList)链表。
当LPN=2的数据页写入聚合区域中时,通过计算确定该数据页属于块序号(BlockNo)=0的组节点单元,则将LPN=2的数据页放入该组节点单元中,并将该组节点单元对应的Page Count和Dirty Flag分别修改为3和1。同理,通过计算确定LPN=4和LPN=10的数据页分别属于块序号(Block No)=1和块序号(Block No)=2的组节点单元,则分别将LPN=4和LPN=10的数据页放入对应的组节点单元中,并修改相应参数,即将块序号(Block No)=1的组节点单元对应的Page Count和Dirty Flag分别修改为4和1,将块序号(Block No)=2的组节点单元对应的Page Count和Dirty Flag分别修改为4和1。对于LPN=12的数据页,通过计算确定该数据页对应的块序号不在组列表(Group List)链表中,也即组列表(GroupList)链表中不存在对应的组节点单元,则新建组节点单元,对应的块序号(Block No)=3,将LPN=12的数据页放入块序号(Block No)=3的组节点单元中管理,并将该组节点单元对应的Page Count置为1,Dirty Flag置为0。
当页区域和聚合区域的存储空间已满的情况下,需要从聚合区域中选择目标组节点单元进行替换,则选择Page Count最大的组节点单元作为替换对象;如图6所示,此时块序号(Block No)=1和块序号(Block No)=2的组节点单元都含有4个数据页,但由于块序号(Block No)=1的组节点单元含有更多的干净页,则选择块序号(Block No)=1的组节点单元作为目标组节点单元。更进一步地,由于块序号(Block No)=1的组节点单元中含有脏页,则将块序号(Block No)=1的组节点单元中的所有脏页和干净页一起顺序写入(Sequential Flush)闪存(Flash Memory)中。
采用本发明实施例的技术方案,通过将固态硬盘的缓存区划分页区域和聚合区域,聚合区域用于存储页区域剔除的数据页,并且聚合区域中属于同一块标识的数据页聚合管理;本发明实施例的技术方案提出一种新的缓存区管理方案,实现了固态硬盘在命中率和擦除次数两方面达到了一定程度的均衡;并且由于命中率的提高,相应的存储系统响应时间会缩短,满足了云计算平台对于存储系统的要求。
本发明实施例还提供了一种固态硬盘缓存区管理装置。图7为本发明实施例的固态硬盘缓存区管理装置的组成结构示意图;如图7所示,所述装置包括:划分单元41和读写处理单元42;其中,
所述划分单元41,用于在固态硬盘的缓存区中划分页区域和聚合区域;所述聚合区域中包括至少一个组节点单元;不同的组节点单元对应不同的块标识;所述聚合区域中属于同一块标识的数据页聚合管理;
所述读写处理单元42,用于当接收到数据页的读请求或写请求时,查看所述页区域中是否命中所述读请求或写请求,在所述页区域未命中所述读请求或写请求的情况下,查看所述聚合区域中是否命中所述读请求或写请求,基于查看结果响应所述读请求或写请求。
在本发明的一种可选实施例中,所述读写处理单元42,还用于当接收到数据页的读请求时,查看所述页区域中是否命中所述读请求,在所述页区域命中所述读请求的情况下,基于所述读请求携带的数据页标识从所述页区域中读取与所述数据页标识匹配的数据页,以响应所述读请求;还用于在所述页区域未命中所述读请求的情况下,查看所述聚合区域中是否命中所述读请求,在所述聚合区域中命中所述读请求的情况下,从所述聚合区域中读取数据页;在所述聚合区域中未命中所述读请求的情况下,从所述固态硬盘的闪存中读取数据页。
在本发明的一种可选实施例中,所述读写处理单元42,还用于当接收到数据页的写请求时,在所述聚合区域中命中所述写请求的情况下,将命中的数据页从所述聚合区域中迁移至所述页区域中;在所述聚合区域中未命中所述写请求的情况下,查看所述页区域的存储空间是否已满,在所述页区域的存储空间未满的情况下,将所述写请求对应的数据页写入所述页区域。
在本发明的一种可选实施例中,所述读写处理单元42,还用于当所述页区域满足预设条件时,从所述页区域中选择第一目标数据页,从所述页区域剔除所述第一目标数据页,基于所述第一目标数据页的第一标识确定第一块标识,基于所述第一块标识将所述第一目标数据页存储至所述聚合区域。
在本发明的一种可选实施例中,所述读写处理单元42,用于在所述页区域的存储空间已满的情况下,确定所述页区域满足预设条件。
属于同一块标识的数据页通过页列表链表聚合管理;所述聚合区域中通过组列表链表管理每个组节点单元和块标识的第一映射关系;每个组节点单元还设置有表征对应于块标识的数据页数量的第一参数;
所述读写处理单元42,用于基于所述第一块标识查询所述第一映射关系;在所述第一映射关系中存在所述第一块标识对应的第一组节点单元的情况下,将所述第一目标数据页存储至所述第一组节点单元对应的区域,以及将所述第一目标数据页的信息添加至所述第一组节点单元对应的第一页列表链表中,将所述第一参数加一。
在本发明的一种可选实施例中,所述读写处理单元42,还用于在所述第一映射关系中不存在所述第一块标识对应的第一组节点单元的情况下,创建新的组节点单元,在所述组列表链表中添加所述新的组节点单元对应的块标识和第一参数的映射关系;将所述第一目标数据页存储至所述新的组节点单元对应的区域,以及将所述第一目标数据页的信息添加至所述新的组节点对应的新的页列表链表中,将所述新的组节点对应的第一参数加一。
在本发明的一种可选实施例中,所述读写处理单元42,还用于基于所述第一块标识将所述第一目标数据页存储至所述聚合区域之前,查看所述聚合区域的存储空间是否已满;在所述聚合区域的存储空间未满的情况下,基于所述第一块标识将所述第一目标数据页存储至所述聚合区域。
在本发明的一种可选实施例中,所述读写处理单元42,还用于在所述聚合区域的存储空间已满的情况下,在所述聚合区域中选择目标组节点单元;从所述目标组节点单元对应的所有数据页中选择第二目标数据页,对所述第二目标数据页进行处理,以使所述目标组节点对应的存储区域能够继续写入数据页。
在本发明的一种可选实施例中,所述读写处理单元42,用于在所述聚合区域的所有组节点单元中选择对应的第一参数最大的组节点单元作为目标组节点单元;在第一参数最大的组节点单元的数量为至少两个的情况下,确定至少两个组节点单元对应的所有数据页中干净页的数量,选择干净页数量最大的组节点单元作为目标组节点单元。
在本发明的一种可选实施例中,每个组节点单元还设置有表征对应的数据页中是否含有脏页的第二参数;
所述读写处理单元42,用于基于所述第二参数确定所述目标组节点单元对应的所有数据页中含有脏页时,将所述目标组节点单元对应的所有数据页写入所述固态硬盘的闪存中;或者,基于所述第二参数确定所述目标组节点单元对应的所有数据页中不含有脏页时,丢弃所述目标组节点对应的所有数据页中的所有干净页。
本发明实施例中,所述装置中的划分单元41和读写处理单元42,在实际应用中均可由中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital SignalProcessor)、微控制单元(MCU,Microcontroller Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)实现。
需要说明的是:上述实施例提供的固态硬盘缓存区管理装置在进行固态硬盘缓存区管理时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的固态硬盘缓存区管理装置与固态硬盘缓存区管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例还提供了一种固态硬盘缓存区管理装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明实施例所述方法的步骤。
可以理解,存储器可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
上述本发明实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,固态硬盘缓存区管理装置可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述方法。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例所述方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (9)

1.一种固态硬盘缓存区管理方法,其特征在于,所述方法包括:
在固态硬盘的缓存区中划分页区域和聚合区域;所述聚合区域中包括至少一个组节点单元;不同的组节点单元对应不同的块标识;所述聚合区域中属于同一块标识的数据页聚合管理;
当接收到数据页的读请求或写请求时,查看所述页区域中是否命中所述读请求或写请求,在所述页区域未命中所述读请求或写请求的情况下,查看所述聚合区域中是否命中所述读请求或写请求,基于查看结果响应所述读请求或写请求;
当所述页区域满足预设条件时,从所述页区域中选择第一目标数据页,从所述页区域剔除所述第一目标数据页,基于所述第一目标数据页的第一标识确定第一块标识,基于所述第一块标识将所述第一目标数据页存储至所述聚合区域;
其中,属于同一块标识的数据页通过页列表链表聚合管理;所述聚合区域中通过组列表链表管理每个组节点单元和块标识的第一映射关系。
2.根据权利要求1所述的方法,其特征在于,每个组节点单元还设置有表征对应于块标识的数据页数量的第一参数;
所述基于所述第一块标识将所述第一目标数据页存储至所述聚合区域,包括:
基于所述第一块标识查询所述第一映射关系;
在所述第一映射关系中存在所述第一块标识对应的第一组节点单元的情况下,将所述第一目标数据页存储至所述第一组节点单元对应的区域,以及将所述第一目标数据页的信息添加至所述第一组节点单元对应的第一页列表链表中,将所述第一参数加一。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述第一映射关系中不存在所述第一块标识对应的第一组节点单元的情况下,创建新的组节点单元,在所述组列表链表中添加所述新的组节点单元对应的块标识和第一参数的映射关系;
将所述第一目标数据页存储至所述新的组节点单元对应的区域,以及将所述第一目标数据页的信息添加至所述新的组节点对应的新的页列表链表中,将所述新的组节点对应的第一参数加一。
4.根据权利要求2或3所述的方法,其特征在于,所述基于所述第一块标识将所述第一目标数据页存储至所述聚合区域之前,所述方法还包括:
查看所述聚合区域的存储空间是否已满;
相应的,所述基于所述第一块标识将所述第一目标数据页存储至所述聚合区域,包括:
在所述聚合区域的存储空间未满的情况下,基于所述第一块标识将所述第一目标数据页存储至所述聚合区域。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在所述聚合区域的存储空间已满的情况下,在所述聚合区域中选择目标组节点单元;
从所述目标组节点单元对应的所有数据页中选择第二目标数据页,对所述第二目标数据页进行处理,以使所述目标组节点对应的存储区域能够继续写入数据页。
6.根据权利要求5所述的方法,其特征在于,所述在所述聚合区域中选择目标组节点单元,包括:
在所述聚合区域的所有组节点单元中选择对应的第一参数最大的组节点单元作为目标组节点单元;
在第一参数最大的组节点单元的数量为至少两个的情况下,确定至少两个组节点单元对应的所有数据页中干净页的数量,选择干净页数量最大的组节点单元作为目标组节点单元。
7.一种固态硬盘缓存区管理装置,其特征在于,所述装置包括:划分单元和读写处理单元;其中,
所述划分单元,用于在固态硬盘的缓存区中划分页区域和聚合区域;所述聚合区域中包括至少一个组节点单元;不同的组节点单元对应不同的块标识;所述聚合区域中属于同一块标识的数据页聚合管理;
所述读写处理单元,用于当接收到数据页的读请求或写请求时,查看所述页区域中是否命中所述读请求或写请求,在所述页区域未命中所述读请求或写请求的情况下,查看所述聚合区域中是否命中所述读请求或写请求,基于查看结果响应所述读请求或写请求;
所述读写处理单元,还用于当所述页区域满足预设条件时,从所述页区域中选择第一目标数据页,从所述页区域剔除所述第一目标数据页,基于所述第一目标数据页的第一标识确定第一块标识,基于所述第一块标识将所述第一目标数据页存储至所述聚合区域;
其中,属于同一块标识的数据页通过页列表链表聚合管理;所述聚合区域中通过组列表链表管理每个组节点单元和块标识的第一映射关系。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至6任一项所述方法的步骤。
9.一种固态硬盘缓存区管理装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6任一项所述方法的步骤。
CN201910277376.XA 2019-04-08 2019-04-08 一种固态硬盘缓存区管理方法和装置 Active CN111796757B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910277376.XA CN111796757B (zh) 2019-04-08 2019-04-08 一种固态硬盘缓存区管理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910277376.XA CN111796757B (zh) 2019-04-08 2019-04-08 一种固态硬盘缓存区管理方法和装置

Publications (2)

Publication Number Publication Date
CN111796757A CN111796757A (zh) 2020-10-20
CN111796757B true CN111796757B (zh) 2022-12-13

Family

ID=72805672

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910277376.XA Active CN111796757B (zh) 2019-04-08 2019-04-08 一种固态硬盘缓存区管理方法和装置

Country Status (1)

Country Link
CN (1) CN111796757B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327280B (zh) * 2021-12-29 2024-02-09 以萨技术股份有限公司 一种基于冷热分离存储的消息存储方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760101A (zh) * 2012-05-22 2012-10-31 中国科学院计算技术研究所 一种基于ssd 的缓存管理方法及系统
CN108762664A (zh) * 2018-02-05 2018-11-06 杭州电子科技大学 一种固态硬盘页级缓存区管理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760101A (zh) * 2012-05-22 2012-10-31 中国科学院计算技术研究所 一种基于ssd 的缓存管理方法及系统
CN108762664A (zh) * 2018-02-05 2018-11-06 杭州电子科技大学 一种固态硬盘页级缓存区管理方法

Also Published As

Publication number Publication date
CN111796757A (zh) 2020-10-20

Similar Documents

Publication Publication Date Title
CN106354745B (zh) 用于提供计算机装置的接口的方法和计算机装置
CN108804350B (zh) 一种内存访问方法及计算机系统
CN108459826B (zh) 一种处理io请求的方法及装置
US9965394B2 (en) Selective compression in data storage systems
US10739996B1 (en) Enhanced garbage collection
CN104246721B (zh) 存储系统、存储控制器及存储控制方法
US11263149B2 (en) Cache management of logical-physical translation metadata
Zhang et al. FlashKV: Accelerating KV performance with open-channel SSDs
US20170139825A1 (en) Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach
WO2021218038A1 (zh) 一种存储系统、内存管理方法和管理节点
Teng et al. LSbM-tree: Re-enabling buffer caching in data management for mixed reads and writes
CN109558084B (zh) 一种数据处理方法以及相关设备
CN103885728A (zh) 一种基于固态盘的磁盘缓存系统
JP6713934B2 (ja) 記憶装置及びその動作方法並びにシステム
US8572321B2 (en) Apparatus and method for segmented cache utilization
US20200225882A1 (en) System and method for compaction-less key-value store for improving storage capacity, write amplification, and i/o performance
US11630779B2 (en) Hybrid storage device with three-level memory mapping
CN111158602A (zh) 数据分层存储方法、读取方法、存储主机及存储系统
CN115794669A (zh) 一种扩展内存的方法、装置及相关设备
CN108664217B (zh) 一种降低固态盘存储系统写性能抖动的缓存方法及系统
CN111796757B (zh) 一种固态硬盘缓存区管理方法和装置
CN112015343A (zh) 存储卷的缓存空间管理方法、装置及电子设备
Chen et al. Co-optimizing storage space utilization and performance for key-value solid state drives
US20140359228A1 (en) Cache allocation in a computerized system
JP2012078939A (ja) 情報処理装置およびキャッシュ制御方法

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