首页> 中国专利> 分布式文件系统虚拟目录组织及命名空间管理的方法

分布式文件系统虚拟目录组织及命名空间管理的方法

摘要

本发明涉及一种分布式文件系统虚拟目录组织及命名空间管理的方法,包括以下步骤:根据用户查询请求和上下文,利用文件系统中文件元数据,以关系代数的方式按需计算和动态生成虚拟目录,以虚拟文件视图的层现形式为用户提供满足当前上下文的文件服务;在虚拟目录命名空间中进行文件创建、删除、移动、重命名、打开、关闭、读、写、截断的文件操作,以及进行上下文目录的创建、删除和重命名的操作。本发明的有益效果:在大规模海量文件存储系统中引入按需计算和动态生成的虚拟目录,克服了传统层次目录结构无法提供按需服务的缺点,提供了一种高效的文件检索和组织形式。在虚拟目录的组织过程中引入了包含文件属性和上下文的文件元数据,能根据上下文的变化为用户主动提供文件服务。

著录项

  • 公开/公告号CN101334785A

    专利类型发明专利

  • 公开/公告日2008-12-31

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN200810063296.6

  • 申请日2008-07-30

  • 分类号G06F17/30;

  • 代理机构杭州九洲专利事务所有限公司;

  • 代理人陈继亮

  • 地址 310027 浙江省杭州市西湖区浙大路38号浙江大学计算机学院曹光彪东楼526室

  • 入库时间 2023-12-17 21:15:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-11-10

    授权

    授权

  • 2009-02-25

    实质审查的生效

    实质审查的生效

  • 2008-12-31

    公开

    公开

说明书

技术领域

本发明涉及文件系统领域,特别是涉及一种智能微小型地面机器人与无线传感器节点间的通信方法。

背景技术

传统文件系统采用层次目录结构命名空间来组织和管理文件,层次目录结构具有易于理解和易于导航的优点。但是传统层次目录结构存在以下两个方面的不足:第一,传统层次目录是写在磁盘物理扇区的真实结构,命名空间的路径名只反映了文件在命名空间中位置的单一属性,即单继承方式,导致用户只能通过记忆文件的物理路径来访问文件。第二、存储容量的增大和存储文件数量的爆炸式增长使传统文件系统的目录层次结构变得尤为庞大和复杂,从而导致用户需要记忆层次目录结构命名空间中更多的文件位置,给用户的文件查询、文件访问、文件共享等文件管理带来了更大的负担。

随着“以用户为中心”普适计算的发展,对文件的组织和管理方式提出了新的需求,要求文件系统能够根据用户的需要自适应地提供文件服务,以满足随时随地和透明的文件存取。而以传统层次目录结构来组织和管理文件的传统文件系统显然已经不能适应普适计算的需求,进而研究和设计普适计算环境下的文件组织和管理形式尤为重要。

由于普适环境中的文件具有丰富的元数据信息,包括文件属性和上下文,统称为文件元数据,所以文件系统可利用各种文件元数据管理文件,即利用多重继承(命名空间不是反映文件的物理位置,而是反映文件的多种特征属性,如所有者、文件类型、文件内容主题等)方式组织和管理文件来克服单继承方式的局限性。另一方面,利用按需计算和动态生成的虚拟目录可提供一种更为有效的文件检索和组织形式。

发明内容

本发明的目的在于克服传统文件系统层次目录结构命名空间无法满足普适环境中大规模海量文件数据组织和管理服务需求的缺陷,提供一种分布式文件系统虚拟目录组织及命名空间管理的方法,能够利用文件属性和上下文等文件元数据,根据上下文和用户的查询请求以关系代数的方式按需计算和动态生成虚拟目录,并支持虚拟目录命名空间的管理。

本发明的目的是通过以下技术方案来实现的。这种分布式文件系统虚拟目录组织及命名空间管理的方法,包括以下步骤:

(1.1)、根据用户查询请求和上下文,利用文件系统中文件元数据,以关系代数的方式按需计算和动态生成虚拟目录,以虚拟文件视图的层现形式为用户提供满足当前上下文的文件服务;

(1.2)、在虚拟目录命名空间中进行文件创建、删除、移动、重命名、打开、关闭、读、写、截断的文件操作,以及进行上下文目录的创建、删除和重命名的操作。

