CN113590045A - 数据分层式存储方法、装置及存储介质 - Google Patents

数据分层式存储方法、装置及存储介质 Download PDF

Info

Publication number
CN113590045A
CN113590045A CN202110885239.1A CN202110885239A CN113590045A CN 113590045 A CN113590045 A CN 113590045A CN 202110885239 A CN202110885239 A CN 202110885239A CN 113590045 A CN113590045 A CN 113590045A
Authority
CN
China
Prior art keywords
data block
storage
area
accessed data
determining
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.)
Granted
Application number
CN202110885239.1A
Other languages
English (en)
Other versions
CN113590045B (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 United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group 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 United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202110885239.1A priority Critical patent/CN113590045B/zh
Publication of CN113590045A publication Critical patent/CN113590045A/zh
Application granted granted Critical
Publication of CN113590045B publication Critical patent/CN113590045B/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请提供一种数据分层式存储方法、装置及存储介质,该方法包括:先获取被访问数据块,再确定分层式存储系统中是否存在该被访问数据块,若否,则将被访问数据块存储在内存中,若是,则确定被访问数据块的业务优先级,根据业务优先级,确定被访问数据块在分层式存储系统中的目标存储位置;最终在目标存储位置存储被访问数据块。通过上述数据分层式存储方法,根据数据块的被访问次数和业务优先级,确定数据块的存储位置,提高了存储系统对数据块的访问性能和性价比。

Description

数据分层式存储方法、装置及存储介质
技术领域
本申请涉及计算机领域,尤其涉及一种数据分层式存储方法、装置及存储介质。
背景技术
随着大数据时代来临,数据规模增长迅速。为了有效解决大数据的存储管理问题,目前出现了多种大规模分布式数据存储系统。为了满足大数据场景下读写操作的性能瓶颈,分层式存储系统成为当前研究的热点。
目前,在分层式存储系统下,当上一层可用存储空间不足时,会逐层向下查询可用存储空间,直到可用存储空间的大小可以满足需求即可进行该可用存储空间的分配。另外,固态硬盘特点为读写寿命短但是速度快,机械硬盘读写寿命长但故障频发。
因此,现有技术中未充分根据各个存储层的特点对其加以应用,从而无法充分保证其访问性能和性价比。
发明内容
为了解决上述问题,本申请提供了一种数据分层式存储方法、装置及存储介质,以保障数据的访问性能。
第一方面,本申请提供了一种数据分层式存储方法,包括:
获取被访问数据块;
确定分层式存储系统中是否存在被访问数据块;
若否,则将被访问数据块存储在内存中;
若是,则确定被访问数据块的业务优先级;根据业务优先级,确定被访问数据块在分层式存储系统中的目标存储位置;在目标存储位置存储被访问数据块。
一种可能的实施方式中,存储层包含第一区域,第一区域用于存储在对应存储层中访问次数小于访问次数阈值的数据块,将被访问数据块存储在内存中,包括:确定内存的第一区域中可用存储空间的大小是否大于或者等于被访问数据块的大小;若是,则基于第一区域对应的存储形式,将被访问数据块存储在可用存储空间中;若否,则基于第一区域对应的存储形式,将第一区域中已存储的数据块迁移至内存的下一层存储层,并将被访问数据块存储至第一区域的可用存储空间中。
一种可能的实施方式中,存储层包含第一区域和第二区域,第一区域用于存储在对应存储层中访问次数小于访问次数阈值的数据块,第二区域用于存储在对应存储层中访问次数大于或者等于访问次数阈值的数据块,根据业务优先级,确定被访问数据块在分层式存储系统中的目标存储位置,包括:若业务优先级大于优先级阈值,则基于第二区域对应的存储形式,确定被访问数据块在对应存储层的第二区域的目标存储位置;若业务优先级小于或者等于优先级阈值,则基于被访问数据块当前所在存储区域对应的存储形式,确定被访问数据块当前所在存储区域的目标存储位置。
一种可能的实施方式中,基于第二区域对应的存储形式,确定被访问数据块在分层式存储系统中对应存储层的第二区域的目标存储位置之前,还包括:确定被访问数据块的当前存储位置;若当前存储位置在第一区域,则确定对应存储层的第二区域中可用存储空间的大小大于或者等于被访问数据块的大小。
一种可能的实施方式中,还包括:若对应存储层的第二区域中可用存储空间的大小小于被访问数据块的大小,则基于对应存储层的第二区域对应的存储形式,将对应存储层的第二区域中已存储的数据块迁移至对应存储层的第一区域中。
一种可能的实施方式中,存储形式为栈,基于被访问数据块当前所在存储区域对应的存储形式,确定被访问数据块当前所在存储区域的目标存储位置,包括:确定被访问数据块的访问类型;当访问类型为写访问时,若被访问数据块在第一区域的栈顶,则在对应存储区域中确定被访问数据块的目标存储位置;若被访问数据块在第一区域,且被访问数据块不在第一区域的栈顶,则确定第一区域的栈顶为被访问数据块的目标存储位置;若被访问数据块在第二区域,则基于业务优先级,在第二区域确定被访问数据块的目标存储位置;当访问类型为读访问时,若被访问数据块在第一区域的栈顶,则基于业务优先级,在第二区域中确定被访问数据块的目标存储位置;若被访问数据块在第一区域,且被访问数据块不在第一区域的栈顶,则确定第一区域的栈顶为被访问数据块的目标存储位置;若被访问数据块在第二区域,则基于业务优先级,在第二区域中确定被访问数据块的目标存储位置。
一种可能的实施方式中,若被访问数据块在第一区域的栈顶,则基于业务优先级,在第二区域中确定被访问数据块的目标存储位置之前,还包括:确定对应存储层的第二区域中可用存储空间的大小大于或者等于被访问数据块的大小。
一种可能的实施方式中,还包括:若对应存储层的第二区域中可用存储空间的大小小于被访问数据块的大小,则将对应存储层的第二区域中已存储的数据块迁移至对应存储层的第一区域中。
一种可能的实施方式中,分层式存储系统中,内存的下一层存储层为固态硬盘,固态硬盘的下一层存储层为机械硬盘,若被访问数据块在第一区域的栈顶,则在对应存储区域中确定被访问数据块的目标存储位置,包括:若被访问数据块所在的存储层为固态硬盘,则确定位于被访问数据块下方相邻数据块的位置为目标存储位置;若被访问数据块所在的存储层为内存或机械硬盘,则基于业务优先级,在第二区域确定被访问数据块的目标存储位置。
一种可能的实施方式中,若存储层为内存或机械硬盘,则基于业务优先级,在第二区域确定被访问数据块的目标存储位置之前,还包括:确定对应存储层的第二区域中可用存储空间的大小大于或者等于被访问数据块的大小。
一种可能的实施方式中,还包括:若对应存储层的第二区域中可用存储空间的大小小于被访问数据块的大小,则将对应存储层的第二区域中已存储的数据块迁移至存储层的第一区域中。
第二方面,本申请提供一种数据分层式存储装置,包括:
获取模块,用于获取被访问数据块;
判断模块,用于确定分层式存储系统中是否存在被访问数据块;
第一存储模块,用于在判断模块的输出结果为否时,将被访问数据块存储在内存中;
确定模块,用于在判断模块的输出结果为是时,确定被访问数据块的业务优先级;根据业务优先级,确定被访问数据块在分层式存储系统中的目标存储位置;
第二存储模块,在目标存储位置存储被访问数据块。
一种可能的实施方式中,第一存储模块具体用于:确定内存的第一区域中可用存储空间的大小是否大于或者等于被访问数据块的大小;若是,则基于第一区域对应的存储形式,将被访问数据块存储在可用存储空间中;若否,则基于第一区域对应的存储形式,将第一区域中已存储的数据块迁移至内存的下一层存储层,并将被访问数据块存储至第一区域的可用存储空间中。
一种可能的实施方式中,第二存储模块具体用于:若业务优先级大于优先级阈值,则基于第二区域对应的存储形式,确定被访问数据块在对应存储层的第二区域的目标存储位置;若业务优先级小于或者等于优先级阈值,则基于被访问数据块当前所在存储区域对应的存储形式,确定被访问数据块当前所在存储区域的目标存储位置。
一种可能的实施方式中,第二存储模块还用于:确定被访问数据块的当前存储位置;若当前存储位置在第一区域,则确定对应存储层的第二区域中可用存储空间的大小大于或者等于被访问数据块的大小。
一种可能的实施方式中,还包括迁移模块,用于:若对应存储层的第二区域中可用存储空间的大小小于被访问数据块的大小,则基于对应存储层的第二区域对应的存储形式,将对应存储层的第二区域中已存储的数据块迁移至对应存储层的第一区域中。
一种可能的实施方式中,存储形式为栈,第二存储模块具体用于:确定被访问数据块的访问类型;当访问类型为写访问时,若被访问数据块在第一区域的栈顶,则在对应存储区域中确定被访问数据块的目标存储位置;若被访问数据块在第一区域,且被访问数据块不在第一区域的栈顶,则确定第一区域的栈顶为被访问数据块的目标存储位置;若被访问数据块在第二区域,则基于业务优先级,在第二区域确定被访问数据块的目标存储位置;当访问类型为读访问时,若被访问数据块在第一区域的栈顶,则基于业务优先级,在第二区域中确定被访问数据块的目标存储位置;若被访问数据块在第一区域,且被访问数据块不在第一区域的栈顶,则确定第一区域的栈顶为被访问数据块的目标存储位置;若被访问数据块在第二区域,则基于业务优先级,在第二区域中确定被访问数据块的目标存储位置。
一种可能的实施方式中,第二存储模块还用于:确定对应存储层的第二区域中可用存储空间的大小大于或者等于被访问数据块的大小。
一种可能的实施方式中,还包括迁移模块,用于:若对应存储层的第二区域中可用存储空间的大小小于被访问数据块的大小,则将对应存储层的第二区域中已存储的数据块迁移至对应存储层的第一区域中。
一种可能的实施方式中,第二存储模块具体用于:若被访问数据块所在的存储层为固态硬盘,则确定位于被访问数据块下方相邻数据块的位置为目标存储位置;若被访问数据块所在的存储层为内存或机械硬盘,则基于业务优先级,在第二区域确定被访问数据块的目标存储位置。
一种可能的实施方式中,第二存储模块还用于:确定对应存储层的第二区域中可用存储空间的大小大于或者等于被访问数据块的大小。
一种可能的实施方式中,还包括迁移模块,用于:若对应存储层的第二区域中可用存储空间的大小小于被访问数据块的大小,则将对应存储层的第二区域中已存储的数据块迁移至存储层的第一区域中。
第三方面,本申请提供一种电子设备,包括:
存储器和处理器;
存储器用于存储程序指令;
处理器用于调用所述存储器中的程序指令执行第一方面的数据分层式存储方法。
第四方面,本申请一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序指令,计算机程序指令被执行时,实现第一方面的数据分层式存储方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面的数据分层式存储方法。
本领域技术人员能够理解的是,本申请提供一种数据分层式存储方法、装置及存储介质,先获取被访问数据块,再确定分层式存储系统中是否存在被访问数据块,若否,则将被访问数据块存储在内存中,若是,则确定被访问数据块的业务优先级,再根据业务优先级,确定被访问数据块在分层式存储系统中的目标存储位置,并在目标存储位置存储被访问数据块。通过上述方法,根据数据块的被访问次数和业务优先级,确定数据块的存储位置,以提高存储系统对数据块的访问性能和性价比。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的应用场景示意图;
图2为本申请一实施例提供的数据分层式存储方法的流程图;
图3为本申请又一实施例提供的内存和机械硬盘的数据分层式存储方法的流程图;
图4为本申请又一实施例提供的固态硬盘的数据分层式存储方法的流程图;
图5至图13为本申请实施例提供的分层式存储系统的存储结构示例图;
图14为本申请一实施例提供的数据分层式存储装置的结构示意图;
图15为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
例如,对于机械硬盘、固态硬盘和内存的分层式大数据分层式存储系统,其常用的数据访问模式如表1所示:
表1
Figure BDA0003193786680000061
Figure BDA0003193786680000071
针对相应数据访问模式,当前数据分层存储的主要调度机制和策略如下:
1、最近最少使用(Less Recently Used,LRU)算法:每次替换最久没有使用或访问的数据块;
2、最近最少频率使用(Less Recently/Frequently Used,LRFU)算法:结合LRU和LFU(Less Frequently Used)策略,当替换发生时,LRFU替换具有较小CRF(CombinedRecency and Frequency)的数据块,CRF表示数据块会在不久的将来被访问到的概率大小,该概率和数据块访问的最近性和访问频率有关;
3、最新低相关性(Low Inter-reference Recency Set,LIRS)算法:通过使用两次访问同一个数据块的距离作为尺度动态地对访问数据块排序,从而进行替换选择。和LRFU不同,LIRS以最大访问间隔作为指标替换数据块;
4、可适应代替堆栈(Adaptive Replacement Cache,ARC)算法:作为LIRS策略的一个改进,将每个存储层划分为两个部分,分别存储只访问过一次的数据块和访问次数超过一次的数据块。但和LIRS不同的是,ARC根据数据访问工作流自动调整两个部分大小以提高命中率。
现有分层式存储系统的调度机制和策略至少存在如下缺点:
1)未较好考虑成本问题,对于分层的内存、固态硬盘和机械硬盘存储系统,应根据需求重要性充分考虑性价比。
2)未充分考虑机械硬盘和固态硬盘的特点,机械硬盘读写寿命长但故障频发、固态硬盘读写寿命短但速度快,需要和数据本身读写特性,进行数据存储调度。
也就是说,采用目前的分层式存储系统无法保障数据的访问性能。
基于上述问题,本申请的实施例提供了一种数据分层式存储方法、装置及存储介质,通过对业务数据进行重要程度划分,保障对优先级高业务的数据访问性能。
图1为本申请一实施例提供的应用场景示意图。如图1所示,本应用场景中,外部设备对电子设备进行数据访问,该数据访问可以具体为读数据请求或写数据请求,电子设备内部采用分层式存储系统进行数据的存储。该示例中,分层式存储系统包含有内存110、固态硬盘(Solid State Disk或Solid State Drive,简称SSD)120以及机械硬盘(或称为“硬盘驱动器”,Hard Disk Drive,简称HDD)130。在该分层式存储系统中,首次存储的数据放在内存110中,并根据其访问次数和业务优先级进行数据存储位置的迁移,例如从内存110迁移至固态硬盘120或机械硬盘130中。
需要说明的是,图1仅是本申请实施例提供的一种应用场景的示意图,本申请实施例不对图1中包括的设备进行限定,也不对图1中设备之间的位置关系或分层式存储系统的结构进行限定。示例地,电子设备还可以具体为服务器。
接下来,通过具体实施例介绍数据分层式存储方法。
图2为本申请一实施例提供的数据分层式存储方法的流程图。本申请实施例提供一种数据分层式存储方法,应用于采用分层式存储系统进行数据存储的电子设备,该电子设备将数据块存储至分层式存储系统中。其中,分层式存储系统包括至少两个存储层,此至少两个存储层包含内存。可选地,至少两个存储层还可以包含机械硬盘(或称为“硬盘驱动器”,Hard Disk Drive,简称HDD)和/或固态硬盘(Solid State Disk或Solid StateDrive,简称SSD)中的至少一种。另外,对于每个存储层中,存储空间的大小,本申请不予限制;且,本申请不限制例如固态硬盘等硬盘的个数。
如图2所示,该数据分层式存储方法包括以下步骤:
S201、获取被访问数据块。
在实际应用中,被访问数据块可以是写访问对应的数据块,此时,被访问数据块为即将写入的数据块;或者,被问数据块可以是读访问对应的数据块,该情况下,被访问数据块为即将读取的数据块。
示例地,在接收到一访问请求后,解析该访问请求,即可获得该访问请求中携带的被访问数据块。
考虑到该被访问数据块可以为首次被访问的数据块,对于首次被访问的数据块,其还未存储在分层式存储系统中;或者,该被访问数据块也可以是非首次被访问的数据块,对于再次被访问的数据块,其已经存储在分层式存储系统中。因此,基于该情况,后续步骤从分层式存储系统中是否存在被访问数据块进行区别说明。
S202、确定分层式存储系统中是否存在被访问数据块。
获取被访问数据块之后,在分层式存储系统中查找该数据块,从而确定该数据块是否已经在存储在该分层式存储系统中。示例地,在内存中的地址映射表中搜索该数据块,若在地址映射表中搜索到该数据块,表明该数据块已经在存储在该分层式存储系统中;若在地址映射表中未搜索到该数据块,表明该数据块未存储在该分层式存储系统中。
若被访问数据块未存储在分层式存储系统中,则执行S203;若被访问数据块已存储在分层式存储系统中,则执行S204,进一步确定该被访问数据块具体所在的存储层和存储位置。
S203、将被访问数据块存储在内存中。
考虑到近期访问过的数据块可能被再次访问的概率较大,因此,对于第一次被访问的数据块,首先在内存中进行缓存,以提升该数据块被再次访问时的访问性能。
其中,内存为该分层式存储系统中的一个存储层。
S204、确定被访问数据块的业务优先级;根据业务优先级,确定被访问数据块在分层式存储系统中的目标存储位置;在目标存储位置存储被访问数据块。
对于已经存储在分层式存储系统中的被访问数据块,当其被再次访问时,需要基于该被访问数据块的业务优先级,重新确定该被访问数据块在分层式存储系统中的目标存储位置。因此,该步骤的目的在于根据被访问数据块的业务优先级,确定被访问数据块在分层式存储系统中的目标存储位置,其原则是:对于业务级别越高的数据,应优先让其使用性能更好的存储介质。
本申请实施例中,在获取被访问数据块后,首先确定分层式存储系统中是否存在被访问数据块,若分层式存储系统中不存在被访问数据块,则将被访问数据块存储在内存中;若分层式存储系统中存在被访问数据块,则确定被访问数据块的业务优先级,再根据业务优先级,确定被访问数据块在分层式存储系统中的目标存储位置,并在目标存储位置存储被访问数据块。通过上述方法,根据数据块的被访问次数和业务优先级,确定数据块的存储位置,以提高存储系统对数据块的访问性能和性价比。
对于如上所叙述的存储层,可以包含第一区域,该第一区域用于存储在对应存储层中访问次数小于访问次数阈值的数据块。示例地,访问此处阈值可以设置为1,但本申请实施例不对其进行限制,具体可以根据实际需求或历史经验进行设置。因此,内存可以包含第一区域。
基于上述,S203、将被访问数据块存储在内存中,可以具体包括:确定内存的第一区域中可用存储空间的大小是否大于或者等于被访问数据块的大小;若是,则基于第一区域对应的存储形式,将被访问数据块存储在可用存储空间中;若否,则基于第一区域对应的存储形式,将第一区域中已存储的数据块迁移至内存的下一层存储层,并将被访问数据块存储至第一区域的可用存储空间中。
该实施例中,将被访问数据块存储于内存中时,需要先确定内存中的第一区域的可用存储空间是否可以容纳该被访问数据块,若可以容纳该被访问数据块,则根据第一区域的存储形式,将被访问数据块存储在第一区域中。示例地,存储形式可以是从底部向上存储,即被访问数据块从第一区域的底部进入,例如栈;或者,存储形式可以是从顶部向下存储,即被访问数据块从第一区域的顶部进入,例如堆。作为一种示例,当存储形式为从底部向上存储时,若底部存储有数据块A,当有新的被访问数据块B时,还是由第一区域的底部进入,并向上推数据块A。
若可用空间无法容纳该被访问的数据块,则根据存储形式,将第一区域内的数据块进行淘汰,即迁移至内存的下一层存储层;将被访问数据块存储至第一区域的可用存储空间中。示例地,淘汰的方式可以基于如上所述的数据访问模式进行淘汰,例如LRFU或者LRU等;或者,淘汰的方式可以是从第一区域的底部向上进行淘汰。对于该被淘汰的数据块,其对于该下一层存储层来说,即为该下一层存储层的被访问数据块,需要在该下一层存储层中确定该被访问数据块的目标存储位置。
本申请实施例中,首次存储被访问数据块时,将其存储在内存的第一区域,在存储之前先确定内存的第一区域中可用存储空间的大小是否大于或者等于被访问数据块的大小,若是,则基于第一区域对应的存储形式,将被访问数据块存储在可用存储空间中,若否,则基于第一区域对应的存储形式,将第一区域中已存储的数据块迁移至内存的下一层存储层,并将被访问数据块存储至第一区域的可用存储空间中。这种方法将被访问数据块存储在运算速度较快的内存中,且在内存的第一区域空间不足时,基于内存中第一区域对应的存储形式,将第一区域中例如长时间不被访问的数据块或低频率访问的数据块存储到下一存储层,为被访问数据块提供可用存储空间,在保证数据访问性能的同时,提高了存储空间的利用率。
在上述实施例的基础上,进一步地,存储层还包含第二区域,该第二区域可以用于存储在对应存储层中访问次数大于或者等于访问次数阈值的数据块。更进一步地,S203、根据业务优先级,确定被访问数据块在分层式存储系统中的目标存储位置,可以包括:若业务优先级大于优先级阈值,则基于第二区域对应的存储形式,确定被访问数据块在对应存储层的第二区域的目标存储位置。和/或,S203、根据业务优先级,确定被访问数据块在分层式存储系统中的目标存储位置,可以包括:若业务优先级小于或者等于优先级阈值,则基于被访问数据块当前所在存储区域对应的存储形式,确定被访问数据块当前所在存储区域的目标存储位置。
对于分层式存储系统而言,存在已知的优先级阈值,用于与每个被访问数据块的业务优先级进行比较,从而判断其被访问的优先程度,对于业务优先级大于优先级阈值的被访问数据块,根据第二区域的存储形式,将其存在在对应存储层的第二区域中。对于业务优先级小于或者等于优先级阈值的被访问数据块,基于被访问数据块当前所在存储区域的存储形式,确定该被访问数据块在对应存储区域的目标存储位置。
一些实施例中,对于被访问数据块的业务优先级大于优先级阈值这种情况,在基于第二区域对应的存储形式,确定被访问数据块在分层式存储系统中对应存储层的第二区域的目标存储位置之前,数据分层式存储方法还可以包括:确定被访问数据块当前的存储位置,若被访问数据块在第一区域,则确定对应存储层的第二区域中可用存储空间的大小大于或等于被访问数据块的大小。
可选地,数据分层式存储方法还可以包括:若对应存储层的第二区域中可用存储空间的大小小于被访问数据块的大小,则基于对应存储层的第二区域对应的存储形式,将对应存储层的第二区域中已存储的数据块迁移至对应存储层的第一区域中。
由于当被访问数据块的业务优先级大于优先级阈值时,需要将被访问数据块存储在第二区域中,因此需要确定第二区域的空间是否足够。可选地,先确定被访问数据块的当前存储位置,若当前存储位置在第二区域,则将被访问数据块存储在第二区域的顶部;若当前存储位置在第一区域中,则确定对应存储层的第二区域的可用存储空间的大小,若第二区域的可用存储空间大小大于或等于被访问数据块的大小,则将被访问数据块存储在对应存储层的第二区域的顶部,若对应存储层中的第二区域中可用存储空间的大小小于被访问数据块的大小,需要根据具体的存储形式,将第二区域中已经存储的数据迁移至第一区域中。示例地,当存储形式为栈时,数据迁移可以是从第二区域中的底部取出数据块,并将该数据块存储在第一区域的底部。当空出对应存储层的第二区域的存储空间后,将被访问数据块存储在第二区域的顶部。
本申请实施例中,通过将存储层划分为第一区域和第二区域,以将数据块访问次数和业务优先级不同的数据区分开来,有效的利用存储层中第一区域和第二区域的空间,为业务优先级高的被访问数据块提供了更高效的访问性能。
一些实施例中,在对业务优先级小于优先级阈值的被访问数据块进行存储时,需要根据访问类型对被访问数据块进行不同的处理。示例地,当存储形式是栈时,上述基于被访问数据块当前所在存储区域对应的存储形式,确定被访问数据块当前所在存储区域的目标存储位置,可以进一步包括:
确定被访问数据块的访问类型;
当访问类型为写访问时,若被访问数据块在第一区域的栈顶,则在对应存储区域中确定被访问数据块的目标存储位置。若被访问数据块在第一区域,且被访问数据块不在第一区域的栈顶,则确定第一区域的栈顶为被访问数据块的目标存储位置。若被访问数据块在第二区域,则基于业务优先级,在第二区域确定被访问数据块的目标存储位置;
或者,当访问类型为读访问时,若被访问数据块在第一区域的栈顶,则基于业务优先级,在第二存储区域中确定被访问数据块的目标存储位置;若被访问数据块在第一区域,且被访问数据块不在第一区域的栈顶,则确定第一区域的栈顶为被访问数据块的目标存储位置;若被访问数据块在第二区域,则基于业务优先级,在第二区域确定被访问数据块的目标存储位置。
需要说明的是,本申请任一实施例中,存储形式包括但不限于栈。
访问类型为写访问时,若被访问数据块存储于第一区域的栈顶,则需要根据其所在存储层来确定其目标存储位置;若被访问数据块存储于第一区域的非栈顶,则将该被访问数据块存储至第一区域的栈顶;若被访问数据块存储在第二区域,则基于该数据块的具体业务优先级,在第二区域中确定其目标存储位置,并将其存储在相应的位置上。示例地,通过如下公式,可以确定被访问数据块的业务优先级和其在第二区域的目标存储位置的对应关系:
Figure BDA0003193786680000131
其中,D为在第二区域目标存储位置距离栈顶的距离,α为业务优先级的值。该示例中,当业务优先级为1时,目标存储位置距离栈顶的距离为2,当业务优先级为2时,目标存储位置距离栈顶的距离为1。
访问类型为读访问时,若被访问数据块存储于第一区域的栈顶,则根据业务优先级,将被访问数据块存储在第二区域;若被访问数据块存储在第一区域的非栈顶,则将其存储到第一区域的栈顶;若被访问数据块存储在第二区域,则需要基于该数据块的具体业务优先级,重新调整该数据块在第二区域的存储位置。读访问中,当被访问数据块存储于第一区域的栈顶或当被访问数据块存储在第二区域时,其确定目标存储位置的方式和上述方法一致,即根据上述公式,确定被访问数据块在第二区域的具体目标存储位置,此处不再赘述。
更进一步地,对于读访问的情况,若被访问数据块在第一区域的栈顶,则基于业务优先级,在第二区域中确定被访问数据块的目标存储位置之前,数据分层式存储方法还可以包括:确定对应存储层的第二区域中可用存储空间的大小大于或者等于被访问数据块的大小。
另外,数据分层式存储方法还可以包括:若对应存储层的第二区域中可用存储空间的大小小于被访问数据块的大小,则将对应存储层的第二区域中已存储的数据块迁移至对应存储层的第一区域中。
对于存储在第一区域栈顶的被访问数据块,需要确认第二区域的可用存储空间是否充足,若可用存储空间充足,则将被访问数据块保存在第二区域,若可用存储空间不足,则需要将第二区域中的数据块迁移至第一区域中。具体地,其迁移方法可以是从第二区域中的底部取出数据块,并从第一区域的底部进入,将该数据块存储在第一区域的底部。当空出对应存储层的第二区域的存储空间后,将被访问数据块存储在第二区域的顶部。
在前文中叙述过,当访问类型为写访问时,若被访问数据块存储于第一区域的栈顶,需要根据其所在存储层来确定其目标存储位置,这里区分存储层进行解释说明。示例地,在分层式存储系统中,内存的下一层存储层可以是固态硬盘,固态硬盘的下一层存储层可以是机械硬盘,该情况下,若被访问数据块在第一区域的栈顶,则在对应存储区域中确定被访问数据块的目标存储位置,可以进一步包括:若被访问数据块所在的存储层为固态硬盘,则确定位于被访问数据块下方相邻数据块的位置为目标存储位置;若被访问数据块所在的存储层为内存或机械硬盘,则基于业务优先级,在第二区域确定被访问数据块的目标存储位置。
当存储层为固态硬盘时,则确定位于被访问数据块下方相邻数据块的位置为目标存储位置。具体地,将该被访问数据块存储于其下方相邻数据块的位置,并将其下方相邻数据块存储于当前被访问数据块的位置,换言之,即将两个数据块调换位置。另外,该步骤可以多次进行,若上述被访问数据块经过多次调换,最终存储位置为第二区域的底部时,当再次需要进行调换操作时,将被访问数据块存储到下一层的存储层中。具体地,被访问数据块存储在下一层存储层的第一区域中,并从第一区域的底部进入。
当存储层为机械硬盘或内存时,则是基于业务优先级,在第二区域确定被访问数据块的目标存储位置。示例地,根据如下公式确定被访问数据块的目标存储位置:
Figure BDA0003193786680000141
其中,D为在第二区域目标存储位置距离栈顶的距离,α为业务优先级的值。示例地,当业务优先级为1时,目标存储位置距离栈顶的距离为2,当业务优先级为2时,目标存储位置距离栈顶的距离为1。
同样地,对于上述若存储层为内存和/或机械硬盘,则基于业务优先级,在第二区域确定被访问数据块的目标存储位置之前,还可以包括:确定对应存储层的第二区域中可用存储空间的大小大于或者等于被访问数据块的大小。
另外,若对应存储层的第二区域中可用存储空间的大小小于被访问数据块的大小,则将对应存储层的第二区域中已存储的数据块迁移至存储层的第一区域中。
对于存储在内存或机械硬盘中第一区域栈顶的被访问数据块,同样地,还是需要先确认第二区域的可用存储空间是否充足,若可用存储空间充足,则将被访问数据块保存在第二区域,若可用存储空间不足,则需要将第二区域中的数据块迁移至第一区域中,具体地,其迁移方法可以是从第二区域中的底部取出数据块,并从第一区域的底部进入,存储在第一区域的底部。当腾出对应存储层的第二区域的存储空间后,将被访问数据块存储在第二区域的顶部。
本申请实施例中,通过对数据访问类型进行读和写的区分,在固态硬盘中,将多次访问类型为写的数据块进行调换,最终将其存储到下一层存储层机械硬盘中,由于固态硬盘读写寿命短,机械硬盘读写寿命长,因此有效的提高了固态硬盘的使用寿命。
由于上述方法中,当访问类型为写访问时,在分层式内存系统中,内存和机械硬盘的处理方式和固态硬盘的处理方式不同,如图3所示,图3为本申请又一实施例提供的内存和机械硬盘的数据分层式存储方法的流程图,由于前文中可以得知,内存和机械硬盘可以不对读和写访问专门加以区分,因此本实施例的流程图中不强调读和写的具体访问方式。
S301、数据块进入存储层。
数据块进入该存储层即为数据块首次被存储,即该存储层不存在该数据块。
S302、判断T2栈可用存储空间是否足够。
前文已经叙述,首次存储数据块时,将其存储在第一区域,并以栈的形式存储,其中第一区域可以是T2栈,本申请不对其命名方式加以限定。
当数据块进入存储层,需要被存储在T2栈中,因此先需要判断T2栈的空间是否充足。
若T2栈空间不足,则执行步骤S303、需要先淘汰T2栈底的数据块。
对于堆栈T2,当T2栈空间不足时,从栈底开始从底向上进行数据块淘汰,将该数据块置为EVICTED,并放入下一层存储中。
若T2栈空间足够,S304、将其存储在T2栈的栈底。
当有数据块到存储层,且T2栈的空间足够,即T2栈可以容纳该数据块,将数据块标记为T2_MOVED状态,并存放在T2栈的栈底。
S305、数据块再次被访问。
对于数据块已经存在于该分层式存储系统的情况,需要进一步判断其业务优先级和优先级阈值的关系。
S306、判断被访问数据块的业务优先级是否大于优先级阈值。
S307、判断T1栈的空间是否足够。
若被访问数据块的业务优先级大于优先级阈值且T1栈空间足够,则执行步骤S308、将其存储在T1栈的栈顶。
对于如前叙述的第二区域,本申请中可以是T1栈,并不对命名加以限定。
T1栈空间足够的情况下,将数据块设置为T1_RESIDENT状态,放入到T1栈的栈顶。
若被访问数据块的业务优先级大于优先级阈值但T1栈空间不足,则执行步骤S309、将T1栈的数据块迁移至T2栈。
若第二区域(T1栈)可用存储空间不足,将第二区域中的数据块迁移至第一区域(T2栈)中。
具体地,当T1栈的空间不足时,从T1栈底取出数据块,如果该数据块状态为T2_MOVED,则将该数据块状态设置为EVICTED,并放入到T2栈的栈底;如果数据块状态为T1_RESIDENT,则将该数据块状态设置为T2_MOVED,并插入到T1栈底,其中EVICTED状态即为驱逐状态。
若被访问数据块的业务优先级小于优先级阈值,执行步骤S310、将该数据块存储在T2栈的栈顶。
如果数据块的业务优先级低于优先级阈值,则将数据块存储到T2的栈顶。
S311、处于T2栈顶的数据块再次被访问。
当处于T2栈顶的数据块如果处于T2_MOVED状态且再次被访问时,需要判断T1栈的存储空间是否足够。
S312、判断T1栈的存储空间是否足够。
若T1栈存储空间足够,执行步骤S313、将数据块存储到T1栈的对应位置。
若T1栈空间足够,先将数据块设置为T1_RESIDENT状态,并根据业务优先级进行插入到T1栈中,数据块插入的位置与T1栈顶的距离计算公式为:
Figure BDA0003193786680000171
其中,D为在第二区域目标存储位置距离栈顶的距离,α为业务优先级的值。
若T1栈存储空间不足,执行步骤S314、需要将T1栈的数据块迁移至T2栈。
该步骤与S309步骤具体处理方式相同,此处不再赘述。
还需要说明的是,对于T1栈中的数据块,如果再次被访问,则将数据块设置为T1_RESIDENT,如果业务优先级高于阈值,则放入栈顶;如果业务优先级不足,则根据业务优先级进行插入到T1栈中,数据块插入的位置与T1栈顶的距离计算公式如步骤S313中所示。另外,对于T1栈,如果T1栈的预留空间少于一定阈值a时,将阈值之下的数据块都标记为T2_MOVED,一般地,该阈值a可以是0个数据块、1个数据块或两个数据块。
对于固态硬盘的数据存储方式,需要对访问类型加以区分。图4为本申请又一实施例提供的固态硬盘的数据分层式存储方法的流程图。如图4所示,数据分层式存储方法包括:
S401、数据块进入固态硬盘所在存储层。
当数据块进入固态硬盘所在的存储层时,对读和写两种访问方式进行区分。
S402、判断T2栈可用存储空间是否足够。
若T2栈空间不足,执行步骤S403、需要先淘汰T2栈底的数据块。
若T2栈空间足够,执行步骤S404、将其存储在T2栈的栈底。
S405、数据块再次被访问。
S406、判断被访问数据块的业务优先级是否大于优先级阈值。
S407、判断T1栈的空间是否足够。
若被访问数据块的业务优先级大于优先级阈值且T1栈空间足够,执行步骤S408、将其存储在T1栈的栈顶。
若被访问数据块的业务优先级大于优先级阈值但T1栈空间不足,执行步骤S409、将T1栈的数据块迁移至T2栈。
若被访问数据块的业务优先级小于优先级阈值,执行步骤S410、将该数据块存储在T2栈的栈顶。
上述步骤与步骤S302至S310处理方式相同。
S411、处于T2栈顶的数据块再次被访问。
对于固态硬盘而言,当T2栈顶的数据块被再次访问时,需要判断读写类型。
S412、判断被访问数据块的访问类型是否为读。
S413、判断T1栈可用空间是否足够。
若访问类型为读且T1栈可用空间足够,执行步骤S414、将其存储于T1栈的栈顶。
若访问类型为读但T1栈可用空间不足,执行步骤S415、将T1栈的数据块迁移至T2栈。
若访问类型不为读,即为写,则执行步骤S416、将该数据块与其它数据块置换。
具体地,数据块在T2栈中的位置和下一位交换,且如果下一位数据块状态为EVICTED,则将数据块位置交换的同时将其状态置为EVICTED;如果数据块A处于T2栈底,则将该数据块状态设为EVICTED,并将数据块A从该存储层删除。
另外,在固态硬盘中,对于T1栈中的数据块,当再次被访问,如果业务优先级高于阈值,则放入栈顶。如果业务优先级不足,当对该数据块访问为写时,则数据块和T1栈中下一个数据块交换位置,如果数据块已经是栈底,则将数据块标记为T2_MOVED状态,并放入T2的栈顶,当对该数据块访问为读时,则根据步骤S410的公式重新计算后,调整其在T1栈中的位置,不难发现,在固态硬盘中,将多次被访问的数据多次调整位置,先从T1栈淘汰至T2栈,并从T2栈淘汰至下一层存储层(机械硬盘)中,保障了固态硬盘的读写寿命。
同样地,对于堆栈T1,如果T1栈的预留空间少于一定阈值a时,将阈值之下的数据块都标记为T2_MOVED。
本申请中,通过对业务数据进行重要程度划分,结合不同存储介质的特性,来对分层缓存机制和策略进行调整,优先保障重要业务数据,同时对写入频繁数据,调度到机械硬盘中,以降低对固态硬盘的写入磨损。一个具体实施步骤如下:
假设有业务1、业务2、业务3,优先级从低到高分别为1、2、3,其包含的数据块分别有[A,B,C,D]、[E,F,G,H]、[I,J],每个数据块的大小均为512MB。存储系统的缓存配置如下表所示,且内存、固态硬盘、机械硬盘中的T1栈和T2栈大小相同即分别为1GB、1.5GB、2GB。
介质 容量
内存 2GB
SSD 3GB
HDD 4GB
假设数据访问模式如下[I-读,J-写,I-读,J-写,A-读,B-读,C-读,D-写,E-读,F-写,B-读,A-读,C-写,H-读,E-写,E-写,E-写,E-写],业务的优先级阈值α=2,内存、固态硬盘和机械硬盘的T1栈空间预留值a分别为0个数据块、1个数据块、2个数据块
上述步骤中位于T2栈的数据块的状态为T2_MOVED,在图5至13中还可以记为T2_移动,位于T1栈的数据块的状态为T1_RESIDENT,在图5至13中可以记为T1_停留,被淘汰的数据块的状态为EVICTED,在图5至13中可以记为被丢弃。
步骤1:对[I-读,J-写,I-读,J-写,A-读,B-读]进行处理,因为数据块I和J所属业务优先级为3,高于阈值2,则首次访问会保存在内存存储层的T2栈底,再次访问时会保存到T1栈中,且因为J最后访问,则J保存在T1栈顶,且T1栈数据的状态为T1_RESIDENT,对于数据块A和B,因为属于业务1,其不高于阈值,则优先保存在T2栈,且A先访问,B后访问,因此B在T2栈底,A在B的上方,且A和B皆为T2_MOVED状态,结果如图5所示。
步骤2:对[C-读,D-写,E-读]进行处理,数据块C属于业务1,业务优先级不高于优先级阈值,所以需要放入内存的T2栈中,但因为T2栈已经满了,所以按照流程,将栈底数据块B进行淘汰,将数据块B放入下一层存储,按照规则放入到固态硬盘的T2栈中,同时数据块C会置入内存的T2栈底;数据块D属于业务1,会将内存T2栈中的数据块C淘汰,数据块C同样进入固态硬盘的T2栈中;按照规格对E-读进行处理后,数据块E将淘汰位于T2栈底的数据块D,将数据块D淘汰至固态硬盘的T2栈底中。上述所有数据块在各个存储层T2栈中的状态为T2_MOVED,各层缓存分布如图6所示。
步骤3:执行对数据块F写时,因为数据块F属于业务2,业务优先级不高于优先级阈值2,则会替换内存T2栈中的E,但是固态硬盘中T2空间不足,会优先淘汰T2栈的栈底数据块D,数据块D进入到机械硬盘的T2栈中,结果如图7所示。
步骤4:执行对数据块B读时,因为B所属业务为1,业务优先级低于阈值,为1,且数据块为再次访问且数据块B位于固态硬盘T2栈的栈顶,因此根据前文所述方法,基于公式
Figure BDA0003193786680000201
需要说明的是,位于栈顶的数据块距离栈顶的距离为1,因此可知数据块B应该存储于固态硬盘T1栈中距离栈顶距离为2的位置,T2栈中的C、E数据块依次填充空地,结果如图8所示。
步骤5:执行对数据块A读时,因为A属于业务1,业务优先级低于阈值,数据块A位于内存的T2栈的栈顶且数据块A为再次被访问,因此根据上述方法,基于步骤4中的公式计算后,应将数据块A插入到距离栈顶为2的地方,由于内存中的T1栈已经满了,因此需要将T1栈中栈底的数据块I淘汰至T2栈底,并将数据块A存储于T1栈的对应位置。结果如图9所示。
步骤6:执行数据块C写入,由于数据块C位于固态硬盘的T2栈顶,且数据块C为再次被访问,访问类型为写,此时根据前文所述方法,应该将数据块C与数据块E交换位置。结果如图10所示。
步骤7:执行数据块H-读,H为首次访问,应进入内存的T2栈的栈底,由于内存中的T2栈已经满了,因此需要将T2栈底的数据块I淘汰至下一层固态硬盘的T2栈中,并将数据块H存储于内存的T2栈的栈底。执行数据块E-写,因为E所属业务不高于阈值,且E为T2_MOVED状态位于固态硬盘的T2栈的栈顶,访问类型为写且为再次访问,因此E和其下一个数据块C进行位置交换。结果如图11所示。
步骤8:执行[E-写,E-写],数据块E之前已经调换过一次位置,该步骤可以多次执行,当数据块E被再次进行两次写的操作时,执行第一次写操作时,数据块E与数据块I调换位置,执行第二次写操作时,由于数据块E位于T2栈的栈底,因此数据块将被淘汰至机械硬盘的T2栈的栈底,同时标记其状态为T2_MOVED状态,结果如图12所示。
步骤9:执行E-写,因为E所属业务优先级不高于阈值,且位于机械硬盘的T2栈的栈底,其状态为T2_MOVED状态,因此将其存储于T2栈的栈顶,同时数据块D填充空地部分,结果如图13所示。
综上,可以看到对于优先级高的业务3,其数据块I和J保留在内存缓存中,保证对其访问性能。对于业务1和业务2,对于写频繁的数据块E,逐步从固态硬盘中移动到机械硬盘中,降低其频繁写对固态硬盘的写入磨损。
通过本实施例,可得知本申请中数据分层式存储方法的优点为:
对业务数据进行重要程度划分;在不同缓存层次上设置堆栈,例如T1和T2,优先满足数据优先级高的性能;对于缓存堆栈T1和T2,如果数据块写入操作过多,会逐步从T1栈迁移到T2栈,进而从该层存储下移到下一层存储中,以减少对写入寿命相对短的存储介质的写入磨损。
图14为本申请一实施例提供的装置的结构示意图,如图14所示:
获取模块1401,用于获取被访问数据块;
判断模块1402,用于确定分层式存储系统中是否存在被访问数据块;
第一存储模块1403,用于在判断模块的输出结果为否时,将被访问数据块存储在内存中;
确定模块1404,用于在判断模块的输出结果为是时,确定被访问数据块的业务优先级;根据业务优先级,确定被访问数据块在分层式存储系统中的目标存储位置;
第二存储模块1405,在目标存储位置存储被访问数据块。
一些实施例中,第一存储模块1403具体用于:确定内存的第一区域中可用存储空间的大小是否大于或者等于被访问数据块的大小;若是,则基于第一区域对应的存储形式,将被访问数据块存储在可用存储空间中;若否,则基于第一区域对应的存储形式,将第一区域中已存储的数据块迁移至内存的下一层存储层,并将被访问数据块存储至第一区域的可用存储空间中。
一些实施例中,第二存储模块1405具体用于:若业务优先级大于优先级阈值,则基于第二区域对应的存储形式,确定被访问数据块在对应存储层的第二区域的目标存储位置;若业务优先级小于或者等于优先级阈值,则基于被访问数据块当前所在存储区域对应的存储形式,确定被访问数据块当前所在存储区域的目标存储位置。
一些实施例中,第二存储模块1405还用于:确定被访问数据块的当前存储位置;若当前存储位置在第一区域,则确定对应存储层的第二区域中可用存储空间的大小大于或者等于被访问数据块的大小。
一些实施例中,还包括迁移模块(图中未标出),用于:若对应存储层的第二区域中可用存储空间的大小小于被访问数据块的大小,则基于对应存储层的第二区域对应的存储形式,将对应存储层的第二区域中已存储的数据块迁移至对应存储层的第一区域中。
一些实施例中,存储形式为栈,第二存储模块1405具体用于:确定被访问数据块的访问类型;当访问类型为写访问时,若被访问数据块在第一区域的栈顶,则在对应存储区域中确定被访问数据块的目标存储位置;若被访问数据块在第一区域,且被访问数据块不在第一区域的栈顶,则确定第一区域的栈顶为被访问数据块的目标存储位置;若被访问数据块在第二区域,则基于业务优先级,在第二区域确定被访问数据块的目标存储位置;当访问类型为读访问时,若被访问数据块在第一区域的栈顶,则基于业务优先级,在第二区域中确定被访问数据块的目标存储位置;若被访问数据块在第一区域,且被访问数据块不在第一区域的栈顶,则确定第一区域的栈顶为被访问数据块的目标存储位置;若被访问数据块在第二区域,则基于业务优先级,在第二区域中确定被访问数据块的目标存储位置。
一些实施例中,第二存储模块1405还用于:确定对应存储层的第二区域中可用存储空间的大小大于或者等于被访问数据块的大小。
一些实施例中,还包括迁移模块(图中未标出),用于:若对应存储层的第二区域中可用存储空间的大小小于被访问数据块的大小,则将对应存储层的第二区域中已存储的数据块迁移至对应存储层的第一区域中。
一些实施例中,第二存储模块1405具体用于:若被访问数据块所在的存储层为固态硬盘,则确定位于被访问数据块下方相邻数据块的位置为目标存储位置;若被访问数据块所在的存储层为内存或机械硬盘,则基于业务优先级,在第二区域确定被访问数据块的目标存储位置。
一些实施例中,第二存储模块1405还用于:确定对应存储层的第二区域中可用存储空间的大小大于或者等于被访问数据块的大小。
一些实施例中,还包括迁移模块(图中未标出),用于:若对应存储层的第二区域中可用存储空间的大小小于被访问数据块的大小,则将对应存储层的第二区域中已存储的数据块迁移至存储层的第一区域中。
本申请实施例提供的装置,可用于执行如前所述任一实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
图15为本申请一实施例提供的电子设备的结构示意图。示例性地,电子设备可以被提供为一服务器或计算机。参照图15,电子设备1500包括处理组件1501,其进一步包括一个或多个处理器,以及由存储器1502所代表的存储器资源,用于存储可由处理组件1501的执行的指令,例如应用程序。存储器1502中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1501被配置为执行指令,以执行上述任一方法实施例。
电子设备1500还可以包括一个电源组件1503被配置为执行电子设备1500的电源管理,一个有线或无线网络接口1504被配置为将电子设备1500连接到网络,和一个输入输出(I/O)接口1505。电子设备1500可以操作基于存储在存储器1502的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上数据分层式存储方法的方案。
本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上的数据分层式存储方法的方案。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于数据分层式存储装置中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (15)

