CN111309267A - 存储空间的分配方法、装置、存储设备及存储介质 - Google Patents

存储空间的分配方法、装置、存储设备及存储介质 Download PDF

Info

Publication number
CN111309267A
CN111309267A CN202010121351.3A CN202010121351A CN111309267A CN 111309267 A CN111309267 A CN 111309267A CN 202010121351 A CN202010121351 A CN 202010121351A CN 111309267 A CN111309267 A CN 111309267A
Authority
CN
China
Prior art keywords
mode
written
space
data
writing
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
CN202010121351.3A
Other languages
English (en)
Other versions
CN111309267B (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202010121351.3A priority Critical patent/CN111309267B/zh
Publication of CN111309267A publication Critical patent/CN111309267A/zh
Application granted granted Critical
Publication of CN111309267B publication Critical patent/CN111309267B/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/0629Configuration or reconfiguration of storage systems
    • 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
    • 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

本申请公开了一种存储空间的分配方法、装置、存储设备及存储介质,所述方法包括:当获取到对于待写入数据的写入请求时,识别对于所述待写入数据的待写入模式;根据与所述待写入模式所对应的空间分配方式,分配目标数据块;将所述待写入数据写入所述目标数据块。本方法可以实现根据数据写入的模式,采用不同的空间分配方式合理分配数据块,有效避免了空间碎片化。

Description

存储空间的分配方法、装置、存储设备及存储介质
技术领域
本申请涉及存储技术领域,更具体地,涉及一种存储空间的分配方法、装置、存储设备及存储介质。
背景技术
随着数字技术的进步和存储技术的发展,催生了海量的数据,数据需要以一定的组织形式存储在存储系统中。存储系统中存储空间管理和分配至关重要,直接影响存储系统的性能。不当的存储空间的分配策略,会导致存储系统的整体性能的下降,因此,如何合理地进行存储空间的分配是当前待解决的技术问题。
发明内容
鉴于上述问题,本申请提出了一种存储空间的分配方法、装置、移动终端及存储介质。
第一方面,本申请实施例提供了一种存储空间的分配方法,所述方法包括:当获取到对于待写入数据的写入请求时,识别对于所述待写入数据的待写入模式;根据与所述待写入模式所对应的空间分配方式,分配目标数据块;将所述待写入数据写入所述目标数据块。
第二方面,本申请实施例提供了一种存储空间的分配装置,所述装置包括:模式获取模块、块分配模块以及数据写入模块,其中,所述模式获取模块用于当获取到对于待写入数据的写入请求时,识别对于所述待写入数据的待写入模式;所述块分配模块用于根据与所述待写入模式所对应的空间分配方式,分配目标数据块;所述数据写入模块用于将所述待写入数据写入所述目标数据块。
第三方面,本申请实施例提供了一种存储设备,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述第一方面提供的存储空间的分配方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述第一方面提供的存储空间的分配方法。
本申请提供的方案,通过当获取到对于待写入数据的写入请求时,识别对于待写入数据的待写入模式,根据与待写入模式所对应的空间分配方式,分配目标数据块,最后将待写入数据写入目标数据块。从而实现根据数据写入的模式,采用不同的空间分配方式合理分配数据块,有效避免了空间碎片化。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请一个实施例的存储空间的分配方法流程图。
图2示出了根据本申请另一个实施例的存储空间的分配方法流程图。
图3示出了本申请另一个实施例提供的存储空间的分配方法中步骤S260的流程图。
图4示出了根据本申请又一个实施例的存储空间的分配方法流程图。
图5示出了根据本申请一个实施例的存储空间的分配装置的一种框图。
图6是本申请实施例的用于执行根据本申请实施例的存储空间的分配方法的存储设备的框图。
图7是本申请实施例的用于保存或者携带实现根据本申请实施例的存储空间的分配方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
空间布局和分配是每个文件系统都需要考虑的问题,日志结构化文件系统(LFS,Log-structured File System)、分布式文件系统、并行文件系统等都都会根据场景、特性、需求的不同,设计针对性空间分配机制和策略。
在日志结构文件系统中:一定大小的空间分配单元称为块(页),一定数量的连续的块组成的单元称为段,块上有效数据被删除或在其他位置更新后被记为无效,段中的可用空间会变得碎片化。
空间分配的主要任务是在可用的剩余存储空间中为要写入的数据分配数据块。日志结构化文件系统的常规分配方法在当前使用的段不断追加分配块,一般称为LFS分配方式。当写入负载较大,文件系统没有空闲段时会启用另一种分配方式:将碎片化的段中的不含有效数据的块分配出去,即所谓的碎片空间循环使用(SSR,Slack Space Recycling)。
在一些分配方法中,对小数据更新使用原地写从而最小化内存占用,利用小数据日志对要更新的数据进行细粒度的备份。通过一个固定长度的循环缓冲区可以平衡数据一致性开销和性能,减少空间分配成本,避免在小数据更新过程中的写入放大,同时提供强大的数据一致性保证。
也有一些方法针对日志结构化文件系统的LFS和SSR块分配方法进行了简单的优化:1、LFS的数据块分配不再集中于一个日志头(顺序分配时指向下一个可分配数据块的指针),而是考虑数据的冷热程度改为多个日志头(默认6个:冷数据、温数据、热数据、冷索引、温索引、热索引),分配时根据数据类型从相应日志头中合理分配;2、SSR的分配策略增加了对随机写性能的考虑,更新段时选择同类型(日志头类型)有效块最少的段。
发明人经过长期研究发现,在传统的存储空间的分配方法中,没有系统性考虑块分配对碎片化的影响,更没有尝试通过块分配达到反碎片化、减轻垃圾回收压力的目标,将所有压力都集中在垃圾回收上进而带来器件寿命降低和功耗增加等潜在影响。
针对上述问题,发明人提出了本申请实施例提供的存储空间方法、装置、存储设备以及存储介质,通过根据数据写入的模式,采用不同的空间分配方式合理分配数据块,有效避免了空间碎片化。其中,具体的存储空间的分配方法在后续的实施例中进行详细的说明。
请参阅图1,图1示出了本申请一个实施例提供的存储空间的分配方法的流程示意图。在具体的实施例中,所述存储空间的分配方法应用于如图5所示的信息推送装置400以及配置有所述信息推送装置400的存储设备100(图6)。下面将以存储设备为例,说明本实施例的具体流程,当然,可以理解的,本实施例所应用的存储设备可以为服务器、电脑等设备,在此不做限定。本方法可以应用于日志结构化文件系统,以解决日志结构化文件系统中空间分配所存在的空间碎片化、文件内碎片多的问题。下面将针对图1所示的流程进行详细的阐述,所述存储空间的分配方法具体可以包括以下步骤:
步骤S110:当获取到对于待写入数据的写入请求时,识别对于所述待写入数据的待写入模式。
在本申请实施例中,存储设备可以对数据的写入请求进行检测。该写入请求可以是用户基于用户终端向存储设备发起的待写入数据的写入请求,例如,可以是文件上传等。也可以是用户于存储设备上操作而产生的对待写入数据的写入请求,例如,可以是数据库操作、索引数据更新等。
在本申请实施例中,当存储设备获取到对待写入数据的写入请求时,可以识别对于待写入数据的待写入模式,待写入模式即为待写入数据需要写入到存储设备的写入模式。写入模式可以分为多个方面,写入模式可以根据顺序写入及随机写入区分,也可以通过同步写入及异步写入区分,还可以通过追加写入及随机写入区分。当然,写入模式并不限定于以上区分方式。
在一些实施方式中,存储设备可以通过待写入数据的类型、写入请求中携带的信息、历史的写入请求、历史写入记录等,对写入模式进行识别。例如,通过待写入数据的类型识别待写入模式时,如果待写入数据为多媒体类型的数据,则可以认为是同步且顺序写入。当然,存储设备识别待写入模式的方式可以不作为限定。
步骤S120:根据与所述待写入模式所对应的空间分配方式,分配目标数据块。
在本申请实施例中,存储设备在识别出对于待写入数据的待写入模式之后,则可以根据待写入模式确定利用何种空间分配方式,来分配用于写入待写入数据的目标数据块。其中,一定大小的空间分配单元称为数据块(页),一定数量的连续的数据块组成的单元称为段。
在一些实施方式中,存储设备依据待写入模式,可以获知本次待写入数据的写入,对于性能的需求程度。例如,同步且随机的写入模式,则表示对于性能需求较高,也就是要求较高的写入速度。如果存储设备根据待写入模式,确定出对于待写入数据的写入的性能需求较高,则可以利用日志结构化文件系统“化随机为顺序”的优势采用LFS方式分配数据块;如果根据待写入模式,确定出对于待写入数据的写入的性能需求不高,则可以采用原地更新的空间分配方式来分配数据块,避免存储空间的碎片化;还可以根据存储空间中各个段的碎片化情况,选取不同的段并采用SSR方式分配数据块或者LFS方式来分配数据块。当然,具体的分配方式并不限定于此,也还可以根据数据写入的需求的不同,采用其他分配方式来分配存储空间。
步骤S130:将所述待写入数据写入所述目标数据块。
在本申请实施例中,存储设备在分配完成目标数据块以后,则相当于获得了用于存储待写入存储空间的位置,因此可以将待写入数据写入目标数据块,从而完成待写入数据的写入。
本申请实施例提供的存储空间的分配方法,当获取到对于待写入数据的写入请求时,识别对于待写入数据的待写入模式,根据与待写入模式所对应的空间分配方式,分配目标数据块,最后将待写入数据写入目标数据块。从而实现根据数据写入的模式,采用不同的空间分配方式合理分配数据块,有效避免了空间碎片化。
请参阅图2,图2示出了本申请另一个实施例提供的存储空间的分配方法的流程示意图。该存储空间的分配方法可应用于上述存储设备,下面将针对图2所示的流程进行详细的阐述,所述存储空间的分配方法具体可以包括以下步骤:
步骤S210:当获取到对于待写入数据的写入请求时,识别对于所述待写入数据的待写入模式。
在本申请实施例中,步骤S210可以参阅前述实施例的内容,在此不再赘述。
步骤S220:判断所述待写入模式是否为第一模式,所述第一模式对数据写入需求的写入速度大于设定速度。
在本申请实施例中,存储设备在确定出对于本次的待写入数据的待写入模式之后,则可以判断待写入模式是否为设定的第一模式。其中,第一模式对数据写入需求的写入速度大于设定速度,其中,设定速度用于评价待写入模式对于数据写入的性能需求,如果写入速度大于设定速度,则表示对于数据写入的性能需求较高,如果写入速度小于或等于设定速度,则表示对于数据写入的性能需求较低。其中,设定速度的具体大小不作为限定,其主要用于区别对于性能需求最为重要的写入模式,以及其他对于性能需求不重要的写入模式。
在一些实施方式中,第一模式可以为同步且随机的写入模式,可以理解的,对于同步且随机的写入模式,性能是最为重要的,其对于写入模式的写入速度大于设定速度。
步骤S230:如果所述待写入模式为第一模式,则根据日志结构化文件系统的空间分配方式,分配目标数据块。
在本申请实施例中,存储设备在判断待写入模式是否为第一模式之后,如果判断结果为待写入模式为第一模式,则可以根据日志结构化文件系统的空间分配方式,对用于写入待写入数据的目标数据块进行分配。可以理解的,日志结构化文件系统“化随机为顺序”的优势,因此在性能上占优,所以采用LFS方式来进行目标数据块的分配,来满足第一模式对于写入性能的需求。
步骤S240:如果所述待写入模式不为第一模式,则判断所述待写入模式是否为第二模式,所述第二模式为更新写入模式。
在本申请实施例中,如果对于待写入数据的待写入模式不为上述第一模式时,则存储设备可以判断待写入模式是否为第二模式。其中,第二模式为更新写入的写入模式。可以理解的,对于待写入模式不为第一模式时,则表示该待写入模式对于写入的性能需求不高,而对于性能需求不高的写入模式中,更新写入会带来较多的空间碎片化和文件内碎片,因此可以判断是否为更新写入模式,以针对更新写入模式,选择合适的空间分配方式进行存储空间的分配。
步骤S250:如果为所述第二模式,则根据原地更新的空间分配方式,分配目标数据块。
在本申请实施例中,存储设备在判断待写入模式是否为第二模式之后,如果判断结果为待写入模式为第二模式,表示待写入模式为除了第一模式以外的写入模式中的更新写入模式中。由于更新写入会带来较多的空间碎片化和文件内碎片,因此可以采用原地更新(IPU,In Place Update)的空间分配方式,来进行目标数据块的分配,以避免空间碎片化以及文件内碎片的增多。
步骤S260:如果不为所述第二模式,则根据日志结构化文件系统的空间分配方式或者碎片空间循环使用的空间分配方式,分配目标数据块。
在本申请实施例中,存储设备在判断待写入模式是否为第二模式之后,如果判断结果为待写入模式不为第二模式,即待写入模式不为第一模式,也不为除了第一模式以外的写入模式中的更新写入模式,因此可以采用日志结构化文件系统的空间分配方式或者碎片空间循环使用的空间分配方式,分配目标数据块。如果采用LFS分配方式,则可以提升性能,如果采用SSR模式,则能兼顾性能与空间碎片化。
在一些实施方式中,请参阅图3,在待写入模式既不为第一模式,也不为第二模式的情况下,存储设备根据日志结构化文件系统的空间分配方式或者碎片空间循环使用的空间分配方式,分配目标数据块,可以包括:
步骤S261:如果所述待写入模式为异步顺序的追加写入模式,获取当前的空闲段。
在该实施方式中,在待写入模式既不为第一模式,也不为第二模式的情况下,如果该待写入模式为为异步顺序的追加写入模式,也就是异步且顺序的追加写入。如果为异步顺序的追加写入模式,则可以根据存储空间(例如磁盘等)中各个段的使用情况,来确定使用LFS方式还是SSR方式来进行数据块的分配。具体地,存储设备可以获取存储空间中当前的空闲段。其中,存储空间中段通常存在空闲或者占用两种状态,存储设备根据各个段的状态,可以确定出所有的空闲段。
步骤S262:如果所述空闲段的数量大于目标值,则根据日志结构化文件系统的空间分配方式,分配目标数据块。
在该实施方式中,如果空闲段的数量大于目标值时,表示剩余的存储空间较多,因此可以不用考虑空间碎片化的情况,而保证数据写入的效率,从而可以采用LFS空间分配方式,分配用于写入待写入数据的目标数据块。其中,目标值的具体数值可以不作为限定,目标值可以根据存储空间的总体大小,或者根据段的总数量而确定,例如,目标值可以为段的总数量的50%。
步骤S263:如果所述空闲段的数量小于或等于所述目标值,获取多个段中每个段的碎片化分值,所述碎片化分值用于表征段的碎片化程度。
在该实施方式中,如果存储设备确定出空闲段的数量小于或等于该目标值,则需要考虑存储空间的碎片化的情况,因此可以获取多个段中每个段的碎片化分值,该碎片化分值用于表征段的碎片化程度。
在一些实施方式中,一个段的碎片化情况可以用段内空闲块的连续程度衡量。设Ci为段中连续i个空闲块的总块数,计算碎片化分值公式如下:
Figure BDA0002393068640000091
其中,n为段的总块数,m是段中一些连续空闲块被认为是碎片化部分的最大块数,这里可设定为3(按小于16KB的写入判定为随机写模式来考虑)。根据碎片化分值公式可知碎片化分为0到1之间的值,表示碎片化严重程度。
步骤S264:根据碎片空间循环使用的空间分配方式,从所述多个段中碎片化分值最低的段中分配目标数据块。
在该实施方式中,如果存储设备确定出空闲段的数量小于或等于该目标值,确定出各个段的碎片化分值之后,为了避免带来过大的文件内碎片化,可以根据碎片化分值,确定碎片化分值最低的段,并利用SSR空间分配方式,从确定的段中分配目标数据块。
在一些实施方式中,待写入模式既不为第一模式,也不为第二模式的情况下,还存在待写入模式为异步随机的追加写入模式的情况。因此,步骤S260还可以包括:
如果所述待写入模式为异步随机的追加写入模式,获取多个段中每个段的碎片化分值以及冷热程度值,所述碎片化分值用于表征段的碎片化程度,所述冷热程度值用于表征段中数据块的更新频率;根据所述每个段的碎片化分值以及冷热程度值,从所述多个段中获取目标段,其中,所述目标段的碎片化分值大于第一阈值,所述目标段的冷热程度值大于第二阈值;根据碎片空间循环使用的空间分配方式,从所述目标段中分配目标数据块。
在该实施方式中,如果待写入模式为异步随机的追加写入模式,也就是异步且随机的追加写入,该写入模式对于写入数据的性能需求不敏感,为了避免二次碎片化,存储设备可以各个段的碎片化分值以及冷热程度值。碎片化分值用于表征段的碎片化程度,也就是反映段的碎片化情况,冷热程度值用于表征段中数据块的更新频率,也就是反映段的冷热情况,也可以理解为段中数据块的更新频率。
在一些实施方式中,对于碎片化分值的计算,可以参照前述的计算方式。对于冷热程度值,段的冷热可以用其中数据块的更新频率评估,段中有效数据块的平均更新时间mtime可以作为一个段的冷热程度值,其更新方式可按下面的公式进行:
Figure BDA0002393068640000101
其中,vblocks表示段中有效块个数,time表示当前时间,old和new表示更新前后的不同状态。也就是,mtimenew表示更新后的平均更新时间,mtimeold表示更新前的平均更新时间,vblocksnew表示段中更新后的有效块个数,vblocksold表示段中更新前的有效块个数。
在该实施方式中,存储设备在确定出各个段的碎片化分值以及之后,可以根据碎片化分值以及冷热程度值,从多个段中确定碎片化分值大于第一阈值,且冷热程度值大于第二阈值的目标段,并利用SSR空间分配方式,从确定的目标段中分配目标数据块,从而实现反碎片化和冷热分离。其中,选取的目标段的冷热程度值大于第二阈值,也就实现了冷热分离,选取的目标段的碎片化分值大于第一阈值,也就实现了反碎片化。第一阈值以及第二阈值的具体数值可以不作为限定。
步骤S270:将所述待写入数据写入所述目标数据块。
在本申请实施例中,存储设备在分配完成目标数据块以后,则相当于获得了用于存储待写入存储空间的位置,因此可以将待写入数据写入目标数据块,从而完成待写入数据的写入。
本申请实施例提供的存储空间的分配方法,当获取到对于待写入数据的写入请求时,识别对于待写入数据的待写入模式,然后根据待写入模式需求写入数据的性能的,保留日志结构化文件系统“化随机为顺序”的优势采用LFS方式分配目标数据块,对于性能需求不高的更新写的写入模式采用原地更新来分配目标数据块,以减少空间碎片化和文件内碎片,对于性能需求不高的追加写模式从反碎片化和冷热分离的角度采用SSR方式或者LFS方式分配目标数据块,最后将待写入数据写入目标数据块。从而实现根据数据写入的模式,采用不同的空间分配方式合理分配数据块,有效避免了空间碎片化,以及文件内碎片。
请参阅图4,图4示出了本申请又一个实施例提供的存储空间的分配方法的流程示意图。该存储空间的分配方法可应用于上述存储设备,下面将针对图4所示的流程进行详细的阐述,所述存储空间的分配方法具体可以包括以下步骤:
步骤S310:当获取到对于待写入数据的写入请求时,识别对于所述待写入数据的待写入模式。
在一些实施方式中,存储设备可以根据所述写入请求以及待写入数据的类型,确定待写入数据的待写入模式。例如,媒体文件(MP3/MP4)、游戏资源文件等在下载和拷贝时是异步的顺序写,数据库的更新、插入、删除等操作则多为同步的随机写。通过待写入数据的文件类型和数据类型可以对大部分写请求快速的给出写入模式判断。另外,更新写还是追加写可以通过写入请求携带的信息来确定,也就是根据用户的请求判断。
在另一些实施方式中,存储设备也可以根据指定大小的滑动窗口内的历史写入请求,确定待写入数据的待写入模式。其中,由于通过文件类型和数据类型判断写入模式比较固化,对于非典型场景可能存在误判和难以判断的情况。本申请实施例还提出了动态的写入模式检测方法:对指定大小的滑动窗口内的历史写入请求(如:最近处理的100个历史写入请求),若大部分历史请求所对应写入的数据大小不超过指定阈值(如16KB,请求已经过合并处理)则判断当前为随机写场景,否则为顺序写;若滑动窗口内的写请求中间有频繁fsync操作或请求本身为DIRECT IO则认为是同步写,否则为异步写。
当然,存储设备识别待写入模式的方式可以不作为限定。
步骤S320:根据预先设定的空间分配方式与写入模式的对应关系,确定与所述待写入模式所对应的空间分配方式。
在本申请实施例中,存储设备中也可以预先设定有空间分配方式与不同的写入模式的对应关系。存储设备在确定待写入模式之后,也可以直接根据该对应关系,来确定与待写入模式所对应的空间分配方式。
作为一种实施方式,空间分配方式与不同的写入模式的对应关系可以以对应表的形式存储于存储设备,存储设备通过查找对应表,即可确定待写入模式所对应的空间分配方式。例如,对应表如下表所示,
Figure BDA0002393068640000121
Figure BDA0002393068640000131
其中,对于异步顺序的追加写入模式以及异步随机的追加写入模式,其空间分配方式的具体内容可以参阅前述实施例的内容,在此不再赘述。
与上个实施例相同的是,同步随机的写入模式对于写入性能的需求是最重要的,因为可能会带来上层可感知的卡顿,这时通过LFS方式分配数据块是最好的选择。对于更新操作,从避免空间碎片化的角度考虑选择原地分配数据块(即IPU)是合理的。对于异步顺序的追加写,如果系统有大量空闲段则可以按LFS方式分配数据块,若当前碎片化程度较重则可以使用SSR方式分配数据块,了避免带来过大的文件内碎片化,应该选择碎片化分值最低的段进行SSR分配。对于非更新、性能不敏感的异步随机的追加写则,可以通过反碎片化和冷热分离(避免二次碎片化)的方式,来采用SSR方式进行分配。
步骤S330:根据确定的空间分配方式,分配目标数据块。
在本申请实施例中,存储设备在根据上述对应关系,确定出与待写入模式所对应的空间分配方式之后,则可以根据确定的空间分配方式,来分配目标数据块。
步骤S340:将所述待写入数据写入所述目标数据块。
在本申请实施例中,步骤S340可以参阅前述实施例的内容,在此不再赘述。
本申请实施例提供的存储空间的分配方法,当获取到对于待写入数据的写入请求时,识别对于待写入数据的待写入模式,根据预先设定的空间分配方式与写入模式的对应关系,确定与待写入模式所对应的空间分配方式,然后根据确定的空间分配方式,分配目标数据块,最后将待写入数据写入目标数据块。从而实现根据数据写入的写入模式,采用不同的空间分配方式合理分配数据块,有效避免了空间碎片化。
请参阅图5,其示出了本申请实施例提供的一种存储空间的分配装置400的结构框图。该存储空间的分配装置400应用上述的存储设备,该存储空间的分配装置400包括:模式获取模块410、块分配模块420以及数据写入模块430。其中,所述模式获取模块410用于当获取到对于待写入数据的写入请求时,识别对于所述待写入数据的待写入模式;所述块分配模块420用于根据与所述待写入模式所对应的空间分配方式,分配目标数据块;所述数据写入模块430用于将所述待写入数据写入所述目标数据块。
在一些实施方式中,块分配模块420可以包括:第一判断单元以及第一分配单元。第一判断单元用于判断所述待写入模式是否为第一模式,所述第一模式对数据写入需求的写入速度大于设定速度;第一分配单元用于如果所述待写入模式为第一模式,则根据日志结构化文件系统的空间分配方式,分配目标数据块。
在一些实施方式中,块分配模块420还可以包括:第二判断单元、第二分配单元以及第三分配单元。第二判断单元用于如果所述待写入模式不为第一模式,则判断所述待写入模式是否为第二模式,所述第二模式为更新写入模式;第二分配单元用于如果为所述第二模式,则根据原地更新的空间分配方式,分配目标数据块;第三分配单元用于如果不为所述第二模式,则根据日志结构化文件系统的空间分配方式或者碎片空间循环使用的空间分配方式,分配目标数据块。
在该实施方式中,第三分配单元可以包括:空闲段获取模块、第一分配子单元、第一分值获取子单元以及第二分配子单元。空闲段获取模块用于如果所述待写入模式为异步顺序的追加写入模式,获取当前的空闲段;第一分配子单元用于如果所述空闲段的数量大于目标值,则根据日志结构化文件系统的空间分配方式,分配目标数据块;第一分值获取子单元用于如果所述空闲段的数量小于或等于所述目标值,获取多个段中每个段的碎片化分值,所述碎片化分值用于表征段的碎片化程度;第二分配子单元用于根据碎片空间循环使用的空间分配方式,从所述多个段中碎片化分值最低的段中分配目标数据块。
进一步地,第三分配单元还可以包括:第二分值获取子单元、段获取子单元以及第三分配子单元。第二分值获取子单元用于如果所述待写入模式为异步随机的追加写入模式,获取多个段中每个段的碎片化分值以及冷热程度值,所述碎片化分值用于表征段的碎片化程度,所述冷热程度值用于表征段中数据块的更新频率;段获取子单元用于根据所述每个段的碎片化分值以及冷热程度值,从所述多个段中获取目标段,其中,所述目标段的碎片化分值大于第一阈值,所述目标段的冷热程度值大于第二阈值;第三分配子单元用于根据碎片空间循环使用的空间分配方式,从所述目标段中分配目标数据块。
在一些实施方式中,块分配模块420也可以包括:方式确定单元以及分配执行单元。方式确定单元用于根据预先设定的空间分配方式与写入模式的对应关系,确定与所述待写入模式所对应的空间分配方式;分配执行单元用于根据确定的空间分配方式,分配目标数据块。
在一些实施方式中,模式获取模块410可以具体用于:根据所述写入请求以及待写入数据的类型,确定待写入数据的待写入模式。
在一些实施方式中,模式获取模块410可以具体用于:根据指定大小的滑动窗口内的历史写入请求,确定待写入数据的待写入模式。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
综上所述,本申请提供的方案,通过当获取到对于待写入数据的写入请求时,识别对于待写入数据的待写入模式,根据与待写入模式所对应的空间分配方式,分配目标数据块,最后将待写入数据写入目标数据块。从而实现根据数据写入的模式,采用不同的空间分配方式合理分配数据块,有效避免了空间碎片化。
请参考图6,其示出了本申请实施例提供的一种存储设备的结构框图。该存储设备100可以是服务器、PC电脑、笔记本电脑等能够运行应用程序的设备。本申请中的存储设备100可以包括一个或多个如下部件:处理器110、存储器120以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个存储设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行存储设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储存储设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参考图7,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (11)

1.一种存储空间的分配方法,其特征在于,所述方法包括:
当获取到对于待写入数据的写入请求时,识别对于所述待写入数据的待写入模式;
根据与所述待写入模式所对应的空间分配方式,分配目标数据块;
将所述待写入数据写入所述目标数据块。
2.根据权利要求1所述的方法,其特征在于,所述根据与所述待写入模式所对应的空间分配方式,分配目标数据块,包括:
判断所述待写入模式是否为第一模式,所述第一模式对数据写入需求的写入速度大于设定速度;
如果所述待写入模式为第一模式,则根据日志结构化文件系统的空间分配方式,分配目标数据块。
3.根据权利要求2所述的方法,其特征在于,所述根据与所述待写入模式所对应的空间分配方式,分配目标数据块,还包括:
如果所述待写入模式不为第一模式,则判断所述待写入模式是否为第二模式,所述第二模式为更新写入模式;
如果为所述第二模式,则根据原地更新的空间分配方式,分配目标数据块;
如果不为所述第二模式,则根据日志结构化文件系统的空间分配方式或者碎片空间循环使用的空间分配方式,分配目标数据块。
4.根据权利要求3所述的方法,其特征在于,所述根据日志结构化文件系统的空间分配方式或者碎片空间循环使用的空间分配方式,分配目标数据块,包括:
如果所述待写入模式为异步顺序的追加写入模式,获取当前的空闲段;
如果所述空闲段的数量大于目标值,则根据日志结构化文件系统的空间分配方式,分配目标数据块;
如果所述空闲段的数量小于或等于所述目标值,获取多个段中每个段的碎片化分值,所述碎片化分值用于表征段的碎片化程度;
根据碎片空间循环使用的空间分配方式,从所述多个段中碎片化分值最低的段中分配目标数据块。
5.根据权利要求4所述的方法,其特征在于,所述根据日志结构化文件系统的空间分配方式或者碎片空间循环使用的空间分配方式,分配目标数据块,还包括:
如果所述待写入模式为异步随机的追加写入模式,获取多个段中每个段的碎片化分值以及冷热程度值,所述碎片化分值用于表征段的碎片化程度,所述冷热程度值用于表征段中数据块的更新频率;
根据所述每个段的碎片化分值以及冷热程度值,从所述多个段中获取目标段,其中,所述目标段的碎片化分值大于第一阈值,所述目标段的冷热程度值大于第二阈值;
根据碎片空间循环使用的空间分配方式,从所述目标段中分配目标数据块。
6.根据权利要求1所述的方法,其特征在于,所述根据与所述待写入模式所对应的空间分配方式,分配目标数据块,包括:
根据预先设定的空间分配方式与写入模式的对应关系,确定与所述待写入模式所对应的空间分配方式;
根据确定的空间分配方式,分配目标数据块。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述识别对于所述待写入数据的待写入模式,包括:
根据所述写入请求以及待写入数据的类型,确定待写入数据的待写入模式。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述识别对于所述待写入数据的待写入模式,包括:
根据指定大小的滑动窗口内的历史写入请求,确定待写入数据的待写入模式。
9.一种存储空间的分配装置,其特征在于,所述装置包括:模式获取模块、块分配模块以及数据写入模块,其中,
所述模式获取模块用于当获取到对于待写入数据的写入请求时,识别对于所述待写入数据的待写入模式;
所述块分配模块用于根据与所述待写入模式所对应的空间分配方式,分配目标数据块;
所述数据写入模块用于将所述待写入数据写入所述目标数据块。
10.一种存储设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-8任一项所述的方法。
11.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-8任一项所述的方法。
CN202010121351.3A 2020-02-26 2020-02-26 存储空间的分配方法、装置、存储设备及存储介质 Active CN111309267B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010121351.3A CN111309267B (zh) 2020-02-26 2020-02-26 存储空间的分配方法、装置、存储设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010121351.3A CN111309267B (zh) 2020-02-26 2020-02-26 存储空间的分配方法、装置、存储设备及存储介质

Publications (2)

Publication Number Publication Date
CN111309267A true CN111309267A (zh) 2020-06-19
CN111309267B CN111309267B (zh) 2023-10-03

Family

ID=71149333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010121351.3A Active CN111309267B (zh) 2020-02-26 2020-02-26 存储空间的分配方法、装置、存储设备及存储介质

Country Status (1)

Country Link
CN (1) CN111309267B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111984604A (zh) * 2020-08-13 2020-11-24 华中科技大学 一种减少日志结构文件系统碎片的方法及闪存存储系统
CN112328587A (zh) * 2020-11-18 2021-02-05 山东健康医疗大数据有限公司 ElasticSearch的数据处理方法和装置
CN113568868A (zh) * 2021-07-28 2021-10-29 重庆紫光华山智安科技有限公司 文件系统管理方法、系统、电子设备及介质
CN115168298A (zh) * 2022-06-09 2022-10-11 荣耀终端有限公司 文件系统碎片化的评估方法及电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120005415A1 (en) * 2010-07-02 2012-01-05 Samsung Electronics Co., Ltd. Memory system selecting write mode of data block and data write method thereof
CN102622302A (zh) * 2011-01-26 2012-08-01 中国科学院高能物理研究所 碎片数据类型的识别方法
CN103246609A (zh) * 2013-04-24 2013-08-14 深圳市江波龙电子有限公司 一种闪存存储设备中冷热数据区分管理的方法及装置
US20150331793A1 (en) * 2014-03-26 2015-11-19 Hitachi, Ltd. Storage system
CN105094761A (zh) * 2014-04-30 2015-11-25 华为技术有限公司 一种数据存储方法和设备
CN105279099A (zh) * 2015-09-30 2016-01-27 成都华为技术有限公司 一种磁盘空间分配法及装置
CN106406756A (zh) * 2016-09-05 2017-02-15 华为技术有限公司 一种文件系统的空间分配方法及装置
CN109669640A (zh) * 2018-12-24 2019-04-23 浙江大华技术股份有限公司 一种数据存储方法、装置、电子设备及介质
CN109684236A (zh) * 2018-12-25 2019-04-26 广东浪潮大数据研究有限公司 一种数据写缓存控制方法、装置、电子设备和存储介质
CN109783019A (zh) * 2018-12-28 2019-05-21 上海威固信息技术股份有限公司 一种数据智能存储管理方法与装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120005415A1 (en) * 2010-07-02 2012-01-05 Samsung Electronics Co., Ltd. Memory system selecting write mode of data block and data write method thereof
CN102622302A (zh) * 2011-01-26 2012-08-01 中国科学院高能物理研究所 碎片数据类型的识别方法
CN103246609A (zh) * 2013-04-24 2013-08-14 深圳市江波龙电子有限公司 一种闪存存储设备中冷热数据区分管理的方法及装置
US20150331793A1 (en) * 2014-03-26 2015-11-19 Hitachi, Ltd. Storage system
CN105094761A (zh) * 2014-04-30 2015-11-25 华为技术有限公司 一种数据存储方法和设备
CN105279099A (zh) * 2015-09-30 2016-01-27 成都华为技术有限公司 一种磁盘空间分配法及装置
CN106406756A (zh) * 2016-09-05 2017-02-15 华为技术有限公司 一种文件系统的空间分配方法及装置
CN109669640A (zh) * 2018-12-24 2019-04-23 浙江大华技术股份有限公司 一种数据存储方法、装置、电子设备及介质
CN109684236A (zh) * 2018-12-25 2019-04-26 广东浪潮大数据研究有限公司 一种数据写缓存控制方法、装置、电子设备和存储介质
CN109783019A (zh) * 2018-12-28 2019-05-21 上海威固信息技术股份有限公司 一种数据智能存储管理方法与装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111984604A (zh) * 2020-08-13 2020-11-24 华中科技大学 一种减少日志结构文件系统碎片的方法及闪存存储系统
CN111984604B (zh) * 2020-08-13 2024-03-19 华中科技大学 一种减少日志结构文件系统碎片的方法及闪存存储系统
CN112328587A (zh) * 2020-11-18 2021-02-05 山东健康医疗大数据有限公司 ElasticSearch的数据处理方法和装置
CN113568868A (zh) * 2021-07-28 2021-10-29 重庆紫光华山智安科技有限公司 文件系统管理方法、系统、电子设备及介质
CN113568868B (zh) * 2021-07-28 2024-02-06 重庆紫光华山智安科技有限公司 文件系统管理方法、系统、电子设备及介质
CN115168298A (zh) * 2022-06-09 2022-10-11 荣耀终端有限公司 文件系统碎片化的评估方法及电子设备

Also Published As

Publication number Publication date
CN111309267B (zh) 2023-10-03

Similar Documents

Publication Publication Date Title
CN111309267B (zh) 存储空间的分配方法、装置、存储设备及存储介质
US11151029B2 (en) Computing system and method for controlling storage device
US11023371B2 (en) Memory system and method for controlling nonvolatile memory
CN111352861B (zh) 内存压缩方法、装置及电子设备
EP3992801A1 (en) Data storage method for flash memory device and flash memory device
RU2661280C2 (ru) Контроллер массива, твердотельный диск и способ для управления твердотельным диском для записи данных
US9792227B2 (en) Heterogeneous unified memory
CN111625191A (zh) 一种数据读写方法、装置及电子设备和存储介质
CN110765031B (zh) 数据存储方法、装置、移动终端及存储介质
CN111324303A (zh) Ssd垃圾回收方法、装置、计算机设备及存储介质
CN111240601B (zh) 一种分区空间的超级块确定方法、装置、设备及存储介质
CN105988875B (zh) 一种运行进程的方法及装置
CN112148226A (zh) 一种数据存储方法及相关装置
CN111813813A (zh) 一种数据管理方法、装置、设备及存储介质
WO2021147330A1 (zh) 内存交换的方法、装置
CN111078587B (zh) 内存分配方法、装置、存储介质及电子设备
US10949340B2 (en) Block mapping systems and methods for storage device
CN116401043A (zh) 一种计算任务的执行方法和相关设备
CN115421907A (zh) 内存回收方法、装置、电子设备及存储介质
CN113253939B (zh) 数据处理方法、装置、电子设备及存储介质
CN115543859A (zh) 多分区ssd的磨损均衡优化方法、装置、设备及介质
CN115576863A (zh) 一种数据读写方法、存储设备及存储介质
CN113467699B (zh) 一种提升可用存储容量方法及装置
CN115237344A (zh) 数据存储方法、装置、电子设备以及存储介质
CN108959517B (zh) 文件管理方法、装置及电子设备

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