一种基于数据库的文件系统及文件存储方法

文档序号:6402037阅读:791来源:国知局
专利名称:一种基于数据库的文件系统及文件存储方法
技术领域
本发明涉及基于数据库的文件系统技术,特别涉及一种基于数据库的文件系统及文件存储方法。
背景技术
文件系统解决了数据以文件的形式存储,文件在存储介质上的管理等问题。但是多年来,文件系统的存储方式、文件用户的访问手段一直没有变化,采用的是“按名存储”存取的访问形式,提供给用户程序的API接口依旧是open、read/write、close。而这种方式已经无法满足人们对文件数据管理的需求。例如,基于目录和多级结构的传统文件系统。由于断电或者其他原因带来系统崩溃使得操作系统重启时要对文件系统进行修复,保证系统逻辑上数据的完整性。但随着文件数和目录数的急剧增长,系统修复时间也越来越长,往往令人难以接受。随着新的应用不断涌现,人们对数据可靠性、安全性要求增高,文件系统管理的数据种类越来越丰富、结构也越来越复杂,传统文件系统元数据根本无法满足如此丰富的信息量。

发明内容
本发明所要解决的技术问题是,提供一种基于数据库的文件系统及文件存储方法,以解决文件系统的异常恢复的技术问题。为了解决上述技术问题,本发明公开了一种基于数据库的文件系统,包括多个嵌入式数据库和应用进程处理模块,所述嵌入式数据库分为查询数据库、元数据信息数据库和块信息数据库,其中:所述查询数据库,存储各文件对应的所有元数据信息;所述元数据信息数据库,存储各元数据对应的块信息;所述块信息数据库,以块为单位存储各元数据内容;所述进程处理模块,接收到用户发起的文件操作指令时,从所述查询数据库中查找用户所操作的文件的元数据信息,根据查找到的元数据信息从所述元数据信息数据库中确定存储元数据的块信息,根据所查找到的块信息从所述块信息数据库中提取出元数据内容。较佳地,上述文件系统中,所述文件的元数据包括访问权限、锁、事务机制。较佳地,上述文件系统中,所述文件系统中的嵌入式数据库还包括链接信息数据库,所述链接信息数据库存储文件中各元数据之间的链接关系。较佳地,上述文件系统中,所述文件系统中的嵌入式数据库还包括文件扩展属性数据库,所述文件扩展属性数据库存储各元数据的扩展属性信息。较佳地,上述文件系统中,所述嵌入式数据库为BDB数据库。

本发明还公开了一种基于数据库的文件存储方法,包括:基于数据库的文件系统接收到用户发起的文件操作指令时,从嵌入式查询数据库中查找用户所操作的文件的元数据信息,根据查找到的元数据信息从嵌入式元数据信息数据库中确定存储元数据的块信息,最后根据所查找到的块信息从嵌入式块信息数据库中提取出元数据内容。较佳地,上述方法中,所述文件的元数据包括访问权限、锁、事务机制。较佳地,上述方法还包括:当用户发起的文件操作指令中的文件包括多种元数据时,所述文件系统中还从嵌入式链接信息数据库中查找各元数据之间的链接关系。较佳地,上述方法还包括:当用户发起的文件操作指令中的文件的元数据还具有扩展属性时,所述文件系统从嵌入式文件扩展属性数据库中查找元数据的扩展属性信息。较佳地,上述方法中,所述嵌入式数据库为BDB数据库。本发明技术方案的有益效果是:更好的并发控制与协同控制能力、基于文件内容的访问、更高效的搜索算法等,用于满足客户对数据安全性、可靠性、扩展性的要求,为开发系统新的特性提供灵活操作接口。


