CN113901276B - 一种数据管理、b+树加载方法、装置及电子设备 - Google Patents

一种数据管理、b+树加载方法、装置及电子设备 Download PDF

Info

Publication number
CN113901276B
CN113901276B CN202111168624.0A CN202111168624A CN113901276B CN 113901276 B CN113901276 B CN 113901276B CN 202111168624 A CN202111168624 A CN 202111168624A CN 113901276 B CN113901276 B CN 113901276B
Authority
CN
China
Prior art keywords
tree
disk
incremental data
memory
newly added
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
CN202111168624.0A
Other languages
English (en)
Other versions
CN113901276A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202111168624.0A priority Critical patent/CN113901276B/zh
Publication of CN113901276A publication Critical patent/CN113901276A/zh
Application granted granted Critical
Publication of CN113901276B publication Critical patent/CN113901276B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例涉及一种数据管理、B+树加载方法、装置及电子设备,该方法包括:当检测到新增的写操作数据后,根据新增的写操作数据更新内存中的第一B+树;以及,根据新增的写操作数据,生成第一增量数据;并将第一增量数据写入到磁盘中。磁盘中本就存储有与第一B+树对应的第二B+树,第二B+树与第一增量数据相结合,等价于第一B+树,也即是仅仅将新增的写操作数据所对应的第一增量数据更新到磁盘中,即可保证磁盘中存储的数据与内存中存储的B+树保持一致。而新增增量数据,相较于传统的刷写叶子节点的形式刷写元数据,减少了元数据刷写时的写放大,大大减少工作量,提升工作效率,进而也可以有效提高压缩卷的读写性能。

Description

