CN102024034B - 一种面向高清媒体的嵌入式文件系统的碎片处理方法 - Google Patents

一种面向高清媒体的嵌入式文件系统的碎片处理方法 Download PDF

Info

Publication number
CN102024034B
CN102024034B CN201010568094.4A CN201010568094A CN102024034B CN 102024034 B CN102024034 B CN 102024034B CN 201010568094 A CN201010568094 A CN 201010568094A CN 102024034 B CN102024034 B CN 102024034B
Authority
CN
China
Prior art keywords
fragment
file system
data
sui
data blocks
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.)
Expired - Fee Related
Application number
CN201010568094.4A
Other languages
English (en)
Other versions
CN102024034A (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.)
Institute of Acoustics CAS
Original Assignee
Institute of Acoustics CAS
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 Institute of Acoustics CAS filed Critical Institute of Acoustics CAS
Priority to CN201010568094.4A priority Critical patent/CN102024034B/zh
Publication of CN102024034A publication Critical patent/CN102024034A/zh
Application granted granted Critical
Publication of CN102024034B publication Critical patent/CN102024034B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种面向高清媒体的嵌入式文件系统的碎片处理方法,该方法的具体步骤包括:首先,建立用于记录磁盘所有的空闲数据块的块号和长度的嵌入式文件系统空闲数据块使用链表;其次,根据嵌入式文件系统空闲数据块使用链表所记录的空闲数据块的块号和长度及碎片大小的定义确定出哪些空闲数据块构成碎片以及碎片的位置;比较碎片大小和片单元存储单元中的空闲数据块长度,判断哪些空闲数据块构成碎片,并由嵌入式文件系统空闲数据块使用链表中的块号确定碎片的位置;再其次,通过数据移动与碎片合并的方式对碎片进行处理;最后,进行嵌入式文件系统空闲数据块使用链表的更新。

Description

