CN110795042A - 一种全闪存储系统元数据写缓存刷盘方法及相关组件 - Google Patents

一种全闪存储系统元数据写缓存刷盘方法及相关组件 Download PDF

Info

Publication number
CN110795042A
CN110795042A CN201911037934.1A CN201911037934A CN110795042A CN 110795042 A CN110795042 A CN 110795042A CN 201911037934 A CN201911037934 A CN 201911037934A CN 110795042 A CN110795042 A CN 110795042A
Authority
CN
China
Prior art keywords
disk
node
metadata
linked list
target data
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.)
Withdrawn
Application number
CN201911037934.1A
Other languages
English (en)
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.)
Beijing Inspur Data Technology Co Ltd
Original Assignee
Beijing Inspur Data 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 Beijing Inspur Data Technology Co Ltd filed Critical Beijing Inspur Data Technology Co Ltd
Priority to CN201911037934.1A priority Critical patent/CN110795042A/zh
Publication of CN110795042A publication Critical patent/CN110795042A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请公开了一种全闪存储系统元数据写缓存刷盘方法,涉及全闪存储领域,该方法通过写缓存维护了需要刷盘的元数据,通过分析插入数据跟B+树的性质,只构造一个多级的带有父节点的链表,将写缓存元数据通过链表链接起来,就可以构造需要刷盘的子树,而无需构造一棵真实的内存中B+树,节约了内存,并提高了构造效率。本申请还公开了一种全闪存储系统元数据写缓存刷盘装置、设备及一种可读存储介质,具有上述有益效果。

Description

