一种面向应用的文件系统名字空间管理方法转让专利

申请号 : CN200810236600.2

文献号 : CN101419626B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 冯丹施展朱春霖李志超赵恒李勇邓聪林

申请人 : 华中科技大学

摘要 :

一种面向应用的文件系统名字空间管理方法,属于计算机存储技术领域,解决现有文件系统中元数据扩展的内容未包含文件的应用语义的问题,以缩短元数据访问时间并提高应用访问的效率。本发明包括应用语义提取、名字空间裁剪、裁剪名字空间访问三个步骤。本发明通过提取应用程序的进程与其访问的文件之间的应用语义,裁剪出每个应用程序的进程面对的文件系统名字空间,使得应用程序缩短元数据访问时间并提高访问的效率,适用于名字空间越来越复杂的文件系统。

权利要求 :

1.一种面向应用的文件系统名字空间管理方法,包括下列步骤:(1)应用语义提取步骤:预先运行各个应用程序,跟踪各应用程序的进程对文件的访问,并在文件中增加一项记录元数据用来保存访问过该文件的应用程序的进程名;然后根据所有的记录元数据,提取应用语义,每条应用语义描述一个进程和所访问文件之间的关系,并将各应用语义以XML文件的形式保存到数据库中,等待调用;

(2)名字空间裁剪步骤,顺序进行下述过程:

(2.1)当该步骤被调用时,获取应用程序进程的ID参数;

(2.2)根据所述进程的ID参数,访问其数据结构,得到进程名A;

(2.3)从数据库中读出包含进程名A的应用语义的XML文件;

(2.4)将读出的XML文件解析成DOM树,将进程名A的应用语义包含的所有文件名对应的元数据添加到该DOM树中,并且将该DOM树驻留在内存中,得到与A关联的裁剪的名字空间,然后返回;

(3)裁剪名字空间的访问步骤,进行下述过程:

(3.1)应用程序的进程A访问文件时,向文件系统发送访问请求,进行下一步;

(3.2)文件系统从请求包中得到进程A的ID参数,再将访问请求重定向到与进程A关联的裁剪的名字空间,进行下一步;

(3.3)重定向操作在内存中检查与进程A的ID参数对应的DOM树是否存在,存在则转过程(3.5),不存在则进行下一步;

(3.4)调用名字空间裁剪步骤,得到与进程A关联的裁剪的名字空间,转过程(3.2);

(3.5)在与进程A关联的裁剪的名字空间中完成文件的访问请求,继续进行应用程序;

(3.6)应用程序完成退出时,在内存中清除与其所包括的所有进程相关的裁剪的名字空间,结束。

2.如权利要求1所述的面向应用的文件系统名字空间管理方法,其特征在于:(1)所述应用语义提取步骤,顺序进行下述过程:

(1.1)启动各应用程序,当有文件被访问时,顺序进行;

(1.2)在被访问文件F的记录元数据中添加访问进程的名称,记录元数据的格式为A:B:C:...,其中F为被访问的文件名,A、B、C分别为访问此文件的应用程序的进程名;

(1.3)所有应用程序结束,根据所有被访问文件的记录元数据,提取应用语义,其格式为A=F1:F2:F3:…,其中A为进程名,F1,F2,F3为被访问的文件名;

(1.4)将所提取到的各应用程序的进程的应用语义,写成XML文件,保存到数据库中,结束。

说明书 :

技术领域

本发明属于计算机存储技术领域,具体涉及一种面向应用的文件系统名字空间管理方法。

背景技术