一种面向高清媒体的嵌入式文件系统的碎片处理方法
技术领域
本发明涉及嵌入式文件系统碎片处理方法,特别涉及一种面向高清媒体的嵌入式文件系统碎片处理方法。
背景技术
在媒体产业进入高清时代的大环境、加之高清化带来的数据存储技术的应用、以及以嵌入式系统为支撑的嵌入式平台的应用背景下,基于高清媒体的嵌入式存储技术暴露出诸多问题。
目前众多基于嵌入式系统开发的影音娱乐设备,由数据存储量骤增所带来的压力通常通过更换更大容量存储设备来缓解,但是由于其嵌入式稳定性、存储空间、存储器带宽、传输带宽等的限制,用于数据存储管理的操作系统的可靠性、一致性、稳定性以及高效的读写性能却无法保证,从而出现如文件系统崩溃、文件丢失等不可恢复的问题,而且始终未能有很好的解决方案。其所带来的实际问题包括:
1):由于用户的存储数据以影音视频数据为主,尤其是高清晰视频文件的数据量巨大,虽然这些文件对数据精确性要求不高,允许少量字节的丢失,但是一旦文件丢失或者损坏,需要很长时间去修复,或重新拷贝,而且用户不可见的垃圾文件只能格式化才能解决问题,因此代价较高。
2):随着文件在磁盘等物理存储设备上的写入与删除,系统内碎片数量不断增加,造成对于同一文件的存储连续性降低,进而影响文件系统的读写性能。
3):传统磁盘碎片处理技术为了能够对磁盘上碎片进行有效处理,通常比较耗时,而且处理效果不是很好。
综上所述,高清媒体影音视频文件的存储给嵌入式的文件系统提出了特殊的要求。加之嵌入式操作系统的自身又存在系统资源有限、易受外界因素影响、容灾能力有限、机制制约性能及算法过于庞大等诸多自身问题。因此,无论是从存储特殊性角度、嵌入式操作系统性能角度,还是存储数据连续性角度都对高清媒体的嵌入式数据文件系统提出了新的要求。
发明内容
本发明的目的在于,为了解决上述问题,提出了一种面向高清媒体的嵌入式文件系统的碎片处理方法,有效地将嵌入式文件系统中的碎片进行管理与回收,降低了文件系统中的碎片数量,提高了文件存储的连续度。
为实现上述发明目的,提出了一种面向高清媒体的嵌入式文件系统的碎片处理方法,该方法的具体步骤包括:
步骤1):建立嵌入式文件系统空闲数据块使用链表,所述的文件系统空闲数据块使用链表用于记录磁盘所有的空闲数据块的块号和长度;
步骤2):根据嵌入式文件系统空闲数据块使用链表记录的内容和碎片大小的定义,确定出哪些空闲数据块构成碎片以及确定的碎片位置;其中,
设碎片大小为FragmentSize,则FragmentSize=FraghmentNum×SUSize,其中SUSize为存储数据的单元数据片大小,FragmentNum为碎片中包含的单元数据片数目;
设定存储样本的连续度为Continuity,则:设定可接受的存储样本连续度值为α,α取值范围为α≥80%;根据该连续度值计算出FragmentNum,再根据SUSize得到碎片大小FragmentSize
比较碎片大小FragmentSize和片单元存储单元中的空闲数据块长度,判断哪些空闲数据块构成碎片,并由嵌入式文件系统空闲数据块使用链表中的块号确定碎片的位置;
步骤3):通过数据移动与碎片合并的方式对碎片进行处理;
步骤4):进行嵌入式文件系统空闲数据块使用链表的更新;
至此,面向高清媒体的嵌入式文件系统的碎片处理完成。
所述的碎片处理方法还包括步骤5):对碎片处理时修正的嵌入式文件系统空闲数据块使用链表的信息进行日志备份。当发生意外掉电或宕机时,通过备份信息还原相应文件的数据块使用链表信息,保证碎片管理的可用性与安全性。
所述的日志备份记录的信息包括但不局限于以下内容:正在操作的嵌入式文件系统空闲数据块使用链表中数据块索引的序号及数据正在移动的状态/数据已经移动完毕的状态。
所述的步骤4)采用片单元索引域数据替换方法;该方法具体步骤包括:
步骤4.1):在移动的数据块未建立起新的片单元索引关系之前原有数据块的片单元链接不做断链处理;
步骤4.2):当移动后的数据块完成所有片单元链接后,释放原有数据块的片单元链接。
假设需要移动的数据块从位置SUI[n+x]移动至原有数据块的位置SUI[n]中,所述的步骤4.2)具体步骤包括:
步骤4.2.1):将需要移动的数据块拷贝至原有数据块的位置SUI[n]所对应的数据块中;
步骤4.2.2):将原有数据块的位置SUI[n]的Next_Pos域指向SUI[n+x+1],保持SUI[n+x]与SUI[n+x+1]的链接检索;
步骤4.2.3):将SUI[n+x-1]的Next_Pos域指向SUI[n],保持SUI[n+x-1]、SUI[n]与SUI[n+x+1]的链接检索;
步骤4.2.4):将SUI[n+x]的Next_Pos域重新初始化,释放该片单元索引。
本发明的优点在于,提供了一种面向高清媒体的嵌入式文件系统的碎片处理方法,有效降低系统碎片处理期间的数据丢失的概率,降低系统内碎片的数量,从而有效提高文件存储的连续性。同时,与传统磁盘碎片处理方法相比,该方法有效的提高了碎片处理的速度,从而保证文件系统的效率。
附图说明
图1为本发明提出的一种面向高清媒体的嵌入式文件系统的碎片处理方法的流程图;
图2为片单元索引替换流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细的说明。
存储样本的碎片大小FragmenTSize为FragmentSize=FragmentNum×SUSize,其中SUsize为片单元数据块大小,FragmentNum为碎片中包含的数据片单元数目,在本实施例中,FragmentNum称之为碎片因子。根据存储样本容量与碎片大小,可计算得到存储样本需要磁头移动HeadMoveTimes的最优次数为1次,最差为HeadMoveTimes=FileSize/(FragmentNum×SUSize)次,最差的移动可表示为全部存储空间均由碎片够成。因此最坏移动次数依赖碎片因子FragmentNum,选取存储样本容量均值为FileSize=2GB。
存储样本的连续度为
Figure BSA00000368819800031
当样本的连续度不足80%时,认为该样本存在的碎片过多,连续度不可接受。
本实施例中,文件系统中的存储样本平均容量默认大小为2GB,取FileSize=2GB,SUSize=1MB时,n=5才能使得存储样本的连续度达到80%以上。由此,根据FragmentSize=FragmetNum×SUSize可以得出存储样本的碎片大小Fragmentsize≤5×SUsize,即当SUSize=1MB时,Fragmentsize≤5MB。
图1为本发明提出的一种面向高清媒体的嵌入式文件系统的碎片处理方法的流程图,如图1所示。该方法具体步骤如下:
步骤1):建立嵌入式文件系统空闲数据块使用链表。具体步骤包括:
步骤1.1):依次遍历片单元索引域内所有数据直到找到一空闲数据片单元索引,记录第一个空闲片单元索引的首地址,填入FreeStrips_FirstAddr中,FreeStrips_Length=0;
步骤1.2):继续遍历后续片单元索引域,如果后续索引空间为空闲状态,则FreeStrips_Length加1,并继续步骤1.2);否则,记录当前的FreeStrips_Length,并转至步骤1.3);
步骤1.3):继续遍历后续片单元索引域直至找到下一空闲数据片单元索引,将上一结构的Next指针域指向该结构并形成链表,记录找到的下一空闲数据片单元索引的首地址,填入FreeStrips_FirstAddr中,FreeStrips_Length=0;转至步骤1.2)和步骤1.3)直至遍历结束;
步骤1.4):最终形成freestrips_a[i],该遍历每次挂载磁盘时执行一次。
空闲数据块链表定义:NodeList freestrips_a;该链表的数据结构为:
                  struct NodeList{
                     Node_ptr      next;
                     long          FreeStrips_FirstAddr;
                     long long int FreeStrips_Length;}
