使用数据库管理系统管理文件系统的数据的方法技术方案

技术编号:2838142 阅读:304 留言:0更新日期:2012-04-11 18:40
提供了一种使用数据库管理系统管理文件系统的数据的方法。根据所述方法,使用数据库管理系统(DBMS)来管理文件系统的元数据,但是将数据写入盘或从盘读取数据由文件系统根据所述方法直接执行,而不通过其他文件系统或DBMS。以这种方式,向用户保证稳定的事务,用户可设计对于多媒体环境最优化的盘分配算法。

【技术实现步骤摘要】

本专利技术涉及一种文件系统,更具体地讲,涉及一种。
技术介绍
与过去不同,最近多媒体技术的发展使得许多消费电子产品(例如,个人录像机、便携式摄像机和移动电话)提供有嵌入式硬盘,因此正积极地进行关于使用盘来有效管理数据的技术的研究项目。在确定与将数据输入到盘和从盘输出数据有关的多种策略的文件系统中,一致性是非常重要的问题。可将文件系统的一致性分成元数据的一致性和数据的一致性。文件系统的元数据包括关于inode、目录、盘的空闲空间和空闲inode的信息。如果与这些元数据项有关的操作作为事务被执行,则可保持元数据的一致性。同样,通过数据事务可保持数据的一致性,如果在更新操作中用于更新文件的一部分的数据事务被异常中断,则数据事务被完成,或好像事务从没有被开始执行一样被丢弃。同时,数据库管理系统(DBMS)通过使用快速和有效的数据结构来可靠地存储数据,并保证事务。在过去,通过将这种DBMS方案应用于操作系统(OS)来尝试保护文件系统的一致性。图1是示出现有技术的采用数据库的文件系统的结构的方框图。在图1示出的文件系统中,通过使用内核Berkeley数据库(KBDB)来管理文件系统的元数据和文件数据,并将该数据库存储在传统的文件系统(例如,Ext2)中。在这种结构中,通过DBMS来执行文件系统的所有操作。例如,当读取预定文件时,访问DBMS,并将block.db中存储的文件数据复制到缓冲区高速缓存中,当将数据写入文件中时,将缓冲区高速缓存中存储的数据存储到block.db中与所述数据相应的记录中。除了文件输入和/或输出操作以外的操作也通过使用DBMS被执行,因此可保证文件系统的一致性。然而,由于其依赖存储数据库的传统的文件系统(Ext2),所以不能对于多种环境将这种KBDB文件系统(KBDBFS)最优化。即,DBMS(KBDB)仅提供事务操作,由存储数据库的文件系统来确定文件系统的大小、盘分配等。例如,当在这种文件系统中将数据存储在盘上时,文件系统(KBDBFS)将数据输入到DBMS(KBDB),DBMS(KBDB)通过使用传统的文件系统Ext2来将数据存储在盘上,因此文件系统(KBDBFS)不能参与实际的盘布局。因此,根据这种文件系统,即使设计了对于环境最优化的算法,也无法将所述最优化的算法应用于盘上块的分配。另外,在文件大小通常较大的多媒体环境中,DBMS产生的日志的大小增加,从而降低了文件系统的性能。
技术实现思路
本专利技术提供了这样一种方法使用数据库管理系统(DBMS)管理文件系统的元数据,将文件数据直接输入到盘或从盘输出文件数据而不涉及DBMS。根据本专利技术的一方面,提供了一种在文件系统中管理数据的方法,包括当从应用程序接收到数据写请求时,通过使用管理文件系统的元数据的预定的数据库管理系统(DBMS)来搜索空闲盘空间;不涉及DBMS通过参照搜索结果,来将数据写入空闲盘空间;和通过使用DBMS来更新随写入的数据改变的一部分元数据。从搜索操作到更新操作的所有操作可作为一个事务被DBMS管理。所述文件系统可在用户级运行。存储有数据的盘可与存储有元数据的盘不同。更新所述一部分元数据的步骤可包括请求DBMS更新包含关于空闲空间的信息的数据库表、包含关于非空闲空间的信息的数据库表、和包含关于inode的信息的数据库表中的至少一个。根据本专利技术的另一方面,提供了一种存储有用于执行所述方法的计算机程序的计算机可读记录介质。附图说明通过参照附图对本专利技术示例性实施例的详细描述,本专利技术的以上和其他方面将变得更清楚,其中图1是示出现有技术的使用数据库管理元数据的文件系统的结构的方框图;图2是示出在根据本专利技术示例性实施例的文件系统中将数据存储在盘上的处理的流程图;图3示出存储根据本专利技术示例性实施例的文件系统的元数据的数据库的图表;图4是示出根据本专利技术示例性实施例的文件系统的方框图;图5是示出在根据本专利技术示例性实施例的文件系统中创建文件的处理的示图;图6是示出在根据本专利技术示例性实施例的文件系统中写文件的处理的示图;和图7是示出在根据本专利技术示例性实施例的文件系统中读取文件的处理的示图。具体实施例方式现在将参照附图更充分地描述本专利技术,在附图中示出本专利技术的示例性实施例。图2是示出在根据本专利技术示例性实施例的文件系统中将数据存储在盘上的处理的流程图。在操作210中,根据当前实施例的文件系统从用户应用程序接收将文件数据写到盘上的请求。为此,所述文件系统应该在与系统调用相应的用户级向应用程序层提供应用程序接口(API)。在操作220,文件系统请求管理元数据的数据库管理系统(DBMS)开始事务。因此,在操作220之后将被执行的关于元数据的操作被认为是一个事务,并被保护。在操作230,搜索空闲盘空间,以写入应用程序所请求的文件数据。此时,参照包括关于空闲盘空间的信息的数据库表来搜索空闲盘空间。随后将参照图3来解释用于管理DBMS的数据库图表的细节。在操作240,将文件数据写入空闲盘空间。根据情况,可在操作230找到许多空闲块。可使用用户定义的盘分配算法来确定将把请求的文件数据存储到空闲块中的哪个块中。这是因为,在根据当前实施例的文件系统中,通过诸如Ext2或DBMS的传统文件系统来管理元数据,但是将文件数据写入盘或从盘读取文件数据由根据当前实施例的文件系统直接执行,而不通过DBMS或其他的文件系统(原始I/O)。换句话讲,由于通过DBMS提供的API来处理本专利技术示例性实施例的文件系统的元数据,所以所述文件系统不参与和元数据有关的盘布局。然而,关于文件数据,根据本专利技术示例性实施例的文件系统直接控制盘布局,因此可使用对于多媒体环境最优化的盘分配算法。另外,由于DBMS既不管理文件数据也不产生关于文件数据的日志,所以即使文件的大小增加,也不发生文件系统性能的降低。在操作250,请求DBMS更新因为已将文件数据写到盘上而应该被改变的元数据。例如,可更新与关于inode、空闲盘空间和非空闲盘空间的信息有关的数据库表。在操作260,请求DBMS终止事务。从而,由于DBMS将操作230至250认为是一个事务,所以保证了文件系统的元数据的一致性。例如,如果在操作250更新了包括关于非空闲空间的信息的数据库表,然后,在更新包括关于空闲空间的信息的数据库表之前,由于断电而导致电供应被切断,则DBMS将包括关于非空闲空间的信息的数据库表的更新视为好像没有发生更新一样,从而没有将有关数据应用于元数据。另外,仅当操作240完成时执行操作250。即,仅在完成写入文件数据之后执行操作250。因此,在操作220和260之间执行操作240,从而保证了数据的一致性。然而,为了改善该文件系统的性能,可不考虑操作240是否完成来执行操作250。同时,为了改善文件系统的性能,可将存储元数据的盘与存储文件数据的盘分开布置。图3示出存储根据本专利技术示例性实施例的文件系统的元数据的数据库的图表。超级块数据库(super.db)存储关于文件系统的状态的信息和inode位映射。可将关于整个文件系统的信息存储为一个记录。inode位映射也仅需要少量记录,因此该数据库具有基于记录号(RECNO)的数据结构,不需要二维索引。目录数据库(dir.db)映射目录、文件名和inode号。inode数据库(in本文档来自技高网
...

【技术保护点】
一种在文件系统中管理数据的方法,包括:当从应用程序接收到数据写请求时,通过使用管理文件系统的元数据的数据库管理系统来搜索空闲盘空间;不涉及数据库管理系统通过参照搜索结果,将数据写入空闲盘空间;和通过使用数据库管理系统 来更新随写入的数据改变的一部分元数据。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:黄珠荣张闵盛裴在庆金河英亚历山大基日纳佐夫
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:KR[韩国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1