一种数据管理、B+树加载方法、装置及电子设备
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据管理、B+树加载方法、装置及电子设备。
背景技术
存储系统中对于元数据的管理模式包括压缩卷数据管理模式和普通卷数据管理模式。压缩卷数据管理模式,相较于普通卷数据管理模式而言存在一定难度。
在常用的压缩卷数据管理模式中,使用B+树管理元数据,即管理存储系统中逻辑区块地址(Logical Block Address,简称LBA)到物理区块地址(Physics Block Address,简称PBA)的映射关系。将逻辑区块地址按照一定的空间进行切割,划分成多个小的逻辑区块地址空间,然后对每个小空间采用一个B+树进行管理。当有IO进行读写时,数据写入到磁盘中,对应的内存中的B+树也会追加或者修改部分L/P的映射关系。内存的B+树更新后,为了保证磁盘中的B+树与内存中的B+树保持一致,传统的设计方案是采用更新磁盘中B+树叶子节点的方式。
然而,当磁盘中B+树中的叶子节点中存放的L/P的映射关系较多,而叶子节点中更新的L/P较少时,这时候重写一个叶子节点,会导致元数据的写放大,效率较低。
发明内容
本申请提供了一种数据管理、B+树加载方法、装置及电子设备,以解决现有技术中为保证磁盘中的B+树与内存中的B+树保持一致,在内存中B+树中任一个或多个L/P更新时,都需重写磁盘中的B+树的对应叶子节点,导致磁盘中的元数据写放大,效率低下的问题。
第一方面,本申请提供了一种数据管理方法,该方法包括:
当检测到新增的写操作数据后,根据新增的写操作数据更新内存中的第一B+树;
以及,根据新增的写操作数据,生成第一增量数据;
并将第一增量数据写入到磁盘中。
第二方面,本申请提供了一种B+树加载方法,该方法包括:
根据预设操作指令,从磁盘中加载目标B+树至内存中;
并检测磁盘中是否存在与目标B+树对应的增量数据;
当确定磁盘中存在增量数据时,将增量数据加载至内存中的B+树中,以形成最终的B+树;
或者,当确定磁盘中未存在增量数据时,将目标B+树作为最终的B+树。
第三方面,本申请提供了一种数据管理装置,该装置包括:
检测单元,用于检测内存中是否存在新增的写操作数据;
处理单元,用于根据新增的写操作数据更新内存中的第一B+树;以及,根据新增的写操作数据,生成第一增量数据;
数据写入单元,用于将第一增量数据写入到磁盘中。
第四方面,本申请提供了一种B+树加载装置,该装置包括:
加载单元,用于根据预设操作指令,从磁盘中加载目标B+树至内存中;
检测单元,用于检测磁盘中是否存在与目标B+树对应的增量数据;
加载单元还用于,当确定磁盘中存在增量数据时,将增量数据加载至内存中的B+树中,以形成最终的B+树;
或者,当确定磁盘中未存在增量数据时,将目标B+树作为最终的B+树。
第五方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例的数据管理方法的步骤,或实现第二方面实施例的B+树加载方法的步骤。
第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面任一项实施例的数据管理方法的步骤,或如第二面实施例的B+树加载方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该方法,当检测到新增的写操作数据后,根据新增的写操作数据更新内存中的第一B+树,以及,更加新增的写操作数据,生成第一增量数据,并将第一增量数据写入到磁盘中。磁盘中本就存储有与第一B+树对应的第二B+树,第二B+树与第一增量数据相结合,等价于第一B+树,也即是仅仅将新增的写操作数据所对应的第一增量数据更新到磁盘中,即可保证磁盘中存储的数据与内存中存储的B+树保持一致。而新增增量数据,相较于传统的刷写叶子节点的形式刷写元数据,减少了元数据刷写时的写放大,大大减少工作量,提升工作效率,进而也可以有效提高压缩卷的读写性能。
附图说明
图1为本发明实施例提供的一种数据管理方法流程示意图;
图2为本发明实施例提供里另一种数据管理方法流程示意图;
图3为本发明实施例提供的另一种数据管理方法流程示意图;
图4为本发明实施例提供的另一种数据管理方法流程示意图;
图5为本发明实施例提供的另一种数据管理方法流程示意图;
图6为本发明实施例提供的另一种数据管理方法流程示意图;
图7为本发明实施例提供的另一种数据管理方法流程示意图;
图8为本发明实施例提供的一种数据管理装置结构示意图;
图9为本发明实施例提供的另一种数据管理装置结构示意图;
图10为本发明实施例提供一种电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
在介绍本实施例提供的数据管理方法流程示意图之前,首先介绍一下压缩卷的数据管理模式。
常用的压缩卷元数据管理模式中,使用B+树管理元数据。即管理存储系统中逻辑区块地址LBA和物理区块地址PBA的映射关系。将逻辑区块地址案中案一定的空间进行等大小的切割,划分成多个小的逻辑区块地址空间。然后对每个小空间采用一个B+树进行管理。这样就把一个卷大的B+树拆分成多个小的B+树,降低B+树的深度,访问效率相对大的B+树而言,效率会提高很多。
在本实施例中,同样采用上述方式对压缩的逻辑空间按照一定的大小,比如单位空间64M进行等比例切分。分成N个64M的segment。然后为每个segment构建一个初始的B+树用于存放逻辑区块地址LBA到物理区块地址PBA的映射关系。
在追加IO写操作时,内存中的B+树进行更新,并将追加写操作对应的元数据以增量数据的形式写入到磁盘中,具体参见下文。
图1为本发明实施例提供的一种数据管理方法流程示意图,如图1所示,该方法包括:
步骤110,当检测到新增的写操作数据后,根据新增的写操作数据更新内存中的第一B+树。
具体的,本实施例中所说的新增是指在内存中以及磁盘中均有初始B+树后,在任何时候,当存在IO新写入数据到磁盘后,元数据需要追加的应用场景。
当检测到新增的写操作数据后,首先根据新增的写操作数据,更新内存中的第一B+树。第一B+树可以是最初始的B+树,也可以是经过一些更新后,所形成的B+树。
因为内存中更新B+树改写效率高,所以可以直接更新。
而对于磁盘中的B+树改写因其效率低,所以不能实时进行改写。在磁盘中,即使是某一个叶子节点中的部分数据被修改,也会产生一系列的连锁反应,磁盘中的改写效率本就很低,如此一来更加会降低磁盘中的改写效率,影响磁盘的使用性能。所以,在保证不降低磁盘的使用性能的前提下,保证磁盘中的元数据和内存中的元数据能够保持同步,可以执行如下操作步骤。
步骤120,根据新增的写操作数据,生成第一增量数据。
步骤130,将第一增量数据写入到磁盘中。
具体的,根据新增的写操作数据,生成与新增的写操作数据对应的元数据,然后将元数据以第一增量数据的形式进行体现。第一增量数据例如可以是日志LOG的形式写入到磁盘中。如此一来,磁盘中的旧B+树,加上LOG增量,就可以等价于一个最新的B+树,其与内存中的第一B+树同步。更新B+树时以LOG的增量形式写入到磁盘中,而不采用刷写叶子节点的形式刷写元数据,减少了元数据刷写时的写放大,可以有效提高压缩卷的读写性能。
本发明实施例提供的数据管理方法,当检测到新增的写操作数据后,根据新增的写操作数据更新内存中的第一B+树,以及,更加新增的写操作数据,生成第一增量数据,并将第一增量数据写入到磁盘中。磁盘中本就存储有与第一B+树对应的第二B+树,第二B+树与第一增量数据相结合,等价于第一B+树,也即是仅仅将新增的写操作数据所对应的第一增量数据更新到磁盘中,即可保证磁盘中存储的数据与内存中存储的B+树保持一致。而新增增量数据,相较于传统的刷写叶子节点的形式刷写元数据,减少了元数据刷写时的写放大,大大减少工作量,提升工作效率,进而也可以有效提高压缩卷的读写性能。
在上述实施例的基础上,本发明实施例提供里另一种数据管理方法,图1所对应的实施例中的各方法实施步骤均适用于本实施例。重复内容部分这里不再重复赘述,在下文中侧重说明如何根据新增的写操作数据更新内存中的第一B+树。具体参见图2所示。该方法包括:
步骤210,根据新增的写操作数据,生成新增元数据。
步骤220,根据新增元数据,更新内存中的第一B+树。
具体的,根据新增的写操作数据,生成新增元数据,采用常规方案即可实现,因此这里不再赘述。
而根据新增元数据,更新内存中的第一B+树,则是根据新增元数据来找到其在第一B+树中的具体位置,例如哪一个根节点中的哪一个叶子节点,在叶子节点的哪一个具体的位置等等,然后将相应的新增的元数据添加到相应的叶子节点位置。新增元数据还可能会产生一系列的连锁反应,也即是第一B+树上的其他叶子节点也可能会发生变动,对其他叶子节点做出适应性调整即可。
执行上述操作后,即可完成更新内存中的第一B+树。
在上述两个实施例的任一实施例的基础上,本实施例还提供了另一种数据管理方法。具体参见图3所示,图3为本发明实施例提供的另一种数据管理方法流程示意图。该实施例侧重说明如何根据新增的写操作数据,生成第一增量数据。具体的,该方法可以包括:
步骤310,根据新增的写操作数据,生成新增元数据。
步骤320,根据新增元数据,生成第一增量数据。
具体的,如上文所介绍的,根据新增的写操作数据,生成新增元数据采用常规方案即可实现,因此这里不再赘述。
根据新增元数据,生成第一增量数据,则是通过日志LOG增量的形式记录新增的元数据,包括新增元数据的位置、修改时间,以及新增元数据的具体内容等等。
通过LOG增量的形式记录元数据的更新,并将LOG增量写入到磁盘中,可以避免直接对磁盘中的B+树进行更新,同时还能够保证磁盘中的元数据可以和内存中的元数据保持同步。一旦内存中的元数据因为某种特殊情况,例如系统掉电而丢失时,也可以通过磁盘中的B+树和LOG增量,来重新恢复出内存中的B+树,该种方式与传统方案相比优势在于,更新B+树时以LOG的增量形式写入到磁盘中,而不采用刷写叶子节点的形式刷写元数据,减少了元数据刷写时的写放大。可以有效提高压缩卷的读写性能。
在上述实施例的基础上,考虑到因为某些原因,可能会对同一物理区块地址的数据进行改写,而系统只要检测到存在数据的改写,必然会通过IO将新增数据写入到磁盘中,那么通过上述实施方式在实现元数据在磁盘中以LOG增量形式备份时,必然会出现多个LOG增量。而这些LOG增量中在大多数情况下,除了最新时间修改的LOG增量为有效增量外,其他均可以理解为无效增量。为了避免过多的无效增量会占用内存,影响系统性能的情况发生。、
因此,本申请实施例还提供了另一种数据管理方法。具体参见图4所示,在上述实施例的基础上,据新增元数据,生成第一增量数据后,该方法还可以包括:
步骤410,检测磁盘中是否预先存储有与第一增量数据具有相同地址的第二增量数据;
步骤420,当确定存储有第二增量数据时,删除第二增量数据。
具体的,这里所说的相同地址可以是相同的物理区块地址,也可以是相同的逻辑区块地址。因为物理区块地址和逻辑区块地址之间本身就是一对一映射关系,所以任一个地址相同,另一个地址也是相同的。当检测到磁盘中已经预先存储有与第一增量数据具有先沟通地址的第二增量数据后,则说明第二增量数据的修改时间早于第一增量数据的修改时间,因此可以默认第一增量数据为最新修改后所形成的增量数据,保留最新修改,删除旧的内容。也即是,删除第二增量数据。
通过该种方式,可以保证针对每一个地址,都只有一份有效的LOG增量数据。清除无效的LOG增量数据,减少内存的占用,提升压缩卷的读写性能。
上述实施例中,说明的是一种去除无效LOG增量的方式,实际上除了上述方式外,还可以包括另一种去除无效LOG增量的方式。
具体的,如果考虑到LOG增量的重复增加,方便后续针对用户对于数据的修改尽可能地有迹可循,用以进行追溯。不希望每次只保留一条LOG增量。但是又考虑到当无效LOG增量过多,依然会占用过多的系统内存,影响压缩卷的读写性能。因此,该方法还可以包括如下方法步骤,具体参见图5所示,该方法步骤包括:
步骤510,当确定磁盘中存储的第一增量数据的总数超过第一预设阈值时,将内存中的第一B+树,刷写到磁盘中。
步骤520,删除磁盘中已存储的与第一增量数据对应的第二B+树,以及所有第一增量数据,其中,所有第一增量数据和第二B+树,等价于第一B+树。
具体的,不再像上一实施例所介绍的,在磁盘中针对每一个地址仅保留一条有效的LOG增量,而是可以保留一条或多条。但是不论每一个至所保留的LOG增量是一条还是多条,磁盘中存储的所有LOG增量的总数不能超过第一预设阈值。例如,逻辑空间是固定大小,所以描述空间有限,描述空间和每一条LOG增量所占用的单位空间之间的比值,即为LOG增量的总数。那么,第一预设阈值就可以是LOG增量的总数的倍数,例如1倍,或者两倍。一旦超过第一预设阈值,则删除磁盘中已经存储的与第一增量数据对应的第二B+树,也即是磁盘中存储的旧的B+树,以及所有第一增量数据,将第一B+树刷写到磁盘即可,其中,所有第一增量数据和第二B+树,等价于第一B+树。
通过该种方式,就可以尽量的避免过多无效增量LOG占用磁盘空间,所导致的磁盘的读写下降的问题。
除了考虑磁盘中B+树和LOG增量所占用的存储空间外,还需要考虑到内存中存储空间的有限情况。当内存中已经存储有多个B+树时,内存已占满,将不能够在再写入新的B+树,或者更新老的B+树。此时,还需要执行如下策略,具体参见图6所示,该方法包括:
步骤610,当确定内存中的B+树的数量超过第二预设阈值时,筛选预设时间段内未访问的第三B+树。
步骤620,当确定磁盘中存储的与第三B+树对应的第一增量数据的总数未超过第一预设阈值时,删除第三B+树。
或者,
步骤630,当确定磁盘中存储的与第三B+树对应的第一增量数据的总数超过第一预设阈值时,将第三B+树刷写到磁盘中,并删除第三B+树,以及磁盘中已存储的第四B+树,以及与第四B+树对应的所有第一增量数据,其中,第四B+树,以及与第四B+树对应的所有第一增量数据,等价于第三B+树。
具体的,当内存中的B+树的数量超过第二预设阈值(具体可以根据实际情况设定)时,筛选出预设时间段内未访问的第三B+树。预设时间段内未访问,也即是表明用户对该B+树所对应数据不是经常使用,甚至将不再做出追加或者修改。也就不会频繁的对B+树进行更新,此时可以先查看一下磁盘中与第三B+树对应的第一增量数据的总数,若总数未超过第一预设阈值,则可以直接删除第三B+树,用以节省内存空间。
当确定磁盘中存储的与第三B+树对应的第一增量数据的总数已经超过第一预设阈值,则将第三B+树刷写到磁盘中,然后删除磁盘中已存储的第四B+树和第一增量数据。内存中的第三B+树同样删除,其中,第四B+树,以及与第四B+树对应的所有第一增量数据,等价于第三B+树。此时,不仅可以节省内存中存储空间,还可以节省磁盘中的存储空间。
通过上述方式,解放内存中存储空间的占用,尽量保证内存可以不断的写入新的B+树。
上述实施例中,能够保证磁盘中的元数据和内存中的元数据保持同步。而且避免每次数据修改后均需要通过在磁盘中刷写B+树,使得元数据刷写时的写放大,对压缩卷的读写性能造成影响。下文中,则说明在内存中的元数据因为某些特殊情况,例如系统掉电导致内存中的元数据丢失,如何实现内存中的B+树重新恢复的具体实现方式,具体参见图7所示。
图7本发明实施例提供的一种B+树加载方法,该方法包括:
步骤710,根据预设操作指令,从磁盘中加载目标B+树至内存中。
具体的,磁盘中加载的目标B+树可能是与内存中同步的B+树,也可能是与内存中不同步的B+树,不论哪种情况,磁盘中的B+树都是恢复内存中的B+树的基础。因此,需要根据操作指令,从磁盘中加载目标B+树至内存中。
步骤720,并检测磁盘中是否存在与目标B+树对应的增量数据。
步骤730,当确定磁盘中存在增量数据时,将增量数据加载至内存中的B+树中,以形成最终的B+树。
或者,
步骤740,当确定所述磁盘中未存在所述增量数据时,将所述目标B+树作为最终的B+树。
具体的,检测磁盘中是否存在与目标B+树对应的增量数据,也即是判定目标B+树是否与内存中消失之前的B+树同步。如果不存在增量数据,则说明是同步的,可以直接将磁盘中的B+树作为最终的B+树直接使用。
如果存在增量数据,则说明不是同步的,需要将增量数据加载至磁盘中的B+树中,以形成最终的B+树。
本发明实施例提供的一种B+树加载方法,根据预设操作指令,从磁盘中加载B+树至内存中。检测磁盘中是否存在于目标B+树对应的增量数据,若存在则将增量数据加载至内存中的B+树中,以形成最终的B+树,否则,将内存中新存储的B+树作为最终的B+树。通过该种方式,可以保证在内存中的B+树因为某种特殊原因(包括主动删除或因为断电等特殊情况被动删除)而丢失的情况发生时,可以及时根据磁盘中存储的B+树,或者及时根据磁盘中存储的B+树和增量数据,加载出最终的B+树,用以保证后续的使用不受任何影响,提升用户体验度。
图8为本发明实施例提供的一种数据管理装置,该装置包括:检测单元801、处理单元802以及数据写入单元803。
检测单元801,用于检测内存中是否存在新增的写操作数据;
处理单元802,用于根据新增的写操作数据更新内存中的第一B+树;以及,根据新增的写操作数据,生成第一增量数据;
数据写入单元803,用于将第一增量数据写入到磁盘中。
可选的,处理单元802具体用于,根据新增的写操作数据,生成新增元数据;
根据新增元数据,更新内存中的第一B+树。
可选的,处理单元802具体用于,根据新增的写操作数据,生成新增元数据;
根据新增元数据,生成第一增量数据。
可选的,检测单元801还用于,检测磁盘中是否预先存储有与第一增量数据具有相同地址的第二增量数据;
处理单元802还用于,当确定存储有第二增量数据时,删除第二增量数据。
可选的,处理单元802还用于,当确定磁盘中存储的第一增量数据的总数超过第一预设阈值时,将内存中的第一B+树,刷写到磁盘中;
删除磁盘中已存储的与第一增量数据对应的第二B+树,以及所有第一增量数据,其中,所有第一增量数据和第二B+树,等价于第一B+树。
可选的,该装置还包括:筛选单元804,用于当确定内存中的B+树的数量超过第二预设阈值时,筛选预设时间段内未访问的第三B+树;
处理单元802还用于,当确定磁盘中存储的与第三B+树对应的第一增量数据的总数未超过第一预设阈值时,删除第三B+树;
或者,当确定磁盘中存储的与第三B+树对应的第一增量数据的总数超过第一预设阈值时,将第三B+树刷写到磁盘中,并删除第三B+树,以及磁盘中已存储的第四B+树,以及与第四B+树对应的所有第一增量数据,其中,第四B+树,以及与第四B+树对应的所有第一增量数据,等价于第三B+树。
本发明实施例提供的一种数据管理装置,当检测到新增的写操作数据后,根据新增的写操作数据更新内存中的第一B+树,以及,更加新增的写操作数据,生成第一增量数据,并将第一增量数据写入到磁盘中。磁盘中本就存储有与第一B+树对应的第二B+树,第二B+树与第一增量数据相结合,等价于第一B+树,也即是仅仅将新增的写操作数据所对应的第一增量数据更新到磁盘中,即可保证磁盘中存储的数据与内存中存储的B+树保持一致。而新增增量数据,相较于传统的刷写叶子节点的形式刷写元数据,减少了元数据刷写时的写放大,大大减少工作量,提升工作效率,进而也可以有效提高压缩卷的读写性能。
图9为本发明实施例提供的一种B+树加载装置,该装置包括:加载单元901以及检测单元902。
加载单元901,用于根据预设操作指令,从磁盘中加载目标B+树至内存中;
检测单元902,用于检测磁盘中是否存在与目标B+树对应的增量数据;
加载单元901还用于,当确定磁盘中存在增量数据时,将增量数据加载至内存中的B+树中,以形成最终的B+树;
或者,当确定磁盘中未存在增量数据时,将目标B+树作为最终的B+树。
本发明实施例提供的一种B+树加载装置,根据预设操作指令,从磁盘中加载B+树至内存中。检测磁盘中是否存在于目标B+树对应的增量数据,若存在则将增量数据加载至内存中的B+树中,以形成最终的B+树,否则,将内存中新存储的B+树作为最终的B+树。通过该种方式,可以保证在内存中的B+树因为某种特殊原因(包括主动删除或因为断电等特殊情况被动删除)而丢失的情况发生时,可以及时根据磁盘中存储的B+树,或者及时根据磁盘中存储的B+树和增量数据,加载出最终的B+树,用以保证后续的使用不受任何影响,提升用户体验度。
如图10所示,本申请实施例提供了一种电子设备,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信,
存储器113,用于存放计算机程序;
在本申请一个实施例中,处理器111,用于执行存储器123上所存放的程序时,实现前述任意一个方法实施例提供的数据管理方法,包括:
当检测到新增的写操作数据后,根据新增的写操作数据更新内存中的第一B+树;
以及,根据新增的写操作数据,生成第一增量数据;
并将第一增量数据写入到磁盘中。
可选的,根据新增的写操作数据,生成新增元数据;
根据新增元数据,更新内存中的第一B+树。
可选的,根据新增的写操作数据,生成新增元数据;
根据新增元数据,生成第一增量数据。
可选的,检测磁盘中是否预先存储有与第一增量数据具有相同地址的第二增量数据;
当确定存储有第二增量数据时,删除第二增量数据。
可选的,将内存中的第一B+树,刷写到磁盘中;
删除磁盘中已存储的与第一增量数据对应的第二B+树,以及所有第一增量数据,其中,所有第一增量数据和第二B+树,等价于第一B+树。
可选的,当确定内存中的B+树的数量超过第二预设阈值时,筛选预设时间段内未访问的第三B+树;
当确定磁盘中存储的与第三B+树对应的第一增量数据的总数未超过第一预设阈值时,删除第三B+树;
或者,当确定磁盘中存储的与第三B+树对应的第一增量数据的总数超过第一预设阈值时,将第三B+树刷写到磁盘中,并删除第三B+树,以及磁盘中已存储的第四B+树,以及与第四B+树对应的所有第一增量数据,其中,第四B+树,以及与第四B+树对应的所有第一增量数据,等价于第三B+树。
或者,包括:
根据预设操作指令,从磁盘中加载目标B+树至内存中;
并检测磁盘中是否存在与目标B+树对应的增量数据;
当确定磁盘中存在增量数据时,将增量数据加载至内存中的B+树中,以形成最终的B+树;
或者,当确定磁盘中未存在增量数据时,将目标B+树作为最终的B+树。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如前述任意一个方法实施例提供的数据管理方法的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (4)