步骤2):根据嵌入式文件系统空闲数据块使用链表记录的内容和碎片大小的定义,确定出哪些空闲数据块构成碎片以及确定的碎片位置。
步骤3):通过数据移动与碎片合并的方式对碎片进行处理。
假设空闲数据块链表freesize_a[i]中存在若干碎片,所述的步骤3)具体的步骤包括:
步骤3.1):如果freesize_a[i].FreeStrips_Length∈[1,FragmentSize],则freesize_a[i]为碎片,需要进行处理;
步骤3.2):查找下一碎片位置,在下一空闲碎片freesize_a[i+1]前面完整数据域中,取长度为freesize_a[i].FreeStrips_Length数据,将其移动到空闲碎片freesize_a[i]中,覆盖该碎片;
步骤3.3):将移走数据的空闲块与下一碎片freesize_a[i+1]合并,成为新的空闲数据域,并重新处理freesize_a[i+1];
步骤3.4):新数据域是空闲碎片,查找新生成的空闲碎片后的下一空闲碎片,并重复步骤3.2)和步骤3.3)。
步骤4):采用片单元索引域数据替换方法进行数据链表的更新。设需将数据从SUI[n+x]移动至SUI[n]中,片单元索引替换算法详细描述如下:
步骤4.1):将SUI[n+x]所对应的数据区中的数据拷贝至SUI[n]所对应的数据块中;
步骤4.2):将SUI[n]的Next_Pos域指向SUI[n+x+1],保持SUI[n+x]与SUI[n+x+1]的链接检索;
步骤4.3):将SUI[n+x-1]的Next_Pos域指向SUI[n],保持SUI[n+x-1]、SUI[n]与SUI[n+x+1]的链接检索;
步骤4.4):将SUI[n+x]的Next_Pos域重新初始化,释放该片单元索引。
图2为片单元索引替换方法示意图,如图2所示。图中尝试移动50、51、52三个数据块到35、36、37,并将移出数据的空闲数据块50、51、52与后面的空闲数据块组成新的空闲数据域。在图1中,显示了将数据块50移动到35的片单元索引替换步骤。具体如下:
1)将50的数据全部移至35中,并将35的Next_Pos域指向51,此时可以看到,虽然35与51已经链接,但实际上在对存储样本检索的过程中仍是通过50找到51,因此,在此时宕机不会对存储样本的连续性造成影响;
2)将49的NextP_Pos域指向35,此时可以分析存储样本的连续性,该样本可以通过49检索到35,再通过35检索的51,因此,该样本仍然是连续的;
3)将50的Next_Pos域重新初始化,彻底释放该数据域。
步骤5):对碎片处理时修正的嵌入式文件系统空闲数据块使用链表的信息进行日志备份。当发生意外掉电或宕机时,通过备份信息还原相应文件的数据块使用链表信息,保证碎片管理的可用性与安全性。
所述的日志备份记录的信息包括:正在操作的嵌入式文件系统空闲数据块使用链表中数据块索引的序号及数据正在移动的状态/数据已经移动完毕的状态。
日志备份中的每一步骤按照管理日志结构进行增量顺序保存;其中,管理日志结构表示如下:
                        struct SnapSUI{
                           SUI_State      State;
                           long int   SU_Num;}