随着个人电脑市场的增长和存储设备数据存储能力的不断提高,个人数据量变得越来越大。文件系统作为管理用户数据的基础,其名字空间变得越来越复杂,这导致文件系统元数据访问性能变得越来越低。
在计算机系统中,文件包括元数据和数据两部分,元数据是对文件长度、类型等属性的描述,文件的名字是元数据中的一项,用于标识一个文件;文件系统是文件的集合,文件系统的名字空间即其所包括文件的名字的集合。
应用程序的进程所访问的名字空间是该进程所访问文件的名字的集合。
文件系统元数据在语义文件系统中占有很重要的地位,许多语义信息都是通过元数据的形式来表示的。当前的文件系统没有给予元数据足够的重视,所以它们不能充分利用文件系统的元数据进行内容搜索,更不能提供一些高级的基于语义的关联式数据存取。目前许多语义文件系统都是通过在元数据中扩展文件属性的方式,以包含多种类型的语义信息,并利用这些扩展的元数据提高文件的检索效率。
目前语义文件系统中元数据扩展的内容大体可包括如下几类:
1运行状态信息。许多领域都需要运行状态信息,比如应用程序和编译器。应用程序需要对状态信息的短期和长期的存储,比如许可证信息,用户信息,密码,DNS或SMTP服务器,ORB信息等。编译器也会产生有关程序数据类型的信息。
2数据模型。数据库管理系统,Windows注册表,接口储存库都维护着关于数据结构和模式的信息,例如数据类型,索引,约束,联系和接口等。
3多媒体。像图片,视频,音乐等听觉和视觉信息不能够很容易的从中提取出用于查询的有用格式。因此就需要元数据信息以用来提供相关访问。通常这种信息可能通过人工根据关键字分类数据后输入或者通过图片处理程序提取特征样式后输入。
虽然当前许多文件系统,比如微软的WinFS、苹果的Spotlight,都提供了某种程度上的语义信息,但相比于一个使用广泛的开放的数据模型方法构建的语义文件系统,它们包含的语义信息都还远远不够。大多数文件系统使用层级目录结构,这种结构仅仅适用于小规模或中等规模名字空间的文件系统。在大规模数据文件系统中,文件的分类和检索将变得十分困难。用户亟需更加有效的组织文件,检索文件的方法。

发明内容

本发明提出一种面向应用的文件系统名字空间管理方法,解决现有文件系统中元数据扩展的内容未包含文件的应用语义的问题,以缩短元数据访问时间并提高应用访问的效率。
本发明的一种面向应用的文件系统名字空间管理方法,包括下列步骤:
(1)应用语义提取步骤:预先运行各个应用程序,跟踪各应用程序的进程对文件的访问,并在文件中增加一项记录元数据用来保存访问过该文件的应用程序的进程名;然后根据所有的记录元数据,提取应用语义,每条应用语义描述一个进程和所访问文件之间的关系,并将各应用语义以XML文件的形式保存到数据库中,等待调用;
(2)名字空间裁剪步骤:该步骤被调用时,根据应用程序的进程名从数据库中取出其对应的应用语义,根据应用语义裁剪出与该进程关联的名字空间,将其以DOM树的形式驻留在内存中,然后返回;
(3)裁剪名字空间的访问步骤:实际运行应用程序,在应用程序的进程访问文件时,文件系统将接收到的访问请求重定向到与该进程关联的裁剪的名字空间,重定向成功,则完成访问请求;否则调用名字空间裁剪步骤,再向文件系统发出访问请求。
所述的面向应用的文件系统名字空间管理方法,其特征在于:
(1)所述应用语义提取步骤,顺序进行下述过程:
(1.1)启动各应用程序,当有文件被访问时,顺序进行;
(1.2)在被访问文件F的记录元数据中添加访问进程的名称,记录元数据的格式为A:B:C:…,其中F为被访问的文件名,A、B、C分别为访问此文件的应用程序的进程名;
(1.3)所有应用程序结束,根据所有被访问文件的记录元数据,提取应用语义,其格式为A=F1:F2:F3:…,其中A为进程名,F1、F2、F3为被访问的文件名;
(1.4)将所提取到的各应用程序的进程的应用语义,写成XML文件,保存到数据库中,结束;
(2)所述名字空间裁剪步骤,顺序进行下述过程:
(2.1)当该步骤被调用时,获取应用程序进程的ID参数;
(2.2)根据所述进程的ID参数,访问其数据结构,得到进程名A;
(2.3)从数据库中读出包含进程名A的应用语义的XML文件;
(2.4)将读出的XML文件解析成DOM树,将进程名A的应用语义包含的所有文件名对应的元数据添加到该DOM树中,并且将该DOM树驻留在内存中,得到与A关联的裁剪的名字空间,结束;
(3)所述裁剪名字空间的访问步骤,进行下述过程:
(3.1)应用程序的进程A访问文件时,向文件系统发送访问请求,进行下一步;
(3.2)文件系统从请求包中得到进程A的ID参数,再将访问请求重定向到与cA关联的裁剪的名字空间,进行下一步;
(3.3)重定向操作在内存中检查与进程A的ID参数对应的DOM树是否存在,存在则转过程(3.5),不存在则进行下一步;
(3.4)调用名字空间裁剪步骤,得到与进程A关联的裁剪的名字空间,转过程(3.2);
(3.5)在与进程A关联的裁剪的名字空间中完成文件的访问请求,继续进行应用程序;
(3.6)应用程序完成退出时,在内存中清除与其所包括的所有进程相关的裁剪的名字空间,结束。
本发明通过提取应用程序的进程和其所访问文件之间的关联信息(即文件的应用语义),将各应用语义用XML文件保存到数据库中,避免因为系统重启而造成的重复提取;并且利用这些文件的应用语义裁剪与应用程序的进程关联的名字空间,充分考虑和利用了系统和应用程序的进程的名字空间的巨大差异,缩短应用程序的进程访问元数据的时间,提高元数据的访问效率性能,适用于当前名字空间变得越来越复杂的文件系统。