图1为本实施例中基于数据库的文件系统架构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下文将结合附图对本发明技术方案作进一步详细说明。需要说明的是,在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。实施例1本实施例提供一种基于数据库的文件系统,架构如图1所示,其结合数据库优点,在拥有传统文件系统特点的同时,扩展了一些新的特性,如可扩充、自定义文件属性,更好的并发控制与协同控制能力、基于文件内容的访问、更高效的搜索算法等。具体地,该文件系统至少包括嵌入式数据库和应用进程处理模块。嵌入式数据库,存储各文件的元数据及其存储位置的对应信息;本实施例是在传统文件系统基础上,添加一系列文件元数据属性的嵌入式数据库(例如BDB键值型数据库),这是由于BDB是一种嵌入式、键值3数据库,可以保存任意类型的键/值对,而且可以为一个键保存多个数据,支持数千的并发线程同时访问),至少包括查询数据库、元数据信息数据库、块信息数据库、链接信息数据库,搭建一个基于数据库的文件系统,使数据库充当新文件系统的基石。其中,查询数据库存储各文件的元数据对应的存储位置(相当于总的索引数据库),涉及文件修改的操作均需要更新查询数据库。元数据信息数据库,存储各元数据对应的块信息。块信息数据库,以块为单位存储有各文件的元数据内容。链接信息数据库,存储各文件之间的链接目录,以在遍历文件的时候防止出现死循环。 在上述基础上,嵌入式数据库还包括文件扩展属性数据库,用于存储各文件的元数据对应的扩展属性信息。
应用进程处理模块,接收到用户发起的文件操作指令时,从嵌入式数据库中查找用户所操作的文件的元数据,根据元数据信息进行相应的操作。具体地,应用进程处理模块主要完成以下2个任务:结合数据库API接口函数,为用户客户端提供一系列通用的文件系统接口,如configure, create, open等数据库操作以实现文件系统元数据数据库存储;设置数据库文件系统环境变量接口,用于跨数据库文件系统的配置(即设置相应的编程接口,实现基于数据库存储的文件存储,以达到数据可以实现备份及其他数据安全功能)、访问以及文件的锁、事务机制。另外,上述基于数据库的文件系统还包括一 VFS (Virtual File System,虚拟文件系统),该VFS将实际的文件系统从操作系统与系统服务之间分离开来,增加一个接口层,屏蔽不同文件系统的实现细节。VFS为用户提供一个统一、抽象、虚拟的文件系统界面,为了实现用户操作文件系统时与底层数据库进行操作,我们需要开发相应的文件操作函数接口以系统调用的形式提供给应用程序。实施例2本实施例提供一种基于数据库的文件存储方法,包括如下操作:基于数据库的文件系统接收到用户发起的文件操作指令时,从嵌入式查询数据库中查找用户所操作的文件的元数据信息,根据查找到的元数据信息从嵌入式元数据信息数据库中确定存储元数据的块信息,最后根据所查找到的块信息从嵌入式块信息数据库中提取出元数据内容。需要说明的是,上述方法中所涉及的嵌入式数据库可采用BDB数据库。其中,文件的元数据包括访问权限、锁、事务机制。另外,当用户发起的文件操作指令中的文件包括多种元数据时,文件系统在实现上述方法的基础上,还可以从嵌入式链接信息数据库中查找各元数据之间的链接关系。而当用户发起的文件操作指令中的文件的元数据还具有扩展属性时,文件系统还可以从嵌入式文件扩展属性数据库中查找元数据的扩展属性信息。从上述实施例可以看出,本申请技术方案改进传统集群文件系统的架构,将元数据信息存储到数据库中,并将数据库数据进行多次备份,这样就解决了文件系统的异常恢复,即一个数据库中的元数据信息损坏,也可以使用备份的数据进行数据的访问。另外,本申请技术方案考虑到数据需要某些特定的权限,因此对存储在数据库中的元数据信息的特性进行了扩展,如可扩充、自定义文件属性,从而增加了元数据的信息量,优化了 I/o缓存,提高了系统搜索效率,解决本地文件系统因意外断电或其他非正常关机导致的系统修复时间过长问题,提升系统的性能。同时,提高了数据的可靠性及实现元数据集群,为应用提供更高性能保障。本领域 普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。 ·
权利要求
1.一种基于数据库的文件系统,其特征在于,该系统包括多个嵌入式数据库和应用进程处理模块,所述嵌入式数据库分为查询数据库、元数据信息数据库和块信息数据库,其中: 所述查询数据库,存储各文件对应的所有元数据信息; 所述元数据信息数据库,存储各元数据对应的块信息; 所述块信息数据库,以块为单位存储各元数据内容; 所述进程处理模块,接收到用户发起的文件操作指令时,从所述查询数据库中查找用户所操作的文件的元数据信息,根据查找到的元数据信息从所述元数据信息数据库中确定存储元数据的块信息,根据所查找到的块信息从所述块信息数据库中提取出元数据内容。
2.如权利要求1所述的文件系统,其特征在于, 所述文件的元数据包括访问权限、锁、事务机制。
3.如权利要求1所述的文件系统,其特征 在于, 所述文件系统中的嵌入式数据库还包括链接信息数据库,所述链接信息数据库存储文件中各元数据之间的链接关系。
4.如权利要求1所述的文件系统,其特征在于, 所述文件系统中的嵌入式数据库还包括文件扩展属性数据库,所述文件扩展属性数据库存储各元数据的扩展属性信息。
5.如权利要求1至4任一项所述的文件系统,其特征在于, 所述嵌入式数据库为BDB数据库。
6.一种基于数据库的文件存储方法,其特征在于,该方法包括: 基于数据库的文件系统接收到用户发起的文件操作指令时,从嵌入式查询数据库中查找用户所操作的文件的元数据信息,根据查找到的元数据信息从嵌入式元数据信息数据库中确定存储元数据的块信息,最后根据所查找到的块信息从嵌入式块信息数据库中提取出元数据内容。
7.如权利要求6所述的方法,其特征在于, 所述文件的元数据包括访问权限、锁、事务机制。
8.如权利要求6所述的方法,其特征在于,该方法还包括: 当用户发起的文件操作指令中的文件包括多种元数据时,所述文件系统中还从嵌入式链接信息数据库中查找各元数据之间的链接关系。
9.如权利要求6所述的方法,其特征在于,该方法还包括: 当用户发起的文件操作指令中的文件的元数据还具有扩展属性时,所述文件系统从嵌入式文件扩展属性数据库中查找元数据的扩展属性信息。
10.如权利要求6至9任一项所述的方法,其特征在于, 所述嵌入式数据库为BDB数据库。
全文摘要
本发明公开了一种基于数据库的文件系统及文件存储方法,涉及基于数据库的文件系统技术。本发明公开的文件系统,包括多个嵌入式数据库和应用进程处理模块,嵌入式数据库分为查询数据库、元数据信息数据库和块信息数据库,其中进程处理模块,接收到用户发起的文件操作指令时,从查询数据库中查找用户所操作的文件的元数据信息,根据查找到的元数据信息从元数据信息数据库中确定存储元数据的块信息,根据所查找到的块信息从所述块信息数据库中提取出元数据内容。本发明还公开了一种基于数据库的文件存储方法。本申请技术方案满足了客户对数据安全性、可靠性、扩展性的要求,为开发系统新的特性提供灵活操作接口。
文档编号G06F17/30GK103226592SQ20131012950
公开日2013年7月31日 申请日期2013年4月15日 优先权日2013年4月15日
发明者王东风, 张立强 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1