所述的虚拟目录由根节点、元数据键名节点、元数据键值节点和虚拟文件节点构成,其中第一层为根节点,表示客户端的挂载目录;第二层是元数据键名层,表示预先定义的符合当前上下文的元数据键名;第三层为元数据键值层,表示当前上下文对应的元数据键值;第四层是虚拟文件层,表示满足当前上下文约束条件的所有文件;当上下文发生变化时,分布式文件系统以当前上下文为约束条件在元数据服务器进行查询和匹配,以文件元数据的键值对创建上下文目录,以返回的文件名创建虚拟文件,由上下文目录和虚拟文件共同构成虚拟目录。

所述的虚拟目录是根据用户查询请求,利用文件系统的元数据服务器存储的文件元数据,并以关系代数的方式按需计算和动态生成的,利用关系代数形式化地表示虚拟目录的构造如下:

Dctx:=πkctx(σMt(0)(M)uri...uriσMt(n-1)(M))

FDctx:=πfileneme(πuri(σMt(0)(M)uri...uriδMt(n-1)(M)))

其中:

M表示文件元数据表;

kctx表示当前上下文信息;

Mt表示关于文件元数据表的条件函数;

δt(M)表示表M上的选择操作,即从表M中选择出满足给定条件t的行;

πt(M)表示表M上的投影操作,即从表M中选择出满足给定条件t的列;

表示表之间的连接操作,即从表S和表R的笛卡尔积中选取满足一定条件t的行;

表示满足上下文ctx的虚拟目录;

表示满足上下文ctx虚拟目录中的虚拟文件集。

所述的文件元数据是描述文件的数据,包括文件属性和上下文;文件属性包括文件名、创建时间、最近修改时间、最近访问时间、访问权限、所有者的基本属性,以及关联性语义、结构化语义和环境语义的扩展属性;而上下文是反映文件何时何地被何人读写的环境信息;当前上下文是指用户当前所处的环境信息。

所述的文件创建中新建的文件继承了所在虚拟目录的上下文信息;文件移动过程中删除了文件在初始虚拟目录的属性和上下文,继承了目标虚拟目录的属性和上下文;文件删除过程中删除的是文件所处虚拟目录下的属性和上下文,文件本身并不被删除,不影响该文件在其他上下文环境下的呈现;上下文目录的删除发生在当且仅当该上下文目录为空时。

所述的文件重命名操作修改了文件在虚拟目录中的呈现名称,当出现两个或多个重名文件时,根据返回结果的先后顺序在文件名后追加特定符号。

本发明的有益效果:

1.在大规模海量文件存储系统中引入按需计算和动态生成的虚拟目录,克服了传统层次目录结构无法提供按需服务的缺点,提供了一种高效的文件检索和组织形式。

2.在虚拟目录的组织过程中引入了包含文件属性和上下文的文件元数据,能根据上下文的变化为用户主动提供文件服务。

3.在虚拟目录命名空间中出现了多种传统层次目录结构命名空间没有的命名冲突问题,通过引入重名追加机制解决了虚拟目录命名空间下的多种命名冲突问题,维护了虚拟目录命名空间的一致性,实现了文件服务的透明性。

附图说明

图1计算系统环境示意图;

图2虚拟目录组织形式示意图;

图3虚拟目录动态归并过程示意图;

图4虚拟目录中创建文件操作示意图;

图5虚拟目录中删除文件操作示意图;

图6虚拟目录中文件重命名操作示意图;

图7虚拟目录中创建上下文目录操作示意图;

图8虚拟目录下删除上下文目录操作示意图;

图9虚拟目录中上下文目录的重命名操作示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述:

1、典型的计算系统环境

图1示出了一个典型的计算系统环境的示例,在该环境中可实现本发明。该计算系统环境只是一种计算环境的示例,而不是要提出对本发明使用或功能的范围进行限制。C表示客户端;MS表示元数据服务器,MS维护了分布式文件系统中文件信息、文件属性信息、上下文信息和用户自定义信息;FS表示文件存储服务器,FS存储了实际的物理文件。

表1是元数据服务器维护的信息,主要包含三张数据库表。其中文件表存储文件的全局唯一标志符uri、所有者、所有组、权限等基本信息,属性表存储文件的扩展属性信息和上下文信息,用户表存储用户自定义的上下文类型。

文件表

  uri  owner  group  permission

元数据表

  id  meta  value  uri

用户表

  id  user  meta

表1元数据服务器维护的信息