1.一种数据分层式存储方法,其特征在于,用于将数据块存储至分层式存储系统中,所述分层式存储系统包含至少两个存储层,所述至少两个存储层包含内存,所述数据分层式存储方法包括:
获取被访问数据块;
确定所述分层式存储系统中是否存在所述被访问数据块;
若否,则将所述被访问数据块存储在所述内存中;
若是,则确定所述被访问数据块的业务优先级;根据所述业务优先级,确定所述被访问数据块在所述分层式存储系统中的目标存储位置;在所述目标存储位置存储所述被访问数据块。
2.根据权利要求1所述的数据分层式存储方法,其特征在于,所述存储层包含第一区域,所述第一区域用于存储在对应存储层中访问次数小于访问次数阈值的数据块,所述将所述被访问数据块存储在所述内存中,包括:
确定所述内存的第一区域中可用存储空间的大小是否大于或者等于所述被访问数据块的大小;
若是,则基于所述第一区域对应的存储形式,将所述被访问数据块存储在所述可用存储空间中;
若否,则基于所述第一区域对应的存储形式,将所述第一区域中已存储的数据块迁移至所述内存的下一层存储层,并将所述被访问数据块存储至第一区域的可用存储空间中。
3.根据权利要求1所述的数据分层式存储方法,其特征在于,所述存储层包含第一区域和第二区域,所述第一区域用于存储在对应存储层中访问次数小于访问次数阈值的数据块,所述第二区域用于存储在对应存储层中访问次数大于或者等于访问次数阈值的数据块,所述根据所述业务优先级,确定所述被访问数据块在所述分层式存储系统中的目标存储位置,包括:
若所述业务优先级大于优先级阈值,则基于所述第二区域对应的存储形式,确定所述被访问数据块在对应存储层的第二区域的目标存储位置;
若所述业务优先级小于或者等于优先级阈值,则基于被访问数据块当前所在存储区域对应的存储形式,确定被访问数据块当前所在存储区域的目标存储位置。
4.根据权利要求3所述的数据分层式存储方法,其特征在于,所述基于所述第二区域对应的存储形式,确定所述被访问数据块在所述分层式存储系统中对应存储层的第二区域的目标存储位置之前,还包括:
确定所述被访问数据块的当前存储位置;
若所述当前存储位置在第一区域,则确定对应存储层的第二区域中可用存储空间的大小大于或者等于所述被访问数据块的大小。
5.根据权利要求4所述的数据分层式存储方法,其特征在于,还包括:
若对应存储层的第二区域中可用存储空间的大小小于所述被访问数据块的大小,则基于对应存储层的第二区域对应的存储形式,将对应存储层的第二区域中已存储的数据块迁移至对应存储层的第一区域中。
6.根据权利要求3所述的数据分层式存储方法,其特征在于,存储形式为栈,所述基于被访问数据块当前所在存储区域对应的存储形式,确定被访问数据块当前所在存储区域的目标存储位置,包括:
确定所述被访问数据块的访问类型;
当所述访问类型为写访问时,若所述被访问数据块在第一区域的栈顶,则在对应存储区域中确定所述被访问数据块的目标存储位置;若所述被访问数据块在第一区域,且所述被访问数据块不在第一区域的栈顶,则确定第一区域的栈顶为所述被访问数据块的目标存储位置;若所述被访问数据块在第二区域,则基于所述业务优先级,在第二区域确定所述被访问数据块的目标存储位置;
当所述访问类型为读访问时,若所述被访问数据块在第一区域的栈顶,则基于所述业务优先级,在第二区域中确定所述被访问数据块的目标存储位置;若所述被访问数据块在第一区域,且所述被访问数据块不在第一区域的栈顶,则确定第一区域的栈顶为所述被访问数据块的目标存储位置;若所述被访问数据块在第二区域,则基于所述业务优先级,在第二区域中确定所述被访问数据块的目标存储位置。
7.根据权利要求6所述的数据分层式存储方法,其特征在于,所述若所述被访问数据块在第一区域的栈顶,则基于所述业务优先级,在第二区域中确定所述被访问数据块的目标存储位置之前,还包括:
确定对应存储层的第二区域中可用存储空间的大小大于或者等于所述被访问数据块的大小。
8.根据权利要求7所述的数据分层式存储方法,其特征在于,还包括:
若对应存储层的第二区域中可用存储空间的大小小于所述被访问数据块的大小,则将对应存储层的第二区域中已存储的数据块迁移至对应存储层的第一区域中。
9.根据权利要求6所述的数据分层式存储方法,其特征在于,所述分层式存储系统中,所述内存的下一层存储层为固态硬盘,所述固态硬盘的下一层存储层为机械硬盘,所述若所述被访问数据块在第一区域的栈顶,则在对应存储区域中确定所述被访问数据块的目标存储位置,包括:
若所述被访问数据块所在的存储层为固态硬盘,则确定位于所述被访问数据块下方相邻数据块的位置为目标存储位置;
若所述被访问数据块所在的存储层为内存或机械硬盘,则基于所述业务优先级,在对应存储层的第二区域确定所述被访问数据块的目标存储位置。
10.根据权利要求9所述的数据分层式存储方法,其特征在于,所述若所述存储层为内存或机械硬盘,则基于所述业务优先级,在第二区域确定所述被访问数据块的目标存储位置之前,还包括:
确定对应存储层的第二区域中可用存储空间的大小大于或者等于所述被访问数据块的大小。
11.根据权利要求10所述的数据分层式存储方法,其特征在于,还包括:
若对应存储层的第二区域中可用存储空间的大小小于所述被访问数据块的大小,则将对应存储层的第二区域中已存储的数据块迁移至所述存储层的第一区域中。
12.一种数据分层式存储装置,其特征在于,用于将数据块存储至分层式存储系统中,所述分层式存储系统包含至少两个存储层,所述至少两个存储层包含内存,所述数据分层式存储装置包括:
获取模块,用于获取被访问数据块;
判断模块,用于确定所述分层式存储系统中是否存在所述被访问数据块;
第一存储模块,用于在所述判断模块的输出结果为否时,将所述被访问数据块存储在所述内存中;
确定模块,用于在所述判断模块的输出结果为是时,确定所述被访问数据块的业务优先级;根据所述业务优先级,确定所述被访问数据块在所述分层式存储系统中的目标存储位置;
第二存储模块,在所述目标存储位置存储所述被访问数据块。
13.一种电子设备,其特征在于,包括:存储器和处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行如权利要求1至11任一项所述的数据分层式存储方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序指令,所述计算机程序指令被执行时,实现如权利要求1至11任一项所述的数据分层式存储方法。
15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至11任一项所述的数据分层式存储方法。
CN202110885239.1A 2021-08-03 2021-08-03 数据分层式存储方法、装置及存储介质 Active CN113590045B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110885239.1A CN113590045B (zh) 2021-08-03 2021-08-03 数据分层式存储方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110885239.1A CN113590045B (zh) 2021-08-03 2021-08-03 数据分层式存储方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN113590045A true CN113590045A (zh) 2021-11-02
CN113590045B CN113590045B (zh) 2023-05-16

