CN103226592A - 一种基于数据库的文件***及文件存储方法 - Google Patents
一种基于数据库的文件***及文件存储方法 Download PDFInfo
- Publication number
- CN103226592A CN103226592A CN2013101295015A CN201310129501A CN103226592A CN 103226592 A CN103226592 A CN 103226592A CN 2013101295015 A CN2013101295015 A CN 2013101295015A CN 201310129501 A CN201310129501 A CN 201310129501A CN 103226592 A CN103226592 A CN 103226592A
- Authority
- CN
- China
- Prior art keywords
- database
- metadata
- file
- file system
- embedded
- 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
Images
Landscapes
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于数据库的文件***及文件存储方法,涉及基于数据库的文件***技术。本发明公开的文件***,包括多个嵌入式数据库和应用进程处理模块,嵌入式数据库分为查询数据库、元数据信息数据库和块信息数据库,其中:进程处理模块,接收到用户发起的文件操作指令时,从查询数据库中查找用户所操作的文件的元数据信息,根据查找到的元数据信息从元数据信息数据库中确定存储元数据的块信息,根据所查找到的块信息从所述块信息数据库中提取出元数据内容。本发明还公开了一种基于数据库的文件存储方法。本申请技术方案满足了客户对数据安全性、可靠性、扩展性的要求,为开发***新的特性提供灵活操作接口。
Description
技术领域
本发明涉及基于数据库的文件***技术,特别涉及一种基于数据库的文件***及文件存储方法。
背景技术
文件***解决了数据以文件的形式存储,文件在存储介质上的管理等问题。但是多年来,文件***的存储方式、文件用户的访问手段一直没有变化,采用的是“按名存储”存取的访问形式,提供给用户程序的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缓存,提高了***搜索效率,解决本地文件***因意外断电或其他非正常关机导致的***修复时间过长问题,提升***的性能。同时,提高了数据的可靠性及实现元数据集群,为应用提供更高性能保障。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于数据库的文件***,其特征在于,该***包括多个嵌入式数据库和应用进程处理模块,所述嵌入式数据库分为查询数据库、元数据信息数据库和块信息数据库,其中:
所述查询数据库,存储各文件对应的所有元数据信息;
所述元数据信息数据库,存储各元数据对应的块信息;
所述块信息数据库,以块为单位存储各元数据内容;
所述进程处理模块,接收到用户发起的文件操作指令时,从所述查询数据库中查找用户所操作的文件的元数据信息,根据查找到的元数据信息从所述元数据信息数据库中确定存储元数据的块信息,根据所查找到的块信息从所述块信息数据库中提取出元数据内容。
2.如权利要求1所述的文件***,其特征在于,
所述文件的元数据包括访问权限、锁、事务机制。
3.如权利要求1所述的文件***,其特征在于,
所述文件***中的嵌入式数据库还包括链接信息数据库,所述链接信息数据库存储文件中各元数据之间的链接关系。
4.如权利要求1所述的文件***,其特征在于,
所述文件***中的嵌入式数据库还包括文件扩展属性数据库,所述文件扩展属性数据库存储各元数据的扩展属性信息。
5.如权利要求1至4任一项所述的文件***,其特征在于,
所述嵌入式数据库为BDB数据库。
6.一种基于数据库的文件存储方法,其特征在于,该方法包括:
基于数据库的文件***接收到用户发起的文件操作指令时,从嵌入式查询数据库中查找用户所操作的文件的元数据信息,根据查找到的元数据信息从嵌入式元数据信息数据库中确定存储元数据的块信息,最后根据所查找到的块信息从嵌入式块信息数据库中提取出元数据内容。
7.如权利要求6所述的方法,其特征在于,
所述文件的元数据包括访问权限、锁、事务机制。
8.如权利要求6所述的方法,其特征在于,该方法还包括:
当用户发起的文件操作指令中的文件包括多种元数据时,所述文件***中还从嵌入式链接信息数据库中查找各元数据之间的链接关系。
9.如权利要求6所述的方法,其特征在于,该方法还包括:
当用户发起的文件操作指令中的文件的元数据还具有扩展属性时,所述文件***从嵌入式文件扩展属性数据库中查找元数据的扩展属性信息。
10.如权利要求6至9任一项所述的方法,其特征在于,
所述嵌入式数据库为BDB数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101295015A CN103226592A (zh) | 2013-04-15 | 2013-04-15 | 一种基于数据库的文件***及文件存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101295015A CN103226592A (zh) | 2013-04-15 | 2013-04-15 | 一种基于数据库的文件***及文件存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103226592A true CN103226592A (zh) | 2013-07-31 |
Family
ID=48837037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101295015A Pending CN103226592A (zh) | 2013-04-15 | 2013-04-15 | 一种基于数据库的文件***及文件存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103226592A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015083177A1 (en) * | 2013-12-06 | 2015-06-11 | Hewlett-Packard Development Company, L.P. | File lookup in a file system |
CN105930234A (zh) * | 2016-05-25 | 2016-09-07 | 华中科技大学 | 一种基于溯源信息的数据重建***及方法 |
CN107004030A (zh) * | 2015-07-27 | 2017-08-01 | 华为国际有限公司 | 一种策略感知统一文件*** |
CN107153539A (zh) * | 2017-04-18 | 2017-09-12 | 北京思特奇信息技术股份有限公司 | 一种文件接口*** |
CN108459925A (zh) * | 2018-02-10 | 2018-08-28 | 深圳市先河***技术有限公司 | 私有云设备及其数据库的修复方法、具有存储功能的装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090327295A1 (en) * | 2008-06-25 | 2009-12-31 | Microsoft Corporation | Maintenance of exo-file system metadata on removable storage device |
CN102725755A (zh) * | 2011-12-31 | 2012-10-10 | 华为技术有限公司 | 文件访问方法及*** |
-
2013
- 2013-04-15 CN CN2013101295015A patent/CN103226592A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090327295A1 (en) * | 2008-06-25 | 2009-12-31 | Microsoft Corporation | Maintenance of exo-file system metadata on removable storage device |
CN102725755A (zh) * | 2011-12-31 | 2012-10-10 | 华为技术有限公司 | 文件访问方法及*** |
Non-Patent Citations (2)
Title |
---|
ADITYA KASHYAP: "File System Extensibility and Reliability Using an in-Kernel Database", 《STONY BROOK UNIVERSITY》, 31 December 2004 (2004-12-31), pages 7 - 12 * |
N.MURPHY,M.TONKELOWITZ,M.VERNAL: "The Design and Implementation of the Database File System", 《HARVARD UNIVERSITY》, 11 January 2002 (2002-01-11) * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015083177A1 (en) * | 2013-12-06 | 2015-06-11 | Hewlett-Packard Development Company, L.P. | File lookup in a file system |
CN107004030A (zh) * | 2015-07-27 | 2017-08-01 | 华为国际有限公司 | 一种策略感知统一文件*** |
US10949551B2 (en) | 2015-07-27 | 2021-03-16 | Huawei International Pte. Ltd. | Policy aware unified file system |
CN105930234A (zh) * | 2016-05-25 | 2016-09-07 | 华中科技大学 | 一种基于溯源信息的数据重建***及方法 |
CN107153539A (zh) * | 2017-04-18 | 2017-09-12 | 北京思特奇信息技术股份有限公司 | 一种文件接口*** |
CN107153539B (zh) * | 2017-04-18 | 2021-03-30 | 北京思特奇信息技术股份有限公司 | 一种文件接口*** |
CN108459925A (zh) * | 2018-02-10 | 2018-08-28 | 深圳市先河***技术有限公司 | 私有云设备及其数据库的修复方法、具有存储功能的装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599104B (zh) | 一种基于redis集群的海量数据关联方法 | |
US10459917B2 (en) | Pluggable storage system for distributed file systems | |
US8694557B2 (en) | Extensibility of metaobjects | |
CN107391758B (zh) | 数据库切换方法、装置及设备 | |
CN101529419B (zh) | 用于对内容进行离线索引和对存储的数据进行分类的方法和*** | |
CN101836186A (zh) | 用于在隔离环境之间通信的方法和*** | |
CN108304463A (zh) | 一种用于数据库的数据管理方法及其数据库应用组件 | |
CN103226592A (zh) | 一种基于数据库的文件***及文件存储方法 | |
CN102243660A (zh) | 一种数据访问方法及设备 | |
KR102119258B1 (ko) | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 | |
US7716189B1 (en) | Method for preserving relationships/dependencies between data in a file system | |
CN103106286A (zh) | 元数据的管理方法和装置 | |
CN102054034A (zh) | 企业信息***的业务基础数据持久化实现方法 | |
KR20200056357A (ko) | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 | |
CN106155832A (zh) | 一种数据恢复的方法、装置及Android设备 | |
US11249968B2 (en) | Large object containers with size criteria for storing mid-sized large objects | |
CN102495730A (zh) | 一种动态可扩展的web界面的方法 | |
CN108984236A (zh) | 一种虚拟化管理平台的实现方法及设备 | |
CN106933555B (zh) | 一种数据框架*** | |
EP3343395A1 (en) | Data storage method and apparatus for mobile terminal | |
CN104268097A (zh) | 一种元数据处理方法及*** | |
CN104133970A (zh) | 一种数据空间管理方法及装置 | |
US10726053B2 (en) | System for lightweight objects | |
US8700676B2 (en) | System and method for appending metadata to objects | |
CN108256019A (zh) | 数据库主键生成方法、装置、设备及其存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130731 |