其中,State表示断链与上链,SU_Num表示正在操作的片单元索引的序号。当发生意外掉电或宕机时对数据进行恢复,结合日志记录按照反向推理原则对其进行修复。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (4)

1.一种面向高清媒体的嵌入式文件系统的碎片处理方法,该方法的具体步骤包括:
步骤1):建立嵌入式文件系统空闲数据块使用链表,该文件系统空闲数据块使用链表,用于记录磁盘所有的空闲数据块的块号和长度;
步骤2):根据嵌入式文件系统空闲数据块使用链表所记录的空闲数据块的块号和长度及碎片大小的定义确定出哪些空闲数据块构成碎片以及碎片的位置;
设定碎片大小FragmentSize为:FragmentSize=FragmentNum×SUSize,其中,SUSize为存储数据的单元数据片大小,FragmentNum为碎片中包含的单元数据片数目;
设定存储样本的连续度为Continuity,则: Continuity = ( 1 - 1 Fragment Num ) × 100 % , 设定可接受的存储样本连续度值为α,α取值范围为α≥80%;根据该连续度值计算出FragmentNum,再根据SUSize得到碎片大小FragmentSize
比较碎片大小FragmentSize和片单元存储单元中的空闲数据块长度,判断哪些空闲数据块构成碎片,并由嵌入式文件系统空闲数据块使用链表中的块号确定碎片的位置;
步骤3):通过数据移动与碎片合并的方式对碎片进行处理;
步骤4):进行嵌入式文件系统空闲数据块使用链表的更新;
所述的步骤4)采用片单元索引域数据替换方法;该方法具体步骤包括:
步骤4.1):在移动的数据块未建立起新的片单元索引关系之前原有数据块的片单元链接不做断链处理;
步骤4.2):当移动后的数据块完成所有片单元链接后,释放原有数据块的片单元链接;
至此,面向高清媒体的嵌入式文件系统的碎片处理完成。
2.根据权利要求1所述的面向高清媒体的嵌入式文件系统的碎片处理方法,其特征在于,所述的碎片处理方法还包括步骤5):对碎片处理时修正的嵌入式文件系统空闲数据块使用链表的信息进行日志备份。
3.根据权利要求2所述的面向高清媒体的嵌入式文件系统的碎片处理方法,其特征在于,所述的日志备份记录的信息内容包括:正在操作的嵌入式文件系统空闲数据块使用链表中数据块索引的序号及数据正在移动的状态/数据已经移动完毕的状态。
4.根据权利要求1所述的面向高清媒体的嵌入式文件系统的碎片处理方法,其特征在于,假设需要移动的数据块从位置SUI[n+x]移动至原有数据块的位置SUI[n]中,所述的步骤4.2)具体步骤包括:
步骤4.2.1):将需要移动的数据块拷贝至原有数据块的位置SUI[n]所对应的数据块中;
步骤4.2.2):将原有数据块的位置SUI[n]中的下一个位置域指针指向SUI[n+x+1],保持SUI[n+x]与SUI[n+x+1]的链接检索;
步骤4.2.3):将SUI[n+x-1]中的下一个位置域指针指向SUI[n],保持SUI[n+x-1]、SUI[n]与SUI[n+x+1]的链接检索;
步骤4.2.4):将SUI[n+x]中的下一个位置域指针重新初始化,释放该片单元索引。
CN201010568094.4A 2010-11-26 2010-11-26 一种面向高清媒体的嵌入式文件系统的碎片处理方法 Expired - Fee Related CN102024034B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010568094.4A CN102024034B (zh) 2010-11-26 2010-11-26 一种面向高清媒体的嵌入式文件系统的碎片处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010568094.4A CN102024034B (zh) 2010-11-26 2010-11-26 一种面向高清媒体的嵌入式文件系统的碎片处理方法

Publications (2)

Publication Number Publication Date
CN102024034A CN102024034A (zh) 2011-04-20
CN102024034B true CN102024034B (zh) 2012-05-30

Family

ID=43865331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010568094.4A Expired - Fee Related CN102024034B (zh) 2010-11-26 2010-11-26 一种面向高清媒体的嵌入式文件系统的碎片处理方法

Country Status (1)

