文件存储方法、装置及文件读取方法、装置制造方法

文档序号:6498864阅读:180来源:国知局
文件存储方法、装置及文件读取方法、装置制造方法
【专利摘要】本发明涉及一种文件存储方法、装置及文件读取方法、装置。包括步骤:将文件划分为至少一个文件段,根据每个文件段生成唯一的段关键字以及与段关键字相应的段查找值,根据文件的主关键字与相应的段关键字生成主存储节点;将文件段划分为至少一个文件块,根据每个文件块生成在相应的文件段内唯一的块查找值,块查找值设置在相应的段查找值下,根据段查找值以及块查找值生成段存储节点;以及将块查找值与相应的块级索引信息关联。本发明还涉及一种文件存储装置、文件读取方法及装置。本发明对文件索引进行分组存储,可以提高存储文件的最大存储容量,同时加快了文件读取速度以及减少了文件读取资源的开销。
【专利说明】文件存储方法、装置及文件读取方法、装置
【技术领域】
[0001]本发明涉及文件存储领域,特别是涉及一种可节省资源及实现快速读取的超大容量文件存储方法、装置及文件读取方法、装置。
【背景技术】
[0002]请参照图1,图1为现有的分布式文件系统的文件存储装置的存储结构示意图。在该文件存储装置中,对于超大文件的存储一般采用分块存储的方式;即一个超大文件的所有数据块按照一定的规则分布存储在多个存储节点中,同时文件存储装置中有一个统一的数据管理节点,来记录超大文件中每个块的索引信息,即数据块对应的存储节点的信息。
[0003]在现有的分布式文件系统中,每个文件会生成一个唯一的关键字,即对应一个值,这个值保存了这个文件的块级索引信息,并打包为二级制的格式存储在文件存储装置中。这些块级索引信息使用链表的方式按顺序连接起来构成上述的关键字对应的值。在查找某个文件中的某个块的索引信息时,首先根据文件的关键字查找与该关键字相应的块级索引信息的链表,最后通过顺序查找的方式得到数据块的索引信息。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005](I)文件存储装置对所有关键字的总长度有限制,即限定了通过关键字保存的块级索引信息的数量,从而限制了整个存储文件的大小。
[0006](2)随着文件不断增大,块级索引信息会越来越多。由于每一次索引查找都需要解析整个索引链表,并进行顺序查找,导致解析值和查找定位的系统开销将越来越大,从而影响分布式文件系统的性能。
[0007]故,有必要提供一种可节省资源及实现快速读取的文件存储方法、装置及文件读取方法、装置,以解决现有技术所存在的问题。

【发明内容】

[0008]本发明的目的在于提供一种对文件索引进行分组存储的文件存储方法、装置及文件读取方法、装置,可以提高存储文件的最大存储容量,同时加快了文件索引读取速度以及减少了文件读取资源的开销;以解决现有的文件存储方法及装置存储文件大小受限制,文件索引读取速度慢以及文件索引读取资源开销大的技术问题。
[0009]为解决上述问题,本发明提供的技术方案如下:
[0010]本发明实施例涉及一种文件存储方法,其包括步骤:
[0011]根据文件容量将文件划分为至少一个文件段,根据每个所述文件段生成唯一的段关键字以及与所述段关键字相应的段查找值,根据所述文件的主关键字与相应的段关键字生成主存储节点;
[0012]将所述文件段划分为至少一个文件块,根据每个所述文件块生成在相应的文件段内唯一的块查找值,所述块查找值设置在相应的段查找值下,根据所述段查找值以及所述块查找值生成段存储节点;以及[0013]将所述块查找值与相应的块级索引信息关联。
[0014]本发明实施例还涉及一种文件存储装置,其包括:
[0015]主存储节点生成模块,用于根据文件容量将文件划分为至少一个文件段,根据每个所述文件段生成唯一的段关键字以及与所述段关键字相应的段查找值,根据所述文件的主关键字与相应的段关键字生成主存储节点;
[0016]段存储节点生成模块,用于将所述文件段划分为至少一个文件块,根据每个所述文件块生成在相应的文件段内唯一的块查找值,所述块查找值设置在相应的段查找值下,根据所述段查找值以及所述块查找值生成段存储节点;以及
[0017]关联模块,用于将块查找值与相应的块级索引信息关联。
[0018]本发明实施例还涉及一种文件读取方法,其包括步骤:
[0019]根据文件块所属文件段的主关键字确定所述文件段的主存储节点;
[0020]根据所述文件段的段关键字确定所述文件段在所述主关键字下的段存储节点及相应的段查找值;以及
[0021]根据所述文件块的块查找值确定所述文件块在所述段查找值下的块级索引信息的位置。
[0022]本发明实施例还涉及一种文件读取装置,其包括:
[0023]主存储节点确定模块,用于根据文件块所属文件段的主关键字确定所述文件段的主存储节点;
[0024]段存储节点确定模块,用于根据所述文件段的段关键字确定所述文件段在所述主关键字下的段存储节点及相应的段查找值;以及
[0025]文件块位置确定模块,用于根据所述文件块的块查找值确定所述文件块在所述段查找值下的块级索引信息的位置。
[0026]相较于现有技术的文件存储方法及装置,本发明的文件存储方法、装置及文件读取方法、装置对文件索引进行分组存储,可以提高存储文件的最大存储容量,同时加快了文件索引读取速度以及减少了文件索引读取资源的开销。解决了现有的文件存储方法及装置存储文件大小受限制,文件索引读取速度慢以及文件索引读取资源开销大的技术问题。
【专利附图】

