CN109521963A - 一种元数据落盘方法及装置 - Google Patents
一种元数据落盘方法及装置 Download PDFInfo
- Publication number
- CN109521963A CN109521963A CN201811354082.4A CN201811354082A CN109521963A CN 109521963 A CN109521963 A CN 109521963A CN 201811354082 A CN201811354082 A CN 201811354082A CN 109521963 A CN109521963 A CN 109521963A
- Authority
- CN
- China
- Prior art keywords
- tree
- level
- metadata
- memory
- disk
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种元数据落盘方法,该方法包括:当内存中的元数据达到第一下刷阈值时,将磁盘中的一级树读取至内存中;然后,将内存中的元数据合并至该一级树,进而将合并后的一级树下刷至磁盘;当磁盘中的一级树达到第二下刷阈值时,将该一级树标记为二级树,该二级树固定存储于磁盘中,即当内存中的元数据达到第一下刷阈值时,该二级树不会被读取至内存中。在该元数据落盘方法中,限定了能够被读取至内存中的一级树的大小,从而有效地避免了在容量有限的内存中将元数据与过大的一级树进行合并,进而,降低了元数据与一级树合并的代价,保证存储***性能的稳定。
Description
技术领域
本申请存储***技术领域,特别是涉及一种元数据落盘方法及装置。
背景技术
元数据落盘是指将数据以持久化的形式写到磁盘上,以便当主机进行数据查询时,能够快速地定位数据在磁盘中的位置。通常情况下,落盘的数据以B+tree的数据结构或其他类似的数据结构进行存储,以便提高数据检索的效率。
当主机下发IO请求时,元数据会先以B+tree的数据结构被存放到内存中,当元数据的数据量在内存中达到预设阈值时,将触发元数据落盘,即将内存中的元数据下刷至磁盘上。
现有的元数据落盘方法主要有以下两种:第一种是直接将内存中的元数据下刷至磁盘上,然后将下刷至磁盘上的元数据与磁盘上已有的B+tree进行合并。第二种是当内存中的元数据的数据量达到预设阈值时,将磁盘中的B+tree读取至内存中,使得内存中的元数据与被读取上来的磁盘中的B+tree合并,进而将合并后的B+tree下刷至磁盘上。
针对上述第一种元数据落盘方法,虽然能够保证将内存中的元数据快速地下刷至磁盘上,但是,如果主机在元数据下刷过程中对磁盘中的数据进行查询,主机需要通过对磁盘中的B+tree进行逐一查询,来确定待查询的数据的位置,如此查询效率极低。针对上述第二种元数据落盘方法,当磁盘中的B+tree较大时,将磁盘中的B+tree读取至内存中并且将其与元数据进行合并,需要付出较大的合并代价,由于内存容量有限,将较大的B+tree读取至内存中可能会出现内存不足的情况,这将对***的性能造成很大的影响。
发明内容
为了解决上述技术问题,本申请提供了一种元数据落盘方法,能够提高存储***中元数据的查询效率,并且保证存储***的可靠性。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供了一种元数据落盘方法,所述方法包括:
当内存中的元数据达到第一下刷阈值时,将磁盘中的一级树读取至所述内存中;
将所述内存中的元数据合并至所述一级树,将所述一级树下刷至磁盘;
当所述一级树达到第二下刷阈值时,将所述一级树标记为二级树;所述二级树固定存储于磁盘中。
可选的,在所述一级树达到第二下刷阈值时,所述方法还包括:
在所述磁盘中重新构建一级树;
当所述内存中的元数据达到所述第一下刷阈值时,将所述内存中的元数据与重新构建的一级树合并。
可选的,所述方法还包括:
当所述重新构建的一级树达到所述第二下刷阈值时,将所述重新构建的一级树与所述二级树合并。
可选的,所述元数据、所述一级树和所述二级树均为B+tree结构。
第二方面,本申请实施例提供了一种元数据落盘装置,所述装置包括:
读取模块,用于当内存中的元数据达到第一下刷阈值时,将磁盘中的一级树读取至所述内存中;
下刷模块,用于将所述内存中的元数据合并至所述一级树,将所述一级树下刷至磁盘;
标记模块,用于当所述一级树达到第二下刷阈值时,将所述一级树标记为二级树;所述二级树固定存储于磁盘中。
可选的,所述装置还包括:
构建模块,用于在所述一级树达到第二下刷阈值时,在所述磁盘中重新构建一级树;
所述下刷模块,还用于当所述内存中的元数据达到所述第一下刷阈值时,将所述内存中的元数据与重新构建的一级树合并。
可选的,所述装置还包括:
合并模块,用于当所述重新构建的一级树达到所述第二下刷阈值时,将所述重新构建的一级树与所述二级树合并。
可选的,所述元数据、所述一级树和所述二级树均为B+tree结构。
由上述技术方案可以看出,本申请实施例提供了一种元数据落盘方法,该方法包括:当内存中的元数据达到第一下刷阈值时,将磁盘中的一级树读取至内存中;然后,将内存中的元数据合并至该一级树,进而将合并后的一级树下刷至磁盘;当磁盘中的一级树达到第二下刷阈值时,将该一级树标记为二级树,该二级树固定存储于磁盘中,即当内存中的元数据达到第一下刷阈值时,该二级树不会被读取至内存中。在该元数据落盘方法中,限定了能够被读取至内存中的一级树的大小,从而有效地避免了在容量有限的内存中将元数据与过大的一级树进行合并,进而,降低了元数据与一级树合并的代价,保证存储***性能的稳定。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种元数据落盘方法的流程示意图;
图2为本申请实施例提供的一种元数据落盘装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有的元数据落盘方法普遍存在查询效率低、对存储***的性能影响较大等问题,为了解决上述现有技术存在的技术问题,本申请实施例提供了一种元数据落盘方法,能够提高存储***中元数据的查询效率,并且保证存储***的可靠性。
下面先对本申请实施例提供的元数据落盘方法的核心技术思路进行介绍:
本申请实施例提供了一种元数据落盘方法,该方法包括:当内存中的元数据达到第一下刷阈值时,将磁盘中的一级树读取至内存中;然后,将内存中的元数据合并至该一级树,进而将合并后的一级树下刷至磁盘;当磁盘中的一级树达到第二下刷阈值时,将该一级树标记为二级树,该二级树固定存储于磁盘中,即当内存中的元数据达到第一下刷阈值时,该二级树不会被读取至内存中。在该元数据落盘方法中,限定了能够被读取至内存中的一级树的大小,从而有效地避免了在容量有限的内存中将元数据与过大的一级树进行合并,进而,降低了元数据与一级树合并的代价,保证存储***性能的稳定。
下面以实施例的方式对本申请提供的元数据落盘方法进行介绍:
参见图1,图1为本申请实施例提供的元数据落盘方法的流程示意图。如图1所示,该元数据落盘方法包括:
步骤101:当内存中的元数据达到第一下刷阈值时,将磁盘中的一级树读取至所述内存中。
步骤102:将所述内存中的元数据合并至所述一级树,将所述一级树下刷至磁盘。
存储***启动后,响应于主机下发的IO请求,元数据被存放于内存中,随着主机下发的IO请求不断增多,存储于内存中的元数据不断增多,当内存中的元数据达到第一下刷阈值时,需要将内存中的元数据下刷至磁盘中。
具体将内存中的元数据下刷至磁盘时,先将磁盘中的一级树读取至内存中,该一级树是由已下刷至磁盘中的元数据合并成的,进而,将内存中的元数据与该一级树合并,待合并完成后,将合并有这些元数据的一级树下刷至磁盘中。
需要说明的是,上述第一下刷阈值可以根据实际情况进行设定,在此不对该第一下刷阈值做任何限定。
步骤103:当所述一级树达到第二下刷阈值时,将所述一级树标记为二级树;所述二级树固定存储于磁盘中。
实时判断一级树的容量是否达到第二下刷阈值,若该一级树的容量仍未达到该第二下刷阈值,则在内存中的元数据达到第一下刷阈值时,仍将该一级树读取至内存中,将内存中的元数据与该一级树合并,并将其下刷至磁盘中;反之,若该一级树的容量已到达第二下刷阈值,则说明该一级树的容量过大,将该一级树读取至内存中与元数据合并,将付出较大的合并代价,并且存在影响存储***稳定性的可能,因此,将该一级树标记为二级树,固定存储于磁盘中,在下刷内存中的元数据时,二级树不会被读取至内存中。
需要说明的是,上述第二下刷阈值可以根据实际情况进行设定,在此不对该第二下刷阈值做任何限定。
当最先构建的一级树被标记为二级树时,重新构建一级树,当内存中的元数据达到第一下刷阈值时,将该重新构建的一级树读取至内存中,利用该一级树与内存中的元数据合并,并将合并后的一级树下刷至磁盘中。
需要说明的是,当该重新构建的一级树的容量也达到第二下刷阈值时,将该重新构建的一级树与磁盘中已有的二级树合并,生成合并后的二级树。相类似地,再次在磁盘中构建一级树,重复上述过程,以此类推。
需要说明的是,上述存储于内存中的元数据、和存储于磁盘中的一级树和二级树可以均为B+tree结构,当然,这些数据也可以为其他与B+tree结构类似的树状结构,在此不对其做任何限定。
上述本申请实施例提供的元数据落盘方法,当内存中的元数据达到第一下刷阈值时,将磁盘中的一级树读取至内存中;然后,将内存中的元数据合并至该一级树,进而将合并后的一级树下刷至磁盘;当磁盘中的一级树达到第二下刷阈值时,将该一级树标记为二级树,该二级树固定存储于磁盘中,即当内存中的元数据达到第一下刷阈值时,该二级树不会被读取至内存中。在该元数据落盘方法中,限定了能够被读取至内存中的一级树的大小,从而有效地避免了在容量有限的内存中将元数据与过大的一级树进行合并,进而,降低了元数据与一级树合并的代价,保证存储***性能的稳定。
针对上文所提供的元数据落盘方法,本申请实施例还提供了一种元数据落盘装置,以便上文的元数据落盘方法在实际应用中实施。
参见图2,图2为本申请实施例提供的元数据落盘装置的结构示意图。如图2所述,该装置包括:
读取模块201,用于当内存中的元数据达到第一下刷阈值时,将磁盘中的一级树读取至所述内存中;
下刷模块202,用于将所述内存中的元数据合并至所述一级树,将所述一级树下刷至磁盘;
标记模块203,用于当所述一级树达到第二下刷阈值时,将所述一级树标记为二级树;所述二级树固定存储于磁盘中。
可选的,所述装置还包括:
构建模块,用于在所述一级树达到第二下刷阈值时,在所述磁盘中重新构建一级树;
所述下刷模块,还用于当所述内存中的元数据达到所述第一下刷阈值时,将所述内存中的元数据与重新构建的一级树合并。
可选的,所述装置还包括:
合并模块,用于当所述重新构建的一级树达到所述第二下刷阈值时,将所述重新构建的一级树与所述二级树合并。
可选的,所述元数据、所述一级树和所述二级树均为B+tree结构。
上述本申请实施例提供的元数据落盘装置,当内存中的元数据达到第一下刷阈值时,将磁盘中的一级树读取至内存中;然后,将内存中的元数据合并至该一级树,进而将合并后的一级树下刷至磁盘;当磁盘中的一级树达到第二下刷阈值时,将该一级树标记为二级树,该二级树固定存储于磁盘中,即当内存中的元数据达到第一下刷阈值时,该二级树不会被读取至内存中。在该元数据落盘装置中,限定了能够被读取至内存中的一级树的大小,从而有效地避免了在容量有限的内存中将元数据与过大的一级树进行合并,进而,降低了元数据与一级树合并的代价,保证存储***性能的稳定。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及***实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (8)
1.一种元数据落盘方法,其特征在于,所述方法包括:
当内存中的元数据达到第一下刷阈值时,将磁盘中的一级树读取至所述内存中;
将所述内存中的元数据合并至所述一级树,将所述一级树下刷至磁盘;
当所述一级树达到第二下刷阈值时,将所述一级树标记为二级树;所述二级树固定存储于磁盘中。
2.根据权利要求1所述的方法,其特征在于,在所述一级树达到第二下刷阈值时,所述方法还包括:
在所述磁盘中重新构建一级树;
当所述内存中的元数据达到所述第一下刷阈值时,将所述内存中的元数据与重新构建的一级树合并。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述重新构建的一级树达到所述第二下刷阈值时,将所述重新构建的一级树与所述二级树合并。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述元数据、所述一级树和所述二级树均为B+tree结构。
5.一种元数据落盘装置,其特征在于,所述装置包括:
读取模块,用于当内存中的元数据达到第一下刷阈值时,将磁盘中的一级树读取至所述内存中;
下刷模块,用于将所述内存中的元数据合并至所述一级树,将所述一级树下刷至磁盘;
标记模块,用于当所述一级树达到第二下刷阈值时,将所述一级树标记为二级树;所述二级树固定存储于磁盘中。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
构建模块,用于在所述一级树达到第二下刷阈值时,在所述磁盘中重新构建一级树;
所述下刷模块,还用于当所述内存中的元数据达到所述第一下刷阈值时,将所述内存中的元数据与重新构建的一级树合并。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
合并模块,用于当所述重新构建的一级树达到所述第二下刷阈值时,将所述重新构建的一级树与所述二级树合并。
8.根据权利要求5至7任意一项所述的装置,其特征在于,所述元数据、所述一级树和所述二级树均为B+tree结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811354082.4A CN109521963B (zh) | 2018-11-14 | 2018-11-14 | 一种元数据落盘方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811354082.4A CN109521963B (zh) | 2018-11-14 | 2018-11-14 | 一种元数据落盘方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109521963A true CN109521963A (zh) | 2019-03-26 |
CN109521963B CN109521963B (zh) | 2021-08-10 |
Family
ID=65777578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811354082.4A Active CN109521963B (zh) | 2018-11-14 | 2018-11-14 | 一种元数据落盘方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109521963B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809237A (zh) * | 2015-05-12 | 2015-07-29 | 百度在线网络技术(北京)有限公司 | LSM-tree索引的优化方法和装置 |
CN105612491A (zh) * | 2013-09-16 | 2016-05-25 | 网络装置公司 | 分布式存储架构中基于具有密集树结构的元数据的盘区的管理 |
CN107402870A (zh) * | 2017-07-31 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种元数据服务器中日志段的处理方法及装置 |
CN108121670A (zh) * | 2017-08-07 | 2018-06-05 | 鸿秦(北京)科技有限公司 | 一种减少固态硬盘元数据回刷频率的映射方法 |
CN108427728A (zh) * | 2018-02-13 | 2018-08-21 | 百度在线网络技术(北京)有限公司 | 元数据的管理方法、设备及计算机可读介质 |
CN108647151A (zh) * | 2018-04-26 | 2018-10-12 | 郑州云海信息技术有限公司 | 一种全闪***元数据落盘方法、装置、设备及存储介质 |
-
2018
- 2018-11-14 CN CN201811354082.4A patent/CN109521963B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105612491A (zh) * | 2013-09-16 | 2016-05-25 | 网络装置公司 | 分布式存储架构中基于具有密集树结构的元数据的盘区的管理 |
CN104809237A (zh) * | 2015-05-12 | 2015-07-29 | 百度在线网络技术(北京)有限公司 | LSM-tree索引的优化方法和装置 |
CN107402870A (zh) * | 2017-07-31 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种元数据服务器中日志段的处理方法及装置 |
CN108121670A (zh) * | 2017-08-07 | 2018-06-05 | 鸿秦(北京)科技有限公司 | 一种减少固态硬盘元数据回刷频率的映射方法 |
CN108427728A (zh) * | 2018-02-13 | 2018-08-21 | 百度在线网络技术(北京)有限公司 | 元数据的管理方法、设备及计算机可读介质 |
CN108647151A (zh) * | 2018-04-26 | 2018-10-12 | 郑州云海信息技术有限公司 | 一种全闪***元数据落盘方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
罗圣美;陆游游;秦雄军;杨洪章;张佳程: "《 一种结合SSD特征的分布式文件***元数据优化技术》", 《小型微型计算机***》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109521963B (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104778222B (zh) | 基于usb存储设备的媒体库建立及更新方法 | |
CN109284299B (zh) | 重构具有存储感知的混合索引的方法 | |
CN104408163B (zh) | 一种数据分级存储方法和装置 | |
US20130268644A1 (en) | Consistent ring namespaces facilitating data storage and organization in network infrastructures | |
US9733833B2 (en) | Selecting pages implementing leaf nodes and internal nodes of a data set index for reuse | |
CN103092848B (zh) | 一种图片存储与检索方法 | |
CN106227677B (zh) | 一种变长缓存元数据管理的方法 | |
CN104881481A (zh) | 一种存取海量时间序列数据的方法及装置 | |
CN108563532A (zh) | 数据处理方法及相关装置 | |
US20140297606A1 (en) | Method and device for processing a time sequence based on dimensionality reduction | |
CN102508913A (zh) | 一种带有数据立方存储索引结构的云计算*** | |
CN103617007A (zh) | 多级智能存储实现方法和*** | |
CN109445695A (zh) | 一种数据迁移方法 | |
CN109240607A (zh) | 一种文件读取方法和装置 | |
CN106095850A (zh) | 一种数据处理方法及设备 | |
CN108874930A (zh) | 文件属性信息统计方法、装置、***、设备及存储介质 | |
CN109388614A (zh) | 一种目录文件个数配额的方法、***及设备 | |
CN104346347A (zh) | 数据存储方法、装置、服务器及*** | |
CN103119567A (zh) | 用于管理虚拟带库域的***和方法 | |
CN110008030A (zh) | 一种元数据访问的方法、***及设备 | |
CN102724301B (zh) | 云数据库***以及云数据读写处理方法、设备 | |
CN109521963A (zh) | 一种元数据落盘方法及装置 | |
CN103761194B (zh) | 一种内存管理方法及装置 | |
CN104268274A (zh) | 一种记录数据库日志的方法、装置及*** | |
CN106130880A (zh) | 网络邮件数据的搜集方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |