一种通过位图方式管理元数据的方法及装置转让专利

申请号 : CN201110092569.1

文献号 : CN102169497B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘正伟文中领

申请人 : 浪潮(北京)电子信息产业有限公司

摘要 :

本发明披露了一种通过位图方式管理元数据的方法及装置,其中方法包括:将保存元数据的文件通过文件目录级位图记录文件目录信息,通过文件及其属性级位图记录文件信息及文件属性信息;当访问一文件目录下一个文件时,通过文件目录级位图获取指向相应的文件记录的地址的第一指针,并通过该第一指针在文件及其属性级位图中获取相应的文件信息和文件属性信息。本发明通过多级位图分层记录文件目录、文件及其文件属性以及文件更新信息各类元数据,从而实现对文件数据的高效率存储、管理和检索。

权利要求 :

1.一种通过位图方式管理元数据的方法,包括:

将保存元数据的文件通过文件目录级位图以链表结构记录文件目录信息,包括标识文件目录的第一全局统一标识符和第一指针;通过文件及其属性级位图以链表结构记录文件信息及文件属性信息,所述文件信息包括标识所述文件的第二全局统一标识符和指向所述文件属性级位图中相应的文件属性信息地址的第二指针;所述文件属性信息包括文件的名称、文件大小、文件创建和/或修改时间中的一种或多种信息;

当访问一文件目录下一个文件时,通过所述文件目录级位图获取指向相应的文件记录的地址的第一指针,并通过该第一指针在所述文件及其属性级位图中获取相应的文件信息,根据该文件信息中的第二全局统一标识符获取第二指针,根据该第二指针找到相应的文件属性信息。

2.按照权利要求1所述的方法,其特征在于,还包括:

根据获取的所述文件属性信息获知相应的文件已更改,则返回更改的文件数据,若获知相应的文件未更改,则返回该未更改的原文件的数据。

3.按照权利要求2所述的方法,其特征在于,通过该文件属性级位图以树形结构记录文件更改信息,所述文件更改信息记录所述更改的文件数据。

4.按照权利要求3所述的方法,其特征在于,还包括:

根据获取的所述文件属性信息获知相应的文件已更改,则通过所述树形结构记录的所述文件更改信息获取更改的文件数据,并合并到原文件中,返回合并后的文件数据;若获知相应的文件未更改则返回未更改的原文件数据。

5.一种通过位图方式管理元数据的装置,包括依次连接的文件目录级模块和文件及其属性级模块,其中:文件目录级模块,用于将保存元数据的文件通过文件目录级位图以链表结构记录文件目录信息,包括标识文件目录的第一全局统一标识符和第一指针;在用户访问一目录下文件时,从文件目录级位图记录的文件目录信息中获取指向相应的文件记录的地址的第一指针,并通过该第一指针获取文件记录地址;

文件及其属性级模块,用于通过文件及其属性级位图以链表结构记录文件信息及文件属性信息,所述文件信息包括标识所述文件的第二全局统一标识符和指向所述文件属性级位图中相应的文件属性信息地址的第二指针;所述文件属性信息包括文件的名称、文件大小、文件创建和/或修改时间中的一种或多种信息;根据所述文件记录地址从文件及其属性级位图获取相应的文件信息,根据所述文件信息中的第二全局统一标识符获取第二指针,根据该第二指针获取相应的文件属性信息。

6.按照权利要求5所述的装置,其特征在于,

所述文件及其属性级模块还根据获取的所述文件属性信息获知相应的文件已更改,则返回更改的文件数据;若获知相应的文件未更改,则返回该未更改的原文件的数据。

7.按照权利要求6所述的装置,其特征在于,

通过所述文件属性级位图以树形结构记录文件更改信息,所述文件更改信息记录所述更改的文件数据。

8.按照权利要求7所述的装置,其特征在于,所述文件及其属性级模块包括依次连接的文件级单元和文件属性级单元,其中:文件级单元,用于通过第一指针在所述文件级位图中找到相应的文件记录,根据该文件记录中记录的所述第二全局统一标识符获取所述第二指针;

文件属性级单元,用于根据所述文件级单元获取的第二指针从所述文件属性级位图中获取相应的文件属性信息。

9.按照权利要求8所述的装置,其特征在于,

文件属性级单元还通过获取的文件属性信息获知相应的文件已更改,则获取更改的文件数据,合并到原文件中,并返回合并后的文件数据;若获知相应的文件未更改则返回未更改的原文件数据。