Family

ID=78254260

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110885239.1A Active CN113590045B (zh) 2021-08-03 2021-08-03 数据分层式存储方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN113590045B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114356247A (zh) * 2022-03-18 2022-04-15 闪捷信息科技有限公司 一种分层存储调度方法、装置、设备及存储介质
CN114442934A (zh) * 2021-12-27 2022-05-06 天翼云科技有限公司 数据处理方法、装置及存储引擎
CN118070865A (zh) * 2024-04-25 2024-05-24 北京壁仞科技开发有限公司 人工智能模型的优化方法及装置、电子设备与存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117396B1 (en) * 2006-10-10 2012-02-14 Network Appliance, Inc. Multi-level buffer cache management through soft-division of a uniform buffer cache
US20140095789A1 (en) * 2012-10-02 2014-04-03 International Business Machines Corporation Management of data using inheritable attributes
US20160054933A1 (en) * 2014-08-19 2016-02-25 Samsung Electronics Co., Ltd. Unified addressing and hierarchical heterogeneous storage and memory
CN105892942A (zh) * 2016-03-30 2016-08-24 中国联合网络通信集团有限公司 混合存储系统的操作方法、控制器和电子设备
CN107092564A (zh) * 2017-04-21 2017-08-25 深信服科技股份有限公司 一种数据处理方法及装置
CN107193646A (zh) * 2017-05-24 2017-09-22 中国人民解放军理工大学 一种基于混合主存架构的高效动态页面调度方法
CN107526546A (zh) * 2017-08-25 2017-12-29 深圳大学 一种Spark分布式计算数据处理方法及系统
CN109213422A (zh) * 2017-06-30 2019-01-15 南宁富桂精密工业有限公司 分层存储方法、分层存储装置及计算机可读存储介质
CN109582246A (zh) * 2018-12-06 2019-04-05 深圳市网心科技有限公司 基于矿机的数据访问方法、装置、系统及可读存储介质
US20210034536A1 (en) * 2019-08-01 2021-02-04 Samsung Electronics Co., Ltd. Storage device, memory system comprising the same, and operating method thereof

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117396B1 (en) * 2006-10-10 2012-02-14 Network Appliance, Inc. Multi-level buffer cache management through soft-division of a uniform buffer cache
US20140095789A1 (en) * 2012-10-02 2014-04-03 International Business Machines Corporation Management of data using inheritable attributes
US20160054933A1 (en) * 2014-08-19 2016-02-25 Samsung Electronics Co., Ltd. Unified addressing and hierarchical heterogeneous storage and memory
CN105892942A (zh) * 2016-03-30 2016-08-24 中国联合网络通信集团有限公司 混合存储系统的操作方法、控制器和电子设备
CN107092564A (zh) * 2017-04-21 2017-08-25 深信服科技股份有限公司 一种数据处理方法及装置
CN107193646A (zh) * 2017-05-24 2017-09-22 中国人民解放军理工大学 一种基于混合主存架构的高效动态页面调度方法
CN109213422A (zh) * 2017-06-30 2019-01-15 南宁富桂精密工业有限公司 分层存储方法、分层存储装置及计算机可读存储介质
CN107526546A (zh) * 2017-08-25 2017-12-29 深圳大学 一种Spark分布式计算数据处理方法及系统
CN109582246A (zh) * 2018-12-06 2019-04-05 深圳市网心科技有限公司 基于矿机的数据访问方法、装置、系统及可读存储介质
US20210034536A1 (en) * 2019-08-01 2021-02-04 Samsung Electronics Co., Ltd. Storage device, memory system comprising the same, and operating method thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王艳云 等: "数据迁移算法研究" *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114442934A (zh) * 2021-12-27 2022-05-06 天翼云科技有限公司 数据处理方法、装置及存储引擎
CN114442934B (zh) * 2021-12-27 2024-01-02 天翼云科技有限公司 数据处理方法、装置及存储引擎
CN114356247A (zh) * 2022-03-18 2022-04-15 闪捷信息科技有限公司 一种分层存储调度方法、装置、设备及存储介质
CN118070865A (zh) * 2024-04-25 2024-05-24 北京壁仞科技开发有限公司 人工智能模型的优化方法及装置、电子设备与存储介质

