CN102024020A - 一种分布式文件系统中高效的元数据访存方法 - Google Patents
一种分布式文件系统中高效的元数据访存方法 Download PDFInfo
- Publication number
- CN102024020A CN102024020A CN2010105365371A CN201010536537A CN102024020A CN 102024020 A CN102024020 A CN 102024020A CN 2010105365371 A CN2010105365371 A CN 2010105365371A CN 201010536537 A CN201010536537 A CN 201010536537A CN 102024020 A CN102024020 A CN 102024020A
- Authority
- CN
- China
- Prior art keywords
- file
- file system
- node
- metadata
- tree
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种分布式文件系统中高效的元数据访存方法。该方法基于多路搜索树和trie树相结合的文件树访问方式;引入文件内存映射的方式对元数据文件进行读写;同时基于元数据的树结构组织,对索引节点元数据从内存同步到磁盘进行优化,以减轻磁盘的负载。
Description
技术领域
本发明涉及分布式文件系统管理领域,具体涉及一种分布式文件系统中高效的元数据访存方法。
背景技术
在分布式文件系统中,元数据是描述文件系统的重要单元。大部分分布式文件系统的典型应用中,如互联网,科学计算等,元数据访问请求占到所有请求一半以上的比例。因此,分布式文件系统中元数据的存取效率对整个文件系统的性能有着极其重要的影响。
文件系统的元数据主要包括索引节点和目录项。索引节点是文件系统中对象(文件和目录)的标识,一个索引节点会有一个唯一的全局编号,即索引节点号;目录项则是对目录中一个子项的描述,通常包含该子项的名称和索引节点号。传统的Linux文件系统对文件系统元数据的管理一般放在内核态,通过直接与块设备层的交互对元数据进行访存,这种方式在存取效率上较高,但内核态的开发和维护成本较高。因此,一些优秀的分布式文件系统,如GoogleFS、HadoopFS等,均将元数据管理放在用户态,即基于本地文件系统之上。通过选用高效的缓存技术和检索算法,基于本地文件系统之上的元数据管理的性能可以很好地满足分布式存储的需求。
基于本地文件系统之上的元数据管理方式,是将索引节点和目录项存于本地文件系统的文件中。当有元数据访存时,直接操作这些本地文件即可。对本地文件的访问,通常包含两个阶段的开销,第一个阶段是通过系统调用向内核态的文件系统模块发出请求,第二个阶段是内核态的文件系统模块通过块设备驱动以及底层磁盘驱动去访问磁盘。由于现代操作系统的文件系统会对访问的对象进行缓存,因而对文件的操作一般都是直接在内存中进行,所以效率上不是瓶颈。所以,访问基于本地文件系统的元数据信息,开销主要是频繁的系统调用。在普通的服务器上,一次系统调用约需要几十个微秒的时间,在元数据访问异常频繁的分布式文件系统中,这种开销会使文件系统的性能大打折扣。因此,如何设计元数据的访存方式,对于分布式文件系统是至关重要的。
发明内容
本发明旨在公开一种分布式文件系统中高效的元数据访存方式,目的是满足分布式文件系统中频繁的元数据服务请求。
一种分布式文件系统中高效的元数据访存方法,包括以下步骤:
A、索引节点采用64位无符号整数进行编号,从0开始,每32K个索引节点元数据存放于同一个文件,所有的索引节点文件按照节点号顺序采用两级树状结构目录进行存放;
B、索引节点文件存储的目录结构组织为一个多路搜索树,树的每个非叶子节点对应一个子目录,而叶子节点则表示索引节点文件;
C、同一非叶子节点的所有子节点采用trie树组织;
D、通过内存映射将索引节点文件映射到一片内存区域,只有实际访问到的部分,本地文件系统才会将其从磁盘上读入文件系统的页面缓存,对于其他部分,则只保留虚拟空间,并不触发缺页中断去读取磁盘数据;
E、将内存中修改过的索引节点文件采用定时同步方式向磁盘同步,每到定时时间,同步线程基于以上引入的多路搜索树结构,采用深度优先遍历的方式,对位于叶子节点的索引节点文件按照创建的先后顺序进行扫描,如发现有修改标志,则进行同步。
本发明的创新点在于索引节点的访存方式:发明提供了一种基于多路搜索树和trie树相结合的文件树访问方式;引入文件内存映射的方式对元数据文件进行读写;同时基于元数据的树结构组织,对索引节点元数据从内存同步到磁盘进行优化,以减轻磁盘的负载。
附图说明
图1是本发明索引节点和文件织结构
具体实施方式
(1)索引节点采用64位无符号整数进行编号,从0开始,每32K个索引节点元数据存放于同一个文件,所有的索引节点文件在磁盘上按照节点号采用两级树状结构目录进行存放。如图1所示
(2)为了减少与本地文件系统的交互,本发明将索引节点文件存储的目录结构按照图1所示的结构组织为一个多路搜索树,树的每个非叶子节点对应一个子目录,而叶子节点则表示索引节点文件。这样,当需要访问某个索引节点时,通过其索引节点号,先从多路搜索树中查找。如果查找成功,则不需要通过系统调用去本地文件系统访问该索引节点数据;只有索引节点在内存中不存在时,才会和本地文件系统进行交互,并为其建立相应的树节点,以后再有访问同一个索引节点文件的请求,就不需要再通过系统调用与本地文件系统进行交互了。
(3)由于多路搜索树每个非叶子节点的子节点数目较多,采用线性搜索的时间复杂度为0(n),效率较低。为了提高检索效率,在本发明实施中,同一个节点的所有子节点采用trie树组织起来。之所以使用trie树,主要是由于索引节点号是使用整数表示的,当将整数以二进制表示时,其每一位的取值可能为0或1,正好符合trie树的应用场景。如果给一棵深度为N的完全二叉树每个节点的左右子节点分别赋予权值0和1,则一个N位整数所能表达的值域集合等价于该完全二叉树从根节点到所有叶子经过的节点权值组合后形成的集合。
使用trie树可以极大的提高检索效率,假定多路搜索树的每个节点有2^N的子节点,trie树节点包含的子节点数目选为2^M(1<=M<=N),则检索时间夏杂度有0(log(2^N))减为0(logM(N))。
(4)由于本发明中,一个索引节点文件共存有索引节点32K个,如果每访问其中的一个索引节点就去访问一次本地文件系统,则需要打开文件,移动文件指针,读取数据等多次系统调用,使效率大打折扣;而如果在第一次访问的时候,就将所有的索引节点都读入内存,由于索引节点文件较大,会照成较大的浪费,因为很可能以后再也没有请求去访问同一文件中的其他索引节点。
基于以上分析,本发明给出了一种高效的解决方案方案:通过内存映射将索引节点文件映射到一片内存区域。这样,只有实际访问到的部分,本地文件系统才会将其从磁盘上读入文件系统的页面缓存,对于其他部分,则只保留虚存空间,并不触发缺页中断;采用内存映射的另一个优点是,访问文件数据时不需要经过从内核态文件系统的页面缓存拷贝到用户缓冲区,能减少对CPU一级缓存的污染,进一步提高分布式文件系统元数据处理单元的总体性能。
(5)本地文件系统的策略会保证同一个索引节点文件中的所有索引节点内容在磁盘上是比较靠近;不同的索引节点文件,由于索引节点号是逐渐递增的,其创建时间顺序和索引节点的大小顺序是一致的,因而,相邻的索引节点文件在磁盘上所处的物理位置分布自然也是比较靠近。
一般来说,磁盘顺序读写能最大程度发挥磁盘的性能,并且可以有效地减小对磁盘磁头的损害。本技术方案在将内存中修改过的索引节点文件向磁盘同步时,采用定时同步的方式。每当到定时时间,同步线程基于以上引入的多路搜索树结构,采用深度优先遍历的方式,对位于叶子节点的索引节点文件按照创建的先后顺序(即索引节点号的大小顺序)进行扫描,如果发现有修改标志,则进行同步。这样以来,磁盘磁头基本是顺序移动,而非随机移动,因而,不仅加快了同步速率,而且可以增加磁盘的使用寿命。
Claims (1)
1.一种分布式文件系统中高效的元数据访存方法,其特征在于:包括以下步骤:
A、索引节点采用64位无符号整数进行编号,从0开始,每32K个索引节点元数据存放于同一个文件,所有的索引节点文件按照节点号顺序采用两级树状结构目录进行存放;
B、索引节点文件存储的目录结构组织为一个多路搜索树,树的每个非叶子节点对应一个子目录,而叶子节点则表示索引节点文件;
C、同一非叶子节点的所有子节点采用trie树组织;
D、通过内存映射将索引节点文件映射到一片内存区域,只有实际访问到的部分,本地文件系统才会将其从磁盘上读入文件系统的页面缓存,对于其他部分,则只保留虚拟空间,并不触发缺页中断去读取磁盘数据;
E、将内存中修改过的索引节点文件采用定时同步方式向磁盘同步,每到定时时间,同步线程基于以上引入的多路搜索树结构,采用深度优先遍历的方式,对位于叶子节点的索引节点文件按照创建的先后顺序进行扫描,如发现有修改标志,则进行同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010536537 CN102024020B (zh) | 2010-11-04 | 2010-11-04 | 一种分布式文件系统中高效的元数据访存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010536537 CN102024020B (zh) | 2010-11-04 | 2010-11-04 | 一种分布式文件系统中高效的元数据访存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102024020A true CN102024020A (zh) | 2011-04-20 |
CN102024020B CN102024020B (zh) | 2013-02-06 |
Family
ID=43865318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010536537 Active CN102024020B (zh) | 2010-11-04 | 2010-11-04 | 一种分布式文件系统中高效的元数据访存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102024020B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102369520A (zh) * | 2011-09-02 | 2012-03-07 | 华为技术有限公司 | 虚拟内存区域的查询、遍历方法及装置 |
WO2012174888A1 (zh) * | 2011-06-22 | 2012-12-27 | 中兴通讯股份有限公司 | 一种分布式缓存系统中的数据写入及读取方法及装置 |
CN103778120A (zh) * | 2012-10-17 | 2014-05-07 | 腾讯科技(深圳)有限公司 | 全局文件标识生成方法、生成装置及相应的分布式文件系统 |
CN103793534A (zh) * | 2014-02-28 | 2014-05-14 | 苏州博纳讯动软件有限公司 | 分布式文件系统及均衡元数据存储和访问负载的实现方法 |
CN104881257A (zh) * | 2015-06-09 | 2015-09-02 | 北京世纪铭辰科技有限公司 | 一种海量数据的实时存储系统和方法 |
CN105745640A (zh) * | 2014-10-31 | 2016-07-06 | 华为技术有限公司 | 访问文件的方法、系统和主机 |
CN106250775A (zh) * | 2016-07-18 | 2016-12-21 | 恒宝股份有限公司 | 用于在tee中的智能卡的文件的管理方法及管理系统 |
CN107562757A (zh) * | 2016-07-01 | 2018-01-09 | 阿里巴巴集团控股有限公司 | 基于分布式文件系统的查询、访问方法、装置及系统 |
CN107992569A (zh) * | 2017-11-29 | 2018-05-04 | 北京小度信息科技有限公司 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
CN108319634A (zh) * | 2017-12-15 | 2018-07-24 | 创新科存储技术(深圳)有限公司 | 分布式文件系统的目录访问方法和装置 |
CN108804542A (zh) * | 2018-05-16 | 2018-11-13 | 河北天翼科贸发展有限公司 | 一种基于内存运算的快速获取文件增量方法 |
CN109144994A (zh) * | 2017-06-19 | 2019-01-04 | 华为技术有限公司 | 索引更新方法、系统及相关装置 |
CN109933570A (zh) * | 2019-03-15 | 2019-06-25 | 中山大学 | 一种元数据管理方法、系统及介质 |
CN114003562A (zh) * | 2021-12-29 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种目录遍历方法、装置、设备及可读存储介质 |
CN117435144A (zh) * | 2023-12-20 | 2024-01-23 | 山东云天安全技术有限公司 | 一种数据中心智能化数据分级安全管理方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207916B (zh) * | 2013-04-24 | 2017-09-19 | 曙光信息产业(北京)有限公司 | 元数据处理的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040098424A1 (en) * | 2001-10-29 | 2004-05-20 | Emc Corporation | Method and apparatus for efficiently copying distributed data files |
CN1691016A (zh) * | 2004-04-14 | 2005-11-02 | 微软公司 | 用于在b树上重命名连续键的方法和系统 |
US20070094269A1 (en) * | 2005-10-21 | 2007-04-26 | Mikesell Paul A | Systems and methods for distributed system scanning |
CN101187901A (zh) * | 2007-12-20 | 2008-05-28 | 康佳集团股份有限公司 | 一种实现文件访问的高速缓存系统和方法 |
-
2010
- 2010-11-04 CN CN 201010536537 patent/CN102024020B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040098424A1 (en) * | 2001-10-29 | 2004-05-20 | Emc Corporation | Method and apparatus for efficiently copying distributed data files |
CN1691016A (zh) * | 2004-04-14 | 2005-11-02 | 微软公司 | 用于在b树上重命名连续键的方法和系统 |
US20070094269A1 (en) * | 2005-10-21 | 2007-04-26 | Mikesell Paul A | Systems and methods for distributed system scanning |
CN101187901A (zh) * | 2007-12-20 | 2008-05-28 | 康佳集团股份有限公司 | 一种实现文件访问的高速缓存系统和方法 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012174888A1 (zh) * | 2011-06-22 | 2012-12-27 | 中兴通讯股份有限公司 | 一种分布式缓存系统中的数据写入及读取方法及装置 |
WO2012149723A1 (zh) * | 2011-09-02 | 2012-11-08 | 华为技术有限公司 | 虚拟内存区域的查询、遍历方法及装置 |
US9003120B2 (en) | 2011-09-02 | 2015-04-07 | Huawei Technologies Co., Ltd. | Method and apparatus for querying for and traversing virtual memory area |
CN102369520A (zh) * | 2011-09-02 | 2012-03-07 | 华为技术有限公司 | 虚拟内存区域的查询、遍历方法及装置 |
CN103778120A (zh) * | 2012-10-17 | 2014-05-07 | 腾讯科技(深圳)有限公司 | 全局文件标识生成方法、生成装置及相应的分布式文件系统 |
CN103778120B (zh) * | 2012-10-17 | 2018-01-16 | 腾讯科技(深圳)有限公司 | 全局文件标识生成方法、生成装置及相应的分布式文件系统 |
CN103793534B (zh) * | 2014-02-28 | 2017-09-08 | 苏州博纳讯动软件有限公司 | 分布式文件系统及均衡元数据存储和访问负载的实现方法 |
CN103793534A (zh) * | 2014-02-28 | 2014-05-14 | 苏州博纳讯动软件有限公司 | 分布式文件系统及均衡元数据存储和访问负载的实现方法 |
CN105745640B (zh) * | 2014-10-31 | 2018-09-11 | 华为技术有限公司 | 访问文件的方法、系统和主机 |
US10372336B2 (en) | 2014-10-31 | 2019-08-06 | Huawei Technologies Co., Ltd. | File access method, system, and host |
CN105745640A (zh) * | 2014-10-31 | 2016-07-06 | 华为技术有限公司 | 访问文件的方法、系统和主机 |
CN104881257A (zh) * | 2015-06-09 | 2015-09-02 | 北京世纪铭辰科技有限公司 | 一种海量数据的实时存储系统和方法 |
CN107562757A (zh) * | 2016-07-01 | 2018-01-09 | 阿里巴巴集团控股有限公司 | 基于分布式文件系统的查询、访问方法、装置及系统 |
CN107562757B (zh) * | 2016-07-01 | 2021-08-10 | 阿里巴巴集团控股有限公司 | 基于分布式文件系统的查询、访问方法、装置及系统 |
CN106250775A (zh) * | 2016-07-18 | 2016-12-21 | 恒宝股份有限公司 | 用于在tee中的智能卡的文件的管理方法及管理系统 |
US11308062B2 (en) | 2017-06-19 | 2022-04-19 | Huawei Technologies Co., Ltd. | Index update method and system, and related apparatus |
CN109144994A (zh) * | 2017-06-19 | 2019-01-04 | 华为技术有限公司 | 索引更新方法、系统及相关装置 |
CN109144994B (zh) * | 2017-06-19 | 2022-04-29 | 华为技术有限公司 | 索引更新方法、系统及相关装置 |
CN107992569A (zh) * | 2017-11-29 | 2018-05-04 | 北京小度信息科技有限公司 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
CN107992569B (zh) * | 2017-11-29 | 2020-10-13 | 北京小度信息科技有限公司 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
CN108319634A (zh) * | 2017-12-15 | 2018-07-24 | 创新科存储技术(深圳)有限公司 | 分布式文件系统的目录访问方法和装置 |
CN108804542A (zh) * | 2018-05-16 | 2018-11-13 | 河北天翼科贸发展有限公司 | 一种基于内存运算的快速获取文件增量方法 |
CN108804542B (zh) * | 2018-05-16 | 2021-12-07 | 河北天翼科贸发展有限公司 | 一种基于内存运算的快速获取文件增量方法 |
CN109933570B (zh) * | 2019-03-15 | 2020-02-07 | 中山大学 | 一种元数据管理方法、系统及介质 |
WO2020186549A1 (zh) * | 2019-03-15 | 2020-09-24 | 中山大学 | 一种元数据管理方法、系统及介质 |
CN109933570A (zh) * | 2019-03-15 | 2019-06-25 | 中山大学 | 一种元数据管理方法、系统及介质 |
US11693830B2 (en) | 2019-03-15 | 2023-07-04 | Sun Yat-Sen University | Metadata management method, system and medium |
CN114003562A (zh) * | 2021-12-29 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种目录遍历方法、装置、设备及可读存储介质 |
CN117435144A (zh) * | 2023-12-20 | 2024-01-23 | 山东云天安全技术有限公司 | 一种数据中心智能化数据分级安全管理方法及系统 |
CN117435144B (zh) * | 2023-12-20 | 2024-03-22 | 山东云天安全技术有限公司 | 一种数据中心智能化数据分级安全管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102024020B (zh) | 2013-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102024020B (zh) | 一种分布式文件系统中高效的元数据访存方法 | |
Sears et al. | bLSM: a general purpose log structured merge tree | |
Busch et al. | Earlybird: Real-time search at twitter | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
US7689574B2 (en) | Index and method for extending and querying index | |
CN102890722B (zh) | 应用于时序历史数据库的索引方法 | |
CN107710201B (zh) | 存储数据和从位向量搜索索引取回数据 | |
CN109697016B (zh) | 用于改进容器的存储性能的方法和装置 | |
CN110162528A (zh) | 海量大数据检索方法及系统 | |
JP5233233B2 (ja) | 情報検索システム、情報検索用インデックスの登録装置、情報検索方法及びプログラム | |
CN107851108B (zh) | 使用位向量搜索索引的匹配文档 | |
JP2005267600A5 (zh) | ||
CN105183839A (zh) | 一种基于Hadoop的小文件分级索引的存储优化方法 | |
CN103186350A (zh) | 混合存储系统及热点数据块的迁移方法 | |
CN108021717B (zh) | 一种轻量级嵌入式文件系统的实现方法 | |
CN108475266B (zh) | 用来移除匹配文档的匹配修复 | |
CN102024019B (zh) | 一种分布式文件系统中基于后缀树的目录组织方法 | |
Zhang et al. | The hv-tree: a memory hierarchy aware version index | |
WO2022205544A1 (zh) | 基于Cuckoo哈希的文件系统目录管理方法及系统 | |
CN105912675A (zh) | 一种针对小文件合并的批量删除/查询方法与装置 | |
Doekemeijer et al. | Key-Value Stores on Flash Storage Devices: A Survey | |
CN104504076A (zh) | 一种高并发和高空间利用率的分布式缓存方法 | |
JP4825719B2 (ja) | 高速ファイル属性検索 | |
Akram | Exploiting intel optane persistent memory for full text search | |
CN107133334A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220729 Address after: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing Patentee after: Dawning Information Industry (Beijing) Co.,Ltd. Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd. Address before: 100084 Beijing Haidian District City Mill Street No. 64 Patentee before: Dawning Information Industry (Beijing) Co.,Ltd. |