一种全闪存储系统元数据写缓存刷盘方法及相关组件
技术领域
本申请涉及全闪存储领域,特别涉及一种全闪存储系统元数据写缓存刷盘方法、装置、设备及可读存储介质。
背景技术
随着SSD技术进步,成本降低,及客户对数据访问性能的不断追求,全闪存储系统成为一种趋势。而为了适应SSD盘的特性,追加写+垃圾回收是全闪系统的一种常用实现方式,这样就会产生大量的元数据需要落盘。
目前元数据落盘一般按照传统数据刷写方式直接将元数据刷写至磁盘,而该方式落盘效率低。
因此,如何提高元数据的落盘效率,是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的是提供一种全闪存储系统元数据写缓存刷盘方法,该方法可以实现较高的元数据的落盘效率;本申请的另一目的是提供一种全闪存储系统元数据写缓存刷盘装置、设备及可读存储介质。
为解决上述技术问题,本申请提供一种全闪存储系统元数据写缓存刷盘方法,包括:
将未刷盘的目标数据写入写缓存区域;其中,所述目标数据包括对盘上元数据的操作信息;
依照磁盘元数据存储层次关系对所述目标数据进行链表构造,生成带父节点指针的链表;
确定所述目标数据对应的待更新磁盘位置;
读取目标节点;其中,所述目标节点为根据所述待更新磁盘位置确定的待更新磁盘节点;
依照所述链表对所述目标节点进行节点数据更新,得到更新后的节点;
将所述更新后的节点刷写至磁盘中。
可选地,所述依照磁盘元数据存储层次关系对所述目标数据进行链表构造,生成带父节点指针的链表,包括:
依照磁盘元数据存储层次关系将所述目标数据按照键值从小到大的顺序进行链表构造,生成带父节点指针的链表。
可选地,在所述依照磁盘元数据存储层次关系对所述目标数据进行链表构造之前,还包括:
判断所述写缓存区域中所述目标数据的数据量是否达到写入阈值;
若达到,执行所述依照磁盘元数据存储层次关系对所述目标数据进行链表构造的步骤。
可选地,依照所述链表对所述目标节点进行节点数据更新,包括:
依照所述链表依照B+树的组织方式对所述目标节点进行节点数据更新。
可选地,将未刷盘的目标数据写入写缓存区域,包括:将未刷盘数据的键值对写入写缓存区域。
可选地,将未刷盘的目标数据写入写缓存区域,包括:
将未刷盘的目标数据依照B+树的组织方式写入写缓存区域。
本申请公开一种全闪存储系统元数据写缓存刷盘装置,包括:
缓存写入单元,用于将未刷盘的目标数据写入写缓存区域;其中,所述目标数据包括对盘上元数据的操作信息;
链表构造单元,用于依照磁盘元数据存储层次关系对所述目标数据进行链表构造,生成带父节点指针的链表;
位置确定单元,用于确定所述目标数据对应的待更新磁盘位置
节点读取单元,用于读取目标节点;其中,所述目标节点为根据所述待更新磁盘位置确定的待更新磁盘节点;
数据更新单元,用于依照所述链表对所述目标节点进行节点数据更新,得到更新后的节点;
节点刷写单元,用于将所述更新后的节点刷写至磁盘中。
可选地,所述链表构造单元具体可以为:第一链表构造单元;所述第一链表构造单元用于:依照磁盘元数据存储层次关系将所述目标数据按照键值从小到大的顺序进行链表构造,生成带父节点指针的链表。
本申请公开一种全闪存储系统元数据写缓存刷盘设备,包括:
存储器,用于存储程序;
处理器,用于执行所述程序时实现所述全闪存储系统元数据写缓存刷盘方法的步骤。
本申请公开一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现所述全闪存储系统元数据写缓存刷盘方法的步骤。
本申请所提供的全闪存储系统元数据写缓存刷盘方法,通过写缓存维护了需要刷盘的元数据,通过分析插入数据跟B+树的性质,只构造一个多级的带有父节点的链表,将写缓存元数据通过链表链接起来,就可以构造需要刷盘的子树,而无需构造一棵真实的内存中B+树,节约了内存,并提高了构造效率。
本申请还公开了一种全闪存储系统元数据写缓存刷盘装置、设备及一种可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的全闪存储系统元数据写缓存刷盘方法的流程图;
图2为本申请实施例提供的写缓存区域中存储的一种刷盘树的具体构造流程图;
图3为本申请实施例提供的待添加元数据与原始B+树示意图;
图4为本申请实施例提供的确定目标节点示意图;
图5为本申请实施例提供的更新后目标节点示意图;
图6为本申请实施例提供的更新后盘上的B+树示意图;
图7为本申请实施例提供的全闪存储系统元数据写缓存刷盘装置的结构框图;
图8为本申请实施例提供的全闪存储系统元数据写缓存刷盘设备的结构框图;
图9为本申请实施例提供的全闪存储系统元数据写缓存刷盘设备的结构示意图。
具体实施方式
本申请的核心是提供一种全闪存储系统元数据写缓存刷盘方法,该方法可以实现较高的元数据的落盘效率;本申请的另一核心是提供一种全闪存储系统元数据写缓存刷盘装置、设备及可读存储介质。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提出了一种全闪存储系统元数据写缓存刷盘方法,请参考图1,图1为本实施例提供的全闪存储系统元数据写缓存刷盘方法的流程图;该方法可以包括:
步骤s110、将未刷盘的目标数据写入写缓存区域;
如果没有缓存,由于B+树是分层结构,有一个元数据后就直接找到磁盘节点以及对应的所有层级节点作插入删除等操作,该操作的执行过程会很慢。本申请中预先设置写缓存区域,将未刷盘的目标数据写入该区域,目标数据包括对盘上元数据的操作信息;元数据的操作信息比如对指定数据的插入、删除或修改等操作信息。确定未刷盘的目标数据后写入写缓存区域,则写缓存区域中可以同时包含多个元数据落盘操作。
可选地,未刷盘的目标数据可以以键值对(key-val)的形式写入写缓存区域。以键值对的形式存储可以便于数据的查找以及管理,当然也可以以其他数据存储形式,在此不做限定。
另外,对于目标数据的写入方式不做限定,可选地,可以将未刷盘的目标数据依照B+树的组织方式写入写缓存区域。指定缓存写入方式按照B+树的组织方式不仅可以便于目标数据的查询,而且便于后续元数据的操作。
以一种以B+树的组织方式将未刷盘的key-val写入写缓存区域的实现方式为例,写缓存的B+树只存放未刷盘的key-val,刷盘时,我们需要将写缓存中的每个key-val,找到盘上B+树各层对应的节点,做插入操作,然后刷盘即可完成整体写缓存刷盘。
步骤s120、依照磁盘元数据存储层次关系对目标数据进行链表构造,生成带父节点指针的链表;
链表的作用是把B+树的组织结构用一个更简洁的方法给描述出来,维护原有磁盘上B+树的层次关系,没有做元数据操作的部分我们就无需读取,只是把需要操作的部分从根到叶子节点的整串节点读下来,在它是一个很小的子集的情况下通过链表的形式描述可以节省大量存储空间,同时减少读的次数。原有B+树的层数与链表的层数相同,链表的长度就是需要修改的节点的长度,链表上挂的都是需要修改的节点。通过构造链表进行写缓存刷盘时,刷盘过程无须构造一棵真实的B+树,只需要将本次需要刷盘的节点按一定方式组织起来,能够快速找到已更新过的节点,节约内存并提高构造效率。。
当按照有序方式(比如按照key从小到大的顺序)去将一批key-val插入B+树时,可以避免排序或者B+树遍历,加快刷盘速度。写缓存的B+树,如果将叶子节点通过链表链接起来,构造一种带父节点指针的链表,可以得到有序的序列,无需重新排序。分析插入数据跟B+树的性质,只构造一棵内存中带有父节点的多级链表。因此,优选地,依照磁盘元数据存储层次关系对目标数据进行链表构造,生成带父节点指针的链表的过程具体可以为:依照磁盘元数据存储层次关系将目标数据按照键值从小到大的顺序进行链表构造,生成带父节点指针的链表。
当磁盘元数据按照B+树进行数据组织时,可以依照磁盘上B+树层次关系进行链表构造,该情况下,写缓存区域中存储的一种刷盘树的具体构造步骤如图2所示,主要包括以下步骤:
准备刷盘链表头;
设置当前key-val(与key-v同)索引,令指针i=0;
判断i是否小于key-val的总数;
若i小于key-val的总数,令k,v=k-v[i],设置当前操作的node_id为root_id,设置当前层数l=0,判断l是否小于盘上B+树层数LEVEL;若l小于盘上B+树层数LEVEL,判断链表l尾部盘上节点id!是否等于node_id;若链表l尾部盘上节点id!等于node_id,令node为从读缓存读取node_id节点,准备新的链表节点n,其中,n指向的盘上节点为node,n的parent为上层链表的tail,将n添加到list[l]的尾部;并将k,v插入node,返回是否split,其中,n指向父节点:n=list[i].tail->parent;判断n&&split;若n&&split时,令split=处理分裂导致的父节点插入,其中,n指向父节点:n=n->parent,并跳转至判断n&&split的步骤;而当n&&split不成立时,另node_id=查找k在node中的插入位置;处理下一层:另l+=1,并跳转判断至l是否小于盘上B+树层数LEVEL的步骤;
当l不小于盘上B+树层数LEVEL时,直接处理下一对k-v:令i+=1;
当i不小于k-v总数时,结束当前流程。
本实施例中仅以该种组织方式为例进行介绍,其它组织方式下的链表构造方式均可参照本实施例的介绍,在此不再赘述。
步骤s130、确定目标数据对应的待更新磁盘位置;
步骤s140、读取目标节点;
目标节点为根据待更新磁盘位置确定的待更新磁盘节点,在确定待更新的磁盘位置后,需要确定待改变的元数据存储节点。由于元数据存储方式的差异性以及元数据操作类型的差异性,确定待更新磁盘节点可以根据元数据存储方式以及元数据操作类型进一步确定。以磁盘元数据以B+树存储为例,若当前目标数据指示元数据添加操作时,需要首先判断待更新磁盘位置是否存在空闲区域,以及添加数据后是否满足B+树冗余存储规范,若待更新磁盘位置存在空闲区域,且添加数据后仍旧满足B+树冗余存储规范,则可以将待更新磁盘位置的节点空间作为目标节点;而若待更新磁盘位置下的节点可能不存在空闲区域、且节点数据以有序排列时当前数据不属于该节点存储范围时可能需要确定待更新磁盘位置下相邻节点作为目标节点,比如前一个节点或者后一个节点等。
步骤s150、依照链表对目标节点进行节点数据更新,得到更新后的节点;
依照链表对目标节点进行节点数据更新的过程需要找到所有要刷盘的节点以及维持他们的层级关系,以磁盘数据以B+树存储为例,当然,最简单的实现方式是构造与磁盘中存储的B+树完全相同的B+树,构造一个在内存中的B+树,该方式下由于B+树里的节点key-v(键值对)数据都已经使用了,已经存储了在磁盘上的一些相关信息,上层的存放的是下层在磁盘上的地址,因此需要在构造的内存B+树外添加一层在内存中的组织结果描述信息。
根据目标数据对目标节点进行节点数据更新,包括:
根据目标数据依照B+树的组织方式对目标节点进行节点数据更新。
本实施例中对磁盘中的元数据的数据采用B+树进行数据组织,采用B+树进行数据组织相对于其他组织方式可以实现方便快速查询,便于节点的查找,磁盘中元数据可以采用全量的B+树。当然,也可以参照相关元数据存储方法采用其他的数据组织方式,在此不做限定。
步骤s150、将更新后的节点刷写至磁盘中。
将更新后的节点刷写至磁盘中的具体实现方式可以参照相关技术的介绍,在此不再赘述。
基于上述技术方案,本实施例所提供的全闪存储系统元数据写缓存刷盘方法,通过写缓存维护了需要刷盘的元数据,通过分析插入数据跟B+树的性质,只构造一个多级的带有父节点的链表,将写缓存元数据通过链表链接起来,就可以构造需要刷盘的子树,而无需构造一棵真实的内存中B+树,节约了内存,并提高了构造效率。
为提升大量元数据下的系统整体刷盘效率,在依照磁盘元数据存储层次关系对目标数据进行链表构造之前,可以进一步判断写缓存区域中目标数据的数据量是否达到写入阈值;若达到,执行依照磁盘元数据存储层次关系对目标数据进行链表构造的步骤。若未达到,本实施例对该情况下的处理方式不做限定,可以跳转至判断写缓存区域中目标数据的数据量是否达到写入阈值的步骤进行持续判断等。
从缓存上往磁盘写,积攒若干个元数据落盘操作(比如攒1000个key-v操作),统一去做刷盘,可以减少操作节点的次数。以磁盘元数据以B+树存储为例,比如一个四层的B+树,插入一个key-v后,从根节点到叶子节点需要相应修改四层数据,而若攒到1000个节点key-v操作,这1000个节点的根节点是相同的节点,积攒1000个key-v操作统一去做刷盘时仅仅对于该根节点,就节省了999次修改操作,还有第二层和第三层中相同的节点,则总计简化的修改操作会远远大于999次。因此通过写缓存,集中一批元数据操作去插入一颗B+树,可以减少有共同的中间节点的节点操作,减少大量多余的操作,实现数据的快速刷写。
每个目标数据中均包含对盘上元数据的操作信息,比如需要在某个磁盘位置添加某个元数据,或者将位于某个磁盘位置的元数据删除等。设置写缓存区域,将未刷盘的目标数据写入写缓存区域,当写缓存区域中目标数据的数据量达到写入阈值时,积攒若干个元数据操作统一去做刷盘,确定磁盘上对应的目标节点,根据目标数据对目标节点进行节点数据更新,从缓存向磁盘写入数据,可以减少有共同的中间节点的节点操作次数,减少大量多余的节点操作,实现数据的快速刷写。
为加深对上述实施例中具体实现方式的理解,本实施例中以B+树的元数据组织方式及B+树的元数据写缓存组织方式下,通过链表构造刷盘树为例。
图3所示为待添加元数据与原始B+树示意图,比如有22,55,66三个新的key-val需要插入,而当前盘上B+树如左上所示,当按有序顺序插入时,后面要插入的Key或者跟上次插入的key在同一个节点,或者在后面的节点,不可能在前面的节点;且上次插入的key-v肯定在每个链表的尾部。因此,相比构造一棵B+树,缓存B+树叶子节点用链表链接起来,以得到有序的key-val序列,避免排序或者B+树遍历,且构造链表可以节约内存,且不用每次查找位置,只需要找最后一个位置看是否是需要的节点即可。构造一种带父节点的指针的链表维护需要刷盘的B+树节点,而不用构造真实的B+树就可以满足刷盘的需求,链表构造过程可以参照图2所示,在此不再赘述。
图4所示为确定目标节点示意图,为插入22,我们依次从根节点往下找,根据B+树的通用操作,从根(A)到叶子(G)每层二分搜索,找到了A,C,G三个节点,然后将22插入G,因为我们采用追加写的方式,G改变时会找一个新的位置写入这块数据,A是C的父亲,C是G的父亲。A记录了C的地址,C记录了G的地址,对于追加写,G一旦改变,会找一个新的位置写入,即G的地址发生了变化,所以C需要修改,同理A需要修改。图5所示为更新后目标节点示意图。
当所有节点插入完成后,按层(可以从上到下,也可以从下到上)依次刷盘,最终更新后盘上的B+树如图6所示。
本实施例提供的利用元数据写缓存提高元数据刷盘性能的方法,元数据写缓存中有B+树维护了需要刷盘的key-val数据,将写缓存B+树的叶子节点通过链表链接起来,这样可以得到有序的key-val序列。利用这些有序key-val,我们只需要构造一个多级的带有父节点的链表,而不是构造一棵真实的内存中B+树就可以构造需要刷盘的子树,从而实现了节约内存并提高构造效率的目的。
请参考图7,图7为本实施例提供的全闪存储系统元数据写缓存刷盘装置的结构框图;该装置主要包括:缓存写入单元210、链表构造单元220、位置确定单元230、节点读取单元240、数据更新单元250以及节点刷写单元260。本实施例提供的全闪存储系统元数据写缓存刷盘装置可与上述全闪存储系统元数据写缓存刷盘方法可相互对照。
其中,缓存写入单元210主要用于将未刷盘的目标数据写入写缓存区域;其中,目标数据包括对盘上元数据的操作信息;
链表构造单元220主要用于依照磁盘元数据存储层次关系对目标数据进行链表构造,生成带父节点指针的链表;
位置确定单元230主要用于确定目标数据对应的待更新磁盘位置;
节点读取单元240主要用于读取目标节点;其中,目标节点为根据待更新磁盘位置确定的待更新磁盘节点;
数据更新单元250主要用于依照链表对目标节点进行节点数据更新,得到更新后的节点;
节点刷写单元260主要用于将更新后的节点刷写至磁盘中。
可选地,链表构造单元具体可以为:第一链表构造单元;第一链表构造单元用于:依照磁盘元数据存储层次关系将目标数据按照键值从小到大的顺序进行链表构造,生成带父节点指针的链表。
可选地,本实施例提供的全闪存储系统元数据写缓存刷盘装置中可以进一步包括:阈值判断单元,阈值判断单元连接与缓存写入单元的输出端,用于在依照磁盘元数据存储层次关系对目标数据进行链表构造之前,判断写缓存区域中目标数据的数据量是否达到写入阈值;若达到,触发链表构造单元。
可选地,数据更新单元具体可以为B+树数据更新单元,B+树数据更新单元用于:依照链表依照B+树的组织方式对目标节点进行节点数据更新。
可选地,缓存写入单元具体可以为键值对写入单元,键值对写入单元用于:将未刷盘数据的键值对写入写缓存区域。
可选地,缓存写入单元具体可以为B+树缓存写入单元,B+树缓存写入单元用于:将未刷盘的目标数据依照B+树的组织方式写入写缓存区域。
本实施例提供的全闪存储系统元数据写缓存刷盘装置可以保证较高的元数据的落盘效率。
请参考图8,图8为本实施例提供的全闪存储系统元数据写缓存刷盘设备的结构框图;该设备可以包括:存储器300以及处理器310。全闪存储系统元数据写缓存刷盘设备可参照上述全闪存储系统元数据写缓存刷盘方法的介绍。
其中,存储器300主要用于存储程序;
处理器310主要用于执行程序时实现上述全闪存储系统元数据写缓存刷盘方法的步骤。
请参考图9,为本实施例提供的全闪存储系统元数据写缓存刷盘设备的结构示意图,该管理设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在管理设备301上执行存储介质330中的一系列指令操作。
管理设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上面图1所描述的全闪存储系统元数据写缓存刷盘方法中的步骤可以由本实施例全闪存储系统元数据写缓存刷盘设备的结构实现。
本实施例公开了一种可读存储介质,可读存储介质上存储有程序,程序被处理器执行时实现全闪存储系统元数据写缓存刷盘方法的步骤,其中,全闪存储系统元数据写缓存刷盘方法可参照图1对应的实施例,在此不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的全闪存储系统元数据写缓存刷盘方法、装置、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (10)