【附图说明】
[0027]图1为现有的分布式文件系统的文件存储装置的存储结构示意图;
[0028]图2为本发明的文件存储方法的优选实施例的流程图;
[0029]图3为本发明的文件存储装置的优选实施例的结构示意图;
[0030]图4为本发明的文件读取方法的优选实施例的流程图;
[0031]图5为本发明的文件读取装置的优选实施例的结构示意图;
[0032]图6为本发明的文件存储方法及装置的具体实施例的工作原理图;
[0033]图7为本发明的文件读取方法及装置的具体实施例的工作原理图。
【具体实施方式】
[0034]以下各实施例的说明是参考附加的图式,用以例示本发明可用以实施的特定实施例。[0035]请参照图2,图2为本发明的文件存储方法的优选实施例的流程图。本优选实施例的文件存储方法包括,
[0036]步骤201,将文件划分为至少一个文件段,根据每个文件段生成唯一的段关键字以及与段关键字相应的段查找值,根据文件的主关键字与相应的段关键字生成主存储节点;
[0037]步骤202,将文件段划分为至少一个文件块,根据每个文件块生成在相应的文件段内唯一的块查找值,块查找值设置在相应的段查找值下,根据段查找值以及块查找值生成段存储节点;
[0038]步骤203,将块查找值与相应的块级索引信息关联;
[0039]本优选实施例的文件存储方法结束于步骤103。
[0040]下面详细说明本优选实施例的文件存储方法的各步骤的具体流程。
[0041]在步骤201中,给每个文件设定与之相应的主关键字,然后根据该文件的容量将该文件划分为多个文件段,即文件越大,划分的段数可越多,段的大小可自定义设置;随后根据每个文件段生成在本文件中唯一的段关键字,以及与该段关键字相应的段查找值,其中段关键字按文件的内容的偏移量的顺序设置在相应的主关键字下,最后根据文件的主关键字与相应的段关键字生成主存储节点;其中段关键字与段查找值采用基于key-value(键-值)的分布式存储。
[0042]随后来到步骤202。
[0043]在步骤202中,将文件段划分为多个文件块,然后根据该文件段下的每个文件块生成相应的块查找值(在该文件段内唯一),该块查找值以数组的形式按文件的内容的偏移量的顺序设置在相应的段查找值下,最后根据段查找值以及相应的块查找值生成段存储节点。其中段查找值与块查找值采用基于key-value (键-值)的分布式存储。这样进行文件块的检索时,可通过主关键字找到相应的主存储节点,通过段关键字找到该文件块所在文件段,通过块查找值找到该文件块在该文件段中的位置。
[0044]随后来到步骤203。
[0045]在步骤203中,将块查找值与相应的块级索引信息关联,这样通过主关键字、段关键字以及块查找值可快速的查找到相应的块级索引信息,进行文件块的索引。
[0046]这样即完成了整个文件块的存储过程。
[0047]本优选实施例的文件存储方法对文件索引进行分组存储,可以提高存储文件的最大存储容量,同时加快了文件读取速度以及减少了文件读取资源的开销。此外块查找值以及段关键字的顺序设置方式,进一步缩短了文件块的查找时间,段关键字与段查找值、段查找值与块查找值采用基于key-value的NoSQL (非关系型的数据库)的分布式存储,具有更高的可靠性和扩展性。
[0048]本发明还涉及一种文件存储装置,请参照图3,图3为本发明的文件存储装置的优选实施例的结构示意图。本优选实施例的文件存储装置包括主存储节点生成模块31、段存储节点生成模块32以及关联模块33。主存储节点生成模块31用于根据文件容量将文件划分为至少一个文件段,根据每个文件段生成唯一的段关键字以及与段关键字相应的段查找值,根据文件的主关键字与相应的段关键字生成主存储节点;段存储节点生成模块32用于将文件段划分为至少一个文件块,根据每个文件块生成在相应的文件段内唯一的块查找值,块查找值设置在相应的段查找值下,根据段查找值以及所述块查找值生成段存储节点;关联模块33用于将块查找值与相应的块级索引信息关联。
[0049]本优选实施例的文件存储装置使用时,主存储节点生成模块31根据文件容量将文件划分为至少一个文件段,根据每个文件段生成唯一的段关键字以及与段关键字相应的段查找值,根据文件的主关键字与相应的段关键字生成主存储节点,其中段关键字按文件的内容的偏移量的顺序设置在主关键字下,段关键字与段查找值采用基于key-value的分布式存储;随后段存储节点生成模块32将文件段划分为至少一个文件块,根据每个文件块生成在相应的文件段内唯一的块查找值,块查找值设置在相应的段查找值下,根据段查找值以及块查找值生成段存储节点,其中块查找值以数组的形式按文件的内容的偏移量的顺序设置在相应的段查找值下,段查找值与块查找值采用基于key-value的分布式存储;最后关联模块33将块查找值与相应的块级索引信息关联,通过主关键字、段关键字以及块查找值可快速的查找到相应的块级索引信息,即完成了整个文件块的存储过程。
[0050]本优选实施例的文件存储装置的具体工作原理与上述的文件存储方法的优选实施例中的描述相同或相似,具体请参见上述文件存储方法的优选实施例中的相关描述。
[0051]本发明还涉及一种文件读取方法,请参照图4,图4为本发明的文件读取方法的优选实施例的流程图。本优选实施例的文件读取方法包括:
[0052]步骤401,根据文件块所属文件段的主关键字确定文件段的主存储节点;
[0053]步骤402,根据文件段的段关键字确定文件段在主关键字下的段存储节点及相应的段查找值;
[0054]步骤403,根据文件块的块查找值确定文件块在段查找值下的块级索引信息的位置;
[0055]本优选实施例的文件读取方法结束于步骤403。
[0056]下面详细说明本优选实施例的文件读取方法的各步骤的具体流程。
[0057]在步骤401中,文件根据该文件的容量被划分为多个文件段,然后将每个文件段划分为多个文件块,即根据文件块生成文件段,根据文件段生成文件。每个文件块都具有相应的主关键字、段关键字以及块查找值。在本步骤中,根据文件块所属的文件段的主关键字确定文件段的主存储节点。
[0058]随后来到步骤402。
[0059]在步骤402中,根据文件段的段关键字确定文件段在主关键字下的段存储节点及相应的段查找值,这里文件的主关键字与相应的段关键字组成主存储节点,根据文件的内容的偏移量确定主关键字下相应的段关键字,这样可迅速找到主存储节点中主关键字下相应的段关键字,从而确定相应的段存储节点及相应的段查找值,这里段关键字与相应的段查找值相对应。
[0060]随后来到步骤403。
[0061]在步骤403中,这里段查找值以及相应的块查找值组成段存储节点,段存储节点中的块查找值以数组的形式按文件的内容的偏移量的顺序设置在相应的段查找值下,即根据文件的内容的偏移量确定段查找值下相应的块查找值;同时将块查找值与相应的块级索引信息关联。根据文件块的块查找值确定文件块在段查找值下的块级索引信息的位置,最后读取相应的文件块。
[0062]这样即完成了整个文件块的读取过程。[0063]本优选实施例的文件读取方法中的文件索引为分组存储,加快了文件读取速度以及减少了文件读取资源的开销。此外块查找值以及段关键字的顺序设置方式,进一步缩短了文件块的查找时间。
[0064]本发明还涉及一种文件读取装置,请参照图5,图5为本发明的文件读取装置的优选实施例的结构示意图。本优选实施例的文件读取装置包括主存储节点确定模块51、段存储节点确定模块52以及文件块位置确定模块53。主存储节点确定模块51用于根据文件块所属文件段的主关键字确定文件段的主存储节点;段存储节点确定模块52用于根据文件段的段关键字确定文件段在主关键字下的段存储节点及相应的段查找值;文件块位置确定模块53用于根据文件块的块查找值确定文件块在段查找值下的块级索引信息的位置。
[0065]本优选实施例的文件读取装置使用时,首先主存储节点确定模块51根据文件块所属文件段的主关键字确定文件段的主存储节点;随后段存储节点确定模块52根据文件段的段关键字确定文件段在主关键字下的段存储节点及相应的段查找值;随后文件块位置确定模块53根据文件块的块查找值确定文件块在段查找值下的块级索引信息的位置。这样即完成了整个文件块的读取过程。
[0066]本优选实施例的文件读取装置的工作原理与上述的文件读取方法的优选实施例中的描述相同或相似,具体请参见上述文件读取方法的优选实施例中的相关描述。
[0067]本优选实施例的文件读取装置中的文件索引为分组存储,加快了文件读取速度以及减少了文件读取资源的开销。此外块查找值以及段关键字的顺序设置方式,进一步缩短了文件块的查找时间。
[0068]下面通过一具体实施例说明本发明的文件存储方法、装置及文件读取方法、装置的具体工作原理。请参见图6和图7,图6为本发明的文件存储方法及装置的具体实施例的工作原理图,图7为本发明的文件读取方法及装置的具体实施例的工作原理图。
[0069]如图6所示,主存储节点生成模块将整个大文件分为三个文件段,并给每个文件段生成一段关键字(段关键字1、段关键字2以及段关键字3),段关键字按文件的内容的偏移量的顺序设置在主关键字下,每个段关键字对应段存储节点中的一个段查找值(段查找值1、段查找值2以及段查找值3),该段关键字对应该文件段内所有的文件块;然后根据文件的主关键字与相应的段关键字生成主存储节点(采用基于key-value的分布式存储)。段存储节点生成模块将每个段分为若干个文件块(其中第三个文件段分为三个文件块),并给每个文件块生成一块查找值(如块查找值1、块查找值2以及块查找值3),查找值以数组的形式(当然这里也可使用其他的形式)按文件的内容的偏移量的顺序设置在相应的段查找值下面,该块查找值对应文件段内相应的文件块,然后根据文件的段查找值以及块查找值生成段存储节点(采用基于key-value的分布式存储)。最后关联模块将块查找值与数据库中相应的块级索引信息进行关联。
[0070]上述的分级存储的方式极大的提高了分布式文件系统中最大文件的容量。一个超大文件的索引信息能够保存在多个段查找值下,从而消除了对文件的段关键字的长度限制,使得分布式文件系统能够支持更大的文件容量。
[0071]在本发明的存储结构上进行文件块的检索时,如图7所示,首先通过文件的主关键字在数据库中查找到主存储节点;由于段关键字按文件的内容的偏移量的顺序设置在主关键字下,因此可以根据被请求的文件块的偏移量(即该文件块存储在该文件的位置,如存储在IOM文件的前IM的内容里)获取该文件块相应的段关键字;然后通过段关键字在数据库中查找到相应的段存储节点及段查找值;随后由于块查找值以数组的形式按文件的内容的偏移量的顺序设置在相应的段查找值下,可使用二分法快速定位到段查找值下的块查找值;最后通过该块查找值在数据库中查找到该文件块的块级索引信息。
[0072]在对本发明的存储的文件块进行检索时,在通过文件的主关键字和文件块的偏移量获取到段关键字之后,可以一次性读取该文件段内的所有文件块的块级索引信息,存储到上层索引缓存系统中;在进行下一次相邻文件块检索时,可直接从上层索引缓存系统中直接获取相应的块级索引信息,不需到段存储节点中再次进行检索。
[0073]因此在本发明的存储结构上进行文件块检索时,不需要对所有的文件块进行解析,只需按顺序进行查找即可,同时还可以进行整个文件段内的文件块的块级索引信息进行预先读取,加快了文件检索速度以及减少了文件检索资源的开销。
[0074]本发明的文件存储方法、装置及文件读取方法、装置对文件索引进行分组存储,可以提高存储文件的最大存储容量,同时加快了文件索引读取速度以及减少了文件索引读取资源的开销。解决了现有的文件存储方法及装置存储文件大小受限制,文件索引读取速度慢以及文件索引读取资源开销大的技术问题。
[0075]综上所述,虽然本发明已以优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。
【权利要求】
1.一种文件存储方法,其特征在于,包括步骤: 将文件划分为至少一个文件段,根据每个所述文件段生成唯一的段关键字以及与所述段关键字相应的段查找值,根据所述文件的主关键字与相应的段关键字生成主存储节点; 将所述文件段划分为至少一个文件块,根据每个所述文件块生成在相应的文件段内唯一的块查找值,所述块查找值设置在相应的段查找值下,根据所述段查找值以及所述块查找值生成段存储节点;以及 将所述块查找值与相应的块级索引信息关联。
2.根据权利要求1所述的文件存储方法,其特征在于,根据所述文件容量将所述文件划分为至少一个文件段。
3.根据权利要求1所述的文件存储方法,其特征在于,所述段关键字按所述文件的内容的偏移量的顺序设置在所述主关键字下。
4.根据权利要求1所述的文件存储方法,其特征在于,所述块查找值以数组的形式按文件的内容的偏移量的顺序设置在相应的段查找值下。
5.根据权利要求1所述的文件存储方法,其特征在于,所述段关键字与所述段查找值采用基于key-value的分布式存储。
6.根据权利要求1所述的文件存储方法,其特征在于,所述段查找值与所述块查找值采用基于key-value的分布式存储。
7.一种文件存储装置,其特征在于,包括: 主存储节点生成模块,用于将文件划分为至少一个文件段,根据每个所述文件段生成唯一的段关键字以及与所述段关键字相应的段查找值,根据所述文件的主关键字与相应的段关键字生成主存储节点; 段存储节点生成模块,用于将所述文件段划分为至少一个文件块,根据每个所述文件块生成在相应的文件段内唯一的块查找值,所述块查找值设置在相应的段查找值下,根据所述段查找值以及所述块查找值生成段存储节点;以及 关联模块,用于将块查找值与相应的块级索引信息关联。
8.根据权利要求7所述的文件存储装置,其特征在于,所述主存储节点生成模块根据所述文件容量将所述文件划分为至少一个文件段。
9.根据权利要求7所述的文件存储装置,其特征在于,所述段关键字按所述文件的内容的偏移量的顺序设置在所述主关键字下。
10.根据权利要求7所述的文件存储装置,其特征在于,所述块查找值以数组的形式按文件的内容的偏移量的顺序设置在相应的段查找值下。
11.根据权利要求7所述的文件存储装置,其特征在于,所述段关键字与所述段查找值采用基于key-value的分布式存储。
12.根据权利要求7所述的文件存储装置,其特征在于,所述段查找值与所述块查找值采用基于key-value的分布式存储。
13.一种文件读取方法,其特征在于,包括步骤: 根据文件块所属文件段的主关键字确定所述文件段的主存储节点; 根据所述文件段的段关键字确定所述文件段在所述主关键字下的段存储节点及相应的段查找值;以及根据所述文件块的块查找值确定所述文件块在所述段查找值下的块级索引信息的位置。
14.根据权利要求13所述的文件读取方法,其特征在于,根据所述文件块生成文件段,根据所述文件段生成所述文件。
15.根据权利要求13所述的文件读取方法,其特征在于,根据所述文件的内容的偏移量确定所述主关键字下相应的所述段关键字。
16.根据权利要求13所述的文件读取方法,其特征在于,根据所述文件的内容的偏移量确定所述段查找值下相应的块查找值。
17.一种文件读取装置,其特征在于,包括: 主存储节点确定模块,用于根据文件块所属文件段的主关键字确定所述文件段的主存储节点; 段存储节点确定模块,用于根据所述文件段的段关键字确定所述文件段在所述主关键字下的段存储节点及相应的段查找值;以及 文件块位置确定模块,用于根据所述文件块的块查找值确定所述文件块在所述段查找值下的块级索引信息的位置。
18.根据权利要求17所述的文件读取装置,其特征在于,根据所述文件块生成文件段,根据所述文件段生成所述文件。
19.根据权利要求17所述的文件读取装置,其特征在于,根据所述文件的内容的偏移量确定所述主关键字下相应的所述段关键字。
20.根据权利要求17所述的文件读取装置,其特征在于,根据所述文件的内容的偏移量确定所述段查找值下相应的块查找值。
【文档编号】G06F17/30GK103914483SQ201310005203
【公开日】2014年7月9日 申请日期:2013年1月7日 优先权日:2013年1月7日
【发明者】胡盼盼, 刘永升, 李希源 申请人:深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1