Also Published As

Publication number Publication date
CN113590045B (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
US11709597B2 (en) Memory system and method for controlling nonvolatile memory
CN107193646B (zh) 一种基于混合主存架构的高效动态页面调度方法
US11893238B2 (en) Method of controlling nonvolatile semiconductor memory
CN113590045B (zh) 数据分层式存储方法、装置及存储介质
US11797436B2 (en) Memory system and method for controlling nonvolatile memory
US9785564B2 (en) Hybrid memory with associative cache
JP6266019B2 (ja) データストレージシステム向けの優先度に基づくガベージコレクション
EP3414665B1 (en) Profiling cache replacement
CN102436353B (zh) 半导体存储器控制装置
EP2396729B1 (en) Memory system and method of controlling memory system
CN110888600B (zh) 一种面向nand闪存的缓冲区管理方法
US9971698B2 (en) Using access-frequency hierarchy for selection of eviction destination
KR20110117099A (ko) 메모리 장치에서 맵핑 어드레스 테이블을 유지관리하는 방법
US20180018269A1 (en) Limiting access operations in a data storage device
CN109471594B (zh) 一种mlc闪存读写方法
CN111580754B (zh) 一种写友好的闪存固态盘缓存管理方法
JPWO2014142337A1 (ja) ストレージ装置と方法及びプログラム
JP2014010604A (ja) ストレージ装置とプログラムと方法
KR100874013B1 (ko) 플래시 메모리의 데이터 관리 방법 및 장치
KR101157763B1 (ko) Trim 명령 처리 기능이 추가된 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및 그 장치
KR101217067B1 (ko) 시간 복잡도와 메모리 사용량을 최소화하기 위한 낸드플래시메모리 최소 삭제 블록 탐색 기법
CN116107513A (zh) 一种基于lsm树的zns ssd磨损均衡方法
CN118363875A (zh) 内存回收方法、装置、设备、介质及产品
CN116841454A (zh) 应用于存储器的缓存管理方法以及存储器
CN112631958A (zh) 基于过滤表的dram行缓冲器混合管理方法

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