1.一种全闪存储系统元数据写缓存刷盘方法,其特征在于,包括:
将未刷盘的目标数据写入写缓存区域;其中,所述目标数据包括对盘上元数据的操作信息;
依照磁盘元数据存储层次关系对所述目标数据进行链表构造,生成带父节点指针的链表;
确定所述目标数据对应的待更新磁盘位置;
读取目标节点;其中,所述目标节点为根据所述待更新磁盘位置确定的待更新磁盘节点;
依照所述链表对所述目标节点进行节点数据更新,得到更新后的节点;
将所述更新后的节点刷写至磁盘中。
2.如权利要求1所述的全闪存储系统元数据写缓存刷盘方法,其特征在于,所述依照磁盘元数据存储层次关系对所述目标数据进行链表构造,生成带父节点指针的链表,包括:
依照磁盘元数据存储层次关系将所述目标数据按照键值从小到大的顺序进行链表构造,生成带父节点指针的链表。
3.如权利要求1所述的全闪存储系统元数据写缓存刷盘方法,其特征在于,在所述依照磁盘元数据存储层次关系对所述目标数据进行链表构造之前,还包括:
判断所述写缓存区域中所述目标数据的数据量是否达到写入阈值;
若达到,执行所述依照磁盘元数据存储层次关系对所述目标数据进行链表构造的步骤。
4.如权利要求1所述的全闪存储系统元数据写缓存刷盘方法,其特征在于,依照所述链表对所述目标节点进行节点数据更新,包括:
依照所述链表依照B+树的组织方式对所述目标节点进行节点数据更新。
5.如权利要求1所述的全闪存储系统元数据写缓存刷盘方法,其特征在于,将未刷盘的目标数据写入写缓存区域,包括:将未刷盘数据的键值对写入写缓存区域。
6.如权利要求1所述的全闪存储系统元数据写缓存刷盘方法,其特征在于,将未刷盘的目标数据写入写缓存区域,包括:
将未刷盘的目标数据依照B+树的组织方式写入写缓存区域。
7.一种全闪存储系统元数据写缓存刷盘装置,其特征在于,包括:
缓存写入单元,用于将未刷盘的目标数据写入写缓存区域;其中,所述目标数据包括对盘上元数据的操作信息;
链表构造单元,用于依照磁盘元数据存储层次关系对所述目标数据进行链表构造,生成带父节点指针的链表;
位置确定单元,用于确定所述目标数据对应的待更新磁盘位置;
节点读取单元,用于读取目标节点;其中,所述目标节点为根据所述待更新磁盘位置确定的待更新磁盘节点;
数据更新单元,用于依照所述链表对所述目标节点进行节点数据更新,得到更新后的节点;
节点刷写单元,用于将所述更新后的节点刷写至磁盘中。
8.如权利要求7所述的全闪存储系统元数据写缓存刷盘装置,其特征在于,所述链表构造单元具体可以为:第一链表构造单元;所述第一链表构造单元用于:依照磁盘元数据存储层次关系将所述目标数据按照键值从小到大的顺序进行链表构造,生成带父节点指针的链表。
9.一种全闪存储系统元数据写缓存刷盘设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述程序时实现如权利要求1至6任一项所述全闪存储系统元数据写缓存刷盘方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至6任一项所述全闪存储系统元数据写缓存刷盘方法的步骤。
CN201911037934.1A 2019-10-29 2019-10-29 一种全闪存储系统元数据写缓存刷盘方法及相关组件 Withdrawn CN110795042A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911037934.1A CN110795042A (zh) 2019-10-29 2019-10-29 一种全闪存储系统元数据写缓存刷盘方法及相关组件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911037934.1A CN110795042A (zh) 2019-10-29 2019-10-29 一种全闪存储系统元数据写缓存刷盘方法及相关组件

