CN117349227A - 文件处理方法、电子设备和存储介质 - Google Patents
文件处理方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117349227A CN117349227A CN202311254194.3A CN202311254194A CN117349227A CN 117349227 A CN117349227 A CN 117349227A CN 202311254194 A CN202311254194 A CN 202311254194A CN 117349227 A CN117349227 A CN 117349227A
- Authority
- CN
- China
- Prior art keywords
- file
- files
- storage device
- list
- information
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 239000012634 fragment Substances 0.000 claims description 56
- 230000015654 memory Effects 0.000 claims description 55
- 238000000034 method Methods 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 32
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 14
- 238000013467 fragmentation Methods 0.000 description 14
- 238000006062 fragmentation reaction Methods 0.000 description 14
- 230000004044 response Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (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
技术领域
本申请涉及文件处理领域,具体而言,本申请涉及一种文件处理方法、电子设备和存储介质。
背景技术
随着电子设备的发展,存在对存储装置中的文件进行去碎片化以提高存储装置使用性能的技术需求,特别是随着诸如智能手机、平板电脑等移动终端的普及,人们使用移动终端进行文件读写的需求快速增加,然而在相关技术中,对于移动终端的移动存储装置,存储空间整理、文件去碎片化和/或其他技术的效率较低。
如何更加高效地在移动存储装置中进行存储空间整理、文件去碎片化等,更好地满足用户需求,是本领域技术人员一直在努力研究的技术问题。
发明内容
为了至少解决现有技术中存在的上述问题,本发明构思提供了一种文件处理方法、电子设备和存储介质。
根据本申请的示例实施例的第一方面,提供了一种文件处理方法,所述文件处理方法包括:根据针对存储装置中的文件的文件访问信息,更新文件列表,其中,文件列表包含待去碎片化文件的文件索引节点号;响应于发生触发事件,根据更新的文件列表,对存储装置中的与文件索引节点号对应的待去碎片化文件进行去碎片化。
可选地,根据针对存储装置中的文件的文件访问信息,更新文件列表的步骤包括:根据针对所述文件的所述文件访问信息,确定所述文件的文件信息,所述文件信息包括所述文件的文件索引节点号;根据所述文件信息更新文件列表。
可选地,所述文件信息还包括所述文件的文件类型,文件类型是读类型或者写类型,其中,如果所述文件的文件类型是写类型,则不更新文件列表。
可选地,根据所述文件信息更新文件列表的步骤包括:确定文件列表中是否存在所述文件的文件索引节点号;如果文件列表中不存在所述文件的文件索引节点号,则在文件列表中添加所述文件的文件索引节点号。
可选地,根据所述文件信息更新文件列表的步骤还包括:根据所述文件信息统计所述文件的访问次数和碎片计数;根据所述文件的访问次数和碎片计数,确定所述文件的加权碎片计数;根据所述文件的加权碎片计数,对文件列表中的各个文件索引节点号进行排序。
可选地,每个待去碎片化文件的文件索引节点号、碎片计数、访问次数和加权碎片计数组成一个文件信息节点并且所述一个文件信息节点被包括在文件列表中,并且,文件列表中的所有文件信息节点按照基数树结构被存储和查找。
可选地,所述触发事件为以下事件中的一个:所述存储装置所属的终端处于待机状态、所述终端处于正在充电且未被操作的状态、用户触发去碎片化操作。
可选地,存储装置是具有主机启动碎片整理(HID)2.0特性的通用闪存UFS。
可选地,根据更新的文件列表,对存储装置中的与文件索引节点号对应的待去碎片化文件进行去碎片化的步骤包括:响应于发生触发事件,按照更新的文件列表中的文件索引节点号的排序,将与文件索引节点号对应的待去碎片化文件的HID请求和HID目标地址传输给所述存储装置进行去碎片化。
根据本申请的示例实施例的第二方面,提供了一种文件处理装置,所述文件处理装置包括:处理单元,被配置为:根据针对存储装置中的文件的文件访问信息,更新文件列表,其中,文件列表包含待去碎片化文件的文件索引节点号;去碎片化触发单元,被配置为:响应于发生触发事件,根据更新的文件列表,对存储装置中的与文件索引节点号对应的待去碎片化文件进行去碎片化。
可选地,处理单元包括:信息收集单元,被配置为:根据针对所述文件的所述文件访问信息,确定所述文件的文件信息,所述文件信息包括所述文件的文件索引节点号;排序单元,被配置为根据所述文件信息更新文件列表。
可选地,所述文件信息还包括所述文件的文件类型,文件类型是读类型或者写类型,其中,如果所述文件的文件类型是写类型,则排序单元不更新文件列表。
可选地,排序单元被配置为通过以下操作根据所述文件信息更新文件列表:确定文件列表中是否存在所述文件的文件索引节点号;如果文件列表中不存在所述文件的文件索引节点号,则在文件列表中添加所述文件的文件索引节点号。
可选地,处理单元还包括:信息分析单元,被配置为:根据所述文件信息统计所述文件的访问次数和碎片计数;以及根据所述文件的访问次数和碎片计数,确定所述文件的加权碎片计数,其中,排序单元被配置为:根据所述文件的加权碎片计数,对文件列表中的各个文件索引节点号进行排序。
可选地,每个待去碎片化文件的文件索引节点号、碎片计数、访问次数和加权碎片计数组成一个文件信息节点并且所述一个文件信息节点被包括在文件列表中,并且,文件列表中的所有文件信息节点按照基数树结构被存储和查找。
可选地,所述触发事件为以下事件中的一个:所述存储装置所属的终端处于待机状态、所述终端处于正在充电且未被操作的状态、用户触发去碎片化操作。
可选地,所述存储装置是具有主机启动碎片整理(HID)2.0特性的通用闪存UFS。
可选地,去碎片化触发单元被配置为:响应于发生触发事件,按照更新的文件列表中的文件索引节点号的排序,将与文件索引节点号对应的待去碎片化文件的HID请求和HID目标地址传输给所述存储装置进行去碎片化。
根据本申请的示例实施例的第三方面,提供了一种电子设备,包括:至少一个处理器;以及至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如上所述的文件处理方法。
根据本申请的示例实施例的第四方面,提供了一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个处理器运行时,促使所述至少一个处理器执行如上所述的文件处理方法。
本公开的示例实施例提供的技术方案至少带来以下有益效果:
本申请不需要对文件预留空间,从而避免了存储空间的浪费。另外,本申请在甄别了需要进行去碎片化的文件以后,不会立即进行去碎片化,而是首先将该文件的文件索引节点号添加到文件列表中,然后在发生了预定的(或可选地,期望的)触发事件(例如终端处于空闲状态时、或者用户输入了去碎片化命令时等)时,才会针对文件列表中记录的文件进行去碎片化,从而避免影响对终端的使用体验。
另外,本申请通过利用统计获得的文件的碎片计数和访问计数确定该文件的加权碎片计数,并利用加权碎片计数对文件列表进行排序,从而甄别经常使用的文件或者关键文件,从而达到特定文件的去碎片化目的,提升后续访问文件的速度。
另外,本申请通过使用具有HID 2.0特性的UFS,可减轻存储装置与主机之间的通讯量,从而减少或防止由于文件去碎片化而使存储装置和主机的使用寿命降低的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的示例实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是示出根据本申请的示例实施例的主机存储系统10的框图。
图2是示出根据本申请的示例实施例的文件处理方法的流程图。
图3A是示出根据本申请的示例实施例的文件处理过程的示意图。
图3B是示出根据本申请的示例实施例的文件列表和文件信息节点的结构示意图。
图3C是示出根据本申请的示例实施例的利用基数树查找文件信息节点的过程的示意图。
图4是示出根据本申请的示例实施例的文件处理装置的框图。
图5A是示出根据本申请的示例实施例的更新文件列表的过程的示意图。
图5B是示出根据本申请的示例实施例的更新文件列表的过程的示意图。
图6是示出根据本申请的示例实施的检测触发事件并响应于触发事件发生而对存储装置进行去碎片化的过程的流程图。
图7是示出根据本申请的示例实施例的电子设备的结构的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开的示例实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的示例实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例实施例中所描述的示例实施例并不代表与本公开相一致的所有示例实施例。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行操作一和操作二之中的至少一个”,即表示如下三种并列的情况:(1)执行操作一;(2)执行操作二;(3)执行操作一和操作二。
为了提高存储装置的性能,现有技术提出了多种存储空间整理或文件去碎片化技术。例如,闪存友好文件系统(flash-friendly file system,简称FSFS)具有去碎片化工具defrag.f2fs,defrag.f2fs可用于整理分散的写入数据以及磁盘上的文件系统元数据,以便提供更多的连续存储空间来提高写入速度,该工具给用户提供了接口用于指定哪些块的数据需要进行移动。但是,对于defrag.f2fs而言,用户需要知道对哪些块进行去碎片化,所以defrag.f2fs对于用户的使用而言并不友好。
此外,本领域技术人员还提出了一种基于回溯的自适应预留空间(AdaptiveReserved Space Based on Traceback,简称ARST)技术。ARST技术是一种预防文件碎片化的方案,其基于F2FS。ARST先进行机器学习,以识别那些在创建后会被反复更新或追加的文件,例如,增长型文件。当创建新文件时,ARST根据先前学习得到的模型判断该文件是否为增长型文件,如果是,则为该文件预分配一定范围的连续空间,当后期对该文件的大小增长时,新的数据将被追加到预分配的连续空间中,其逻辑地址不会与其它文件的数据块混杂,从而减少或预防文件的碎片化程度升高。但是ARST技术按照训练的模型通过对新创建的文件进行预测来保留或预分配空间,由于该模型存在一定的误差,所以对一些文件预分配的空间可能存在浪费的情况。
另外,本领域技术人员还提出了一种文件系统与存储装置的协同物理碎片整理(Cooperative Physical Defragmentation by a File System And a Storage Device,简称DFSD)。DFSD需要文件系统与存储装置协助来完整去碎片化,DFSD选择已经经过文件系统去碎片化的文件进行去碎片化,例如,主机通过UFS器件提供的命令从存储装置获取所需的文件的物理碎片信息,然后根据该物理碎片信息从存储装置中读取该文件的各个碎片,再将读取的该文件的各个碎片重新写入到存储装置中以进行去碎片化。然而,DFSD技术需要把文件从存储装置中读出来再重新写入存储装置中,所以DFSD技术会加大主机与存储装置之间的数据传输量,从而减少各个器件的寿命。
综上,现有的对存储装置去碎片化的各种技术存在使用不便、存储空间浪费或者主机与存储装置之间的数据传输量增加等问题,对此,我们提出了一种文件整理方法用来对存储装置进行去碎片化,下面将参照附图对此进行具体描述。
图1是根据示例性实施例的主机存储系统10的框图。
主机存储系统10可以包括主机100和存储装置200。此外,存储装置200可以包括存储器控制器210和NVM 220。根据本发明的示例性实施例,主机100可以包括主机控制器110和主机存储器120。主机存储器120可以用作缓冲存储器,其被配置为临时存储要发送到存储装置200的数据或从存储装置200接收的数据。
存储装置200可以包括存储介质,其被配置为响应于来自主机100的请求而存储数据。作为示例,存储装置200可以包括SSD、嵌入式存储器和可装卸的外部存储器中的至少一个。当存储装置200是SSD时,存储装置200可以是符合NVMe标准的装置。当存储装置200是嵌入式存储器或外部存储器时,存储装置200可以是符合UFS标准或eMMC标准的装置。主机100和存储装置200均可以根据采用的标准协议来生成包(packet)并发送该包。
当存储装置200的NVM 220包括闪存时,所述闪存可以包括2D NAND存储阵列或3D(或垂直)NAND(VNAND)存储阵列。作为另一示例,存储装置200可以包括各种其他种类的NVM。例如,存储装置200可以包括磁性随机存取存储器(MRAM)、自旋转移扭矩MRAM、导电桥式RAM(CBRAM)、铁电RAM(FRAM)、PRAM、RRAM以及各种其他类型的存储器。
根据示例实施例,主机控制器110和主机存储器120可以实现为单独的半导体芯片。或者,在一些示例实施例中,主机控制器110和主机存储器120可以集成在同一半导体芯片中。作为示例,主机控制器110可以是包括在应用处理器(AP)中的多个模块中的任何一个。所述AP可以实现为片上系统(SoC)。此外,主机存储器120可以是所述AP中包括的嵌入式存储器或所述AP外部的存储器模块。
主机控制器110可以管理将主机存储器120的缓冲区域的数据(例如,写入数据)存储在NVM 220中的操作或将NVM 220的数据(例如,读取数据)存储在缓冲区域中的操作。
存储器控制器210可以包括主机接口211、存储器接口212和CPU 213。另外,存储器控制器210还可以包括闪存转换层(FTL)、包管理器215、缓冲存储器216、纠错码(ECC)引擎217和高级加密标准(AES)引擎218。存储器控制器210可以进一步包括其中装载有FTL 214的工作存储器(未示出)。CPU 213可以执行FTL 214来控制NVM 220上的数据写入和读取操作。
主机接口211可以向主机100发送包和从主机100接收包。从主机100发送到主机接口211的包可以包括命令或要被写入NVM 220的数据等。从主机接口211发送到主机100的包可以包括对命令的响应或从NVM 220读取的数据等。存储器接口212可以将要被写入NVM220的数据发送到NVM 220或接收从NVM 220读取的数据。存储器接口212可以被配置为符合诸如切换(Toggle)或开放NAND闪存接口(ONFI)的标准协议。
FTL 214可以执行各种功能,例如地址映射操作、磨损均衡操作以及垃圾收集操作。地址映射操作可以是将从主机100接收的逻辑地址转换为用于在NVM 220中实际存储数据的物理地址的操作。磨损均衡操作可以是通过允许均匀地使用NVM 220的块来减少或防止特定块的过度退化的技术。作为示例,磨损均衡操作可以通过使用平衡物理块的擦写计数的固件技术来实现。垃圾收集操作可以是通过在将现有块的有效数据复制到新块之后擦除现有块来确保NVM 220中的可用容量的技术。
包管理器215可以根据同意主机100的接口的协议生成包,或者从从主机100接收到的包中解析各种类型的信息。另外,缓冲存储器216可以临时存储要写入NVM 220的数据或要从NVM 220读取的数据。尽管缓冲存储器216可以是包括在存储器控制器210中的组件,但是缓冲存储器216可以在存储器控制器210的外部。
ECC引擎217可以对从NVM 220读取的读取数据执行错误检测和校正操作。例如,ECC引擎217可以生成用于要写入到NVM 220的写入数据的奇偶校验位,并且所生成的奇偶校验位可以与写入数据一起存储在NVM 220中。在从NVM 220读取数据期间,ECC引擎217可以通过使用读取数据以及从NVM 220读取的奇偶校验位来校正读取数据中的错误,并输出错误校正后的读取数据。
AES引擎218可以通过使用对称密钥算法对输入到存储器控制器210的数据执行加密操作和解密操作中的至少一个。
图2是示出根据示例实施例的文件处理方法的流程图。图3A是示出根据示例实施例的文件处理过程的示意图。
在操作S210,根据针对存储装置中的文件的文件访问信息,更新文件列表,其中,文件列表包含待去碎片化文件的文件索引节点号。
例如,在本申请中,利用文件列表存储待去碎片化文件的文件索引节点号,文件索引节点号用于标识每个待去碎片化文件。文件访问信息是电子设备(例如终端)的应用程序需要访问存储装置中的某个文件时产生的针对该文件的访问信息。例如,如图3A中所示,当电子设备在用户侧中的应用程序发起针对内核侧的存储装置中的某个文件的读取操作时,该应用程序可产生针对该文件的文件访问信息(例如vfs_read),此时,处理单元(例如虚拟文件系统(VFS))可根据该文件访问信息来更新文件列表。
根据针对存储装置中的文件的文件访问信息,更新文件列表的步骤包括:根据针对文件的文件访问信息,确定该文件的文件信息,文件信息包括该文件的文件索引节点号;根据文件信息更新文件列表。
例如,如图3A中所示,当应用程序产生针对存储装置中的文件的文件访问信息(例如vfs_read)时,处理单元中的信息收集单元可监视到该文件访问信息,并根据该文件访问信息提取文件的文件信息,该文件信息可包括文件的文件索引节点号(例如,inode号),此后,处理单元中的排序单元可根据该文件信息来更新文件列表。此外,索引节点号可以是表示或标识与虚拟地址相对应的物理地址的索引。
这里,文件信息还可以包括文件的文件类型,其中,文件类型是读类型或写类型。由于碎片化对写类型的文件的影响远远小于对读类型的文件的影响,因此如果该文件的文件类型是写类型,则排序单元可不更新文件列表。然而,本申请也可以不获取该文件的文件类型,而是对于所有类型的文件都更新文件列表。
在获取了文件信息以后,根据文件信息更新文件列表的步骤可包括:确定文件列表中是否存在该文件的文件索引节点号;如果文件列表中不存在该文件的文件索引节点号,则在文件列表中添加该文件的文件索引节点号。
例如,在获取了某个文件的文件信息以后,排序单元可确定文件列表中是否存在该文件的文件索引节点号,如果文件列表中不存在该文件的文件索引节点号,则表明先前上述应用程序对该文件的访问可能是该文件被首次访问,此时,可在文件列表中添加该文件的文件索引节点号。如果文件列表中存在该文件的文件索引节点号,则表明该文件先前已经被上述应用程序或者其它应用程序访问过,此时不需要在文件列表中重复添加该文件的文件索引节点号。
在操作S220,响应于发生触发事件,根据更新的文件列表,对存储装置中的与文件索引节点号对应的待去碎片化文件进行去碎片化。
例如,在本申请中,为了避免影响用户对移动终端的使用体验,在更新了文件列表,即识别了待去碎片化的文件以后,不会立即对这些文件进行去碎片化,而是可以在合适的时机(例如系统处于空闲状态时)对存储装置中的这些文件进行去碎片化。例如,在这里,触发事件可以是以下事件中的一个:存储装置所属的终端处于待机状态、该终端处于正在充电且未被操作的状态、用户触发去碎片化操作。也就是说,一旦发生了任何上述触发事件,就可以根据更新的文件列表,对存储装置中的与文件列表中的文件索引号对应的文件进行去碎片化处理。本申请通过在发生了预定的(或可选地,期望的)触发事件(例如终端处于空闲状态时、或者用户输入了去碎片化命令等)时,才会针对文件列表中记录的文件进行去碎片化,从而避免影响对终端的使用体验。
此外,在这里,存储装置可以是具有主机启动碎片整理(HID)特性的存储装置,例如,可以是具有HID 2.0特性的通用闪存(UFS),在一些示例实施例中,当存储装置(例如UFS)从主机接收到针对某个文件的HID请求和HID目标地址时,该存储装置会根据HID 2.0特性利用接收到的针对该文件的HID请求和HID目标地址自动地进行去碎片化。基于此,根据更新的文件列表,对存储装置中的与文件索引节点号对应的待去碎片化文件进行去碎片化的步骤包括:响应于发生触发事件,按照更新的文件列表中的文件索引节点号的排序,将与文件索引节点号对应的待去碎片化文件的HID请求和HID目标地址传输给所述存储装置进行去碎片化。例如,如图3A中所示,响应于发生了触发事件,去碎片化触发单元可按照更新的文件列表中的文件索引节点号的排序,将针对每一个文件索引节点号对应的文件的HID请求和HID目标地址传输给存储装置,使得存储装置根据接收的HID请求和HID目标地址进行去碎化。本申请通过使用具有HID 2.0特性的UFS,可减轻存储装置与主机之间的通讯量,从而减少或防止由于文件去碎片化而使存储装置和主机的使用寿命降低的问题。
例如,在根据更新的文件列表对存储装置中的与文件索引号对应的待去碎化文件进行去碎化之前,可根据文件信息进一步更新文件列表。例如,根据文件信息更新文件列表的步骤还可包括:根据文件信息统计文件的访问次数和碎片计数;根据该文件的访问次数和碎片计数,确定该文件的加权碎片计数;根据该文件的加权碎片计数,对文件列表中的各个文件索引节点号进行排序。
如图3A中所示,信息收集单元在收集了某个文件的文件信息以后可将该文件的文件信息传输给信息分析单元。信息分析单元可根据接收到的该文件的文件信息,统计该文件的访问次数,并且可通过利用文件碎片工具收集该文件的碎片计数,然后将该文件的访问次数和碎片计数作为该文件的统计信息连同该文件的文件索引节点号传输给排序单元。此后,排序单元可利用以下等式(1),根据接收到的该文件的统计信息(例如,该文件的访问次数和碎片计数)计算该文件的加权碎片计数。
fw=f×An (1)
其中,f表示文件的碎片计数,An表示文件的访问次数,fw表示加权碎片计数。
然后,排序单元可根据文件的加权碎片计数,对文件列表中的各个文件索引节点号进行排序,例如按照加权碎片计数降序对文件列表中的各个文件索引接点号进行排序。
其中,每个待去碎片化文件的文件索引节点号、碎片计数、访问次数和加权碎片计数组成一个文件信息节点并且所述一个文件信息节点被包括在文件列表中,并且,文件列表中的所有文件信息节点按照基数树结构被存储和查找。如图3B所示,文件信息节点包括4个字节,例如,文件索引节点号(Inode号)、碎片计数(f)、访问计数(An)和加权碎片计数(fw),文件列表中的每个文件信息节点可按照图3C所示的基数树进行快速查找。例如,如图3B中所示,当应用程序访问存储装置中的文件节点索引号为0x0010的文件时,通过以上描述的过程,信息收集单元可根据针对该文件的文件访问信息确定该文件的文件索引节点号,信息分析单元根据该文件的文件索引节点号确定该文件的访问次数和碎片计数,排序单元可根据文件索引节点号利用基数树从上向下逐层的快速找到该文件的文件节点信息,利用信息分析单元确定的该文件的访问次数和碎片计数确定该文件的加权碎片计数,并对找到的该文件的文件节点信息中的各个字段进行更新,然后利用快速排序算法对此时的文件列表进行排序。然而,利用基数树存储和查找文件列表仅是示例实施例,本申请不限于此,还可以使用其它的方式来存储和查找文件列表。
在根据文件的加权碎片计数对文件列表中的各个文件索引节点号进行排序以后,例如,按照加权碎片计数降序对文件列表中的各个文件索引接点号进行排序以后,响应于发生触发事件,可按照更新的文件列表中的文件索引节点号的排序(按照加权碎片计数降序排序),对存储装置中的与文件索引节点号对应的待去碎片化文件进行去碎片化。由于以上已经对如何响应于触发事件对存储装置中的待去碎片化文件进行去碎片化的过程进行描述,因此这里不再进行赘述。通过按照文件的加权碎片计数对文件列表进行排序,并按照排序后的文件列表进行去碎片化,可优先处理存储装置中的碎片化程度较高的文件,达到关键文件去碎片化的目的,提升后续访问文件的速度。
图4是示出根据本申请的示例实施例的文件处理装置的框图。
如图4中所示,文件处理装置400可包括处理单元410和去碎片化触发单元420。处理单元410可被配置为:根据针对存储装置中的文件的文件访问信息,更新文件列表,其中,文件列表包含待去碎片化文件的文件索引节点号。去碎片化触发单元420可被配置为:响应于发生触发事件,根据更新的文件列表,对存储装置中的与文件索引节点号对应的待去碎片化文件进行去碎片化。例如,处理单元410和去碎片化触发单元420可以是如图3A所示的处理单元和去碎片化触发单元。
例如,如图4中所示,处理单元410可包括信息收集单元411和排序单元412。信息收集单元411可被配置为:根据针对文件的文件访问信息,确定文件的文件信息,文件信息包括文件的文件索引节点号。排序单元412可被配置为根据文件信息更新文件列表。例如,处理单元410的信息收集单元411、排序单元412、信息分析单元413可以是如图3A所示的信息收集单元、排序单元、信息分析单元。
在本申请其他示例实施例中,信息收集单元411确定的文件的文件信息除了包括文件的文件索引节点号之外,还可包括文件的文件类型,其中,文件类型可以是读类型或写类型。如果文件的文件类型是写类型,则排序单元412可不更新文件列表。
排序单元412可被配置为通过以下操作根据文件信息更新文件列表:确定文件列表中是否存在文件的文件索引节点号;如果文件列表中不存在该文件的文件索引节点号,则在文件列表中添加该文件的文件索引节点号。
触发事件可以是以下事件中的一个:存储装置所属的终端处于待机状态、该终端处于正在充电且未被操作的状态、用户触发去碎片化操作。也就是说,一旦发生了上述触发事件,去碎片化触发单元420就可以根据更新的文件列表,对存储装置中的与文件列表中的文件索引号对应的文件进行去碎片化处理。
另外,上述的存储装置具有主机启动碎片整理(HID)特性,例如,可以是具有HID2.0特性的通用闪存(UFS),在一些示例实施例中,当存储装置(例如UFS)从主机(例如,从主机中的文件处理装置400)接收到针对某个文件的HID请求和HID目标地址时,该存储装置会根据HID 2.0特性利用接收到的针对该文件的HID请求和HID目标地址自动地进行去碎片化。基于此,去碎片化触发单元420可被配置为:响应于发生触发事件,按照更新的文件列表中的文件索引节点号的排序,将与文件索引节点号对应的待去碎片化文件的HID请求和HID目标地址传输给存储装置进行去碎片化。由于以上已经参照图2、图3A和图3B对此进行了详细描述,此处不再进行赘述。
此外,处理单元410还可包括信息分析单元413,其中,信息分析单元413可被配置为:根据文件信息统计文件的访问次数和碎片计数,并且根据该文件的访问次数和碎片计数,确定该文件的加权碎片计数。排序单元412还可被配置为:根据该文件的加权碎片计数,对文件列表中的各个文件索引节点号进行排序。此外,每个待去碎片化文件的文件索引节点号、碎片计数、访问次数和加权碎片计数组成一个文件信息节点并且所述一个文件信息节点被包括在文件列表中,并且,文件列表中的所有文件信息节点按照基数树结构被存储和查找。在根据加权碎片计数对文件列表进行排序以后,去碎片化触发单元420按照排序后的文件列表进行去碎片化,可优先处理存储装置中的碎片化程度较高的文件,从而达到关键文件去碎片化的目的。由于以上已经参照图2、图3A和图3B对此进行了详细描述,因此这里不再进行赘述。
为了更好地理解本申请,下面参图4、照5A、图5B和图6示例性地描述利用以上描述的本申请的方法对存储装置进行文件去碎片化的过程。
图5A是示出根据本申请的示例实施例的更新文件列表的过程的示意图。
图5B是示出根据本申请的其他示例实施例的更新文件列表的过程的示意图。
图6是示出根据本申请的示例实施的检测触发事件并响应于触发事件发生而对存储装置进行去碎片化的过程的流程图。
首先,如图5A中所示,当应用程序要访问存储装置中的一个文件时,信息收集单元411可收集该文件的文件信息。例如,信息收集单元411可利用文件索引节点(inode)号监视工具(例如Linux内核中的inotify-tools)来获取该文件的inode号,可选地,还可获取该文件的I/O类型。
此后,在从信息收集单元411获取了文件信息以后,排序单元412可首先根据文件信息判断文件类型,如果文件类型为写类型,则排序单元412可忽略该文件信息,不更新文件列表。然而,在本申请中,信息收集单元411也可以不获取文件的I/O类型,因此排序单元412可忽略文件类型,而对所有文件都更新文件列表。
因此,当考虑文件类型且文件的文件类型为读类型时,或者,当不考虑文件类型时,排序单元412可确定文件列表中是否存在该文件的文件索引节点号,如果不存在,则在文件列表中添加该文件的文件索引节点号。如果存在,则排序单元412可不更新文件列表。
如图6中所示,去碎片化触发单元420可按照一定周期进行轮询(例如在终端后台),以判断是否发生了预定的(或可选地,期望的)触发事件,并在发生预定的(或可选地,期望的)触发事件时,根据更新的文件列表使存储装置进行去碎片化,例如触发HID进程和文件系统中的碎片整理进程。
例如,如图6中所示,首先,在操作S610,去碎片化触发单元420可首先判断用户是否触发了去碎化操作,例如,用户是否输入了去碎化命令。如果判断出用户触发了去碎化操作,则进行到操作S620开始去碎化操作,例如,根据更新的文件列表,对存储装置中的与文件索引节点号对应的待去碎片化文件进行去碎片化。如果判断出用户未触发去碎化操作,则进行到操作S630。
在操作S630,去碎化触发单元420可判断终端是否处于待机状态,例如,是否在午夜处于待机状态。如果终端处于待机状态,则进行到操作S620开始去碎化操作,如果终端未处于待机状态,则进行到操作S640。
在操作S640,去碎化触发单元420可判断终端是否正在充电且未被操作。如果终端正在充电且未被操作,则进行到操作S620开始去碎化操作,否则结束当前过程,并在预定的(或可选地,期望的)时间段以后重新从操作S610执行操作(例如,返回继续轮询)。
以上图5A所示出的过程仅是一个示例,进一步地,图5B所示出的过程是图5A的改进示例。
在图5A的过程结束以后,信息分析单元413可根据文件信息针对文件索引节点标识的文件统计该文件的访问次数和碎片计数,并根据该文件的访问次数和碎片计数,确定该文件的加权碎片记数。然后,排序单元412可根据文件的加权碎片计数,对文件列表中的各个文件索引节点号进行排序,例如,按照文件的加权碎片计数降序对文件列表中的各个文件索引节点号进行排序。
去碎片化触发单元420可按照一定周期进行轮询处理(例如在终端后台),以判断是否发生了预定的(或可选地,期望的)触发事件,并在发生预定的(或可选地,期望的)触发事件时,根据更新的文件列表使存储装置进行去碎片化,使得可优先处理存储装置中的碎片化程度较高的文件,达到关键文件去碎片化的目的,例如,进行以上所描述的如图6中所示的过程。
图7是根据本公开示例实施例的电子设备700的框图。
参照图7,电子设备700可包括至少一个存储器710和至少一个处理器720,所述至少一个存储器710存储计算机可执行指令,计算机可执行指令在被至少一个处理器720执行时,促使至少一个处理器720执行根据本公开示例实施例的文件处理方法。
处理器可以包括一个或多个处理器。此时,一个或多个处理器可以是通用处理器,例如中央处理器(CPU)、应用处理器(AP)等,仅用于图形的处理器例如图形处理器(GPU)、视觉处理器(VPU)和/或AI专用处理器。
作为示例,电子设备可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,电子设备并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
在电子设备中,处理器可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理器可运行存储在存储器中的指令或代码,其中,存储器还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储器可与处理器集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器和处理器可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器能够读取存储在存储器中的文件。
此外,电子设备还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备的所有组件可经由总线和/或网络而彼此连接。
根据本公开的示例实施例,还可提供一种存储指令的计算机可读存储介质,其中,当所述指令由至少一个处理器执行时,促使所述至少一个处理器执行根据本公开示例实施例的文件处理方法。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的指令或计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
如本文所述,根据任何示例实施例的任何电子装置和/或其部分可包括处理电路的一个或多个实例,可被包括在处理电路的一个或多个实例中和/或可由处理电路的一个或多个实例实现,其中处理电路的一个或多个实例诸如是硬件(包括逻辑电路);硬件/软件组合(诸如,执行软件的处理器);或硬件和硬件/软件组合的任意组合。例如,处理电路更具体地可包括但不限于,中央处理器(CPU)、算术逻辑单元(ALU)、图形处理单元(GPU)、应用处理器(AP)、数字信号处理器(DSP)、微型计算机、现场可编程门阵列(FPGA)和可编程逻辑单元、微处理器、,专用集成电路(ASIC)、神经网络处理单元(NPU)、电子控制单元(ECU)、图像信号处理器(ISP)等。在一些示例实施例中,处理电路可包括:非暂时性计算机可读存储装置(例如,存储器),存储指令程序,例如,DRAM装置;以及处理器(例如,CPU),被配置为执行指令程序以实现根据任何示例实施例和/或任何示例实施例的任何部分的由任何装置、系统、模块、单元、控制器、电路、架构和/或它们的部分的全部或一些执行的功能和/或方法。
本领域技术人员在考虑说明书及实践这里公开的发明构思后,将容易想到本公开的其它示例实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和示例实施例仅被视为示例,本公开的真正范围和精神由权利要求限定。
Claims (12)
1.一种文件处理方法,包括:
根据针对存储装置中的文件的文件访问信息,更新文件列表,其中,文件列表包含待去碎片化文件的文件索引节点号;
响应于发生触发事件,根据更新的文件列表,对存储装置中的与文件索引节点号对应的待去碎片化文件进行去碎片化。
2.根据权利要求1所述的文件处理方法,其中,根据针对存储装置中的文件的文件访问信息,更新文件列表的步骤包括:
根据针对所述文件的所述文件访问信息,确定所述文件的文件信息,所述文件信息包括所述文件的文件索引节点号;
根据所述文件信息更新文件列表。
3.如权利要求2所述的文件处理方法,其中,所述文件信息还包括所述文件的文件类型,文件类型是读类型或者写类型,
其中,如果所述文件的文件类型是写类型,则不更新文件列表。
4.如权利要求2所述的文件处理方法,其中,根据所述文件信息更新文件列表的步骤包括:
确定文件列表中是否存在所述文件的文件索引节点号;
如果文件列表中不存在所述文件的文件索引节点号,则在文件列表中添加所述文件的文件索引节点号。
5.如权利要求4所述的文件处理方法,其中,根据所述文件信息更新文件列表的步骤还包括:
根据所述文件信息统计所述文件的访问次数和碎片计数;
根据所述文件的访问次数和碎片计数,确定所述文件的加权碎片计数;
根据所述文件的加权碎片计数,对文件列表中的各个文件索引节点号进行排序。
6.如权利要求5所述的文件处理方法,其中,每个待去碎片化文件的文件索引节点号、碎片计数、访问次数和加权碎片计数组成一个文件信息节点并且所述一个文件信息节点被包括在文件列表中,并且,文件列表中的所有文件信息节点按照基数树结构被存储和查找。
7.如权利要求1所述的文件处理方法,其中,所述触发事件为以下事件中的一个:所述存储装置所属的终端处于待机状态、所述终端处于正在充电且未被操作的状态、用户触发去碎片化操作。
8.如权利要求1所述的文件处理方法,其中,存储装置是具有主机启动碎片整理HID2.0特性的通用闪存UFS。
9.如权利要求8所述的文件处理方法,其中,根据更新的文件列表,对存储装置中的与文件索引节点号对应的待去碎片化文件进行去碎片化的操作包括:
响应于发生触发事件,按照更新的文件列表中的文件索引节点号的排序,将与文件索引节点号对应的待去碎片化文件的HID请求和HID目标地址传输给所述存储装置进行去碎片化。
10.一种电子设备,包括:
至少一个处理器;以及
至少一个存储计算机可执行指令的存储器,
其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1所述的方法。
11.一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1所述的方法。
12.一种文件处理装置,包括:
处理单元,被配置为:根据针对存储装置中的文件的文件访问信息,更新文件列表,其中,文件列表包含待去碎片化文件的文件索引节点号;
去碎片化触发单元,被配置为:响应于发生触发事件,根据更新的文件列表,对存储装置中的与文件索引节点号对应的待去碎片化文件进行去碎片化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311254194.3A CN117349227A (zh) | 2023-09-26 | 2023-09-26 | 文件处理方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311254194.3A CN117349227A (zh) | 2023-09-26 | 2023-09-26 | 文件处理方法、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117349227A true CN117349227A (zh) | 2024-01-05 |
Family
ID=89355019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311254194.3A Pending CN117349227A (zh) | 2023-09-26 | 2023-09-26 | 文件处理方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117349227A (zh) |
-
2023
- 2023-09-26 CN CN202311254194.3A patent/CN117349227A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7089830B2 (ja) | 不揮発性メモリデータの書き込み管理のための装置、システム、及び、方法 | |
EP3118745B1 (en) | A heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device | |
TWI536163B (zh) | 記憶體區塊之先佔式廢棄項目收集 | |
US9582199B2 (en) | Method and an apparatus for analyzing data to facilitate data allocation in a storage device | |
TWI514137B (zh) | 使用揮發性記憶體的記憶體區塊之廢棄項目收集 | |
JP2017021804A (ja) | 不揮発性メモリ装置におけるデータ特性基盤データ配置を活用するためのインターフェイス提供方法及びシステム並びに不揮発性メモリ装置とそのデータ特性基盤データ配置方法 | |
US11422700B2 (en) | Storage device, user device including storage device, and operation method of user device | |
US20140359198A1 (en) | Notification of storage device performance to host | |
US11921629B1 (en) | Method and device for data storage | |
US11269771B2 (en) | Storage device for improving journal replay, operating method thereof, and electronic device including the storage device | |
KR101123335B1 (ko) | 해시 인덱스 구성 방법과 그 장치, 및 상기 장치를 구비하는 데이터 저장 장치, 및 상기 방법을 구현하는 프로그램이 기록된 기록매체 | |
US20220413729A1 (en) | Tiered Storage System with Defragmentation Based on Weighted Flash Fragmentation Factor | |
CN106055488B (zh) | 数据储存设备及其操作方法 | |
US20230153006A1 (en) | Data processing method and data processing device | |
CN117349227A (zh) | 文件处理方法、电子设备和存储介质 | |
US20220179724A1 (en) | Method for operating storage device and host device, and storage device | |
US20230409200A1 (en) | Method and device for data storage | |
US20230195648A1 (en) | Methods of operating host device and storage device, and electronic device | |
US20240160462A1 (en) | Access method of storage device and virtual device | |
EP4332773A1 (en) | Storage server and operation method of storage server | |
EP4369173A1 (en) | Access method of storage device and virtual device | |
US20240160511A1 (en) | Failure prediction apparatus and method for storage devices | |
CN117631968A (zh) | 存储服务器以及存储服务器的操作方法 | |
CN117149723A (zh) | 有序字符串表文件的压缩方法和装置 | |
CN117891408A (zh) | 用于存储设备的数据去重的方法和存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |