CN112860628A - 一种文件系统规模管理方法及系统 - Google Patents

一种文件系统规模管理方法及系统 Download PDF

Info

Publication number
CN112860628A
CN112860628A CN202110187780.5A CN202110187780A CN112860628A CN 112860628 A CN112860628 A CN 112860628A CN 202110187780 A CN202110187780 A CN 202110187780A CN 112860628 A CN112860628 A CN 112860628A
Authority
CN
China
Prior art keywords
file
scale
control unit
unit
directory
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
Application number
CN202110187780.5A
Other languages
English (en)
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.)
Beijing Minglue Zhaohui Technology Co Ltd
Original Assignee
Beijing Minglue Zhaohui Technology 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 Beijing Minglue Zhaohui Technology Co Ltd filed Critical Beijing Minglue Zhaohui Technology Co Ltd
Priority to CN202110187780.5A priority Critical patent/CN112860628A/zh
Publication of CN112860628A publication Critical patent/CN112860628A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File 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

本申请公开了一种文件系统规模管理方法及系统。文件系统规模管理方法包括:判断步骤:通过控制单元判断请求信息的类型;操作步骤:通过操作单元根据所述类型,对所述请求信息进行相应的操作,并将操作结果传递给所述控制单元;更新步骤:所述控制单元根据所述操作结果输出更新指令至规模更新单元,所述规模更新单元根据所述更新指令对规模信息进行更新并输出更新结果至所述控制单元;输出步骤:通过所述控制单元将所述更新结果及/或操作结果输出到客户端。本发明提出一种文件系统规模管理方法及系统,本发明通过无需递归遍历整棵子树内所有节点的方案,其时间复杂度仅为O(1),提高了文件系统规模管理效率。

Description

一种文件系统规模管理方法及系统
技术领域
本申请涉及文件系统规模管理技术领域,尤其涉及一种文件系统规模管理方法及系统。
背景技术
在传统的Linux文件系统中,是以目录树来组织整个文件系统的结构,目录树中包括两种类型的节点:文件节点和目录节点。文件节点:代表实际存储数据的文件,该节点上会记录文件相关的元数据信息,如:容量、访问权限等。目录节点:代表通常意义上的目录,该节点上会记录目录相关的元数据信息,如:容量、访问权限等。需要说明的是,目录节点上并没有记录其所辖的文件及子目录的数量,即以该目录节点为根的子树的规模。在实际的工作场景中,常常需要统计某一目录下所辖的文件及子目录的数量以评估以该目录节点为根的子树的规模(以下简称为规模统计),进而确定相关元数据信息的体量,如何快速地统计指定目录的规模对于提高文件系统的性能及工作效率具有重要意义。在传统的Linux文件系统中,当统计目录/d1……/dm-1/dm 的规模时,需要递归遍历以目录节点dm为根的整棵子树内所有的节点,并在此过程中统计dm下所辖的文件及子目录的数量,如图2所示。在现有技术方案中,当统计目录/d1……/dm-1/dm的规模时,若以目录节点 dm为根的子树的规模很大,则递归遍历该子树会消耗大量时间,严重影响工作效率。如图2所示,假设以dm为根的子树内所有节点的数量为 n,则在现有技术方案下规模统计的时间复杂度为Ο(n)。在实际的工作过程中,作者曾遇到过通过“ls”或“find”结合“wc”命令统计某一目录的规模时耗时近3个小时仍未完成的情况,对于大型文件系统来说,其维护的目录树规模会很大,这种情况出现的概率会很高。
因此,针对以上现状,本发明提出一种规模管理方法及系统,本发明通过无需递归遍历整棵子树内所有节点的方案,其核心规则为,目录树中的每一个目录节点上都记录其所辖的文件及子目录的数量,当统计目录的规模时,可以直接访问dm节点获取,而无需遍历子树,其时间复杂度仅为Ο(1),使目录的规模统计效率有明显提高。基于该方法可以在相关的文件系统使用场景下实现和维护本发明所提出的核心规则,具体包括以下场景:文件新建操作、文件删除操作、目录新建操作、目录删除操作等。本发明所提出的规模管理装置,基于该装置可以实现和维护本发明所提出的核心规则,并对本发明所提出的规模管理方法提供支持,具体包括以下五个功能单元:存储单元、操作单元、规模计算单元、规模更新单元、控制单元,以及基于这些功能单元的该装置的逻辑结构。
发明内容
本申请实施例提供了一种文件系统规模管理方法及系统,以至少解决相关技术中主观因素影响的问题。
本发明提供了一种文件系统规模管理方法,包括:
判断步骤:通过控制单元判断请求信息的类型;
操作步骤:通过操作单元根据所述类型,对所述请求信息进行相应的操作,并将操作结果传递给所述控制单元;
更新步骤:所述控制单元根据所述操作结果输出更新指令至规模更新单元,所述规模更新单元根据所述更新指令对规模信息进行更新并输出更新结果至所述控制单元;
输出步骤:通过所述控制单元将所述更新结果及/或操作结果输出到客户端。
上述的文件系统规模管理方法,所述请求信息的所述类型包括:文件操作请求、目录操作请求以及规模统计请求。
上述的文件系统规模管理方法,所述操作步骤包括:
文件创建步骤:当所述请求信息的所述类型为所述文件操作请求时,所述控制单元将所述文件操作请求传递给所述操作单元,若所述类型为创建新的文件,所述操作单元访问存储单元,并在文件节点下创建新的文件,所述操作单元将创建新的所述文件后的操作结果传递给所述控制单元;
文件删除步骤:当所述请求信息的所述类型为所述文件操作请求时,所述控制单元将所述文件操作请求传递给所述操作单元,若所述请求信息为删除文件,所述操作单元访问所述存储单元,并删除文件节点下的文件,所述操作单元将删除所述文件后的操作结果传递给所述控制单元;
目录创建步骤:当所述请求信息的所述类型为所述目录操作请求时,所述控制单元将所述目录操作请求传递给所述操作单元,若所述请求信息为创建子目录,所述操作单元访问所述存储单元,并在目录节点下创建子目录,所述操作单元将创建子目录后的操作结果传递给所述控制单元;
目录删除步骤:若所述请求信息为删除子目录,所述操作单元访问所述存储单元,并删除目录节点下的子目录,所述操作单元将删除子目录后的操作结果传递给所述控制单元。
上述的文件系统规模管理方法,所述更新步骤包括,所述控制单元根据所述操作结果输出更新所述文件至根节点的路径上各节点的规模信息的更新指令或更新所述子目录至根节点的路径上各节点的规模信息的更新指令,所述规模更新单元根据所述更新指令访问所述存储单元并更新所述规模信息,并将所述更新结果输出至所述控制单元。
上述的文件系统规模管理方法,所述操作步骤还包括:
规模统计操作步骤:当所述请求信息的所述类型为所述规模统计请求时,所述控制单元将所述规模统计请求传递给规模计算单元,所述规模计算单元访问所述存储单元获取包括目录节点上记录的文件数及/或子目录数的所述操作结果,并将操作结果返回给所述控制单元。
本发明还提供一种文件系统规模管理系统,其中,适用于上述所述的文件系统规模管理方法,所述文件系统规模管理系统包括:
控制单元:判断请求信息的类型;
操作单元:根据所述类型对所述请求信息进行相应的操作,并将操作结果传递给所述控制单元;
规模更新单元:所述控制单元根据所述操作结果输出更新指令至所述规模更新单元,所述规模更新单元根据所述更新指令对规模信息进行更新并输出更新结果至所述控制单元;所述控制单元将所述更新结果及/或操作结果输出到客户端。
上述的文件系统规模管理系统,所述请求信息的所述类型包括:文件操作请求、目录操作请求以及规模统计请求。
上述的文件系统规模管理系统,还包括存储单元,存储单元包括:
文件创建模块:当所述请求信息的所述类型为所述文件操作请求时,所述控制单元将所述文件操作请求传递给所述操作单元,若所述请求信息的所述类型为创建新的文件,所述操作单元访问存储单元,并在文件节点下创建新的文件,所述操作单元将创建新的所述文件后的操作结果传递给所述控制单元;
文件删除模块:当所述请求信息的所述类型为所述文件操作请求时,所述控制单元将所述文件操作请求传递给所述操作单元,若所述请求信息为删除文件,所述操作单元访问所述存储单元,并删除文件节点下的文件,所述操作单元将删除所述文件后的操作结果传递给所述控制单元;
目录创建模块:当所述请求信息类型为所述目录操作请求时,所述控制单元将所述目录操作请求传递给所述操作单元,若所述请求信息为创建子目录,所述操作单元访问所述存储单元,并在目录节点下创建子目录,所述操作单元将创建子目录后的操作结果传递给所述控制单元;
目录删除模块:若所述请求信息为删除子目录,所述操作单元访问所述存储单元,并删除目录节点下的子目录,所述操作单元将删除子目录后的操作结果传递给所述控制单元。
上述的文件系统规模管理系统,所述控制单元根据所述操作结果输出更新所述文件至根节点的路径上各节点的规模信息的更新指令或更新所述子目录至根节点的路径上各节点的规模信息的更新指令,所述规模更新单元根据所述更新指令访问所述存储单元并更新所述规模信息,并将所述更新结果输出至所述控制单元。
上述的文件系统规模管理系统,还包括规模计算单元,当所述请求信息的所述类型为所述规模统计请求时,所述控制单元将所述规模统计请求传递给规模计算单元,所述规模计算单元访问所述存储单元获取包括目录节点上记录的文件数及/或子目录数的所述操作结果,并将操作结果返回给所述控制单元。
相比于相关技术,本发明提出一种规模管理方法及系统,本发明通过无需递归遍历整棵子树内所有节点的方案,其核心规则为,目录树中的每一个目录节点上都记录其所辖的文件及子目录的数量,当统计目录的规模时,可以直接访问dm节点获取,而无需遍历子树,其时间复杂度仅为Ο(1),使目录的规模统计效率有明显提高。基于该方法可以在相关的文件系统使用场景下实现和维护本发明所提出的核心规则,具体包括以下场景:文件新建操作、文件删除操作、目录新建操作、目录删除操作等。本发明所提出的规模管理装置,基于该装置可以实现和维护本发明所提出的核心规则,并对本发明所提出的规模管理方法提供支持,具体包括以下五个功能单元:存储单元、操作单元、规模计算单元、规模更新单元、控制单元,以及基于这些功能单元的该装置的逻辑结构。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的文件系统规模管理方法流程图;
图2是根据本申请实施例的现有技术结构图;
图3是根据本申请实施例的优化目录结构图;
图4是根据本申请实施例的文件新建操作的规模更新结构图;
图5是根据本申请实施例的文件删除操作的规模更新结构图;
图6是根据本申请实施例的目录新建操作的规模更新结构图;
图7是根据本申请实施例的目录删除操作的规模更新结构图;
图8是根据本申请实施例的规模管理装置结构图;
图9为本发明的文件系统规模管理系统的结构示意图;
图10是根据本申请实施例的电子设备的框架图。
其中,附图标记为:
控制单元:51;
操作单元:52;
规模更新单元:53;
存储单元:54;
规模计算单元:55;
总线:80;
处理器:81;
存储器:82;
通信接口:83。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本发明基于文件系统规模管理,下面进行简要的介绍。
文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:与文件管理有关软件、被管理文件以及实施文件管理所需数据结构。从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。磁盘或分区和它所包括的文件系统的不同是很重要的。少数程序(包括最有理由的产生文件系统的程序)直接对磁盘或分区的原始扇区进行操作;这可能破坏一个存在的文件系统。大部分程序基于文件系统进行操作,在不同种文件系统上不能工作。一个分区或磁盘能作为文件系统使用前,需要初始化,并将记录数据结构写到磁盘上。这个过程就叫建立文件系统。大部分UNIX文件系统种类具有类似的通用结构,即使细节有些变化。其中心概念是超级块superblock,i节点inode,数据块data block,目录块directory block,和间接块indirection block。超级块包括文件系统的总体信息,比如大小(其准确信息依赖文件系统)。i节点包括除了名字外的一个文件的所有信息,名字与i节点数目一起存在目录中,目录条目包括文件名和文件的i节点数目。i节点包括几个数据块的数目,用于存储文件的数据。i节点中只有少量数据块数的空间,如果需要更多,会动态分配指向数据块的指针空间。这些动态分配的块是间接块;为了找到数据块,这名字指出它必须先找到间接块的号码。UNIX文件系统通常允许在文件中产生孔(hole)(用lseek;请看手册),意思是文件系统假装文件中有一个特殊的位置只有0字节,但没有为这文件的这个位置保留实际的磁盘空间(这意味着这个文件将少用一些磁盘空间)。这对小的二进制文件经常发生,Linux 共享库、一些数据库和其他一些特殊情况。(孔由存储在间接块或i 节点中的作为数据块地址的一个特殊值实现,这个特殊地址说明没有为文件的这个部分分配数据块,即,文件中有一个孔。)孔有一定的用处。在笔者的系统中,一个简单的测量工具显示在200MB使用的磁盘空间中,由于孔,节约了大约4MB。在这个系统中,程序相对较少,没有数据库文件文件系统的功能包括:管理和调度文件的存储空间,提供文件的逻辑结构、物理结构和存储方法;实现文件从标识到实际地址的映射(即按名存取),实现文件的控制操作和存取操作(包括文件的建立、撤销、打开、关闭,对文件的读、写、修改、复制、转储等),实现文件信息的共享并提供可靠的文件保密和保护措施,提供文件的安全措施(文件的转储和恢复能力)。文件的逻辑结构是依照文件的内容的逻辑关系组织文件结构。文件的逻辑结构可以分为流式文件和记录式文件。流式文件:文件中的数据是一串字符流,没有结构。记录文件:由若干逻辑记录组成,每条记录又由相同的数据项组成,数据项的长度可以是确定的,也可以是不确定的。主要缺陷:数据关联差,数据不一致,冗余性。
在传统的Linux文件系统中,当统计目录/d1……/dm-1/dm的规模时,需要递归遍历以目录节点dm为根的整棵子树内所有的节点,假设以dm为根的子树内所有节点的数量为n,则在现有技术方案下规模统计的时间复杂度为O(n)。本发明充分利用目录树这种结构的优势,提出一种无需递归遍历整棵子树内所有节点的新的文件系统规模管理方法及装置,其核心规则为:目录树中的每一个目录节点上都记录其所辖的文件及子目录(含该目录本身)的数量。
本发明提出一种规模管理方法及系统,本发明通过无需递归遍历整棵子树内所有节点的方案,其核心规则为,目录树中的每一个目录节点上都记录其所辖的文件及子目录的数量,当统计目录的规模时,可以直接访问dm节点获取,而无需遍历子树,其时间复杂度仅为Ο(1),使目录的规模统计效率有明显提高。基于该方法可以在相关的文件系统使用场景下实现和维护本发明所提出的核心规则,具体包括以下场景:文件新建操作、文件删除操作、目录新建操作、目录删除操作等。本发明所提出的规模管理装置,基于该装置可以实现和维护本发明所提出的核心规则,并对本发明所提出的规模管理方法提供支持,具体包括以下五个功能单元:存储单元、操作单元、规模计算单元、规模更新单元、控制单元,以及基于这些功能单元的该装置的逻辑结构。存储单元用于存储目录树的相关信息,包括:目录树的结构、文件和目录的规模信息等;操作单元用于在文件系统中执行用户指定的文件和目录操作,包括:文件读取操作、文件新建操作、文件重命名操作、文件数据更新操作、文件删除操作、目录新建操作、目录重命名操作、目录删除操作等;规模计算单元用于计算指定目录的规模,即其所辖的文件及子目录的数量,在本发明所提出的方案中可直接访问目录节点获得该信息,而不必遍历以该目录节点为根的整棵子树;规模更新单元用于在文件或目录操作后更新自操作节点至根目录节点的路径上各节点上的规模信息,包括文件数和子目录数;控制单元用于控制上述存储单元、操作单元、规模计算单元、规模更新单元之间的工作流,使各部分协同工作以完成用户指定的文件和目录操作,并在此过程中实现和维护本发明所提出的核心规则。以及基于这些功能单元的该装置的逻辑结构。
下面将文件系统规模管理为例对本申请实施例进行说明。
实施例一
本实施例提供了文件系统规模管理方法。请参照图1-图7,图1 是根据本申请实施例的文件系统规模管理方法流程图;图2是根据本申请实施例的现有技术结构图;图3是根据本申请实施例的优化目录结构图;图4是根据本申请实施例的文件新建操作的规模更新结构图;图5是根据本申请实施例的文件删除操作的规模更新结构图;图6是根据本申请实施例的目录新建操作的规模更新结构图;图7是根据本申请实施例的目录删除操作的规模更新结构图,如图所示,文件系统规模管理方法包括如下步骤:
判断步骤S1:通过控制单元判断请求信息的类型;
操作步骤S2:通过操作单元根据所述类型,对所述请求信息进行相应的操作,并将操作结果传递给所述控制单元;
更新步骤S3:所述控制单元根据所述操作结果输出更新指令至规模更新单元,所述规模更新单元根据所述更新指令对规模信息进行更新并输出更新结果至所述控制单元;
输出步骤S4:通过所述控制单元将所述更新结果及/或操作结果输出到客户端。
实施例中,所述请求信息的所述类型包括:文件操作请求、目录操作请求以及规模统计请求。
实施例中,所述操作步骤S1包括:
文件创建步骤S11:当所述请求信息的所述类型为所述文件操作请求时,所述控制单元将所述文件操作请求传递给所述操作单元,若所述类型为创建新的文件,所述操作单元访问存储单元,并在文件节点下创建新的文件,所述操作单元将创建新的所述文件后的操作结果传递给所述控制单元;
文件删除步骤S12:当所述请求信息的所述类型为所述文件操作请求时,所述控制单元将所述文件操作请求传递给所述操作单元,若所述请求信息为删除文件,所述操作单元访问所述存储单元,并删除文件节点下的文件,所述操作单元将删除所述文件后的操作结果传递给所述控制单元;
目录创建步骤S13:当所述请求信息的所述类型为所述目录操作请求时,所述控制单元将所述目录操作请求传递给所述操作单元,若所述请求信息为创建子目录,所述操作单元访问所述存储单元,并在目录节点下创建子目录,所述操作单元将创建子目录后的操作结果传递给所述控制单元;
目录删除步骤S14:若所述请求信息为删除子目录,所述操作单元访问所述存储单元,并删除目录节点下的子目录,所述操作单元将删除子目录后的操作结果传递给所述控制单元。
具体实施中,新建文件时,该文件节点上记录其所辖的文件数为1、子目录数为0,并且,因增加了新的文件,会使得该文件的父目录节点所记录的文件数发生变化,进而会使得该父目录节点至根节点的路径上各节点所记录的文件数发生变化,即:需要将这个变化量自该文件的父目录向根目录传递。当前目录结构中各节点上所记录的文件数和子目录数(根目录记录的文件数和子目录数信息暂不给出)以及更新后的规模信息如图4所示。如图4所示,在目录db下新建文件file4,db 所记录的文件数信息变化量为+1,该变化量会自db向根目录传递。删除文件时,会使得该文件的父目录节点所记录的文件数发生变化,进而会使得该父目录节点至根节点的路径上各节点所记录的文件数发生变化,即:需要将这个变化量自该文件的父目录向根目录传递。当前目录结构中各节点上所记录的文件数和子目录数(根目录记录的文件数和子目录数信息暂不给出)以及更新后的规模信息如图5所示。如图5所示,将文件file4删除后,db所记录的文件数信息变化量为-1,该变化量会自db向根目录传递。新建目录时,该目录节点上记录其所辖的文件数为0、子目录数为1,并且,因增加了新的子目录,会使得该目录的父目录节点所记录的子目录数发生变化,进而会使得该父目录节点至根节点的路径上各节点所记录的子目录数发生变化,即:需要将这个变化量自该目录的父目录向根目录传递。当前目录结构中各节点上所记录的文件数和子目录数(根目录记录的文件数和子目录数信息暂不给出)以及更新后的规模信息如图6所示。如图6所示,在目录 db下新建目录dc,db所记录的子目录数信息变化量为+1,该变化量会自db向根目录传递。删除目录时,会使得该目录的父目录节点所记录的文件数和子目录数发生变化,进而会使得该父目录节点至根节点的路径上各节点所记录的文件数和子目录数发生变化,即:需要将这个变化量自该目录的父目录向根目录传递。当前目录结构中各节点上所记录的文件数和子目录数(根目录记录的文件数和子目录数信息暂不给出)以及更新后的规模信息如图7所示。如图7所示,将目录db删除后,da所记录的文件数信息变化量为-2、子目录数信息变化量为-2,该变化量会自da向根目录传递。
实施例中,所述更新步骤S3包括,所述控制单元根据所述操作结果输出更新所述文件至根节点的路径上各节点的规模信息的更新指令或更新所述子目录至根节点的路径上各节点的规模信息的更新指令,所述规模更新单元根据所述更新指令访问所述存储单元并更新所述规模信息,并将所述更新结果输出至所述控制单元。
具体实施中,现在用户请求在目录/da/db下新建文件file4,流程如下:用户请求首先到达控制单元;控制单元判断用户请求的类型为文件操作,因此,将用户请求传递给操作单元;操作单元访问存储单元,并在/da/db下创建文件file4;操作单元将操作结果返回给控制单元;控制单元判断需要更新自file4至根节点的路径上各节点的规模信息,因此,向规模更新单元发出更新指令;规模更新单元访问存储单元,更新自file4至根节点的路径上各节点的规模信息,并将结果返回给控制单元;控制单元将最终的操作结果返回给用户。
实施例中,所述操作步骤还包括规模统计操作步骤S15:当所述请求信息的所述类型为所述规模统计请求时,所述控制单元将所述规模统计请求传递给规模计算单元,所述规模计算单元访问所述存储单元获取包括目录节点上记录的文件数及/或子目录数的所述操作结果,并将操作结果返回给所述控制单元。
具体实施中,现在用户请求统计目录/da/db下所辖的文件数,流程如下:用户请求首先到达控制单元;控制单元判断用户请求的类型为规模统计,因此,将用户请求传递给规模计算单元;规模计算单元访问存储单元,获取目录节点db上记录的文件数,并将结果返回给控制单元;控制单元将结果返回给用户。
由此,本发明提出一种规模管理方法及系统,本发明通过无需递归遍历整棵子树内所有节点的方案,其核心规则为,目录树中的每一个目录节点上都记录其所辖的文件及子目录的数量,当统计目录的规模时,可以直接访问dm节点获取,而无需遍历子树,其时间复杂度仅为Ο(1),使目录的规模统计效率有明显提高。基于该方法可以在相关的文件系统使用场景下实现和维护本发明所提出的核心规则,具体包括以下场景:文件新建操作、文件删除操作、目录新建操作、目录删除操作等。本发明所提出的规模管理装置,基于该装置可以实现和维护本发明所提出的核心规则,并对本发明所提出的规模管理方法提供支持,具体包括以下五个功能单元:存储单元、操作单元、规模计算单元、规模更新单元、控制单元,以及基于这些功能单元的该装置的逻辑结构。
实施例二
请参照图8-9,图8是根据本申请实施例的规模管理装置结构图;
图9为本发明的文件系统规模管理系统的结构示意图。如图8-9 所示,发明的文件系统规模管理系统,适用于上述的文件系统规模管理方法,文件系统规模管理系统包括:
控制单元51:判断请求信息的类型;
操作单元52:根据所述类型对所述请求信息进行相应的操作,并将操作结果传递给所述控制单元;
规模更新单元53:所述控制单元51根据所述操作结果输出更新指令至所述规模更新单元53,所述规模更新单元53根据所述更新指令对规模信息进行更新并输出更新结果至所述控制单元51,所述控制单元51将所述更新结果及/或操作结果输出到客户端。
在本实施例中,所述请求信息的所述类型包括:文件操作请求、目录操作请求以及规模统计请求。
在本实施例中,还包括存储单元54,存储单元54包括:
文件创建模块541:当所述请求信息的所述类型为所述文件操作请求时,所述控制单元51将所述文件操作请求传递给所述操作单元52,若所述请求信息的所述类型为创建新的文件,所述操作单元访问存储单元54,并在文件节点下创建新的文件,所述操作单元52将创建新的所述文件后的操作结果传递给所述控制单元51;
文件删除模块542:当所述请求信息的所述类型为所述文件操作请求时,所述控制单元将所述文件操作请求传递给所述操作单元52,若所述请求信息为删除文件,所述操作单元52访问所述存储单元54,并删除文件节点下的文件,所述操作单元52将删除所述文件后的操作结果传递给所述控制单元51;
目录创建模块543:当所述请求信息的所述类型为所述目录操作请求时,所述控制单元51将所述目录操作请求传递给所述操作单元52,若所述请求信息为创建子目录,所述操作单元52访问所述存储单元54,并在目录节点下创建子目录,所述操作单元52将创建子目录后的操作结果传递给所述控制单元51;
目录删除模块544:若所述请求信息为删除子目录,所述操作单元52访问所述存储单元54,并删除目录节点下的子目录,所述操作单元52将删除子目录后的操作结果传递给所述控制单元51。
在本实施例中,所述控制单元51根据所述操作结果输出更新所述文件至根节点的路径上各节点的规模信息的更新指令或更新所述子目录至根节点的路径上各节点的规模信息的更新指令,所述规模更新单元53根据所述更新指令访问所述存储单元54并更新所述规模信息,并将所述更新结果输出至所述控制单元51。
本实施例中,还包括规模计算单元55,当所述请求信息的所述类型为所述规模统计请求时,所述控制单元51将所述规模统计请求传递给规模计算单元 55,所述规模计算单元55访问所述存储单元54获取包括目录节点上记录的文件数及/或子目录数的所述操作结果,并将操作结果返回给所述控制单元51。
实施例三
结合10所示,本实施例揭示了一种电子设备的一种具体实施方式。电子设备可以包括处理器81以及存储有计算机程序指令的存储器82。
具体地,上述处理器81可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器82可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理装置的内部或外部。在特定实施例中,存储器82是非易失性(Non-Volatile)存储器。在特定实施例中,存储器82包括只读存储器(Read-Only Memory,简称为ROM) 和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为FPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EFPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器81所执行的可能的计算机程序指令。
处理器81通过读取并执行存储器82中存储的计算机程序指令,以实现上述实施例中的任意文件系统规模管理方法。
在其中一些实施例中,电子设备还可包括通信接口83和总线80。其中,如图10所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。
通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信端口83还可以实现与其他部件例如:外接设备、图像/文件系统规模管理设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线80包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(ControlBus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线80可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(FrontSide Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand) 互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA) 总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
电子设备可连接文件系统规模管理系统,从而实现结合图1-图7描述的方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种文件系统规模管理方法,其特征在于,包括:
判断步骤:通过控制单元判断请求信息的类型;
操作步骤:通过操作单元根据所述类型,对所述请求信息进行相应的操作,并将操作结果传递给所述控制单元;
更新步骤:所述控制单元根据所述操作结果输出更新指令至规模更新单元,所述规模更新单元根据所述更新指令对规模信息进行更新并输出更新结果至所述控制单元;
输出步骤:通过所述控制单元将所述更新结果及/或操作结果输出到客户端。
2.根据权利要求1所述的文件系统规模管理方法,其特征在于,所述请求信息的所述类型包括:文件操作请求、目录操作请求以及规模统计请求。
3.根据权利要求2所述的文件系统规模管理方法,其特征在于,所述操作步骤包括:
文件创建步骤:当所述请求信息的所述类型为所述文件操作请求时,所述控制单元将所述文件操作请求传递给所述操作单元,若所述类型为创建新的文件,所述操作单元访问存储单元,并在文件节点下创建新的文件,所述操作单元将创建新的所述文件后的操作结果传递给所述控制单元;
文件删除步骤:当所述请求信息的所述类型为所述文件操作请求时,所述控制单元将所述文件操作请求传递给所述操作单元,若所述请求信息为删除文件,所述操作单元访问所述存储单元,并删除文件节点下的文件,所述操作单元将删除所述文件后的操作结果传递给所述控制单元;
目录创建步骤:当所述请求信息的所述类型为所述目录操作请求时,所述控制单元将所述目录操作请求传递给所述操作单元,若所述请求信息为创建子目录,所述操作单元访问所述存储单元,并在目录节点下创建子目录,所述操作单元将创建子目录后的操作结果传递给所述控制单元;
目录删除步骤:若所述请求信息为删除子目录,所述操作单元访问所述存储单元,并删除目录节点下的子目录,所述操作单元将删除子目录后的操作结果传递给所述控制单元。
4.根据权利要求3所述的文件系统规模管理方法,其特征在于,所述更新步骤包括,所述控制单元根据所述操作结果输出更新所述文件至根节点的路径上各节点的规模信息的更新指令或更新所述子目录至根节点的路径上各节点的规模信息的更新指令,所述规模更新单元根据所述更新指令访问所述存储单元并更新所述规模信息,并将所述更新结果输出至所述控制单元。
5.根据权利要求4所述的文件系统规模管理方法,其特征在于,所述操作步骤还包括:
规模统计操作步骤:当所述请求信息的所述类型为所述规模统计请求时,所述控制单元将所述规模统计请求传递给规模计算单元,所述规模计算单元访问所述存储单元获取包括目录节点上记录的文件数及/或子目录数的所述操作结果,并将操作结果返回给所述控制单元。
6.一种文件系统规模管理系统,其特征在于,适用于上述权利要求1-5所述的文件系统规模管理方法,所述文件系统规模管理系统包括:
控制单元:判断请求信息的类型;
操作单元:根据所述类型对所述请求信息进行相应的操作,并将操作结果传递给所述控制单元;
规模更新单元:所述控制单元根据所述操作结果输出更新指令至所述规模更新单元,所述规模更新单元根据所述更新指令对规模信息进行更新并输出更新结果至所述控制单元;所述控制单元将所述更新结果及/或操作结果输出到客户端。
7.根据权利要求6所述的文件系统规模管理系统,其特征在于,所述请求信息的所述类型包括:文件操作请求、目录操作请求以及规模统计请求。
8.根据权利要求7所述的文件系统规模管理系统,其特征在于,还包括存储单元,存储单元包括:
文件创建模块:当所述请求信息的所述类型为所述文件操作请求时,所述控制单元将所述文件操作请求传递给所述操作单元,若所述请求信息的所述类型为创建新的文件,所述操作单元访问存储单元,并在文件节点下创建新的文件,所述操作单元将创建新的所述文件后的操作结果传递给所述控制单元;
文件删除模块:当所述请求信息的所述类型为所述文件操作请求时,所述控制单元将所述文件操作请求传递给所述操作单元,若所述请求信息为删除文件,所述操作单元访问所述存储单元,并删除文件节点下的文件,所述操作单元将删除所述文件后的操作结果传递给所述控制单元;
目录创建模块:当所述请求信息类型为所述目录操作请求时,所述控制单元将所述目录操作请求传递给所述操作单元,若所述请求信息为创建子目录,所述操作单元访问所述存储单元,并在目录节点下创建子目录,所述操作单元将创建子目录后的操作结果传递给所述控制单元;
目录删除模块:若所述请求信息为删除子目录,所述操作单元访问所述存储单元,并删除目录节点下的子目录,所述操作单元将删除子目录后的操作结果传递给所述控制单元。
9.根据权利要求8所述的文件系统规模管理系统,其特征在于,所述控制单元根据所述操作结果输出更新所述文件至根节点的路径上各节点的规模信息的更新指令或更新所述子目录至根节点的路径上各节点的规模信息的更新指令,所述规模更新单元根据所述更新指令访问所述存储单元并更新所述规模信息,并将所述更新结果输出至所述控制单元。
10.根据权利要求9所述的文件系统规模管理系统,其特征在于,还包括规模计算单元,当所述请求信息的所述类型为所述规模统计请求时,所述控制单元将所述规模统计请求传递给规模计算单元,所述规模计算单元访问所述存储单元获取包括目录节点上记录的文件数及/或子目录数的所述操作结果,并将操作结果返回给所述控制单元。
CN202110187780.5A 2021-02-18 2021-02-18 一种文件系统规模管理方法及系统 Pending CN112860628A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110187780.5A CN112860628A (zh) 2021-02-18 2021-02-18 一种文件系统规模管理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110187780.5A CN112860628A (zh) 2021-02-18 2021-02-18 一种文件系统规模管理方法及系统