Publications (1)

Publication Number Publication Date
CN110795042A true CN110795042A (zh) 2020-02-14

Family

ID=69441784

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911037934.1A Withdrawn CN110795042A (zh) 2019-10-29 2019-10-29 一种全闪存储系统元数据写缓存刷盘方法及相关组件

Country Status (1)

Country Link
CN (1) CN110795042A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468080A (zh) * 2021-06-10 2021-10-01 山东英信计算机技术有限公司 一种全闪元数据的缓存方法、系统及相关装置
CN115904255A (zh) * 2023-01-19 2023-04-04 苏州浪潮智能科技有限公司 一种数据请求方法、装置、设备及存储介质
WO2023138306A1 (zh) * 2022-01-24 2023-07-27 苏州浪潮智能科技有限公司 应用于全闪存存储的缓存方法和装置、设备及介质
CN116501267A (zh) * 2023-06-27 2023-07-28 苏州浪潮智能科技有限公司 一种独立冗余磁盘阵列卡控制方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647151A (zh) * 2018-04-26 2018-10-12 郑州云海信息技术有限公司 一种全闪系统元数据落盘方法、装置、设备及存储介质
CN109522243A (zh) * 2018-10-22 2019-03-26 郑州云海信息技术有限公司 一种全闪存储中元数据缓存管理方法、装置及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647151A (zh) * 2018-04-26 2018-10-12 郑州云海信息技术有限公司 一种全闪系统元数据落盘方法、装置、设备及存储介质
CN109522243A (zh) * 2018-10-22 2019-03-26 郑州云海信息技术有限公司 一种全闪存储中元数据缓存管理方法、装置及存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468080A (zh) * 2021-06-10 2021-10-01 山东英信计算机技术有限公司 一种全闪元数据的缓存方法、系统及相关装置
CN113468080B (zh) * 2021-06-10 2024-02-09 山东英信计算机技术有限公司 一种全闪元数据的缓存方法、系统及相关装置
WO2023138306A1 (zh) * 2022-01-24 2023-07-27 苏州浪潮智能科技有限公司 应用于全闪存存储的缓存方法和装置、设备及介质
CN115904255A (zh) * 2023-01-19 2023-04-04 苏州浪潮智能科技有限公司 一种数据请求方法、装置、设备及存储介质
CN116501267A (zh) * 2023-06-27 2023-07-28 苏州浪潮智能科技有限公司 一种独立冗余磁盘阵列卡控制方法和装置
CN116501267B (zh) * 2023-06-27 2023-09-29 苏州浪潮智能科技有限公司 一种独立冗余磁盘阵列卡控制方法和装置