1.一种数据管理方法,其特征在于,所述方法包括:
当检测到新增的写操作数据后,根据所述新增的写操作数据,生成新增元数据;
根据所述新增元数据,确定所述新增元数据在内存中的第一B+树中的位置,将所述新增元数据增加至所述位置,更新所述第一B+树;
以及,根据所述新增元数据,生成第一增量数据;并将所述第一增量数据写入到磁盘中,其中,所述第一增量数据以日志LOG增量形式写入磁盘,所述日志LOG增量中记录所述新增元数据的位置、修改时间,以及所述新增元数据的具体内容;
所述根据所述新增元数据,生成第一增量数据后,所述方法还包括:
检测所述磁盘中是否预先存储有与所述第一增量数据具有相同地址的第二增量数据;
当确定存储有所述第二增量数据时,删除所述第二增量数据;
当确定所述磁盘中存储的第一增量数据的总数超过第一预设阈值时,所述方法还包括:
将所述内存中的第一B+树,刷写到所述磁盘中;
删除所述磁盘中已存储的与所述第一增量数据对应的第二B+树,以及所有第一增量数据,其中,所有第一增量数据和所述第二B+树,等价于所述第一B+树;
当确定所述内存中的B+树的数量超过第二预设阈值时,筛选预设时间段内未访问的第三B+树;
当确定所述磁盘中存储的与所述第三B+树对应的第一增量数据的总数未超过第一预设阈值时,删除所述第三B+树;
当确定所述磁盘中存储的与所述第三B+树对应的第一增量数据的总数超过第一预设阈值时,将所述第三B+树刷写到磁盘中,并删除所述第三B+树,以及所述磁盘中已存储的第四B+树,以及与所述第四B+树对应的所有第一增量数据,其中,所述第四B+树,以及与所述第四B+树对应的所有第一增量数据,等价于所述第三B+树;
其中,当所述内存中的元数据丢失时,所述方法还包括:
根据预设操作指令,从所述磁盘中加载目标B+树至内存中;
检测所述磁盘中是否存在与所述目标B+树对应的增量数据;
当确定所述磁盘中未存在与所述目标B+树对应的增量数据时,将所述目标B+树作为最终的B+树;
或者,当确定所述磁盘中存在与所述目标B+树对应的增量数据时,将与所述目标B+树对应的增量数据加载到所述目标B+树中,用以恢复所述内存中最终的B+树。
2.一种数据管理装置,其特征在于,所述装置包括:
第一检测单元,用于检测内存中是否存在新增的写操作数据;
处理单元,用于根据所述新增的写操作数据,生成新增元数据;
根据所述新增元数据,确定所述新增元数据在内存中的第一B+树中的位置,将所述新增元数据增加至所述位置,更新所述第一B+树;以及,根据所述新增元数据,生成第一增量数据;
数据写入单元,用于将所述第一增量数据写入到磁盘中,其中,所述第一增量数据以日志LOG增量形式写入磁盘,所述日志LOG增量中记录所述新增元数据的位置、修改时间,以及所述新增元数据的具体内容;
所述第一检测单元,还用于检测所述磁盘中是否预先存储有与所述第一增量数据具有相同地址的第二增量数据;
当确定存储有所述第二增量数据时,删除所述第二增量数据;
所述处理单元,还用于,当确定所述磁盘中存储的第一增量数据的总数超过第一预设阈值时,将所述内存中的第一B+树,刷写到所述磁盘中;删除所述磁盘中已存储的与所述第一增量数据对应的第二B+树,以及所有第一增量数据,其中,所有第一增量数据和所述第二B+树,等价于所述第一B+树;
筛选单元,用于当确定所述内存中的B+树的数量超过第二预设阈值时,筛选预设时间段内未访问的第三B+树;
所述处理单元,还用于当确定所述磁盘中存储的与所述第三B+树对应的第一增量数据的总数未超过第一预设阈值时,删除所述第三B+树;当确定所述磁盘中存储的与所述第三B+树对应的第一增量数据的总数超过第一预设阈值时,将所述第三B+树刷写到磁盘中,并删除所述第三B+树,以及所述磁盘中已存储的第四B+树,以及与所述第四B+树对应的所有第一增量数据,其中,所述第四B+树,以及与所述第四B+树对应的所有第一增量数据,等价于所述第三B+树;
其中,当所述内存中的元数据丢失时,所述装置还包括:
加载单元,用于根据预设操作指令,从所述磁盘中加载目标B+树至内存中;
第二检测单元,用于检测所述磁盘中是否存在与所述目标B+树对应的增量数据;
所述加载单元,还用于当确定所述磁盘中未存在与所述目标B+树对应的增量数据时,将所述目标B+树作为最终的B+树;或者,当确定所述磁盘中存在与所述目标B+树对应的增量数据时,将与所述目标B+树对应的增量数据加载到所述目标B+树中,用以恢复所述内存中最终的B+树。
3.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1所述的数据管理方法的步骤。
4.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1所述的数据管理方法的步骤。
CN202111168624.0A 2021-09-30 2021-09-30 一种数据管理、b+树加载方法、装置及电子设备 Active CN113901276B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111168624.0A CN113901276B (zh) 2021-09-30 2021-09-30 一种数据管理、b+树加载方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111168624.0A CN113901276B (zh) 2021-09-30 2021-09-30 一种数据管理、b+树加载方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN113901276A CN113901276A (zh) 2022-01-07
CN113901276B true CN113901276B (zh) 2024-07-09