表2是表示uri的组成。其中url表示文件实际的物理路径,timestamp表示文件创建的时间戳,number是0~9999之间的随机整数,filename表示虚拟目录中显示的文件名,用timestamp和number保证每个uri成为全局唯一的标志符。

  url  timestamp  number  filename

表2

2、虚拟目录组织

虚拟目录是一种根据上下文按需计算生成的目录,它由上下文目录和虚拟文件组成,并可按照访问传统层次目录的方式进行访问。从传统文件系统的角度看,虚拟目录是在应用层创建的动态文件集,而传统层次目录是写在磁盘物理扇区的真实结构。虚拟目录是按需计算生成的,一个文件出现在某个虚拟目录中,并不意味着它不出现在其他虚拟目录中。例如,@file.user,@file.event表示元数据键名,Alice,meeting代表相应的元数据键值,store.ppt,A.txt等表示虚拟文件。图2中的文件store.ppt满足(@file.user,Alice)和(@file.event,meeting)两个上下文信息,它同时出现在两个虚拟目录下。

由于虚拟目录隐藏了文件的实际存储位置,用户无需考虑文件如何存储的问题,能减轻用户查询、访问和管理文件的负担。另外,由于虚拟目录提供了个性化的目录视图,同一个文件可以在一个或多个虚拟目录下找到,能提高文件查询的灵活性和文件管理的高效性。

图2描述了虚拟目录最简单的组织结构示意图,它由根节点、元数据键名节点、元数据键值节点和虚拟文件节点构成。其中,第一层为根节点,表示客户端的挂载目录;第二层是元数据键名层,表示预先定义的符合当前上下文的元数据键名,如@file.user表示以用户名为键名的元数据;第三层为元数据键值层,表示当前上下文对应的元数据键值,如Alice表示@file.user对应的一个键值。第四层是虚拟文件层,表示满足当前上下文约束条件的所有文件。

虚拟目录是根据用户查询请求,利用文件系统的元数据服务器存储的文件元数据,并以关系代数的方式按需计算和动态生成的。下面利用关系代数形式化地表示虚拟目录的构造:

Dctx:=πkctx(σMt(0)(M)uri...uriσMt(n-1)(M))

FDctx:=πfileneme(πuri(σMt(0)(M)uri...uriδMt(n-1)(M)))

其中:

M表示文件元数据表;

kctx表示当前上下文信息;

Mt表示关于文件元数据表的条件函数;

δt(M)表示表M上的选择操作,即从表M中选择出满足给定条件t的行;

πt(M)表示表M上的投影操作,即从表M中选择出满足给定条件t的列;

表示表之间的连接操作,即从表S和表R的笛卡尔积中选取满足一定条件t的行;

表示满足上下文ctx的虚拟目录;

表示满足上下文ctx虚拟目录中的虚拟文件集。

当上下文发生变化时,分布式文件系统以当前上下文为约束条件在元数据服务器进行查询和匹配,以文件元数据的键值对创建上下文目录,以返回的文件名创建虚拟文件,由上下文目录和虚拟文件共同构成虚拟目录。具体地说,根据用户的查询请求上下文,如(@file.user,Bill)、(@file.event,studying)。在元数据表上分别以(@file.user,Bill)和(@file.event,studying)为条件函数,按照关系代数的方式,进行相应的选择操作,各自生成表S和R,然后把两者的结果再进行连接操作得到表T,最后在表T上由当前上下文信息进行投影操作,创建满足上下文的虚拟目录;依照用户的uri信息在表T进行选择操作,得到表U,在表U上根据虚拟目录中显示的文件名进行投影操作,从而新建满足当前上下文虚拟目录中的虚拟文件集。

错误!未找到引用源。3是示意图,表示虚拟目录的动态归并过程。具体地说,当Alice在meeting中新建test文件,此时的test文件可以看作一棵只具有根节点的虚拟目录树,由于test文件同时具有满足(@file.user,Alice)和(@file.event,meeting)两个上下文信息,根据test文件所在的上下文约束,这颗test文件虚拟目录树会和原来的虚拟目录树自动地进行归并,同时出现在这两个虚拟目录下,从而再次形成一棵完整的虚拟目录树。虚拟目录是动态的,反映的是某种上下文条件下的文件内容视图,不同时间、不同约束条件产生不同的目录。当生成文件或更新文件时,文件根据上下文动态的归并到虚拟目录相应的子目录下。

3、虚拟目录命名空间管理