Country Link
CN (1) CN102024034B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488685B (zh) * 2013-09-02 2017-02-01 上海网达软件股份有限公司 一种基于分布式存储系统的碎片文件存储方法
CN105335394B (zh) * 2014-07-14 2019-08-13 阿里巴巴集团控股有限公司 一种基于数据库的数据控制方法及系统
CN104281517B (zh) * 2014-10-16 2017-05-17 浙江宇视科技有限公司 一种基于日志方式的存储空间管理方法和装置
CN104298766B (zh) * 2014-10-28 2018-03-20 四川秘无痕信息安全技术有限责任公司 一种清除SQLite数据库中数据的方法
CN104461914A (zh) * 2014-11-10 2015-03-25 浪潮电子信息产业股份有限公司 一种自动精简配置的自适应优化方法
CN104504117A (zh) * 2014-12-31 2015-04-08 四川秘无痕信息安全技术有限责任公司 一种清除正常文件尾部碎片数据的方法
CN106294189B (zh) * 2015-05-25 2020-09-25 中兴通讯股份有限公司 内存碎片整理方法及装置
CN107615253B (zh) 2015-06-01 2021-03-12 深圳市大疆创新科技有限公司 用于存储器架构的系统和方法
CN110688345A (zh) * 2019-09-26 2020-01-14 重庆大学 一种内存文件系统的多粒度结构化空间管理机制
CN112199303B (zh) * 2020-12-03 2021-03-16 北京紫光青藤微系统有限公司 存储空间碎片化的处理方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1635482A (zh) * 2003-12-29 2005-07-06 北京中视联数字系统有限公司 一种嵌入式系统内存管理的方法
US20070101054A1 (en) * 2005-09-28 2007-05-03 Muthian Sivathanu Computer storage device providing implicit detection of block liveness
CN101460932A (zh) * 2006-06-08 2009-06-17 Nxp股份有限公司 用于嵌入式设备远程解碎片化的设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1635482A (zh) * 2003-12-29 2005-07-06 北京中视联数字系统有限公司 一种嵌入式系统内存管理的方法
US20070101054A1 (en) * 2005-09-28 2007-05-03 Muthian Sivathanu Computer storage device providing implicit detection of block liveness
CN101460932A (zh) * 2006-06-08 2009-06-17 Nxp股份有限公司 用于嵌入式设备远程解碎片化的设备

Also Published As

Publication number Publication date
CN102024034A (zh) 2011-04-20

Similar Documents

Publication Publication Date Title
CN102024034B (zh) 一种面向高清媒体的嵌入式文件系统的碎片处理方法
CN102831222B (zh) 一种基于重复数据删除的差量压缩方法
US20100146213A1 (en) Data Cache Processing Method, System And Data Cache Apparatus
CN107391774B (zh) 基于重复数据删除的日志文件系统的垃圾回收方法
CN104077380B (zh) 一种重复数据删除方法、装置及系统
CN102591947A (zh) 用于数据去重复的快速且低ram占用的索引
EP3316150B1 (en) Method and apparatus for file compaction in key-value storage system
KR102310246B1 (ko) 세컨더리 인덱스 생성 방법 및 세컨더리 인덱스 저장 장치
CN103098035A (zh) 存储系统
CN106201774B (zh) 一种nand flash存储芯片数据存储结构分析方法
US20120136842A1 (en) Partitioning method of data blocks
CN102467571A (zh) 重复数据删除的数据区块切分方法与新增方法
CN105630834A (zh) 一种实现重复数据删除的方法及装置
CN102467572A (zh) 支持重复数据删除程序的数据区块查询方法
CN104092670A (zh) 网络缓存服务器处理文件的方法及处理缓存文件的设备
CN105446964A (zh) 用于文件的重复数据删除的方法及装置
CN111400083A (zh) 数据存储方法及系统、存储介质
CN104462388B (zh) 一种基于级联式存储介质的冗余数据清理方法
CN104050103A (zh) 一种用于数据恢复的缓存替换方法与系统
CN105447168A (zh) Mp4格式的碎片文件恢复与重组的方法
CN103226965A (zh) 基于时间位图的音视频数据存取方法
CN104965835A (zh) 一种分布式文件系统的文件读写方法及装置
CN104050057A (zh) 一种历史感知的数据去重碎片消除方法与系统
CN111796969A (zh) 一种数据差量压缩检测方法、计算机设备和存储介质
US8819355B2 (en) Information processing apparatus, information processing method, and program

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120530

Termination date: 20141126

EXPY Termination of patent right or utility model