Family

ID=79190441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111168624.0A Active CN113901276B (zh) 2021-09-30 2021-09-30 一种数据管理、b+树加载方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113901276B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108427728A (zh) * 2018-02-13 2018-08-21 百度在线网络技术(北京)有限公司 元数据的管理方法、设备及计算机可读介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615594B (zh) * 2013-11-01 2018-04-03 阿里巴巴集团控股有限公司 一种数据更新方法及装置
CN104391802A (zh) * 2014-11-24 2015-03-04 浪潮电子信息产业股份有限公司 一种精简池元数据节点刷新一致性保护方法
CN108256088A (zh) * 2018-01-23 2018-07-06 清华大学 一种基于键值数据库的时序数据的存储方法及系统
CN109213445A (zh) * 2018-08-23 2019-01-15 郑州云海信息技术有限公司 一种存储系统元数据的管理方法、管理系统及相关装置
CN109189343B (zh) * 2018-09-14 2021-08-10 郑州云海信息技术有限公司 一种元数据落盘方法、装置、设备及计算机可读存储介质
CN109522271B (zh) * 2018-10-22 2021-05-18 郑州云海信息技术有限公司 一种b+树节点的批量插入和删除方法及装置
CN110147204B (zh) * 2019-05-22 2020-03-10 苏州浪潮智能科技有限公司 一种元数据落盘方法、装置、系统及计算机可读存储介质
CN111125447A (zh) * 2019-12-22 2020-05-08 北京浪潮数据技术有限公司 一种元数据访问方法、装置、设备及可读存储介质
US11042296B1 (en) * 2020-03-13 2021-06-22 EMC IP Holding Company LLC System and method of handling journal space in a storage cluster with multiple delta log instances
CN111459412B (zh) * 2020-03-30 2023-07-04 北京百度网讯科技有限公司 磁盘管理方法、装置以及电子设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108427728A (zh) * 2018-02-13 2018-08-21 百度在线网络技术(北京)有限公司 元数据的管理方法、设备及计算机可读介质

Also Published As

Publication number Publication date
CN113901276A (zh) 2022-01-07

Similar Documents

Publication Publication Date Title
US11301379B2 (en) Access request processing method and apparatus, and computer device
CN108319602B (zh) 数据库管理方法及数据库系统
US10303363B2 (en) System and method for data storage using log-structured merge trees
CN110018998B (zh) 一种文件管理方法、系统及电子设备和存储介质
US11030092B2 (en) Access request processing method and apparatus, and computer system
CN107967122B (zh) 一种块设备的数据写入方法、装置及介质
US10942811B2 (en) Data processing method for solid state drive
CN109213450B (zh) 一种基于闪存阵列的关联元数据删除方法、装置及设备
US20170357659A1 (en) Systems and methods for managing snapshots of a file system volume
CN114237984A (zh) 异常掉电下Trim数据的恢复方法、系统及固态硬盘
CN112799595A (zh) 数据处理方法、设备及存储介质
CN111444114B (zh) 一种非易失性内存中数据的处理方法、装置及系统
CN113901276B (zh) 一种数据管理、b+树加载方法、装置及电子设备
KR101456104B1 (ko) 비휘발성 메모리를 위한 듀얼 버퍼링 파일 관리 방법, 파일 관리 시스템 및 대용량 저장 장치
CN114780489B (zh) 一种实现分布式块存储底层gc的方法及装置
CN109325005B (zh) 一种数据处理方法和电子设备
KR100987251B1 (ko) 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법및 장치
CN110716696A (zh) 对象处理方法及相关装置
CN113419681B (zh) 存储系统重删方法、系统、装置及存储介质
CN113625938B (zh) 一种元数据存储方法及其设备
CN111897489B (zh) 数据写入方法、装置、设备及计算机可读存储介质
CN114327292A (zh) 文件管理方法、系统、电子设备和存储介质
KR20210052981A (ko) 비휘발성 메모리를 이용한 로그 구조 병합 트리 기반의 데이터 베이스의 데이터 처리 방법
KR101618999B1 (ko) 네트워크 부트 시스템
KR100939814B1 (ko) 플래시 메모리의 로그파일 관리 및 기록방법

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