附图说明

图1为本发明的流程示意图;
图2为本发明的应用语义提取步骤流程示意图;
图3为本发明的名字空间裁剪步骤流程示意图;
图4为本发明的裁剪名字空间的访问步骤流程示意图;

具体实施方式

假设一个应用程序由2个进程组成,进程名分别为PA、PB;共访问5个文件,分别为File1、File2、File3、File4、File5。
图2为应用语义提取步骤示意图;
(1)启动这个应用程序,当有文件被访问时,顺序进行;
(2)在被访问文件的记录元数据中添加访问进程的名称;
(3)所有应用程序结束,根据所有被访问文件的记录元数据,提取应用语义,应用语义为PA=File1:File2:File3,PB=File4:File5;
(4)将所提取到的各应用程序的进程的应用语义,写成XML文件,保存到数据库中;
(5)结束。
图3为名字空间裁剪步骤流程图;
(1)当该步骤被调用时,获取应用程序进程的ID参数;
(2)根据所述进程的ID参数,访问其数据结构,得到进程名PA;
(3)从数据库中读出包含进程名PA的应用语义的XML文件;
(4)将读出的XML文件解析成DOM树,将进程名PA的应用语义包含的File1、File2、File3对应的元数据添加到该DOM树中,并且将该DOM树驻留在内存中,得到与PA关联的裁剪的名字空间;
(5)结束。
图4为裁剪名字空间的访问过程流程图;
(1)应用程序的进程PA访问文件File1时,向文件系统发送访问请求,进行下一步;
(2)文件系统从请求包中得到进程PA的ID参数,再将访问请求重定向到与进程PA关联的裁剪的名字空间,进行下一步;
(3)重定向操作在内存中检查与进程PA的ID参数对应的DOM树是否存在,存在则转过程(5),不存在则进行下一步;
(4)调用名字空间裁剪步骤,得到与进程PA关联的裁剪的名字空间,转过程(2);
(5)在与进程PA关联的裁剪的名字空间中完成文件File1的访问请求,继续进行应用程序;
(6)应用程序完成退出时,在内存中清除与其所包括的进程PA相关的裁剪的名字空间;
(7)结束。