CN107145452A - 碎片整理的方法、终端设备及计算机可读存储介质 - Google Patents
碎片整理的方法、终端设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN107145452A CN107145452A CN201710376996.XA CN201710376996A CN107145452A CN 107145452 A CN107145452 A CN 107145452A CN 201710376996 A CN201710376996 A CN 201710376996A CN 107145452 A CN107145452 A CN 107145452A
- Authority
- CN
- China
- Prior art keywords
- file
- section
- time
- defragmentation
- fragment
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种碎片整理的方法、终端设备及计算机可读存储介质,方法包括:获取第一文件参数和第二文件参数;第一文件参数用于描述文件的碎片化程度,第二文件参数用于描述文件的被操作频率;根据第一文件参数和第二文件参数确定文件的整理评估参数;在整理评估参数大于预设阈值的情况下,对文件进行磁盘整理操作;本发明提供一种碎片整理的方法、终端设备及计算机可读存储介质,通过实现了结合文件的被访问频率及被修改频率对文件的碎片化程度进行评估,以确定是否进行碎片清理,并整合零散的碎片区段,“化零为整”,以将这些零散的碎片区段搬移同一个块组中的另一片连续的块上去,从而避免了坏区数目的增加,延长了存储寿命。
Description
技术领域
本发明涉及碎片的整理技术,尤其涉及一种碎片整理的方法、终端设备及计算机可读存储介质。
背景技术
当前主流Android手机上,data分区以及内置sdcard分区已经合并,在底层依然采用的是ext4日志文件系统。ext4文件系统在设计之初就考虑了碎片问题,并采用了对应的应对策略,比如multi-block allocator、delayed allocation、block groups等。但当文件持续增加,或者存储空间开始满了(%85),碎片仍有可能发生。特别是在Android系统中,随着app的使用,app数据不断膨胀,存储空间越来越紧张,文件系统碎片不可避免。进而导致系统IO性能下降,严重时甚至会影响到系统流畅性以及用户体验。
发明内容
本发明的主要目的在于提出一种碎片整理的方法、终端设备及计算机可读存储介质,实现了结合文件的被访问频率及被修改频率对文件的碎片化程度进行评估,以确定是否进行碎片清理,从而避免了坏区数目的增加,延长了存储寿命。
根据本发明的一个方面,提供了一种碎片整理的方法,所述方法包括:获取第一文件参数和第二文件参数;所述第一文件参数用于描述文件的碎片化程度,所述第二文件参数用于描述所述文件的被操作频率;根据所述第一文件参数和所述第二文件参数确定所述文件的整理评估参数;在所述整理评估参数大于预设阈值的情况下,对所述文件进行磁盘整理操作。
可选的,所述第二文件参数的获取,具体包括:获取所述文件的第一参数,所述第一参数包括:上次修改时间、创建时间、上次访问时间及上次碎片整理时间;根据所述第一参数满足以下条件的情况,给所述第二文件参数赋值;所述条件包括:所述文件的上次修改时间是否早于上次碎片整理时间;或者,所述文件的上次访问时间与现在时间的间隔是否大于第一预设值;或者,所述文件的上次修改时间与创建时间的差值是否大于第二预设值。
可选的,所述上次碎片整理时间的获取,包括:创建一个配置文件以记录所有所述文件的上次碎片整理时间;或者,为每个所述文件分别创建对应的影子文件,所有所述影子文件均为空文件;当任一所述文件发生碎片整理时,修改相应的所述影子文件的上次修改时间,以记录所述文件的上次碎片整理时间。
可选的,所述第一文件参数的获取,包括:根据物理磁盘的区段的数目ExtentNum以及所述文件占用的块数目blocknum,确定所述第一文件参数为:
可选的,所述磁盘整理操作包括:将连续块数小于预设阈值的至少两个碎片区段中的内容搬移到一段连续的块中形成整合区段。
可选的,所述整合区段与被搬移的所述至少两个碎片区段属于同一个块组。
可选的,所述将连续块数小于预设阈值的至少两个碎片区段中的内容搬移到一段连续的块中形成整合区段包括:获取所述文件中连续块数小于预设阈值的碎片区段;合并同一块组中的逻辑上相邻的所述碎片区段以形成合并区段;统计用于存储所述文件的块组链表中每个块组的最大连续块数目;遍历所述合并区段中的所有碎片区段:若所述碎片区段满足第一条件,对所述碎片区段进行组内搬移;或者,若所述碎片区段不满足第一条件,且满足第二条件,对所述碎片区段进行组间搬移;或者,若所述碎片区段同时不满足第一条件及第二条件,则放弃对所述碎片区段的搬移。
可选的,所述第一条件为:所述碎片区段的块大小小于块组内最大连续块数目;所述第二条件为:在用于存储所述文件的块组链表中存在足以容纳所述区段的块组。
可选的,在所述遍历所述合并区段中的所有碎片区段之后,所述方法还包括:根据区段的搬移结果调整所述区段对应的结构树;记录所述上次碎片整理时间。
根据本发明的第二个方面,提供了一种终端设备,所述终端包括存储器、处理器及通信总线;所述通信总线用于所述存储器与所述处理器之间的连接通信;所述处理器用于执行所述存储器中存储的碎片整理的程序,以实现所述的碎片整理的方法的步骤。
所述方法包括:获取第一文件参数和第二文件参数;所述第一文件参数用于描述文件的碎片化程度,所述第二文件参数用于描述所述文件的被操作频率;根据所述第一文件参数和所述第二文件参数确定所述文件的整理评估参数;在所述整理评估参数大于预设阈值的情况下,对所述文件进行磁盘整理操作。
可选的,所述第二文件参数的获取,具体包括:获取所述文件的第一参数,所述第一参数包括:上次修改时间、创建时间、上次访问时间及上次碎片整理时间;根据所述第一参数满足以下条件的情况,给所述第二文件参数赋值;所述条件包括:所述文件的上次修改时间是否早于上次碎片整理时间;或者,所述文件的上次访问时间与现在时间的间隔是否大于第一预设值;或者,所述文件的上次修改时间与创建时间的差值是否大于第二预设值。
可选的,所述上次碎片整理时间的获取,包括:创建一个配置文件以记录所有所述文件的上次碎片整理时间;或者,为每个所述文件分别创建对应的影子文件,所有所述影子文件均为空文件;当任一所述文件发生碎片整理时,修改相应的所述影子文件的上次修改时间,以记录所述文件的上次碎片整理时间。
可选的,所述第一文件参数的获取,包括:根据物理磁盘的区段的数目ExtentNum以及所述文件占用的块数目blocknum,确定所述第一文件参数为:
可选的,所述磁盘整理操作包括:将连续块数小于预设阈值的至少两个碎片区段中的内容搬移到一段连续的块中形成整合区段。
可选的,所述整合区段与被搬移的所述至少两个碎片区段属于同一个块组。
可选的,所述将连续块数小于预设阈值的至少两个碎片区段中的内容搬移到一段连续的块中形成整合区段包括:获取所述文件中连续块数小于预设阈值的碎片区段;合并同一块组中的逻辑上相邻的所述碎片区段以形成合并区段;统计用于存储所述文件的块组链表中每个块组的最大连续块数目;遍历所述合并区段中的所有碎片区段:若所述碎片区段满足第一条件,对所述碎片区段进行组内搬移;或者,若所述碎片区段不满足第一条件,且满足第二条件,对所述碎片区段进行组间搬移;或者,若所述碎片区段同时不满足第一条件及第二条件,则放弃对所述碎片区段的搬移。
可选的,所述第一条件为:所述碎片区段的块大小小于块组内最大连续块数目;所述第二条件为:在用于存储所述文件的块组链表中存在足以容纳所述区段的块组。
可选的,在所述遍历所述合并区段中的所有碎片区段之后,所述方法还包括:根据区段的搬移结果调整所述区段对应的结构树;记录所述上次碎片整理时间。
根据本发明的第三个方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个预设程序,所述预设程序被处理器执行时实现所述的碎片整理的方法的步骤。
所述方法包括:获取第一文件参数和第二文件参数;所述第一文件参数用于描述文件的碎片化程度,所述第二文件参数用于描述所述文件的被操作频率;根据所述第一文件参数和所述第二文件参数确定所述文件的整理评估参数;在所述整理评估参数大于预设阈值的情况下,对所述文件进行磁盘整理操作。
可选的,所述第二文件参数的获取,具体包括:获取所述文件的第一参数,所述第一参数包括:上次修改时间、创建时间、上次访问时间及上次碎片整理时间;根据所述第一参数满足以下条件的情况,给所述第二文件参数赋值;所述条件包括:所述文件的上次修改时间是否早于上次碎片整理时间;或者,所述文件的上次访问时间与现在时间的间隔是否大于第一预设值;或者,所述文件的上次修改时间与创建时间的差值是否大于第二预设值。
可选的,所述上次碎片整理时间的获取,包括:创建一个配置文件以记录所有所述文件的上次碎片整理时间;或者,为每个所述文件分别创建对应的影子文件,所有所述影子文件均为空文件;当任一所述文件发生碎片整理时,修改相应的所述影子文件的上次修改时间,以记录所述文件的上次碎片整理时间。
可选的,所述第一文件参数的获取,包括:根据物理磁盘的区段的数目ExtentNum以及所述文件占用的块数目blocknum,确定所述第一文件参数为:
可选的,所述磁盘整理操作包括:将连续块数小于预设阈值的至少两个碎片区段中的内容搬移到一段连续的块中形成整合区段。
可选的,所述整合区段与被搬移的所述至少两个碎片区段属于同一个块组。
可选的,所述将连续块数小于预设阈值的至少两个碎片区段中的内容搬移到一段连续的块中形成整合区段包括:获取所述文件中连续块数小于预设阈值的碎片区段;合并同一块组中的逻辑上相邻的所述碎片区段以形成合并区段;统计用于存储所述文件的块组链表中每个块组的最大连续块数目;遍历所述合并区段中的所有碎片区段:若所述碎片区段满足第一条件,对所述碎片区段进行组内搬移;或者,若所述碎片区段不满足第一条件,且满足第二条件,对所述碎片区段进行组间搬移;或者,若所述碎片区段同时不满足第一条件及第二条件,则放弃对所述碎片区段的搬移。
可选的,所述第一条件为:所述碎片区段的块大小小于块组内最大连续块数目;所述第二条件为:在用于存储所述文件的块组链表中存在足以容纳所述区段的块组。
可选的,在所述遍历所述合并区段中的所有碎片区段之后,所述方法还包括:根据区段的搬移结果调整所述区段对应的结构树;记录所述上次碎片整理时间。
本发明有益效果如下:本发明实施例所提供的一种碎片整理的方法、终端设备及计算机可读存储介质,实现了结合文件的被访问频率及被修改频率对文件的碎片化程度进行评估,以确定是否进行碎片清理,此外,通过该整盘整理,以尽量减少搬迁的“体量”,从而减少受影响的cell数目。即该磁盘整理不是针对整个文件的搬移,而是整合那些零散的碎片区段,“化零为整”,以将这些零散的碎片区段搬移一个足够大区段中,而不对规整的区段进行搬移。当然,尽可能搬移到同一个块组中的另一片连续的块上去,从而避免了坏区数目的增加,延长了存储寿命。
附图说明
图1为本发明第一实施例的流程框图(一);
图2为本发明第一实施例的流程图;
图3为本发明第一实施例的流程框图(二)。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal DigitalAssistant,PDA)、便捷式媒体播放器(Portable MediaPlayer,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
后续描述中将以移动终端为例进行说明,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
首先,应用的数据库文件、私有文件会存放在/data/data目录(后文记作datadirectory)下。也有应用会把数据文件放到内置sdcard中,内置sdcard在ext4之上运行fuse文件系统。在本实施例中,以应用的数据库文件、私有文件存放在/data/data目录(后文记作datadirectory)下为例,进行说明以详尽本发明所载的技术方案。
为了便于理解本发明实施例,对本发明第一实施例提供的一种碎片整理的方法。
第一实施例:
根据图1所示,本发明第一实施例提供了一种碎片整理的方法,所述方法包括:
S1:获取第一文件参数和第二文件参数;所述第一文件参数用于描述文件的碎片化程度,所述第二文件参数用于描述所述文件的被操作频率;
针对所述第一文件参数,在本实施例中,包括:根据物理磁盘的区段的数目ExtentNum以及所述文件占用的块数目blocknum,确定所述第一文件参数为:
而所述第二文件参数的获取,具体包括:获取所述文件的第一参数,所述第一参数包括:上次修改时间、创建时间、上次访问时间及上次碎片整理时间;
根据所述第一参数满足以下条件的情况,给所述第二文件参数赋值;
所述条件包括:所述文件的上次修改时间是否早于上次碎片整理时间;或者,所述文件的上次访问时间与现在时间的间隔是否大于第一预设值;或者,所述文件的上次修改时间与创建时间的差值是否大于第二预设值。
在本本实施例中,第一预设值由系统设置,故无论第一预设值的取值为多少均符合本发明的保护范围。
在本本实施例中,第二预设值由系统设置,故无论第二预设值的取值为多少均符合本发明的保护范围。
此外,第一文件参数为表示文件的碎片化程度,故第一文件参数的取值范围很小,在1/1000的数量级。因此,在实际使用中,将第一文件参数扩大10000倍,以得到等效的碎片化程度,碎片化程度的范围在[1,100]。
根据第一文件参数的值,挑选前10名碎片程度最严重的文件作为碎片化整理的备选文件。备选文件构成的集合记作flist。
具体的,初始状态时,每个备选文件的热度为0。
若满足所述文件的上次修改时间早于上次碎片整理时间,即经上次整理之后,该文件并没有被修改,故从集合flist中删除该文件。
若满足所述文件的上次访问时间与现在时间的间隔是否大于第一预设值;即该文件用户很少访问到(上次访问时间离现在已经很远了,对于那些不常用的app),整理的价值就不大了;故将上次访问时间排序,离现在最远的文件热度加1分,离现在最近的文件热度加10分。
若满足所述文件的上次修改时间与创建时间的差值是否大于第二预设值;即该文件被修改的机会很少(上次修改时间离现在已经很远了),整理的价值也不大。故将上次访问时间排序,离现在最远的文件热度加1分,离现在最近的文件热度加10分。
就此,就可以得到第二文件参数的数值。根据备选文件,也可得出第一文件参数。
其中,所述上次碎片整理时间的获取,包括:创建一个配置文件以记录所有所述文件的上次碎片整理时间;或者,为每个所述文件分别创建对应的影子文件,所有所述影子文件均为空文件;当任一所述文件发生碎片整理时,修改相应的所述影子文件的上次修改时间,以记录所述文件的上次碎片整理时间。
具体的,针对创建一个配置文件统一记录所有所述文件的上次碎片整理时间;在本实施例中,可以示范性的设置为:创建一个xml文件来以记录所有文件的上次碎片整理时间。
针对为每个所述文件分别创建对应的影子文件,所有所述影子文件均是空文件,当任一所述文件发生碎片整理时,修改相应的所述影子文件的上次修改时间,以记录所述文件的上次碎片整理时间。在本实施例中,为每个文件均创建一个对应的影子文件,当然,所有的影子文件都是空文件,当其中一个文件发生碎片整理时,就示范性的用touch命令修改该影子文件的上次修改时间,从而就可以以该文件的上次修改时间来记录该文件的上次碎片整理时间。
S2:根据所述第一文件参数和所述第二文件参数确定所述文件的整理评估参数;
在执行S1后,在本实施例例中,依据第一文件参数及第二文件参数构建整理评估参数,从而实现确定所述文件的整理评估参数。
在本实施例中,赋予第一文件参数为f,赋予第二参数为k,整理评估参数为s,即确定就构建评估函数s=F(f,k)。
在本实施例中,整理评估函数s=F(f,k)示范性的设为线性函数,而且,在本实施例中,并不对整理评估函数s=F(f,k)的种类进行限定,故无论整理评估函数s=F(f,k)为何种函数,均符合本发明的保护范围。
故在本实施例中,示范性的设置整理评估函数s=f+k,由S1已得出第一文件参数及第二文件参数,故可以得出整理评估函数。
S3:在所述整理评估参数大于预设阈值的情况下,对所述文件进行磁盘整理操作。
在本实施例中,由S2中可以得出整理评估函数s,故通过比较s与预设阈值的大小,若所述整理评估参数s大于预设阈值的情况下,对所述文件进行磁盘整理操作。
在本本实施例中,预设阈值由系统设置,故无论预设阈值的取值为多少均符合本发明的保护范围。
就此,就可以利用S1至S3以实现了结合文件的被访问频率及被修改频率对文件的碎片化程度进行评估,以确定是否进行碎片清理,就此避免了坏区数目的增加,延长了存储寿命。
此外,上述的所述磁盘整理操作包括:将连续块数小于预设阈值的至少两个碎片区段中的内容搬移到一段连续的块中形成整合区段。
进一步优化的,所述整合区段与被搬移的所述至少两个碎片区段属于同一个块组。
因为常规磁盘整理的思路就是将文件拷贝到新的位置,再把原文件删掉。拷贝时,日志型文件系统会把它们作为新的文件,计算文件的大小,并将它们整齐地放置到磁盘中而不产生碎片。但是每个cell有写入次数的寿命限制。如果整个文件搬移,就会增加坏区数目,减少存储寿命。
故通过该整盘整理,以尽量减少搬迁的“体量”,从而减少受影响的cell数目。即该磁盘整理不是针对整个文件的搬移,而是整合那些零散的区段,“化零为整”,以将这些零散的区段搬移一个足够大区段中,而不对规整的区段进行搬移。当然,尽可能搬移到同一个块组中的另一片连续的块上去,从而避免了坏区数目的增加,延长了存储寿命。
其中,所述将连续块数小于预设阈值的至少两个碎片区段中的内容搬移到一段连续的块中形成整合区段包括:
S11:获取所述文件中连续块数小于预设阈值的碎片区段;
其中,在本实施例中,示范性的设置预设阈值为1024,即获取碎片整理对象,在本实施例中,即为获取连续的块数目小于1024的区段。
S12:合并同一块组中的逻辑上相邻的所述碎片区段以形成合并区段;
即合并同一块组中的逻辑上相邻的所述碎片区段。
S13:统计用于存储所述文件的块组链表中每个块组的最大连续块数目;
统计用于存储所述文件的块组链表中每个块组中的最大的连续块数目。
S14:遍历所述合并区段中的所有碎片区段;
从其所述合并区段依次取出区段。
S15:若所述碎片区段满足第一条件,对所述碎片区段进行组内搬移;或者,若所述碎片区段不满足第一条件,且满足第二条件,对所述碎片区段进行组间搬移;或者,若所述碎片区段同时不满足第一条件及第二条件,则放弃对所述碎片区段的搬移。
其中,所述第一条件为:所述碎片区段的块大小小于块组内最大连续块数目;所述第二条件为:在用于存储所述文件的块组链表中存在足以容纳所述区段的块组。其中,所述碎片区段的块大小为经合并同一个块组中的在逻辑块概念上相邻的区段后的区段上的块的数目;块组内最大连续块数目为一个块组中最大连续的块数目。
若取出的区段的所述碎片区段的块大小满足第一条件,则对取出的区段进行组内搬移;若取出的区段的所述碎片区段的块大小不满足第一条件,却满足第二条件,则对取出的区段进行组件搬移;或者,若取出的区段的所述碎片区段的块大小既不满足第一条件,也不满足第二条件,则放弃对取出的区段的搬移。
此外,在所述遍历所述合并区段中的所有碎片区段之后,所述方法还包括:根据区段的搬移结果调整所述区段对应的结构树;记录所述上次碎片整理时间。即当其在逻辑块概念上相邻的区段在合并后的同一块组中无法获取碎片区段
时,调整结构树;记录所述上次碎片整理时间。
故通过该整盘整理,以尽量减少搬迁的“体量”,从而减少受影响的cell数目。即该磁盘整理不是针对整个文件的搬移,而是整合那些零散的碎片区段,“化零为整”,以将这些零散的碎片区段搬移一个足够大区段中,而不对规整的区段进行搬移。当然,尽可能搬移到同一个块组中的另一片连续的块上去,从而避免了坏区数目的增加,延长了存储寿命。
以上S11至S15可以由以下步骤进行详细阐述:
S21:获取所述文件中连续块数小于预设阈值的碎片区段;
S22:合并同一块组中的逻辑上相邻的所述碎片区段以形成合并区段;
S23:统计用于存储所述文件的块组链表中每个块组的最大连续块数目;
S24:从S22的合并区段中依次获取一个碎片区段,直至获取所有的碎片区段;
S25:所述碎片区段的块大小小于块组内最大连续块数目;
S26:若是,则对所述碎片区段进行组内搬移;
S27:返回S24;
S26:当从S22中无法获取碎片区段时,根据区段的搬移结果调整所述区段对应的结构树;
S27:记录所述上次碎片整理时间。
可选的,S24及S25之间还包括:
S241:否则,则在用于存储所述文件的块组链表中存在足以容纳所述区段的块组;
S242:若是,则执行S27,否则,放弃对所述碎片区段的搬迁;
S243:执行S27。
通过S21至S27及S241至S243,可以尽量减少搬迁的“体量”,从而减少受影响的cell数目。即该磁盘整理不是针对整个文件的搬移,而是整合那些零散的碎片区段,“化零为整”,以将这些零散的碎片区段搬移一个足够大合并区段中,而不对规整的碎片区段进行搬移。当然,尽可能搬移到同一个块组中的另一片连续的块上去,从而避免了坏区数目的增加,延长了存储寿命。
针对获取所述文件中连续块数小于预设阈值的碎片区段,碎片区段为连续块数目小于1024的区段,是碎片整理的对象。
为了便于理解本发明实施例,对本发明第二实施例提供的一种终端设备。
第二实施例:
本发明第二实施例提供了一种终端设备,所述终端包括存储器、处理器及通信总线;所述通信总线用于所述存储器与所述处理器之间的连接通信;所述处理器用于执行所述存储器中存储的碎片整理的程序,以实现所述的碎片整理的方法的步骤。
所述方法包括:获取第一文件参数和第二文件参数;所述第一文件参数用于描述文件的碎片化程度,所述第二文件参数用于描述所述文件的被操作频率;根据所述第一文件参数和所述第二文件参数确定所述文件的整理评估参数;在所述整理评估参数大于预设阈值的情况下,对所述文件进行磁盘整理操作。
可选的,所述第二文件参数的获取,具体包括:获取所述文件的第一参数,所述第一参数包括:上次修改时间、创建时间、上次访问时间及上次碎片整理时间;根据所述第一参数满足以下条件的情况,给所述第二文件参数赋值;所述条件包括:所述文件的上次修改时间是否早于上次碎片整理时间;或者,所述文件的上次访问时间与现在时间的间隔是否大于第一预设值;或者,所述文件的上次修改时间与创建时间的差值是否大于第二预设值。
可选的,所述上次碎片整理时间的获取,包括:创建一个配置文件以记录所有所述文件的上次碎片整理时间;或者,为每个所述文件分别创建对应的影子文件,所有所述影子文件均为空文件;当任一所述文件发生碎片整理时,修改相应的所述影子文件的上次修改时间,以记录所述文件的上次碎片整理时间。
可选的,所述第一文件参数的获取,包括:根据物理磁盘的区段的数目
ExtentNum以及所述文件占用的块数目blocknum,确定所述第一文件参数为:
可选的,所述磁盘整理操作包括:将连续块数小于预设阈值的至少两个碎片区段中的内容搬移到一段连续的块中形成整合区段。
可选的,所述整合区段与被搬移的所述至少两个碎片区段属于同一个块组。
可选的,所述将连续块数小于预设阈值的至少两个碎片区段中的内容搬移到一段连续的块中形成整合区段包括:获取所述文件中连续块数小于预设阈值的碎片区段;合并同一块组中的逻辑上相邻的所述碎片区段以形成合并区段;统计用于存储所述文件的块组链表中每个块组的最大连续块数目;遍历所述合并区段中的所有碎片区段:若所述碎片区段满足第一条件,对所述碎片区段进行组内搬移;或者,若所述碎片区段不满足第一条件,且满足第二条件,对所述碎片区段进行组间搬移;或者,若所述碎片区段同时不满足第一条件及第二条件,则放弃对所述碎片区段的搬移。
可选的,所述第一条件为:所述碎片区段的块大小小于块组内最大连续块数目;所述第二条件为:在用于存储所述文件的块组链表中存在足以容纳所述区段的块组。
可选的,在所述遍历所述合并区段中的所有碎片区段之后,所述方法还包括:根据区段的搬移结果调整所述区段对应的结构树;记录所述上次碎片整理时间。
通过本发明第二实施例提供了一种计算机可读存储介质实现了结合文件的被访问频率及被修改频率对文件的碎片化程度进行评估,以确定是否进行碎片清理,此外,通过该整盘整理,以尽量减少搬迁的“体量”,从而减少受影响的cell数目。即该磁盘整理不是针对整个文件的搬移,而是整合那些零散的碎片区段,“化零为整”,以将这些零散的碎片区段搬移一个足够大区段中,而不对规整的区段进行搬移。当然,尽可能搬移到同一个块组中的另一片连续的块上去,从而避免了坏区数目的增加,延长了存储寿命。
为了便于理解本发明实施例,对本发明第三实施例提供的一种计算机可读存储介质。
第三实施例:
本发明第三实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个预设程序,所述预设程序被处理器执行时实现所述的碎片整理的方法的步骤。
所述方法包括:获取第一文件参数和第二文件参数;所述第一文件参数用于描述文件的碎片化程度,所述第二文件参数用于描述所述文件的被操作频率;根据所述第一文件参数和所述第二文件参数确定所述文件的整理评估参数;在所述整理评估参数大于预设阈值的情况下,对所述文件进行磁盘整理操作。
可选的,所述第二文件参数的获取,具体包括:获取所述文件的第一参数,所述第一参数包括:上次修改时间、创建时间、上次访问时间及上次碎片整理时间;根据所述第一参数满足以下条件的情况,给所述第二文件参数赋值;所述条件包括:所述文件的上次修改时间是否早于上次碎片整理时间;或者,所述文件的上次访问时间与现在时间的间隔是否大于第一预设值;或者,所述文件的上次修改时间与创建时间的差值是否大于第二预设值。
可选的,所述上次碎片整理时间的获取,包括:创建一个配置文件以记录所有所述文件的上次碎片整理时间;或者,为每个所述文件分别创建对应的影子文件,所有所述影子文件均为空文件;当任一所述文件发生碎片整理时,修改相应的所述影子文件的上次修改时间,以记录所述文件的上次碎片整理时间。
可选的,所述第一文件参数的获取,包括:根据物理磁盘的区段的数目ExtentNum以及所述文件占用的块数目blocknum,确定所述第一文件参数为:
可选的,所述磁盘整理操作包括:将连续块数小于预设阈值的至少两个碎片区段中的内容搬移到一段连续的块中形成整合区段。
可选的,所述整合区段与被搬移的所述至少两个碎片区段属于同一个块组。
可选的,所述将连续块数小于预设阈值的至少两个碎片区段中的内容搬移到一段连续的块中形成整合区段包括:获取所述文件中连续块数小于预设阈值的碎片区段;合并同一块组中的逻辑上相邻的所述碎片区段以形成合并区段;统计用于存储所述文件的块组链表中每个块组的最大连续块数目;遍历所述合并区段中的所有碎片区段:若所述碎片区段满足第一条件,对所述碎片区段进行组内搬移;或者,若所述碎片区段不满足第一条件,且满足第二条件,对所述碎片区段进行组间搬移;或者,若所述碎片区段同时不满足第一条件及第二条件,则放弃对所述碎片区段的搬移。
可选的,所述第一条件为:所述碎片区段的块大小小于块组内最大连续块数目;所述第二条件为:在用于存储所述文件的块组链表中存在足以容纳所述区段的块组。
可选的,在所述遍历所述合并区段中的所有碎片区段之后,所述方法还包括:根据区段的搬移结果调整所述区段对应的结构树;记录所述上次碎片整理时间。
通过本发明第三实施例提供了一种计算机可读存储介质实现了结合文件的被访问频率及被修改频率对文件的碎片化程度进行评估,以确定是否进行碎片清理,此外,通过该整盘整理,以尽量减少搬迁的“体量”,从而减少受影响的cell数目。即该磁盘整理不是针对整个文件的搬移,而是整合那些零散的碎片区段,“化零为整”,以将这些零散的碎片区段搬移一个足够大区段中,而不对规整的区段进行搬移。当然,尽可能搬移到同一个块组中的另一片连续的块上去,从而避免了坏区数目的增加,延长了存储寿命。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种碎片整理的方法,其特征在于,所述方法包括:
获取第一文件参数和第二文件参数;所述第一文件参数用于描述文件的碎片化程度,所述第二文件参数用于描述所述文件的被操作频率;
根据所述第一文件参数和所述第二文件参数确定所述文件的整理评估参数;
在所述整理评估参数大于预设阈值的情况下,对所述文件进行磁盘整理操作。
2.根据权利要求1所述的方法,其特征在于,所述第二文件参数的获取,具体包括:
获取所述文件的第一参数,所述第一参数包括:上次修改时间、创建时间、上次访问时间及上次碎片整理时间;
根据所述第一参数满足以下条件的情况,给所述第二文件参数赋值;
所述条件包括:所述文件的上次修改时间是否早于上次碎片整理时间;
或者,所述文件的上次访问时间与现在时间的间隔是否大于第一预设值;
或者,所述文件的上次修改时间与创建时间的差值是否大于第二预设值。
3.根据权利要求2所述的方法,其特征在于,所述上次碎片整理时间的获取,包括:
创建一个配置文件以记录所有所述文件的上次碎片整理时间;
或者,为每个所述文件分别创建对应的影子文件,所有所述影子文件均为空文件;当任一所述文件发生碎片整理时,修改相应的所述影子文件的上次修改时间,以记录所述文件的上次碎片整理时间。
4.根据权利要求1所述的方法,其特征在于,所述磁盘整理操作包括:
将连续块数小于预设阈值的至少两个碎片区段中的内容搬移到一段连续的块中形成整合区段。
5.根据权利要求4所述的方法,其特征在于,所述整合区段与被搬移的所述至少两个碎片区段属于同一个块组。
6.根据权利要求4所述的方法,其特征在于,所述将连续块数小于预设阈值的至少两个碎片区段中的内容搬移到一段连续的块中形成整合区段包括:
获取所述文件中连续块数小于预设阈值的碎片区段;
合并同一块组中的逻辑上相邻的所述碎片区段以形成合并区段;
统计用于存储所述文件的块组链表中每个块组的最大连续块数目;
遍历所述合并区段中的所有碎片区段:
若所述碎片区段满足第一条件,对所述碎片区段进行组内搬移;
或者,若所述碎片区段不满足第一条件,且满足第二条件,对所述碎片区段进行组间搬移;
或者,若所述碎片区段同时不满足第一条件及第二条件,则放弃对所述碎片区段的搬移。
7.根据权利要求6所述的方法,其特征在于,
所述第一条件为:所述碎片区段的块大小小于块组内最大连续块数目;
所述第二条件为:在用于存储所述文件的块组链表中存在足以容纳所述区段的块组。
8.根据权利要求6所述的方法,其特征在于,在所述遍历所述合并区段中的所有碎片区段之后,所述方法还包括:根据区段的搬移结果调整所述区段对应的结构树;记录所述上次碎片整理时间。
9.一种终端设备,其特征在于,所述终端包括存储器、处理器及通信总线;
所述通信总线用于所述存储器与所述处理器之间的连接通信;
所述处理器用于执行所述存储器中存储的碎片整理的程序,以实现权利要求1至8中任一项所述的碎片整理的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个预设程序,所述预设程序被处理器执行时实现如权利要求1至8中任一项所述的碎片整理的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710376996.XA CN107145452A (zh) | 2017-05-25 | 2017-05-25 | 碎片整理的方法、终端设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710376996.XA CN107145452A (zh) | 2017-05-25 | 2017-05-25 | 碎片整理的方法、终端设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107145452A true CN107145452A (zh) | 2017-09-08 |
Family
ID=59779646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710376996.XA Pending CN107145452A (zh) | 2017-05-25 | 2017-05-25 | 碎片整理的方法、终端设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107145452A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107885458A (zh) * | 2017-09-28 | 2018-04-06 | 努比亚技术有限公司 | 一种磁盘碎片的整理方法、终端和计算机可读存储介质 |
CN110244910A (zh) * | 2019-06-19 | 2019-09-17 | 联想(北京)有限公司 | 一种数据处理方法和电子设备 |
CN110245119A (zh) * | 2018-11-02 | 2019-09-17 | 浙江大华技术股份有限公司 | 一种文件整理方法及存储系统 |
CN110945486A (zh) * | 2018-06-30 | 2020-03-31 | 华为技术有限公司 | 一种存储碎片管理方法及终端 |
CN111382129A (zh) * | 2020-03-09 | 2020-07-07 | Oppo(重庆)智能科技有限公司 | 文件碎片整理方法、装置、存储介质和相关设备 |
WO2022017148A1 (zh) * | 2020-07-21 | 2022-01-27 | 中兴通讯股份有限公司 | 文件系统管理方法、电子设备及存储介质 |
CN114816232A (zh) * | 2021-07-27 | 2022-07-29 | 云南省地质环境监测院(云南省环境地质研究院) | 一种高效存取地质灾害大数据的方法及装置 |
CN115543937A (zh) * | 2022-03-22 | 2022-12-30 | 荣耀终端有限公司 | 文件碎片整理方法及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140215125A1 (en) * | 2013-01-29 | 2014-07-31 | Rotem Sela | Logical block address remapping |
CN104768174A (zh) * | 2015-03-30 | 2015-07-08 | 浪潮通信信息系统有限公司 | 一种基于文件列表比对机制的移动网管数据文件采集方法 |
CN104933169A (zh) * | 2015-06-29 | 2015-09-23 | 南开大学 | 基于热点文件优先的文件系统碎片整理方法 |
CN105589812A (zh) * | 2015-12-16 | 2016-05-18 | 成都华为技术有限公司 | 磁盘碎片整理方法、装置及主机 |
CN105917333A (zh) * | 2014-02-05 | 2016-08-31 | 桑迪士克科技有限责任公司 | 用于存储模块碎片整理的存储模块和主机装置 |
CN103425761B (zh) * | 2013-08-05 | 2017-02-08 | 珠海金山网络游戏科技有限公司 | 一种对打包文件进行碎片整理的方法、系统及设备 |
-
2017
- 2017-05-25 CN CN201710376996.XA patent/CN107145452A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140215125A1 (en) * | 2013-01-29 | 2014-07-31 | Rotem Sela | Logical block address remapping |
CN103425761B (zh) * | 2013-08-05 | 2017-02-08 | 珠海金山网络游戏科技有限公司 | 一种对打包文件进行碎片整理的方法、系统及设备 |
CN105917333A (zh) * | 2014-02-05 | 2016-08-31 | 桑迪士克科技有限责任公司 | 用于存储模块碎片整理的存储模块和主机装置 |
CN104768174A (zh) * | 2015-03-30 | 2015-07-08 | 浪潮通信信息系统有限公司 | 一种基于文件列表比对机制的移动网管数据文件采集方法 |
CN104933169A (zh) * | 2015-06-29 | 2015-09-23 | 南开大学 | 基于热点文件优先的文件系统碎片整理方法 |
CN105589812A (zh) * | 2015-12-16 | 2016-05-18 | 成都华为技术有限公司 | 磁盘碎片整理方法、装置及主机 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107885458A (zh) * | 2017-09-28 | 2018-04-06 | 努比亚技术有限公司 | 一种磁盘碎片的整理方法、终端和计算机可读存储介质 |
CN110945486A (zh) * | 2018-06-30 | 2020-03-31 | 华为技术有限公司 | 一种存储碎片管理方法及终端 |
US11842046B2 (en) | 2018-06-30 | 2023-12-12 | Huawei Technologies Co., Ltd. | Storage fragment management method and terminal |
EP3853741A4 (en) * | 2018-11-02 | 2021-11-10 | Zhejiang Dahua Technology Co., Ltd. | STORAGE MEDIA MANAGEMENT SYSTEMS AND METHODS |
WO2020088525A1 (en) * | 2018-11-02 | 2020-05-07 | Zhejiang Dahua Technology Co., Ltd. | Systems and methods for storage medium management |
CN110245119A (zh) * | 2018-11-02 | 2019-09-17 | 浙江大华技术股份有限公司 | 一种文件整理方法及存储系统 |
US12001399B2 (en) | 2018-11-02 | 2024-06-04 | Zhejiang Dahua Technology Co., Ltd. | Systems and methods for storage medium management |
CN110244910A (zh) * | 2019-06-19 | 2019-09-17 | 联想(北京)有限公司 | 一种数据处理方法和电子设备 |
CN111382129A (zh) * | 2020-03-09 | 2020-07-07 | Oppo(重庆)智能科技有限公司 | 文件碎片整理方法、装置、存储介质和相关设备 |
CN111382129B (zh) * | 2020-03-09 | 2023-09-22 | Oppo(重庆)智能科技有限公司 | 文件碎片整理方法、装置、存储介质和相关设备 |
WO2022017148A1 (zh) * | 2020-07-21 | 2022-01-27 | 中兴通讯股份有限公司 | 文件系统管理方法、电子设备及存储介质 |
CN114816232A (zh) * | 2021-07-27 | 2022-07-29 | 云南省地质环境监测院(云南省环境地质研究院) | 一种高效存取地质灾害大数据的方法及装置 |
CN114816232B (zh) * | 2021-07-27 | 2022-11-08 | 云南省地质环境监测院(云南省环境地质研究院) | 一种高效存取地质灾害大数据的方法及装置 |
CN115543937A (zh) * | 2022-03-22 | 2022-12-30 | 荣耀终端有限公司 | 文件碎片整理方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107145452A (zh) | 碎片整理的方法、终端设备及计算机可读存储介质 | |
EP3238106B1 (en) | Compaction policy | |
CN104933169B (zh) | 基于热点文件优先的文件系统碎片整理方法 | |
CN104021145B (zh) | 一种混合业务并发访问的方法和装置 | |
DE102016105472A1 (de) | Speicherebenenverteilung und parallele Zuordnung auf Blockebene bei Dateisystemen | |
CN102231121B (zh) | 基于内存映射的大数据文件快速并行提取方法 | |
CN112396108A (zh) | 业务数据评估方法、装置、设备及计算机可读存储介质 | |
CN104809237A (zh) | LSM-tree索引的优化方法和装置 | |
CN103345514A (zh) | 大数据环境下的流式数据处理方法 | |
Kia et al. | A multi-objective model for designing a group layout of a dynamic cellular manufacturing system | |
CN103327123A (zh) | 一种文件同步的方法、客户端、服务器端及设备 | |
CN102298598A (zh) | 一种专利信息分析方法及装置 | |
Saranya et al. | Portfolio selection and optimization with higher moments: Evidence from the Indian stock market | |
CN105677687A (zh) | 一种数据处理方法及装置 | |
CN113657009B (zh) | 一种索具产品的有限元模型优化方法、装置及设备 | |
Mukherjee | Synthesis of non-replicated dynamic fragment allocation algorithm in distributed database systems | |
CN106681823A (zh) | 一种处理MapReduce数据倾斜的负载均衡方法 | |
Zosimov et al. | Dynamically changing user interfaces: software solutions based on automatically collected user information | |
CN103365923A (zh) | 用于评估数据库的分区方案的方法和装置 | |
Sarkar et al. | Compactionary: A dictionary for LSM compactions | |
CN108389152B (zh) | 一种图结构感知的图处理方法及装置 | |
Gaier et al. | Ruin probabilities and investment under interest force in the presence of regularly varying tails | |
CN110222046A (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
Paydar et al. | Designing a new integrated model for dynamic cellular manufacturing systems with production planning and intra-cell layout | |
Shi et al. | Human resources balanced allocation method based on deep learning algorithm |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170908 |
|
RJ01 | Rejection of invention patent application after publication |