Similar Documents

Publication Publication Date Title
CN110795042A (zh) 一种全闪存储系统元数据写缓存刷盘方法及相关组件
CN108009008B (zh) 数据处理方法和系统、电子设备
US9575976B2 (en) Methods and apparatuses to optimize updates in a file system based on birth time
US8229968B2 (en) Data caching for distributed execution computing
CN105117415B (zh) 一种优化的ssd数据更新方法
CN110147204B (zh) 一种元数据落盘方法、装置、系统及计算机可读存储介质
US9984121B2 (en) Database statistics based on transaction state
CN108319625B (zh) 文件合并方法和装置
CN106569963A (zh) 缓存方法和装置
CN112115684A (zh) 高级数据库解压缩
CN111400306A (zh) 基于rdma与非易失性内存的基数树访问系统
JP2004524632A (ja) 記憶データを再編成するシステム及び方法
CN115687304A (zh) 一种Flink状态存储优化方法及装置
CN115269631A (zh) 数据查询方法、数据查询系统、设备及存储介质
CN112732725B (zh) 基于nvm混合内存的自适应前缀树构建方法及其系统、介质
CN117235088B (zh) 一种存储系统的缓存更新方法、装置、设备、介质及平台
CN111126619B (zh) 一种机器学习方法与装置
CN116627345A (zh) 应用于海量value键值对的高性能KV缓存方法及装置
CN116204130A (zh) 一种键值存储系统和键值存储系统的管理方法
CN113467997B (zh) 一种数据恢复方法、装置、移动设备和存储介质
CN113204520B (zh) 一种基于分布式文件系统的遥感数据快速并发读写方法
CN114896250A (zh) 一种键值分离的键值存储引擎索引优化方法及装置
Park Flash-Aware Cost Model for Embedded Database Query Optimizer.
US10437802B2 (en) Single IO operation integer-value database
CN114168558B (zh) 一种通过重构文件记录优化ntfs文件系统速度的方法

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20200214