虚拟目录集成了传统层次目录易于理解和便于导航的优点,同时又具有轻量的和按需动态生成的特殊性质,但是虚拟目录形成的命名空间管理也具有它的特殊性。在虚拟目录命名空间中支持文件创建、删除、移动、重命名、打开、关闭、读、写、截断等文件操作,以及虚拟目录中上下文目录的创建、删除和重命名。同时由于虚拟目录中的文件创建、移动、重命名操作可能引起命名冲突问题,需要采取相应的方法,本发明引入了重名追加机制来解决。

错误!未找到引用源。4是流程图,表示在虚拟目录中创建文件的操作过程。当用户向所在虚拟目录请求创建文件名为file的虚拟文件时,如果当前虚拟目录中已经存在文件file,则创建失败;否则在该虚拟目录下创建文件file,该文件继承了所在虚拟目录的上下文信息,所以需要同时更新元数据服务中的文件表、元数据表,这是一个原子操作。之后更新虚拟目录列表,则创建过程结束。

图5是流程图,表示在虚拟目录中删除文件的操作过程。当用户请求删除某个虚拟目录下文件名为file的文件时,如果该虚拟目录下不存在该文件,文件删除操作失败并返回;否则将删除该文件在该虚拟目录下对应的上下文信息、属性信息,即删除元数据服务器元数据表中该文件对应的属性条目和上下文条目,然后更新虚拟目录列表,之后再判断元数据表中该文件的引用次数是否大于0,如果等于0,则删除对应的物理文件和文件表中对应的条目。

错误!未找到引用源。6是流程图,表示在虚拟目录中文件重命名的操作过程。当用户请求把虚拟目录中的某个文件的文件名file重命名为fileB,如果该虚拟目录中不存在该文件file,则重命名请求失败并返回;否则更新元数据服务器文件表中的文件名信息,然后更新虚拟目录列表。

错误!未找到引用源。7是流程图,表示在虚拟目录中创建上下文目录的操作过程。当用户在虚拟目录中请求创建上下文目录ctxdir时,如果该虚拟目录中存在上下文目录ctxdir,则返回创建上下文目录请求失败;否则创建上下文目录ctxdir,并判断其父级目录名是否包含@字符,如果是,则在元数据服务器的元数据表中插入对应条目,如果不是,则在元数据服务器的用户表中插入新的上下文条目,最后更新虚拟目录列表。

错误!未找到引用源。8是流程图,表示在虚拟目录下删除上下文目录的操作过程。当用户请求删除虚拟目录中的上下文目录ctxdir时,如果该虚拟目录中不存在该上下文目录,则返回删除上下文目录请求失败;否则判断上下文目录ctxdir是否为空,如果不是,则返回删除上下文目录请求失败信息,如果是,则删除元数据服务的元数据表中的对应条目,并更新虚拟目录列表。

错误!未找到引用源。9是流程图,表示在虚拟目录中对上下文目录进行重命名操作的过程。当用户请求把虚拟目录的上下文目录ctxdir重命名为ctxdirB时,如果该虚拟目录中不存在该ctxdir上下文目录,则返回重命名上下文目录请求失败信息;否则判断该上下文目录的目录名是否包含字符@,如果不是,则更新元数据服务器元数据表的相关条目,如果是,则更新元数据服务器用户表和元数据表的相关条目,最后更新虚拟目录列表。

4、命名冲突解决机制

由于在虚拟目录中增加了上下文导航功能,带来了区别于传统层次结构命名空间的特殊命名冲突问题,主要是在创建、重命名和移动文件过程中可能会出现命名冲突问题。

以文件创建过程的命名冲突为例,在某一虚拟目录中,A文件有上下文C.A;C.B,现在在上下文环境为C.A;C.B;C.C的虚拟目录下创建一个与A同名的文件A,记作A′。由于C.A;C.B;C.C下并没有A文件,所以A′创建成功,但是当返回到上下文C.A;C.B时,A与A′都符合条件,逻辑上需要同时显示这两个同名文件,但是如果同时显示文件名A则导致同名冲突问题的出现。为了解决虚拟目录的命名冲突问题,本发明采用了重名追加机制。

具体的重名追加机制如下:当出现两个或多个重名文件时,根据返回结果的先后顺序在文件名后追加特定符号,在本实施例中,特定符号为′,也可采用其他特定符号。若有三个同名A文件,则最终显示为A,A′,A″。

上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号