Publications (1)

Publication Number Publication Date
CN112860628A true CN112860628A (zh) 2021-05-28

Family

ID=75988146

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110187780.5A Pending CN112860628A (zh) 2021-02-18 2021-02-18 一种文件系统规模管理方法及系统

Country Status (1)

Country Link
CN (1) CN112860628A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703679A (zh) * 2021-08-23 2021-11-26 北京明略昭辉科技有限公司 一种实现数据一致性的方法、系统、电子设备及介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703679A (zh) * 2021-08-23 2021-11-26 北京明略昭辉科技有限公司 一种实现数据一致性的方法、系统、电子设备及介质

Similar Documents

Publication Publication Date Title
US10303650B2 (en) Contiguous file allocation in an extensible file system
US10430398B2 (en) Data storage system having mutable objects incorporating time
US10642515B2 (en) Data storage method, electronic device, and computer non-volatile storage medium
US8521790B2 (en) Increasing efficiency of data storage in a file system
US6606618B2 (en) Method for optimizing the performance of a database
US7890541B2 (en) Partition by growth table space
US8234317B1 (en) Auto-committing files to immutable status based on a change log of file system activity
US9367569B1 (en) Recovery of directory information
US9195666B2 (en) Location independent files
US20120330909A1 (en) System and Method for Storing Data Streams in a Distributed Environment
CN101178726B (zh) 数据文件解归档的方法和系统
JP2004038960A (ja) ファイルシステムフィルタドライバのためのファイルネームを管理するシステム及び方法
CN106980665B (zh) 数据字典实现方法、装置及数据字典管理系统
CN108121813B (zh) 数据管理方法、装置、系统、存储介质及电子设备
US20050076031A1 (en) Semantic file system
CN111459884B (zh) 一种数据的处理方法、装置、计算机设备和存储介质
CN114327290B (zh) 一种磁盘分区的结构、格式化方法和访问方法
KR20210058118A (ko) CaseDB: 엣지컴퓨팅을 위한 저비용 Put-Intensive 키-벨류 저장장치
CN112860628A (zh) 一种文件系统规模管理方法及系统
CN111930684A (zh) 基于hdfs的小文件处理方法、装置、设备及存储介质
US20170286442A1 (en) File system support for file-level ghosting
CN114416676A (zh) 数据处理方法、装置、设备和存储介质
CN113568868A (zh) 文件系统管理方法、系统、电子设备及介质
KR101368441B1 (ko) 데이터베이스의 공간 재사용 장치, 방법 및 컴퓨터 판독 가능한 기록 매체
CN112306955A (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