CN102646133B - 基于元数据存储的二维表组织方法 - Google Patents

基于元数据存储的二维表组织方法 Download PDF

Info

Publication number
CN102646133B
CN102646133B CN201210084777.1A CN201210084777A CN102646133B CN 102646133 B CN102646133 B CN 102646133B CN 201210084777 A CN201210084777 A CN 201210084777A CN 102646133 B CN102646133 B CN 102646133B
Authority
CN
China
Prior art keywords
catalogue
file
metadata
list
file table
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.)
Active
Application number
CN201210084777.1A
Other languages
English (en)
Other versions
CN102646133A (zh
Inventor
段翰聪
李林
聂晓文
杨帆
施伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201210084777.1A priority Critical patent/CN102646133B/zh
Publication of CN102646133A publication Critical patent/CN102646133A/zh
Application granted granted Critical
Publication of CN102646133B publication Critical patent/CN102646133B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于元数据存储的二维表,包括桶表:用于存储元数据服务器对应的所有Hash规则中映射到本台服务器的桶;用户表:用于存储映射到元数据服务器的用户以及该用户对应桶号;文件表:存储文件的元数据信息;用户布局表:存储某一用户的目录子树与文件表的映射关系;文件片表:存储每个文件分片后的片信息。本发明还包括基于元数据存储的二维表组织方法及文件表中子树的拆分和收缩方法。本发明解决了现有技术中存在的元数据存储时系统开销较大,且会对系统性能造成不利影响的问题,具有很高的实用价值。

Description

基于元数据存储的二维表组织方法
技术领域
本发明涉及一种二维表,具体地说,是涉及一种基于元数据存储的二维表组织方法。
背景技术
现有的大型分布式存储系统中,系统需要对大量的元数据进行存储,而元数据的存储方法会直接影响系统的性能,因此,元数据的存储方法对系统来说非常重要。
现有技术中,大多数存储系统采用Hash算法或目录子树分区算法来实现元数据在元数据集群内的存储,但是这两种算法在对元数据进行修改、删除等操作时系统开销较大,会对系统性能造成不利影响;也可以采用路径名Hash算法来存放元数据,然而这种算法在修改某一目录后,该目录子目录的修改可能造成元数据不一致。
发明内容
本发明的目的在于提供一种基于元数据存储的二维表组织方法,解决现有技术中存在的元数据存储时开销较大,且对系统性能造成不利影响的问题。
为了实现上述目的,本发明采用的技术方案如下:
基于元数据存储的二维表,包括桶表:用于存储元数据服务器对应的所有Hash规则中映射到元数据服务器的桶;用户表:用于存储映射到元数据服务器的用户以及该用户对应桶号;文件表:存储文件的元数据信息;用户布局表:存储某一用户的目录子树与文件表的映射关系;文件片表:存储每个文件分片后的片信息。
进一步地,所述桶表的字段包括桶号和桶的状态;所述用户表的字段包括用户ID和该用户对应的桶号;所述文件表的字段包括元数据服务器内部全局唯一ID、父目录ID、文件类型、文件名和文件的容量大小、文件唯一的key、文件的checksum;所述用户布局表的字段包括主键、文件路径前缀,和该文件路径前缀对应的文件表名、指定的子树的根结点ID;所述文件片表的字段包括主键、用户ID、文件片映射于文件表的ID以及文件片的偏移量。
以上述二维表为基础,本发明提供的基于元数据存储的二维表组织方法,包括以下步骤:
(1)系统初始化,将Hash规则存储在元数据服务器的桶表中;
(2)利用映射到元数据服务器中的所有用户的全局唯一ID和桶号建立用户表,之后建立用户布局表;
(3)建立所述用户布局表中目录映射的文件表,将文件表的表名存入用户布局表并对应于该文件表存储的根目录。
进一步地,所述基于元数据存储的二维表组织方法,还包括文件表中子树的拆分方法,包括以下步骤:
(a)设定文件表中目录的Size属性的上限值,并由定时器自动遍历文件表中每个目录的Size属性;
(b)当目录的Size属性超过设定的上限值时,则建立一个新文件表,并将超出所设上限值的根目录存入到用户布局表,把该根目录下剩余的所有目录和文件信息存入新建立的文件表中;
(c)将新文件表的表名和超出所设上限值的目录的父目录ID存入用户布局表,并删除原目录下超出所设上限值的目录及元数据。
再进一步地,所述基于元数据存储的二维表组织方法,还包括文件表中子树的收缩方法,包括以下步骤:
(1)设定文件表中目录的Size属性的下限值,并由定时器自动遍历文件表中每个目录的Size属性;
(2)当目录的Size属性低于设定的下限值时,先获取该目录在文件表中的父目录ID,然后将该目录ID和父目录ID存入原有的另一个文件表,其次将该目录对应的文件表中的所有子目录和元数据转存入原有的另一个文件表中;
(3)删除该目录对应的文件表和用户布局表中该目录的所有信息。
与现有技术相比,本发明具有以下有益效果:
1.本发明通过创建二维表,实现对元数据的存储,这种存储方法简单易行且成本低,也不会对系统性能造成不利影响;
2.本发明中,二维表的组织方法简单,还能根据实际情况对二维表中文件的子树进行拆分和收缩,这种方式提高了元数据的存储效率,也增加了元数据存储的灵活性和稳定度;
3.本发明通过Hash映射规则对元数据进行存储,能够把同一目录下具体的文件信息均匀地分布到不同的文件片表中,避免了文件分布不均匀的情况发生。
附图说明
图1为元数据服务器、桶表、文件片表的对应关系图。
图2为用户表、用户布局表和文件表的对应关系图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。
 实施例
如图1、2所示,基于元数据存储的二维表,包括桶表:用于存储元数据服务器对应的所有Hash规则中映射到本台元数据服务器的桶;用户表:用于存储映射到元数据服务器的用户以及该用户对应桶号;文件表:存储文件的元数据信息;用户布局表:存储某一用户的目录子树与文件表的映射关系;文件片表:存储每个文件分片后的片信息。
 进一步地,所述桶表的字段包括桶号和桶的状态,其中,桶号用BID表示,桶的状态用State表示;所述用户表的字段包括用户ID和该用户对应的桶号,其中,用户ID使用UID表示;所述文件表的字段包括元数据服务器内部全局唯一ID、父目录ID、文件类型、文件名和文件的容量大小、文件唯一的key、文件的checksum,其中,父目录ID用ParentID表示,文件类型用Type表示,文件名用Name表示,文件的容量大小用Size表示;所述用户布局表的字段包括主键、文件路径前缀,和该文件路径前缀对应的文件表名、指定的子树的根结点ID,其中,主键用ID表示,文件路径前缀用Prefix表示,前缀对应的文件表名用Tablename表示,前缀指定的子树的根结点ID用RootID表示;所述文件片表的字段包括主键、用户ID、文件片映射于文件表的ID以及文件片的偏移量,其中,用户ID用USERID表示,文件片映射于文件表的ID用MUFILEID表示,文件片的偏移量用FILEPIECEOFFSET表示。
基于元数据存储的二维表组织方法,包括以下步骤:
(1)系统初始化,将Hash规则存储在元数据服务器的桶表中;
(2)利用映射到元数据服务器中的所有用户的全局唯一ID和桶号建立用户表,之后建立用户布局表;
(3)建立所述用户布局表中目录映射的文件表,将文件表的表名存入用户布局表并对应于该文件表存储的根目录。
具体地说,系统初始化时,Hash规则表存储在元数据服务器上,利用元数据服务器上对应于Hash规则表的桶号和桶的状态建立桶表,作为优选,在Hash规则表中每个桶对应两个IP,假设系统中存在桶1、桶2、桶3,则桶1、桶2、桶3与IP的对应关系可下表所示:
Figure 2012100847771100002DEST_PATH_IMAGE001
 
如图1所示,根据桶表中存储的桶号,建立多个与其相映射的文件片表,在此,我们选择每个桶号映射相同数目的文件片表;如图2所示,假设利用映射到元数据服务器中的所有用户的全局唯一ID和桶号建立用户表5600、6600、7600,在创建用户时将用户的全局唯一ID存入用户表5600、6600、7600后建立与用户表相对应的5600的用户布局表、6600的用户布局表、7600的用户布局表,当用户布局表建立完成后则建立用户布局表中目录映射的文件表,其中文件表的表名会存入用户布局表并对应于该文件表存储的根目录,如此便完成了二维表的组织。
上述基于元数据存储的二维表组织方法中,本发明还提供了一种文件表中子树的拆分方法,包括以下步骤:(a)设定文件表中目录的Size属性的上限值,并由定时器自动遍历文件表中每个目录的Size属性;(b)当目录的Size属性超过设定的上限值时,则建立一个新文件表,并将超出所设上限值的根目录存入到用户布局表,其余目录和文件信息存入建立的新文件表中;(c)将新文件表的表名和超出所设上限值的目录的父目录ID存入用户布局表,并删除原目录下超出所设上限值的目录及元数据。
具体地说,假设某文件表中现有一个目录,目录的Size属性为子目录数量,而元数据服务器设定该文件表中目录的子目录数量上限值为10。在元数据存储过程中,该目录的子目录数量将会随存储数据的变化而变化,为了避免因该目录过大而导致在执行目录改名或修改访问授权等操作时系统性能开销太大,元数据服务器的定时器会在空闲时间段自动检查该目录的子目录数量,并在该目录的子目录数量超过10时,对该目录进行拆分。比如,定时器在某一空闲时间段检查到该目录的子目录数量为15,则在二维表中建立一个新文件表,将该目录下超出的5个子目录及子目录下的文件元数据存入该新文件表中,同时将该目录的父目录ID、根目录名及新文件表的表名存入用户布局表中;最后删除该目录中已被存入新文件表的这5个子目录及对应的元数据,使该目录的子目录数量控制在10个以内。
通过上述对文件表中目录的拆分,使文件表中每个目录均控制在不影响系统操作的范围之内,从而解决现有技术中对文件表中目录进行操作时性能开销过大的问题,以及对子目录的修改可能引起元数据不一致的问题,确保了系统的整体运行速度。
上述基于元数据存储的二维表组织方法中,本发明还提供了一种文件表中子树的收缩方法,包括以下步骤:(1)设定文件表中目录的Size属性的下限值,并由定时器自动遍历文件表中每个目录的Size属性;(2)当目录的Size属性低于设定的下限值时,先获取该目录在文件表中的父目录ID,然后将该目录ID和父目录ID存入原有的另一个文件表,其次将该目录对应的文件表中的所有子目录和文件元数据转存入原有的另一个文件表中;(3)删除该目录对应的文件表和用户布局表中该目录的所有信息。
具体地说,假设某文件表中现有一个目录,目录的Size属性为子目录数量,而元数据服务器设定该文件表中目录的子目录数量下限值为8。在元数据存储过程中,该目录的子目录数量将会随存储数据的变化而变化,为了避免因该目录过小而导致存储容量的浪费,元数据服务器的定时器会在空闲时间段自动检查该目录的子目录数量,并在该目录的子目录数量低于8时,对该目录进行收缩。比如,定时器在某一空闲时间段检查到该目录的子目录数量为5,系统则获取这5个目录在文件表中的父目录ID,然后将该目录ID和父目录ID存入原有的另一个可以容纳它们的文件表,并将该目录对应的文件表中的所有子目录和文件元数据转存入容纳该目录ID和父目录ID的文件表;最后删除该目录对应的文件表和用户布局表中该目录的所有信息。
同样地,通过上述收缩方法,可以对元数据服务器中信息含量很少的文件表进行调整,从而在保证正常使用的前提下减少了元数据服务器中文件表的数量,进而减少了对元数据服务器进行操作时占用的系统开销,提高了系统的运行效率。
按照上述实施例,便可很好地实现本发明。

Claims (2)

1.基于元数据存储的二维表组织方法,其特征在于,包括以下步骤:
(1)系统初始化,将Hash规则存储在元数据服务器的桶表中;
(2)利用映射到元数据服务器中的所有用户的全局唯一ID和桶号建立用户表,之后建立用户布局表;
(3)建立所述用户布局表中目录映射的文件表,将文件表的表名存入用户布局表并对应于该文件表存储的根目录;文件表,存储文件的元数据信息;
还包括文件表中子树的拆分方法,包括以下步骤:
(a)设定文件表中目录的Size属性的上限值,并由定时器自动遍历文件表中每个目录的Size属性;
(b)当目录的Size属性超过设定的上限值时,则建立一个新文件表,并将超出所设上限值的根目录存入到用户布局表,把该根目录下剩余的所有目录和文件信息存入新文件表中;
(c)将新文件表的表名和超出所设上限值的目录的父目录ID存入用户布局表,并删除原目录下超出所设上限值的目录及元数据。
2.根据权利要求1所述的基于元数据存储的二维表组织方法,其特征在于,还包括文件表中子树的收缩方法,包括以下步骤:
(1)设定文件表中目录的Size属性的下限值,并由定时器自动遍历文件表中每个目录的Size属性;
(2)当目录的Size属性低于设定的下限值时,先获取该目录在文件表中的父目录ID,然后将该目录ID和父目录ID存入原有的另一个文件表,其次将该目录对应的文件表中的所有子目录和元数据转存入原有的另一个文件表中;
(3)删除该目录对应的文件表和用户布局表中该目录的所有信息。
CN201210084777.1A 2012-03-28 2012-03-28 基于元数据存储的二维表组织方法 Active CN102646133B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210084777.1A CN102646133B (zh) 2012-03-28 2012-03-28 基于元数据存储的二维表组织方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210084777.1A CN102646133B (zh) 2012-03-28 2012-03-28 基于元数据存储的二维表组织方法

Publications (2)

Publication Number Publication Date
CN102646133A CN102646133A (zh) 2012-08-22
CN102646133B true CN102646133B (zh) 2014-04-16

Family

ID=46658952

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210084777.1A Active CN102646133B (zh) 2012-03-28 2012-03-28 基于元数据存储的二维表组织方法

Country Status (1)

Country Link
CN (1) CN102646133B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198153A (zh) * 2013-04-25 2013-07-10 北京邮电大学 一种应用于分布式文件系统的元数据分簇管理方法和模块
CN103279489A (zh) * 2013-04-25 2013-09-04 安科智慧城市技术(中国)有限公司 一种元数据的存储方法、装置
CN104850591B (zh) * 2015-04-24 2019-03-19 百度在线网络技术(北京)有限公司 一种数据的转换存储方法及装置
CN106933892B (zh) * 2015-12-31 2019-05-31 北京国双科技有限公司 描述信息的存储方法及装置
CN110737663B (zh) * 2019-10-15 2024-06-11 腾讯科技(深圳)有限公司 一种数据存储方法、装置、设备及存储介质
CN111324799B (zh) * 2020-02-05 2021-05-04 星辰天合(北京)数据科技有限公司 搜索请求的处理方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719141A (zh) * 2009-12-24 2010-06-02 成都市华为赛门铁克科技有限公司 基于目录对象的文件处理方法和系统
CN102033938A (zh) * 2010-12-10 2011-04-27 天津神舟通用数据技术有限公司 基于二级映射的集群动态扩展方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8229985B2 (en) * 2005-02-07 2012-07-24 Cisco Technology, Inc. Arrangement for a distributed file system having data objects mapped independent of any data object attribute

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719141A (zh) * 2009-12-24 2010-06-02 成都市华为赛门铁克科技有限公司 基于目录对象的文件处理方法和系统
CN102033938A (zh) * 2010-12-10 2011-04-27 天津神舟通用数据技术有限公司 基于二级映射的集群动态扩展方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A DESIGN OF EFFICIENT METADATA CLUSTER IN LARGE DISTRIBUTED STORAGE SYSTEMS;Lin xia et.al;《IEEE》;20091231;294-296 *
Lin xia et.al.A DESIGN OF EFFICIENT METADATA CLUSTER IN LARGE DISTRIBUTED STORAGE SYSTEMS.《IEEE》.2009,294-296.

Also Published As

Publication number Publication date
CN102646133A (zh) 2012-08-22

Similar Documents

Publication Publication Date Title
CN102646133B (zh) 基于元数据存储的二维表组织方法
US9965483B2 (en) File system
CN101692239B (zh) 一种分布式文件系统元数据分配方法
US9015198B2 (en) Method and apparatus for large scale data storage
CN103282899B (zh) 文件系统中数据的存储方法、访问方法及装置
CN102332029B (zh) 一种基于Hadoop 的海量可归类小文件关联存储方法
CN102110146B (zh) 基于键值key-value存储的分布式文件系统元数据管理方法
CN103229173B (zh) 元数据管理方法及系统
CN103324552B (zh) 两阶段单实例去重数据备份方法
EP3103025B1 (en) Content based organization of file systems
US9146930B2 (en) Method and apparatus for file storage
CN104809182A (zh) 基于动态可分裂Bloom Filter的网络爬虫URL去重方法
JP2012531675A5 (zh)
CN102169507A (zh) 一种分布式实时搜索引擎
CN103577123A (zh) 一种基于hdfs的小文件优化存储方法
US10108690B1 (en) Rolling subpartition management
CN104933133A (zh) 分布式文件系统中的元数据快照存储和访问方法
CN102332027A (zh) 一种基于Hadoop的海量非独立小文件关联存储方法
CN101866305A (zh) 支持数据查询和快速恢复的连续数据保护方法及系统
CN105468642A (zh) 数据的存储方法及装置
CN1845093A (zh) 一种属性可扩展的对象文件系统
CN102253985B (zh) 一种文件系统数据的管理方法及系统
CN102024005A (zh) 信息项目集合目录的发布系统和方法
CN103473337A (zh) 一种分布式存储系统中处理面向海量目录和文件的方法
CN105045850A (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
C14 Grant of patent or utility model
GR01 Patent grant
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Duan Hancong

Inventor after: Min Geyong

Inventor after: Li Lin

Inventor after: Nie Xiaowen

Inventor after: Yang Fan

Inventor after: Shi Wei

Inventor before: Duan Hancong

Inventor before: Li Lin

Inventor before: Nie Xiaowen

Inventor before: Yang Fan

Inventor before: Shi Wei

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: DUAN HANCONG LI LIN NIE XIAOWEN YANG FAN SHI WEI TO: DUAN HANCONG MIN GEYONG LI LIN NIE XIAOWEN YANG FAN SHI WEI