说明书 :

一种通过位图方式管理元数据的方法及装置

技术领域

[0001] 本发明涉及计算机存储系统元数据的管理方法,尤其涉及通过位图方式管理元数据的方法及装置。

背景技术

[0002] 元数据是描述数据的数据。在文件系统、卷管理系统以及快照系统中经常会用到元数据,利用元数据信息来描述数据的特征。
[0003] 管理元数据信息的格式是多样的,不同的系统中元数据具有不同的格式。譬如在快照系统中,元数据的信息量是比较大的,并且会随着管理数据块粒度的减小而增大。但是快照数据的元数据信息语义简单,只有一种语义,所以诸如快照系统这样的元数据可以采用位图(bitmap)的方式进行存储及管理,这种位图方式能够节省存储空间。通过位图中的一位就能描述一个数据块粒度的信息,即位图中每一位的变化表示指示到该数据块的指针。位图访问速度较快,其访问同数组访问方式较为一致,无须任何遍历操作,并可以直接通过计算的方法进行定位。
[0004] 当被管理的数据较少时,可以采用一级位图实现对相应空间的数据有效管理;但是,当被管理的数据较多占用空间很大时,采用一级位图实现对相应很大空间的数据管理就会存在如下两个问题:
[0005] 1)无效数据比例的增大会造成存储空间的浪费。
[0006] 当数据空间很大时,有些较多的数据可能对访问用户来说暂时无效,因此这类暂时无效的数据空间的比例就会大大增加;显然在内存中为这些无效数据分配位图信息,会大大浪费宝贵的内存资源。
[0007] 2)位图的访问效率降低。
[0008] 每次在访问位图信息时,都需要通过获取位图中一位的真实值得到相应数据块的指针;当被管理的数据空间很大时,位图信息往往会占较大的内存空间,所以需要换入换出技术的支持。因此在只采用一级位图进行元数据管理的情况下,会做很多无效的换入换出操作,使得访问效率大大降低。

发明内容

[0009] 本发明所要解决的技术问题是提供一种通过位图方式管理元数据的方法及装置,能够节省大量的内存空间。
[0010] 为了解决上述技术问题,本发明提供了一种通过位图方式管理元数据的方法,包括:
[0011] 将保存元数据的文件通过文件目录级位图以链表结构记录文件目录信息,包括标识文件目录的第一全局统一标识符和第一指针;通过文件及其属性级位图以链表结构记录文件信息及文件属性信息,该文件信息包括标识文件的第二全局统一标识符和指向文件属性级位图中相应的文件属性信息地址的第二指针;该文件属性信息包括文件的名称、文件大小、文件创建和/或修改时间中的一种或多种信息;
[0012] 当访问一文件目录下一个文件时,通过所述文件目录级位图获取指向相应的文件记录的地址的第一指针,并通过该第一指针在所述文件及其属性级位图中获取相应的文件信息,根据该文件信息中的第二全局统一标识符获取第二指针,根据该第二指针找到相应的文件属性信息。
[0013] 进一步地,该方法还包括:
[0014] 根据获取的文件属性信息获知相应的文件已更改,则返回更改的文件的数据,若获知相应的文件未更改,则返回该未更改的原文件的数据。
[0015] 进一步地,通过该文件属性级位图以树形结构记录文件更改信息,该文件更改信息记录更改的文件数据。
[0016] 进一步地,该方法还包括:
[0017] 根据获取的文件属性信息获知相应的文件已更改,则通过树形结构记录的文件更改信息获取更改的文件数据,并合并到原文件中,返回合并后的文件数据;若获知相应的文件未更改则返回未更改的原文件数据。
[0018] 为了解决上述技术问题,本发明提供了一种通过位图方式管理元数据的装置,包括依次连接的文件目录级模块和文件及其属性级模块,其中:
[0019] 文件目录级模块,用于将保存元数据的文件通过文件目录级位图以链表结构记录文件目录信息,包括标识文件目录的第一全局统一标识符和第一指针;在用户访问一目录下文件时,从文件目录级位图记录的文件目录信息中获取指向相应的文件记录的地址的第一指针,并通过该第一指针获取文件记录地址;
[0020] 文件及其属性级模块,用于通过文件及其属性级位图以链表结构记录文件信息及文件属性信息,该文件信息包括标识文件的第二全局统一标识符和指向文件属性级位图中相应的文件属性信息地址的第二指针;该文件属性信息包括文件的名称、文件大小、文件创建和/或修改时间中的一种或多种信息;根据文件记录地址从文件及其属性级位图获取相应的文件信息,根据文件信息中的第二全局统一标识符获取第二指针,根据该第二指针获取相应的文件属性信息。
[0021] 进一步地,
[0022] 文件及其属性级模块还根据获取的文件属性信息获知相应的文件已更改,则返回更改的文件数据;若获知相应的文件未更改,则返回该未更改的原文件的数据。 [0023] 进一步地,
[0024] 通过文件属性级位图以树形结构记录文件更改信息,该文件更改信息记录更改的文件数据。
[0025] 进一步地,文件及其属性级模块包括依次连接的文件级单元和文件属性级单元,其中:
[0026] 文件级单元,用于通过第一指针在文件级位图中找到相应的文件记录,根据该文件记录中记录的第二全局统一标识符获取第二指针;
[0027] 文件属性级单元,用于根据文件级单元获取的第二指针从文件属性级位图中获取相应的文件属性信息。
[0028] 进一步地,
[0029] 文件属性级单元还通过获取的文件属性信息获知相应的文件已更改,则获取更改的文件数据,合并到原文件中,并返回合并后的文件数据;若获知相应的文件未更改则返回未更改的原文件数据。
[0030] 本发明通过多级位图分层记录文件目录、文件及其文件属性以及文件更新信息各类元数据,从而实现对文件数据的高效率存储、管理和检索。
[0031] 附图说明
[0032] 图1是本发明用于管理元数据的二级位图实施例的架构;
[0033] 图2是本发明针对图1所示的二级位图的管理元数据的方法实施例流程; [0034] 图3是本发明用于管理元数据的三级位图实施例的架构;
[0035] 图4是本发明针对图3所示的三级位图的管理元数据的方法实施例流程; [0036] 图5是本发明的通过位图方式管理元数据的装置实施例的结构框图。 [0037] 具体实施方式
[0038] 以下结合附图和优选实施例对本发明的技术方案进行详细地描述。以下例举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。
[0039] 图1表示了本发明用于管理元数据的二级位图实施例的架构,包括文件目录级和文件及其属性级,其中:
[0040] 文件目录级,用于记录目录列表,譬如以数据链表的方式记录;目录列表中每个目录的信息包括目录ID和指向下一级位图中文件列表的地址;其中目录ID以全局统一标识符(GUID,Globally Unique IDentifier)的方式生成,以确保每一目录在整个系统中是唯一的;
[0041] 文件及其属性级,用于记录目录列表中每一目录下文件列表及所有文件的文件属性,譬如以数据链表的方式记录;文件列表中每个文件的信息包括文件ID及文件属性信息,该文件属性信息包含文件的名称、大小、创建及修 改时间中的一种或多种信息;其中文件列表以数据链表的方式记录,文件ID同样以GUID的方式生成,以确保每一文件在整个系统中是唯一的。
[0042] 本发明将元数据采用上述二级架构的方式记录,其中文件目录级的位图容量较小,所以可以常驻内存;文件及其属性级位图可以被保存至磁盘设备中。上一级位图中的一位(与其它位形成指针)描述下一级位图中的一个数据块(记录文件及其属性级的数据块)。
[0043] 当管理的元数据所占用的空间较大时,本发明的上述将元数据分为两级位图管理的做法,可避免采用一级位图管理方式用户一次访问会访问到许多暂时无效的数据,而是在用户需要时才从上一级访问到下一级,既缩小了访问数据的空间,同时还提高了访问数据的效率。
[0044] 图2表示出本发明针对图1所示的管理元数据的二级位图而提供的管理元数据的方法实施例流程,包括:
[0045] 110:将元数据文件通过文件目录级位图记录文件目录信息,并通过文件及其属性级位图记录文件及文件属性信息;
[0046] 文件目录级以数据链表的方式记录文件目录列表,目录列表中每个目录的信息包括目录ID和指向下一级位图中文件列表的地址。
[0047] 120:当用户访问一文件目录下一个文件时,通过文件目录级位图获取相应的文件及文件属性信息地址;
[0048] 通过文件目录级位图中记录的目录ID找到指向文件及其属性级位图中相应的指针,并通过该指针指向相应的文件信息地址。
[0049] 130:通过文件及其属性级位图获取相应的文件记录,根据文件记录中的文件ID找到相应的文件属性信息;
[0050] 通过指向文件信息地址的指针在文件及其属性级位图中找到相应的文件列表(即文件记录),根据文件列表中的文件ID找到相应的文件属性信息。
[0051] 140:根据文件属性信息返回相应的文件数据,结束流程。
[0052] 根据文件属性信息(譬如文件名称、大小、创建及修改时间等),若获知文件未经修改,则返回原文件数据;否则返回修改的文件数据。
[0053] 当管理的元数据所占用的空间非常大,导致采用二级位图也会出现会访问许多暂时无效的数据时,有必要将上述文件及其属性级再分为二级,如图3所示的三级位图实施例的架构,亦即除了包括文件目录级外,将文件及其属性级分成文件级和文件属性级,其中:
[0054] 文件目录级,作用同上述二级位图架构中所描述的,此不再赘述; [0055] 文件级,用于以数据链表的方式记录文件列表,文件列表中记录的每个文件的信息包括文件ID和指向下一级位图中文件属性的地址,其文件ID以GUID的方式生成,以确保每一文件在整个系统是唯一的;
[0056] 文件属性级,用于分别记录文件属性信息和文件更改信息,其中文件属性信息以链表结构记录包括文件名称、文件大小、创建时间及修改时间中一种或多种信息,文件更改信息以树形结构记录文件更改的数据,树形结构譬如采用B树或B+树。
[0057] 图4表示出本发明针对图3所示的管理元数据的三级位图而提供的管理元数据的方法实施例流程,包括:
[0058] 210:当用户访问一文件目录下一个文件时,通过文件目录级获取相应的文件记录地址;
[0059] 通过文件目录级中记录的目录ID找到指向文件级位图中相应的指针,并通过该指针指向相应的文件列表(即文件记录)地址。
[0060] 220:通过文件级中相应的文件记录获取相应的文件属性地址; [0061] 通过文件级的文件记录中文件ID找到指向文件属性级位图中相应的指针,并通过该指针指向相应的文件属性地址。
[0062] 230:通过文件属性级获取相应的文件属性信息;
[0063] 通过文件属性级获取到记录的文件属性信息和文件更改信息,其中文件属性信息包括文件名称、文件大小、创建时间及修改时间中一种或多种信息;文件更改信息记录文件更改的数据。
[0064] 240:判断相应的文件是否更改,是则执行步骤250,否则执行步骤260; [0065] 依据文件属性信息中文件创建时间和/或修改时间信息获知文件是否更改。 [0066] 250:获取更改的文件数据,合并到原文件中,返回合并后的文件数据,结束流程; [0067] 从相应的树形结构的文件更改信息中获取到文件更改的数据,合并到原文件中返回。
[0068] 260:返回原文件数据,结束流程。
[0069] 本发明的上述做法,可进一步避免采用一级或二级位图管理方式用户一次访问会访问到许多暂时无效的数据,而是在用户需要时才访问到最下一级,由此可进一步节省访问数据的空间,同时也进一步提高管理和访问数据的效率。
[0070] 本发明针对上述方法实施例,相应地还提供了通过位图方式管理元数据的装置实施例,其结构如图5所示,包括依次连接的文件目录级模块和文件及其属性级模块,其中: [0071] 文件目录级模块,用于在用户访问一目录下文件时,从文件目录级位图获取相应的文件记录地址;
[0072] 文件目录级模块通过文件目录级位图中记录的目录ID找到指向文件及其属性级位图中相应的指针,并通过该指针指向相应的文件列表地址。
[0073] 文件及其属性级模块,用于从文件及其属性级位图获取相应的文件记录,根据文件记录中的文件信息获取相应的文件属性信息,并根据文件属性信息返回相应的文件数据。
[0074] 文件及其属性级位图进一步划分为文件级位图和文件属性级位图,文件及其属性级模块进一步包括依次连接的文件级单元和文件属性级单元,其中:
[0075] 文件级单元,用于通过文件级位图中记录的文件ID找到指向文件属性级位图中相应的指针;
[0076] 文件属性级单元,用于根据文件级单元获取的指针获取相应的文件属性信息,通过获取的文件属性信息获知相应的文件是否更改,若更改则获取更改的文件数据,合并到原文件中,并返回合并后的文件数据;若未更改则返回获取的原文件数据。 [0077] 以上说明仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权力要求书的保护范围为准。