CN112597074B - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN112597074B CN112597074B CN202011527617.0A CN202011527617A CN112597074B CN 112597074 B CN112597074 B CN 112597074B CN 202011527617 A CN202011527617 A CN 202011527617A CN 112597074 B CN112597074 B CN 112597074B
- Authority
- CN
- China
- Prior art keywords
- value
- metadata
- lba
- identifier
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据处理方法及装置,所述方法应用于存储系统,所述方法包括:接收主机发送的第一操作指令,所述第一操作指令包括用户对象的第一逻辑区块地址LBA以及第一快照序列号;根据所述第一LBA以及第一快照序列号,查找元数据缓存,所述元数据缓存包括至少一个元数据值,每个元数据值包括实际写入的ROW对象的第二LBA、第一标识以及第二标识;当从所述元数据缓存中获取到与所述第一LBA以及第一快照序列号对应的第一元数据值时,根据所述第一操作指令的类型,识别所述第一标识的值或者所述第二标识的值;根据识别结果,对所述第二LBA中存储的数据进行对应处理。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据处理方法及装置。
背景技术
目前,高性能存储介质固态驱动器(英文:Solid State Drive,简称:SSD)已大规模商用。在分布式存储领域,基于全SSD的分布式存储系统也陆续被厂商推出。在分布式全闪存系统中,采用写时重定向(英文:Redirect-on-write,简称:ROW)的方式写入数据将更好发挥SSD的性能优势,同时,ROW对重删、压缩、快照等特性也可提供更好的支持。
ROW快照即无损快照,与传统的写时拷贝(英文:Copy-On-Write,简称:COW)快照相比,其对主机业务影响极小。当前的ROW快照均是通过快照序列号实现。即每执行一次快照,则递增快照的序列号。主机向存储系统写入数据时,携带最新的快照序列号,写入数据之后,将快照的序列号一并记录至元数据中。
但是,ROW快照也会带来一些问题,即元数据的存储量较太,且每次读数据时,均要先查询元数据,也导致读时延增大。为了解决前述问题,多数厂商都为元数据设置了缓存,而缓存的命中率则直接影响主机的读性能。
当前,元数据的缓存方式主要通过键-值(KEY-VALUE)数据库实现。KEY由用户对象、用户对象的逻辑区块地址(英文:Logical Block Address,简称:LBA)以及快照序列号组成,VALUE则是实际写入的ROW对象和实际写入的ROW对象的LBA。主机读取数据时,通过用户对象和用户对象的LBA查找到对应的元数据,并从元数据中获取实际写入的ROW对象和实际写入的ROW对象的LBA,再下盘读才能读到相应的数据。
在没有ROW快照的场景下,上述元数据的缓存方式可解决前述问题,但,当存在ROW快照的多个序列号之后,上述元数据的缓存方案也会带来一些问题。在存在ROW快照的场景下,主机读数据时,需要读取小于等于输入的快照序列号且为当前最大有效的快照序列号对应的元数据。
如图1所示,图1为对源数据卷执行ROW快照示意图。图1中,在对源数据集执行ROW快照期间夹杂了主机写入数据(图中具有网格的区域为主机下发写请求的区域)的过程。假设用户对1个用户对象执行ROW快照并执行写操作,经过多次操作之后,当前的快照序列号为4,也即是,存储系统为该用户对象执行了4次ROW快照。
若用户现在需读取该用户对象LBA1中存储的最新数据,则主机下发关于LAB1的读请求,该读请求携带的快照序列号为4。但,如图1所示,实际写入的ROW对象的LAB1仅在快照序列号为1的时候写入了数据,即使写入缓存也存储的是快照序列号1的元数据,序列号为4的元数据无法在缓存中查询到,并且也不能在缓存中确定快照序列号为1的元数据就是快照序列号为4的元数据。因此,需要从磁盘中读取元数据的存储引擎方可读取该对象LBA1中存储的最新元数据。
在实际应用中,ROW快照多用作数据备份,并且主机读取数据时,多是读取原对象,但读请求携带的均是最新的快照序列号。因此,以现有的缓存方案,缓存命中率非常低。
发明内容
有鉴于此,本申请提供了一种数据处理方法及装置,用以解决现有的缓存方案中,缓存命中率非常低的问题。
第一方面,本申请提供了一种数据处理方法,所述方法应用于存储系统,所述方法包括:
接收主机发送的第一操作指令,所述第一操作指令包括用户对象的第一逻辑区块地址LBA以及第一快照序列号;
根据所述第一LBA以及第一快照序列号,查找元数据缓存,所述元数据缓存包括至少一个元数据值,每个元数据值包括实际写入的ROW对象的第二LBA、第一标识以及第二标识;
当从所述元数据缓存中获取到与所述第一LBA以及第一快照序列号对应的第一元数据值时,根据所述第一操作指令的类型,识别所述第一标识的值或者所述第二标识的值;
根据识别结果,对所述第二LBA中存储的数据进行对应处理。
第二方面,本申请提供了一种数据处理装置,所述装置应用于存储系统,所述装置包括:
接收单元,用于接收主机发送的第一操作指令,所述第一操作指令包括用户对象的第一逻辑区块地址LBA以及第一快照序列号;
查找单元,用于根据所述第一LBA以及第一快照序列号,查找元数据缓存,所述元数据缓存包括至少一个元数据值,每个元数据值包括实际写入的ROW对象的第二LBA、第一标识以及第二标识;
识别单元,用于当从所述元数据缓存中获取到与所述第一LBA以及第一快照序列号对应的第一元数据值时,根据所述第一操作指令的类型,识别所述第一标识的值或者所述第二标识的值;
处理单元,用于根据识别结果,对所述第二LBA中存储的数据进行对应处理。
因此,通过应用本申请提供的数据处理方法及装置,存储系统接收主机发送的第一操作指令,该第一操作指令包括用户对象的第一逻辑区块地址LBA以及第一快照序列号。根据第一LBA以及第一快照序列号,存储系统查找元数据缓存,该元数据缓存包括至少一个元数据值,每个元数据值包括实际写入的ROW对象的第二LBA、第一标识以及第二标识。当从元数据缓存中获取到与第一LBA以及第一快照序列号对应的第一元数据值时,根据第一操作指令的类型,存储系统识别第一标识的值或者第二标识的值。根据识别结果,存储系统对第二LBA中存储的数据进行对应处理。
如此,解决现有的缓存方案中,缓存命中率非常低的问题。在保证元数据一致性的基础上,大幅提升ROW快照序列号场景下的元数据命中率。
附图说明
图1为对源数据卷执行ROW快照示意图;
图2为本申请实施例提供的数据处理方法的流程图;
图3为本申请实施例提供的数据处理装置结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本申请相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面对本申请实施例提供的数据处理方法进行详细地说明。参见图2,图2为本申请实施例提供的数据处理方法的流程图。该方法应用于存储系统,本申请实施例提供的数据处理方法可包括如下所示步骤。
步骤210、接收主机发送的第一操作指令,所述第一操作指令包括用户对象的第一逻辑区块地址LBA以及第一快照序列号。
具体地,主机预对存储系统执行各类型操作。主机生成第一操作指令,该第一操作指令包括用户对象的第一LBA以及第一快照序列号。
其中,用户对象可具体为文件、卷、块等存储单元。第一快照序列号可为当前快照序列号中序列号值最大的快照序列号。例如,存储系统执行ROW快照,每执行一次ROW快照,则递增一次快照序列号。或者,第一快照序列号也可为执行某一次ROW快照的快照序列号。
存储系统接收主机发送的第一操作指令。在本申请实施例中,第一操作指令包括读操作指令,即主机读取存储系统中存储的数据。第一操作指令还包括删除操作指令,即主机删除存储系统在存储的数据。
步骤220、根据所述第一LBA以及第一快照序列号,查找元数据缓存,所述元数据缓存包括至少一个元数据值,每个元数据值包括实际写入的ROW对象的第二LBA、第一标识(tag1)以及第二标识(tag2)。
具体地,存储系统接收主机发送的第一操作指令后,从中获取第一LBA以及第一快照序列号。
根据第一LAB以及第一快照序列号,存储系统查找元数据缓存。元数据缓存通过KEY-VALUE数据库实现。键(KEY,也可称为元数据键)包括用户对象、用户对象的第一LBA以及快照序列号。值(VALUE,也可称为元数据值)包括实际写入的ROW对象和实际写入的ROW对象的第二LBA。
进一步地,在本申请实施例中,元数据值还包括第一标识以及第二标识。第一标识的值用于表示该元数据值是否属于原始对象;第二标识的值用于表示该元数据值是否在磁盘中存储。
第一标识、第二标识在缓存中可通过2个bit表示,与现有的元数据缓存相比不会增加缓存。
如图1所示,图1中的每个格子标识一个存储区域,最下方线段(也可称为X轴)指示LAB,右侧线段(也可称为右侧Y轴)指示ROW快照次数(snap),左侧线段(也可称为左侧Y轴)为快照序列号(seq)。在图1中,LAB个数为LBA1-LBA8,ROW快照次数为snap1-snap5,快照序列号为seq0-seq4。其中,具有斜线标记的格子表示该区域被执行过写操作指令。
前述原始对象具体是指某次执行ROW快照并在LBA中写入数据后,后续执行多次ROW快照时并未对LBA中的数据进行修改。在图1中,KEY(LBA1,seq1)指示的区域表示写入LBA1中的数据为原始对象,因为,在其后续的多次ROW快照过程中,并未对LBA1中的数据进行写入或者修改。
为了更好的描述本申请实施例,后面存入元数据缓存的描述格式均为(LBA,seq,tag1,tag2)。
步骤230、当从所述元数据缓存中获取到与所述第一LBA以及第一快照序列号对应的第一元数据值时,根据所述第一操作指令的类型,识别所述第一标识的值或者所述第二标识的值。
具体地,根据步骤220的描述,存储系统根据第一LAB以及第一快照序列号,存储系统查找元数据缓存。
当从元数据缓存中获取到与第一LBA以及第一快照序列号对应的第一元数据值时,存储系统根据第一操作指令的类型,识别第一标识的值或者第二标识的值。
在一个例子中,如图1所示,假设在执行第二次ROW快照时,对LBA1执行了写操作指令,且记录了元数据缓存,该元数据缓存为(LBA1,seq1,1,1)。
此时,若存储系统接收到的第一操作指令包括的第一LBA为LBA1、第一快照序列号为seq1时,存储系统获取对应的元数据值。同时,存储系统根据第一操作指令的类型,识别第一标识的值,或者第二标识的值。
进一步地,当第一操作指令为读操作指令时,存储系统识别第一标识的值;当第一操作指令为删除操作指令时,存储系统识别第二标识的值。
需要说明的是,存储系统接收到第一操作指令后,在查找元数据缓存的过程中,存储系统可根据第一LBA,从元数据缓存中获取与第一LBA对应的全部元数据值。
在一个例子中,如图1所示,存储系统在执行第一次ROW快照、第二次ROW快照、第三次ROW快照时,对LBA2执行了三次写操作指令,且每次均记录了元数据缓存。若第一操作指令包括的第一LBA为LBA2时,无论第一快照序列号为哪次ROW快照的序列号,存储系统将从元数据缓存中,获取LBA2对应的全部元数据缓存,也即是获取三个元数据缓存。
在另一个例子中,如图1所示,存储系统在执行第二次ROW快照时,对LBA1执行了一次写操作指令,且记录了元数据缓存。若第一操作指令包括的第一LBA为LBA1时,无论第一快照序列号为哪次ROW快照的序列号,存储系统将从元数据缓存中,获取一个元数据缓存。
当然,若元数据缓存中存储了与第一LBA以及第一快照序列号对应的第一元数据值,存储系统也可获取该对应的第一元数据值。
步骤240、根据识别结果,对所述第二LBA中存储的数据进行对应处理。
具体地,根据步骤230的描述,根据第一操作指令的类型,存储系统识别第一标识的值,或者第二标识的值。存储系统根据识别结果,对第二LBA中存储的数据进行对应处理。
进一步地,当第一操作指令为读操作指令时,存储系统识别第一标识的值。若第一标识的值为1,则存储系统确定第一元数据值属于原始对象。存储系统直接从第二LBA中读取存储的数据,并向主机反馈数据。
在一个例子中,如图1所示,假设在执行第二次ROW快照时,对LBA1执行了写操作指令,且记录了元数据缓存,该元数据缓存为(LBA1,seq1,1,1)。存储系统获取该元数据值后,识别第一标识的值为1。存储系统确定该LBA1存储的数据属于原始对象。存储系统直接从LBA1读取存储的数据,并向主机反馈数据。
更进一步地,当第一操作指令为删除操作指令时,存储系统识别第二标识的值。当第二标识的值为0时,存储系统确定第二LBA中未存储实际写入的数据。存储系统可直接删除第一元数据值。
在另一个例子中,如图1所示,假设在执行第二次ROW快照时,读取了LBA3中存储的数据,且记录了元数据缓存,该元数据缓存为(LBA3,seq1,0,0)。存储系统获取该元数据值后,识别第二标识的值为0。存储系统确定该LBA3中未存储实际写入的数据。存储系统删除该元数据值即可,无需在磁盘中执行删除操作。
因此,通过应用本申请提供的数据处理方法及装置,存储系统接收主机发送的第一操作指令,该第一操作指令包括用户对象的第一逻辑区块地址LBA以及第一快照序列号。根据第一LBA以及第一快照序列号,存储系统查找元数据缓存,该元数据缓存包括至少一个元数据值,每个元数据值包括实际写入的ROW对象的第二LBA、第一标识以及第二标识。当从元数据缓存中获取到与第一LBA以及第一快照序列号对应的第一元数据值时,根据第一操作指令的类型,存储系统识别第一标识的值或者第二标识的值。根据识别结果,存储系统对第二LBA中存储的数据进行对应处理。
如此,解决现有的缓存方案中,缓存命中率非常低的问题。在保证元数据一致性的基础上,大幅提升ROW快照序列号场景下的元数据命中率。
可选地,在本申请实施例中,存储系统在查找元数据缓存的过程中,还包括下述多种情况,下面分别进行说明。
在一种情况下,当从元数据缓存中未获取到与第一LBA以及第一快照序列号对应的第一元数据值,且获取到与第一LBA对应的一个第二元数据值时,存储系统判断第一标识的值是否为1。若为1,则存储系统确定第二元数据值属于原始对象。存储系统从第二LBA中读取存储的数据,并向主机反馈数据。
在一个例子中,如图1所示,假设在执行第二次ROW快照时,对LBA1执行了写操作指令,且记录了元数据缓存,该元数据缓存为(LBA1,seq1,1,1)。此时,第一操作指令为读操作指令,第一LBA为LBA1,第一快照序列号为seq4。存储系统未获取到与LBA1以及seq4对应的第一元数据值。但根据前述描述可知,存储系统获取与LBA1对应的全部元数据缓存。在本示例中,存储系统将从元数据缓存中,获取一个元数据缓存,即第二元数据值为(LBA1,seq1,1,1)。
存储系统判断第二元数据值包括的第一标识的值是否为1。若为1,则存储系统确定LBA1中存储的数据属于原始对象。存储系统从LBA1中读取存储的数据,并向主机反馈数据。
在另一种情况下,当从元数据缓存中未获取到与第一LBA以及第一快照序列号对应的第一元数据值,且获取到与第一LBA对应的多个第二元数据值时,存储系统判断第一标识的值是否为1。若为0,则存储系统确定多个第二元数据值不属于原始对象。根据每个第二元数据值包括的第二LBA,存储系统从磁盘中读取并比较存储的数据,并向主机反馈最新写入的数据。
在一个例子中,如图1所示,存储系统在执行第一次ROW快照、第二次ROW快照、第三次ROW快照时,对LBA2执行了三次写操作指令,且每次均记录了元数据缓存,元数据缓存依次为(LBA2,seq0,0,1)、(LBA2,seq1,0,1)、(LBA2,seq2,0,1)。此时,第一操作指令为读操作指令,第一LBA为LBA2,第一快照序列号为seq4。存储系统未获取到与LBA2以及seq4对应的第一元数据值。但根据前述描述可知,存储系统获取与LBA2对应的全部元数据缓存。在本示例中,存储系统将从元数据缓存中,获取三个元数据缓存,即第二元数据值为(LBA2,seq0,0,1)、(LBA2,seq1,0,1)、(LBA2,seq2,0,1)。
存储系统判断第二元数据值包括的第一标识的值是否为1。若为0,则存储系统确定LBA2中存储的数据不属于原始对象。根据每个第二元数据值包括的第二LBA,存储系统从磁盘中读取并比较存储的数据,并向主机反馈最新写入的数据。
在另一种情况下,当从元数据缓存中获取到与第一LBA对应的第二元数据值,且第二元数据值有效时,存储系统根据第一LBA以及第一快照序列号,生成与第一LBA以及第一快照序列号对应的第三元数据值。其中,第三元数据值包括的第一标识、第二标识均为0。
在一个例子中,如图1所示,存储系统在执行第一次ROW快照、第三次ROW快照时,对LBA3执行了两次写操作指令,且每次均记录了元数据缓存,元数据缓存依次为(LBA3,seq0,0,1)、(LBA3,seq3,0,1)。此时,第一操作指令为读操作指令,第一LBA为LBA3,第一快照序列号为seq1。存储系统未获取到与LBA3以及seq1对应的第一元数据值。但根据前述描述可知,存储系统获取与LBA3对应的全部元数据缓存。在本示例中,存储系统将从元数据缓存中,获取两个元数据缓存,即第二元数据值为(LBA3,seq0,0,1)、(LBA3,seq3,0,1)。
存储系统判断获取的第二元数据值均为有效状态。存储系统根据LBA3以及seq1,生成对应的第三元数据值,即(LBA3,seq1,0,0)。由于此时读取的是ROW快照不非原始对象,且实际读取到的seq与第一操作指令包括的seq不匹配,因此,存储系统将第一标识的值以及第二标识的值均置为0。
在另一种情况下,当第二标识的值为1,且获取到与第一LBA对应的第四元数据值时,存储系统判断第四元数据值包括的第二标识的值是否为1。若为0,则存储系统确定第二LBA中存储的数据与第四元数据值包括的第二LBA中存储的数据之间存在关联关系。存储系统不删除第一元数据值。其中,第四元数据值对应的第二快照序列号小于第一快照序列号。
在一个例子中,如图1所示,存储系统在执行第一次ROW快照、第三次ROW快照时,对LBA3执行了两次写操作指令,且每次均记录了元数据缓存,元数据缓存依次为(LBA3,seq0,0,1)、(LBA3,seq3,0,1)。
根据前述例子可知,存储系统根据读操作指令,读取执行第二次ROW快照时LBA3中存储的数据,并生成对应的第三元数据值,即(LBA3,seq1,0,0)。存储系统再次接收到主机发送的删除操作指令,删除第一次ROW快照时LBA3中存储的数据。存储系统获取到第一元数据值(LBA3,seq0,0,1)。存储系统确定第一元数据值包括的第二标识的值为1。同时,存储系统还获取到与LBA3对应的第三元数据值(LBA3,seq1,0,0)。存储系统判断第三元数据值包括的第二标识值为0。则存储系统确定第一元数据值中第二LBA存储的数据与第三元数据值中第二LBA存储的数据之间存在关联关系。也即是,执行第二次ROW快照时LBA3中存储的数据依赖于执行第一次ROW快照时LBA3中存储的数据。若执行第一次ROW快照时LBA3中存储的数据有效,则不能直接删除,否则执行第二次ROW快照时LBA3中存储的数据将会丢失。
基于同一发明构思,本申请实施例还提供了与数据处理方法对应的数据处理装置。参见图3,图3为本申请实施例提供的数据处理装置结构图,所述装置应用于存储系统,所述装置包括:
接收单元310,用于接收主机发送的第一操作指令,所述第一操作指令包括用户对象的第一逻辑区块地址LBA以及第一快照序列号;
查找单元320,用于根据所述第一LBA以及第一快照序列号,查找元数据缓存,所述元数据缓存包括至少一个元数据值,每个元数据值包括实际写入的ROW对象的第二LBA、第一标识以及第二标识;
识别单元330,用于当从所述元数据缓存中获取到与所述第一LBA以及第一快照序列号对应的第一元数据值时,根据所述第一操作指令的类型,识别所述第一标识的值或者所述第二标识的值;
处理单元340,用于根据识别结果,对所述第二LBA中存储的数据进行对应处理。
可选地,所述识别单元330,具体用于,当所述第一操作指令为读操作指令时,识别所述第一标识的值;
当所述第一操作指令为删除操作指令时,识别所述第二标识的值。
可选地,所述识别单元330,具体用于,当所述第一标识的值为1时,确定所述第一元数据值属于原始对象;
从所述第二LBA中读取存储的数据,并向所述主机反馈所述数据。
可选地,所述方法还包括:判断单元(图中未示出),用于当从所述元数据缓存中未获取到与所述第一LBA以及第一快照序列号对应的第一元数据值,且获取到与所述第一LBA对应的一个第二元数据值时,判断所述第一标识的值是否为1;
确定单元(图中未示出),用于若为1,则确定所述第二元数据值属于原始对象;
读取单元(图中未示出),用于从所述第二LBA中读取存储的数据;
发送单元(图中未示出),用于向所述主机反馈所述数据。
可选地,所述装置还包括:判断单元(图中未示出),用于当从所述元数据缓存中未获取到与所述第一LBA以及第一快照序列号对应的第一元数据值,且获取到与所述第一LBA对应的多个第二元数据值时,判断所述第一标识的值是否为1;
确定单元(图中未示出),用于若为0,则确定多个第二元数据值不属于原始对象;
读取单元(图中未示出),用于根据每个第二元数据值包括的第二LBA,从磁盘中读取并比较存储的数据;
发送单元(图中未示出),用于向所述主机反馈最新写入的数据。
可选地,所述装置还包括:生成单元(图中未示出),用于当从所述元数据缓存中获取到与所述第一LBA对应的第二元数据值,且所述第二元数据值有效时,根据所述第一LBA以及第一快照序列号,生成与所述第一LBA以及第一快照序列号对应的第三元数据值;
其中,所述第三元数据值包括的第一标识、第二标识均为0。
可选地,所述识别单元330,具体用于,当所述第二标识的值为0时,确定所述第二LBA中未存储实际写入的数据;
删除所述第一元数据值。
可选地,所述识别单元330,具体用于,当所述第二标识的值为1,且获取到与所述第一LBA对应的第四元数据值时,判断所述第四元数据值包括的第二标识的值是否为1;
若为0,则确定所述第二LBA中存储的数据与所述第四元数据值包括的第二LBA中存储的数据之间存在关联关系;
不删除所述第一元数据值;
其中,所述第四元数据值对应的第二快照序列号小于所述第一快照序列号。
可选地,所述第一标识的值用于表示元数据值是否属于原始对象;所述第二标识的值用于表示元数据值是否在磁盘中存储。
因此,通过应用本申请提供的数据处理装置,该装置接收主机发送的第一操作指令,该第一操作指令包括用户对象的第一逻辑区块地址LBA以及第一快照序列号。根据第一LBA以及第一快照序列号,该装置查找元数据缓存,该元数据缓存包括至少一个元数据值,每个元数据值包括实际写入的ROW对象的第二LBA、第一标识以及第二标识。当从元数据缓存中获取到与第一LBA以及第一快照序列号对应的第一元数据值时,根据第一操作指令的类型,该装置识别第一标识的值或者第二标识的值。根据识别结果,该装置对第二LBA中存储的数据进行对应处理。
如此,解决现有的缓存方案中,缓存命中率非常低的问题。在保证元数据一致性的基础上,大幅提升ROW快照序列号场景下的元数据命中率。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
对于数据处理装置实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (9)
1.一种数据处理方法,其特征在于,所述方法应用于存储系统,所述方法包括:
接收主机发送的第一操作指令,所述第一操作指令包括用户对象的第一逻辑区块地址LBA以及第一快照序列号;
根据所述第一LBA以及第一快照序列号,查找元数据缓存,所述元数据缓存包括至少一个元数据值,每个元数据值包括实际写入的ROW对象的第二LBA、第一标识以及第二标识;
当从所述元数据缓存中获取到与所述第一LBA以及第一快照序列号对应的第一元数据值时,根据所述第一操作指令的类型,识别所述第一标识的值或者所述第二标识的值;
根据识别结果,对所述第二LBA中存储的数据进行对应处理;
其中,所述根据所述第一操作指令的类型,识别所述第一标识的值或者第二标识的值,具体包括:
当所述第一操作指令为读操作指令时,识别所述第一标识的值;
当所述第一操作指令为删除操作指令时,识别所述第二标识的值;
所述第一标识的值用于表示所述元数据值是否属于原始对象;所述第二标识的值用于表示所述元数据值是否在磁盘中存储;所述原始对象具体是指执行ROW快照并在LBA中写入数据后,后续执行多次ROW快照时并未对LBA中的数据进行修改。
2.根据权利要求1所述的方法,其特征在于,所述根据识别结果,对所述第二LBA中存储的数据进行对应处理,具体包括:
当所述第一标识的值为1时,确定所述第一元数据值属于原始对象;
从所述第二LBA中读取存储的数据,并向所述主机反馈所述数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当从所述元数据缓存中未获取到与所述第一LBA以及第一快照序列号对应的第一元数据值,且获取到与所述第一LBA对应的一个第二元数据值时,判断所述第一标识的值是否为1;
若为1,则确定所述第二元数据值属于原始对象;
从所述第二LBA中读取存储的数据,并向所述主机反馈所述数据。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当从所述元数据缓存中未获取到与所述第一LBA以及第一快照序列号对应的第一元数据值,且获取到与所述第一LBA对应的多个第二元数据值时,判断所述第一标识的值是否为1;
若为0,则确定多个第二元数据值不属于原始对象;
根据每个第二元数据值包括的第二LBA,从磁盘中读取并比较存储的数据,并向所述主机反馈最新写入的数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当从所述元数据缓存中获取到与所述第一LBA对应的第二元数据值,且所述第二元数据值有效时,根据所述第一LBA以及第一快照序列号,生成与所述第一LBA以及第一快照序列号对应的第三元数据值;
其中,所述第三元数据值包括的第一标识、第二标识均为0。
6.根据权利要求1所述的方法,其特征在于,所述根据识别结果,对所述第二LBA中存储的数据进行对应处理,具体还包括:
当所述第二标识的值为0时,确定所述第二LBA中未存储实际写入的数据;
删除所述第一元数据值。
7.根据权利要求1所述的方法,其特征在于,所述根据识别结果,对所述第二LBA中存储的数据进行对应处理,具体还包括:
当所述第二标识的值为1,且获取到与所述第一LBA对应的第四元数据值时,判断所述第四元数据值包括的第二标识的值是否为1;
若为0,则确定所述第二LBA中存储的数据与所述第四元数据值包括的第二LBA中存储的数据之间存在关联关系;
不删除所述第一元数据值;
其中,所述第四元数据值对应的第二快照序列号小于所述第一快照序列号。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述第一标识的值用于表示元数据值是否属于原始对象;所述第二标识的值用于表示元数据值是否在磁盘中存储。
9.一种数据处理装置,其特征在于,所述装置应用于存储系统,所述装置包括:
接收单元,用于接收主机发送的第一操作指令,所述第一操作指令包括用户对象的第一逻辑区块地址LBA以及第一快照序列号;
查找单元,用于根据所述第一LBA以及第一快照序列号,查找元数据缓存,所述元数据缓存包括至少一个元数据值,每个元数据值包括实际写入的ROW对象的第二LBA、第一标识以及第二标识;
识别单元,用于当从所述元数据缓存中获取到与所述第一LBA以及第一快照序列号对应的第一元数据值时,根据所述第一操作指令的类型,识别所述第一标识的值或者所述第二标识的值;
处理单元,用于根据识别结果,对所述第二LBA中存储的数据进行对应处理;
其中,所述识别单元330,具体用于,当所述第一操作指令为读操作指令时,识别所述第一标识的值;
当所述第一操作指令为删除操作指令时,识别所述第二标识的值;
所述第一标识的值用于表示所述元数据值是否属于原始对象;所述第二标识的值用于表示所述元数据值是否在磁盘中存储;所述原始对象具体是指执行ROW快照并在LBA中写入数据后,后续执行多次ROW快照时并未对LAB中的数据进行修改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011527617.0A CN112597074B (zh) | 2020-12-22 | 2020-12-22 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011527617.0A CN112597074B (zh) | 2020-12-22 | 2020-12-22 | 数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112597074A CN112597074A (zh) | 2021-04-02 |
CN112597074B true CN112597074B (zh) | 2022-08-30 |
Family
ID=75200014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011527617.0A Active CN112597074B (zh) | 2020-12-22 | 2020-12-22 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112597074B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841855A (zh) * | 2011-05-23 | 2012-12-26 | 日立环球储存科技荷兰有限公司 | 具有内嵌地址间接性元数据存储的存储设备 |
CN110727403A (zh) * | 2019-09-12 | 2020-01-24 | 华为技术有限公司 | 元数据管理方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9875184B2 (en) * | 2015-03-12 | 2018-01-23 | Vmware, Inc. | Multi-level snapshot caching |
US10452308B2 (en) * | 2017-12-19 | 2019-10-22 | Robin Systems, Inc. | Encoding tags for metadata entries in a storage system |
US11093347B2 (en) * | 2019-04-16 | 2021-08-17 | EMC IP Holding Company LLC | File system restoration using block-based snapshots and file system consistency check |
-
2020
- 2020-12-22 CN CN202011527617.0A patent/CN112597074B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841855A (zh) * | 2011-05-23 | 2012-12-26 | 日立环球储存科技荷兰有限公司 | 具有内嵌地址间接性元数据存储的存储设备 |
CN110727403A (zh) * | 2019-09-12 | 2020-01-24 | 华为技术有限公司 | 元数据管理方法及装置 |
Non-Patent Citations (1)
Title |
---|
一种卷级连续数据保护一致点插入方法;生拥宏等;《高技术通讯》;20101125(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112597074A (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11068455B2 (en) | Mapper tree with super leaf nodes | |
US9146877B2 (en) | Storage system capable of managing a plurality of snapshot families and method of snapshot family based read | |
US11232073B2 (en) | Method and apparatus for file compaction in key-value store system | |
CN108459826B (zh) | 一种处理io请求的方法及装置 | |
US9311015B2 (en) | Storage system capable of managing a plurality of snapshot families and method of operating thereof | |
US8799601B1 (en) | Techniques for managing deduplication based on recently written extents | |
CN102779180B (zh) | 数据存储系统的操作处理方法,数据存储系统 | |
US8627026B2 (en) | Storage apparatus and additional data writing method | |
US9043334B2 (en) | Method and system for accessing files on a storage system | |
US9727245B2 (en) | Method and apparatus for de-duplication for solid state disks (SSDs) | |
KR20170008152A (ko) | 불휘발성 메모리 장치에서의 데이터 특성 기반 데이터 배치 | |
CN108733306B (zh) | 一种文件合并方法及装置 | |
CN107329692B (zh) | 一种数据重删的方法及存储设备 | |
KR20190043998A (ko) | Ssd 내 핫 데이터 및 스트림을 식별하기 위한 시스템 및 방법 | |
US10048866B2 (en) | Storage control apparatus and storage control method | |
CN113867627B (zh) | 一种存储系统性能优化方法及系统 | |
CN111399765B (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN108021562B (zh) | 应用于分布式文件系统的存盘方法、装置及分布式文件系统 | |
US11016884B2 (en) | Virtual block redirection clean-up | |
CN110795031A (zh) | 一种基于全闪存储的数据重删方法、装置和系统 | |
CN107430546A (zh) | 一种文件更新方法及存储设备 | |
US20090164721A1 (en) | Hierarchical storage control apparatus, hierarchical storage control system, hierarchical storage control method, and program for controlling storage apparatus having hierarchical structure | |
CN112597074B (zh) | 数据处理方法及装置 | |
CN108984432B (zh) | 一种处理io请求的方法及装置 | |
KR20120039166A (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 |