CN109213450A - 一种基于闪存阵列的关联元数据删除方法、装置及设备 - Google Patents
一种基于闪存阵列的关联元数据删除方法、装置及设备 Download PDFInfo
- Publication number
- CN109213450A CN109213450A CN201811050871.9A CN201811050871A CN109213450A CN 109213450 A CN109213450 A CN 109213450A CN 201811050871 A CN201811050871 A CN 201811050871A CN 109213450 A CN109213450 A CN 109213450A
- Authority
- CN
- China
- Prior art keywords
- metadata
- associated metadata
- deleted
- memory
- flash array
- 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/0608—Saving storage space on 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
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 (AREA)
Abstract
本发明公开了一种基于闪存阵列的关联元数据删除方法,内存中插入第一元数据之后,响应插入第二元数据的指令,会根据第一元数据是否在内存中,或对关联元数据标记为待删除项,或在元数据下刷到闪存阵列时删除第一元数据,在将关联元数据下刷到闪存阵列时,若该关联元数据被标记为待删除项,或者该关联元数据对应的元数据已经被删除,则删除该关联元数据。可见,该方法在向闪存阵列下刷关联元数据时,只需要根据是否被标记为被删除项或对应的元数据是否被删除,即可确定是否删除该关联元数据,避免了占用大量内存空间,提高了删除效率。本发明还提供了一种基于闪存阵列的关联元数据删除装置、设备及计算机可读存储介质,其作用与上述方法相对应。
Description
技术领域
本发明涉及计算机领域,特别涉及一种基于闪存阵列的关联元数据删除方法、装置、设备及计算机可读存储介质。
背景技术
在大数据时代,海量数据的存储需要文件系统的支持,文件系统的元数据性能成为影响文件访问性能的关键。
B+树是为磁盘或其他直接存取辅助设备而设计的一种平衡查找树,通常用于数据库和操作系统的文件系统中。一般的,元数据在内存磁盘中都以B+树形式组织,内存中B+树作为磁盘B+树的增量。当内存中B+树达到一定阈值时则需要下刷到磁盘,如果磁盘上存在元数据则内存的元数据与磁盘的元数据进行合并处理。
在全闪阵列中,为了保证固态硬盘,软件应该避免频繁写入一个位置,所以当写入同一个逻辑地址时,实际物理地址发生了变化。举例来说,当用户写逻辑地址L完成后,实际写入物理地址为P1,元数据会记录一条L->P1的映射,并且还会记录一条P1->L的反向映射,当用户再次写入L后会产生新的物理地址P2,元数据会记录一条L->P2的映射,并且会再记录一条P2->L的反向映射,也就是说目前实际的对应关系是L->P2,P2->L,而之前记录的L->P1以及P1->L都是需要删除的元数据,其中P1->L就是L->P1的关联元数据。
然而,B+树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。但是,如果按照传统的B+树的插入和删除做法会造成大量内存空间被占用,导致删除效率较低。
发明内容
本发明的目的是提供一种基于闪存阵列的关联元数据删除方法、装置、设备及计算机可读存储介质,用以解决按照传统的B+树的插入和删除做法会造成大量内存空间被占用,导致删除效率较低的问题。
为解决上述技术问题,本发明提供了一种基于闪存阵列的关联元数据删除方法,包括:
在内存中插入第一元数据之后,响应于插入第二元数据的指令,判断所述第一元数据是否在内存中,其中,所述第一元数据为记录从逻辑地址L到物理地址P1的映射关系的元数据,所述第二元数据为记录从逻辑地址L到物理地址P2的映射关系的元数据;
若所述第一元数据在内存中,则将所述第一元数据修改为第二元数据,并将与所述第一元数据对应的关联元数据标记为待删除项,其中,所述关联元数据为记录从物理地址P1到逻辑地址L的关联元数据;
若所述第一元数据不在内存中,则直接在内存中插入所述第二元数据,并在将所述第二元数据下刷到闪存阵列时,删除所述闪存阵列中的所述第一元数据;
在将关联元数据下刷到所述闪存阵列时,若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据已被删除,则删除所述关联元数据。
其中,所述将所述第一元数据修改为第二元数据,并将与所述第一元数据对应的关联元数据标记为待删除项包括:
将所述第一元数据修改为第二元数据,并判断与所述第一元数据对应的关联元数据是否在内存中;
若所述关联元数据在内存中,则将所述关联元数据标记为待删除项;
若所述关联元数据不在内存中,则在内存中插入所述关联元数据,并将所述关联元数据标记为待删除项。
其中,所述在将所述第二元数据下刷到闪存阵列时,删除所述闪存阵列中的所述第一元数据包括:
在将所述第二元数据下刷到闪存阵列时,删除所述闪存阵列中的所述第一元数据,并将所述第一元数据记录到预设查询表中;
所述若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据已被删除,则删除所述关联元数据包括:
若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据在所述预设查询表中,则删除所述关联元数据。
其中,所述若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据在所述预设查询表中,则删除所述关联元数据包括:
若所述关联元数据被标记为所述待删除项,则删除所述关联元数据;
若所述关联元数据对应的元数据在所述预设查询表中,则删除所述关联元数据,并删除在所述预设查询表中与所述关联元数据对应的元数据。
相应的,本发明还提供了一种基于闪存阵列的关联元数据删除装置,包括:
判断模块:用于在内存中插入第一元数据之后,响应于插入第二元数据的指令,判断所述第一元数据是否在内存中,其中,所述第一元数据为记录从逻辑地址L到物理地址P1的映射关系的元数据,第二元数据为记录从逻辑地址L到物理地址P2的映射关系的元数据;
修改模块:用于若所述第一元数据在内存中,则将所述第一元数据修改为第二元数据,并将与所述第一元数据对应的关联元数据标记为待删除项,其中,所述关联元数据为记录从物理地址P1到逻辑地址L的关联元数据;
插入模块:用于若所述第一元数据不在内存中,则直接在内存中插入所述第二元数据,并在将所述第二元数据下刷到闪存阵列时,删除所述闪存阵列中的所述第一元数据;
删除模块:用于在将关联元数据下刷到所述闪存阵列时,若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据已被删除,则删除所述关联元数据。
其中,所述修改模块包括:
判断单元:用于将所述第一元数据修改为第二元数据,并判断与所述第一元数据对应的关联元数据是否在内存中;
第一标记单元:用于若所述关联元数据在内存中,则将所述关联元数据标记为待删除项;
第二标记单元:用于若所述关联元数据不在内存中,则在内存中插入所述关联元数据,并将所述关联元数据标记为待删除项。
其中,所述插入模块具体用于:在将所述第二元数据下刷到闪存阵列时,删除所述闪存阵列中的所述第一元数据,并将所述第一元数据记录到预设查询表中;
所述删除模块具体用于:若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据在所述预设查询表中,则删除所述关联元数据。
其中,所述删除模块包括:
第一删除单元:用于若所述关联元数据被标记为所述待删除项,则删除所述关联元数据;
第二删除单元:用于若所述关联元数据对应的元数据在所述预设查询表中,则删除所述关联元数据,并删除在所述预设查询表中与所述关联元数据对应的元数据。
此外,本发明还提供了一种基于闪存阵列的关联元数据删除设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如上所述的一种基于闪存阵列的关联元数据删除方法的步骤。
最后,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的一种基于闪存阵列的关联元数据删除方法的步骤。
本发明所提供的一种基于闪存阵列的关联元数据删除方法,在内存中插入第一元数据之后,响应于插入第二元数据的指令,会判断第一元数据是否在内存中,对于第一元数据在内存中的情况,会直接将第一元数据修改为第二元数据,并将第一元数据对应的关联元数据标记为待删除项;对于第一元数据不在内存中的情况,则在内存中插入第二元数据,并在第二元数据下刷到闪存阵列的时候,删除闪存阵列上的第一元数据;在将关联元数据下刷到闪存阵列的时候,若该关联元数据被标记为待删除项,或者该关联元数据对应的元数据已经被删除,则删除该关联元数据。可见,该方法在向闪存阵列下刷关联元数据时,只需要根据是否被标记为被删除项或对应的元数据是否被删除,即可确定是否删除该关联元数据,避免了重新在内存中生成删除请求,占用大量内存空间,提高了删除效率。
此外,本发明还提供了一种基于闪存阵列的关联元数据删除装置、设备及计算机可读存储介质,其作用与上述方法相对应,这里不再赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种基于闪存阵列的关联元数据删除方法实施例一的实现流程图;
图2为本发明提供的一种基于闪存阵列的关联元数据删除方法实施例二的实现流程图;
图3为本发明提供的一种基于闪存阵列的关联元数据删除装置实施例的结构框图。
具体实施方式
本发明的核心是提供一种基于闪存阵列的关联元数据删除方法、装置、设备及计算机可读存储介质,避免了占用大量内存空间,提高了删除效率。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
元数据在内存磁盘中都以B+树形式组织,内存中B+树作为磁盘B+树的增量。当内存中B+树达到一定阈值时则需要下刷到磁盘,如果磁盘上存在元数据则内存的元数据与磁盘的元数据进行合并处理。
考虑全闪系统中SSD硬盘的寿命,大部分软件层对于用户写入的以前已经写入的逻辑地址,实际物理地址都会重新分配,这样避免了频繁写入相同位置导致固态硬盘寿命降低。重复逻辑地址的写入由于写入了不同磁盘位置,之前位置的数据变成无效,需要进行资源回收,需要对元数据记录的无效表项进行删除。全闪阵列如何删除关联表项产生的无效记录涉及全闪存储系统磁盘空间回收和利用、数据一致性、内存空间占用、以及删除效率问题,针对这个问题,本提供了一种基于闪存阵列的关联元数据删除方法。
下面对本发明提供的一种基于闪存阵列的关联元数据删除方法实施例一进行介绍,参见图1,实施例一包括:
步骤S101:在内存中插入第一元数据之后,响应于插入第二元数据的指令,判断所述第一元数据是否在内存中,其中,所述第一元数据为记录从逻辑地址L到物理地址P1的映射关系的元数据,所述第二元数据为记录从逻辑地址L到物理地址P2的映射关系的元数据。
步骤S102:若所述第一元数据在内存中,则将所述第一元数据修改为第二元数据,并将与所述第一元数据对应的关联元数据标记为待删除项,其中,所述关联元数据为记录从物理地址P1到逻辑地址L的关联元数据。
步骤S103:若所述第一元数据不在内存中,则直接在内存中插入所述第二元数据,并在将所述第二元数据下刷到闪存阵列时,删除所述闪存阵列中的所述第一元数据。
步骤S104:在将关联元数据下刷到所述闪存阵列时,若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据已被删除,则删除所述关联元数据。
综上,本实施例所提供一种基于闪存阵列的关联元数据删除方法,在内存中插入第一元数据之后,响应于插入第二元数据的指令,会判断第一元数据是否在内存中,对于第一元数据在内存中的情况,会直接将第一元数据修改为第二元数据,并将第一元数据对应的关联元数据标记为待删除项;对于第一元数据不在内存中的情况,则在内存中插入第二元数据,并在第二元数据下刷到闪存阵列的时候,删除闪存阵列上的第一元数据;在将关联元数据下刷到闪存阵列的时候,若该关联元数据被标记为待删除项,或者该关联元数据对应的元数据已经被删除,则删除该关联元数据。可见,该方法在向闪存阵列下刷关联元数据时,只需要根据是否被标记为被删除项或对应的元数据是否被删除,即可确定是否删除该关联元数据,避免了重新在内存中生成删除请求,占用大量内存空间,提高了删除效率。
以上对实施例一进行了介绍,本发明还提供了一种基于闪存阵列的关联元数据删除方法实施例二,实施例二基于实施例一实现,并在实施例一的基础之上进行了一定程度的扩展。
下面开始详细介绍一种基于闪存阵列的关联元数据删除方法实施例二,参见图2,实施例二具体包括:
步骤S201:在内存中插入第一元数据之后,响应于插入第二元数据的指令,判断所述第一元数据是否在内存中,若第一元数据在内存中,则进入步骤S202,否则,进入步骤S207。其中,所述第一元数据为记录从逻辑地址L到物理地址P1的映射关系的元数据,所述第二元数据为记录从逻辑地址L到物理地址P2的映射关系的元数据。
如上所述,在全闪阵列中,为了保证固态硬盘,软件会避免频繁写入一个位置,所以当写入同一个逻辑地址时,实际物理地址发生了变化。
具体来讲,当用户向逻辑地址L写入数据,而实际写入的物理地址为P1时,会记录一条L->P1的映射,还会记录一条P1->L的反向映射,本发明中所提及的第一元数据中就是指记录上述L->P1映射关系的元数据,第一元数据的关联元数据就是指记录上述P1->L反向映射关系的元数据。
而当用户再次向逻辑地址L写入数据时,会产生新的物理地址P2,相应的,会记录一条L->P2的映射,并且会再记录一条P2->L的反向映射。本发明中所提及的第二元数据就是指记录上述L->P2映射关系的元数据。
那么,本实施例中,上述第一元数据以及第一元数据的关联元数据就是最终需要删除的数据。需要注意的是,在删除过程中,需要结合第一元数据是在内存中还是闪存阵列中,以及关联元数据是在内存中还是在闪存阵列中做不同的处理,以下步骤会对上述几种情况的处理策略进行介绍。
步骤S202:将所述第一元数据修改为第二元数据。
也就是将记录L->P1映射关系的元数据在内存中直接修改为记录L->P2映射关系的元数据。
步骤S203:判断与所述第一元数据对应的关联元数据是否在内存中,其中,所述关联元数据为记录从物理地址P1到逻辑地址L的关联元数据。
步骤S204:若所述关联元数据在内存中,则将所述关联元数据标记为待删除项。
步骤S205:若所述关联元数据不在内存中,则在内存中插入所述关联元数据,并将所述关联元数据标记为待删除项。
关联元数据不在内存中,则表明关联元数据已经合并到闪存阵列中,这种情况下,可以直接在内存中插入关联元数据,再将该关联元数据标记为待删除项。
步骤S206:在将关联元数据下刷到所述闪存阵列时,若所述关联元数据被标记为所述待删除项,则删除所述关联元数据。
步骤S207:直接在内存中插入所述第二元数据,并在将所述第二元数据下刷到闪存阵列时,删除所述闪存阵列中的所述第一元数据。
步骤S208:并将所述第一元数据记录到预设查询表中。
第一元数据不在内存中,则表明第一元数据已经合并到闪存阵列中。因为第一元数据已经合并到闪存阵列中,所以在内存中无法找到第一元数据对应的关联元数据,也就无法在内存中将其标记为待删除项。
这种情况下,可以预先建立预设查询表,在第一元数据合并过程中,发现内存中存在记录L->P2映射关系的第二元数据,而闪存阵列中存在记录L->P1的第一元数据,则需要根据内存中的数据更新闪存阵列上的数据,也就是需要删除第一元数据,那么,在删除过程中,可以将第一元数据记录到上述预设查询表中,以便于后续参考。
步骤S209:在将关联元数据下刷到所述闪存阵列时,若所述关联元数据对应的元数据在所述预设查询表中,则删除所述关联元数据。
步骤S210:删除在所述预设查询表中与所述关联元数据对应的元数据。
综上,本实施例提供的一种基于闪存阵列的关联元数据删除方法,在向内存插入第一元数据之后,响应于插入第二元数据的指令,会先判断第一元数据是否在内存中,若在,则直接将第一元数据修改为第二元数据,对于第一元数据的关联元数据,若关联元数据在内存中,则将其标记为待删除项,在合并过程中根据是否被标记对其进行删除,若不在内存中,则直接插入关联元数据并标记为待删除项;若第一元数据不在内存中,则在将第二元数据合并到闪存阵列时,再删除第一元数据,并将第一元数据记录到预设查询表中,对于第一元数据的关联元数据,在合并过程中,根据是否能在预设查询表中查找到来决定是否删除。可见,本实施例根据打删除标签与查询预设查询表来删除关联元数据,保证数据一致性的同时,减少了内存空间的占用,提高了删除效率,能够高效的完成关联元数据的批量删除。
下面对本发明提供的一种基于闪存阵列的关联元数据删除装置实施例进行介绍,下文描述的一种基于闪存阵列的关联元数据删除装置与上文描述的一种基于闪存阵列的关联元数据删除方法可相互对应参照。
参见图3,该装置实施例包括:
判断模块301:用于在内存中插入第一元数据之后,响应于插入第二元数据的指令,判断所述第一元数据是否在内存中,其中,所述第一元数据为记录从逻辑地址L到物理地址P1的映射关系的元数据,第二元数据为记录从逻辑地址L到物理地址P2的映射关系的元数据。
修改模块302:用于若所述第一元数据在内存中,则将所述第一元数据修改为第二元数据,并将与所述第一元数据对应的关联元数据标记为待删除项,其中,所述关联元数据为记录从物理地址P1到逻辑地址L的关联元数据。
插入模块303:用于若所述第一元数据不在内存中,则直接在内存中插入所述第二元数据,并在将所述第二元数据下刷到闪存阵列时,删除所述闪存阵列中的所述第一元数据。
删除模块304:用于在将关联元数据下刷到所述闪存阵列时,若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据已被删除,则删除所述关联元数据。
其中,所述修改模块302包括:
判断单元3021:用于将所述第一元数据修改为第二元数据,并判断与所述第一元数据对应的关联元数据是否在内存中。
第一标记单元3022:用于若所述关联元数据在内存中,则将所述关联元数据标记为待删除项。
第二标记单元3023:用于若所述关联元数据不在内存中,则在内存中插入所述关联元数据,并将所述关联元数据标记为待删除项。
其中,所述插入模块303具体用于:在将所述第二元数据下刷到闪存阵列时,删除所述闪存阵列中的所述第一元数据,并将所述第一元数据记录到预设查询表中。
相应的,所述删除模块304具体用于:若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据在所述预设查询表中,则删除所述关联元数据。
其中,所述删除模块304包括:
第一删除单元3041:用于若所述关联元数据被标记为所述待删除项,则删除所述关联元数据。
第二删除单元3042:用于若所述关联元数据对应的元数据在所述预设查询表中,则删除所述关联元数据,并删除在所述预设查询表中与所述关联元数据对应的元数据。
本实施例的一种基于闪存阵列的关联元数据删除装置用于实现前述的一种基于闪存阵列的关联元数据删除方法,因此该装置中的具体实施方式可见前文中的一种基于闪存阵列的关联元数据删除方法的实施例部分,例如,判断模块301、修改模块302、插入模块303、删除模块304,分别用于实现上述一种基于闪存阵列的关联元数据删除方法中步骤S101,S102,S103,S104。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
另外,由于本实施例提供的一种基于闪存阵列的关联元数据删除装置用于实现前述的一种基于闪存阵列的关联元数据删除方法,因此其作用与上述方法的作用相对应,这里不再赘述。
此外,本发明还提供了一种基于闪存阵列的关联元数据删除设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如上所述的一种基于闪存阵列的关联元数据删除方法的步骤。
最后,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的一种基于闪存阵列的关联元数据删除方法的步骤。
本发明提供的一种基于闪存阵列的关联元数据删除设备及计算机可读存储介质均用于实现前述的一种基于闪存阵列的关联元数据删除方法,因此该设备及计算机可读存储介质的具体实施方式可见前文中的一种基于闪存阵列的关联元数据删除方法的实施例部分,这里不再展开介绍。另外,显然,该设备与计算机可读存储介质的作用与上述方法实施例相对应,这里也不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种基于闪存阵列的关联元数据删除方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种基于闪存阵列的关联元数据删除方法,其特征在于,包括:
在内存中插入第一元数据之后,响应于插入第二元数据的指令,判断所述第一元数据是否在内存中,其中,所述第一元数据为记录从逻辑地址L到物理地址P1的映射关系的元数据,所述第二元数据为记录从逻辑地址L到物理地址P2的映射关系的元数据;
若所述第一元数据在内存中,则将所述第一元数据修改为第二元数据,并将与所述第一元数据对应的关联元数据标记为待删除项,其中,所述关联元数据为记录从物理地址P1到逻辑地址L的关联元数据;
若所述第一元数据不在内存中,则直接在内存中插入所述第二元数据,并在将所述第二元数据下刷到闪存阵列时,删除所述闪存阵列中的所述第一元数据;
在将关联元数据下刷到所述闪存阵列时,若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据已被删除,则删除所述关联元数据。
2.如权利要求1所述的方法,其特征在于,所述将所述第一元数据修改为第二元数据,并将与所述第一元数据对应的关联元数据标记为待删除项包括:
将所述第一元数据修改为第二元数据,并判断与所述第一元数据对应的关联元数据是否在内存中;
若所述关联元数据在内存中,则将所述关联元数据标记为待删除项;
若所述关联元数据不在内存中,则在内存中插入所述关联元数据,并将所述关联元数据标记为待删除项。
3.如权利要求1所述的方法,其特征在于,所述在将所述第二元数据下刷到闪存阵列时,删除所述闪存阵列中的所述第一元数据包括:
在将所述第二元数据下刷到闪存阵列时,删除所述闪存阵列中的所述第一元数据,并将所述第一元数据记录到预设查询表中;
所述若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据已被删除,则删除所述关联元数据包括:
若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据在所述预设查询表中,则删除所述关联元数据。
4.如权利要求3所述的方法,其特征在于,所述若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据在所述预设查询表中,则删除所述关联元数据包括:
若所述关联元数据被标记为所述待删除项,则删除所述关联元数据;
若所述关联元数据对应的元数据在所述预设查询表中,则删除所述关联元数据,并删除在所述预设查询表中与所述关联元数据对应的元数据。
5.一种基于闪存阵列的关联元数据删除装置,其特征在于,包括:
判断模块:用于在内存中插入第一元数据之后,响应于插入第二元数据的指令,判断所述第一元数据是否在内存中,其中,所述第一元数据为记录从逻辑地址L到物理地址P1的映射关系的元数据,第二元数据为记录从逻辑地址L到物理地址P2的映射关系的元数据;
修改模块:用于若所述第一元数据在内存中,则将所述第一元数据修改为第二元数据,并将与所述第一元数据对应的关联元数据标记为待删除项,其中,所述关联元数据为记录从物理地址P1到逻辑地址L的关联元数据;
插入模块:用于若所述第一元数据不在内存中,则直接在内存中插入所述第二元数据,并在将所述第二元数据下刷到闪存阵列时,删除所述闪存阵列中的所述第一元数据;
删除模块:用于在将关联元数据下刷到所述闪存阵列时,若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据已被删除,则删除所述关联元数据。
6.如权利要求5述的装置,其特征在于,所述修改模块包括:
判断单元:用于将所述第一元数据修改为第二元数据,并判断与所述第一元数据对应的关联元数据是否在内存中;
第一标记单元:用于若所述关联元数据在内存中,则将所述关联元数据标记为待删除项;
第二标记单元:用于若所述关联元数据不在内存中,则在内存中插入所述关联元数据,并将所述关联元数据标记为待删除项。
7.如权利要求5所述的装置,其特征在于,所述插入模块具体用于:在将所述第二元数据下刷到闪存阵列时,删除所述闪存阵列中的所述第一元数据,并将所述第一元数据记录到预设查询表中;
所述删除模块具体用于:若所述关联元数据被标记为待删除项,或所述关联元数据对应的元数据在所述预设查询表中,则删除所述关联元数据。
8.如权利要求7所述的装置,其特征在于,所述删除模块包括:
第一删除单元:用于若所述关联元数据被标记为所述待删除项,则删除所述关联元数据;
第二删除单元:用于若所述关联元数据对应的元数据在所述预设查询表中,则删除所述关联元数据,并删除在所述预设查询表中与所述关联元数据对应的元数据。
9.一种基于闪存阵列的关联元数据删除设备,其特征在于,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如权利要求1-4任意一项所述的一种基于闪存阵列的关联元数据删除方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-4任意一项所述的一种基于闪存阵列的关联元数据删除方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811050871.9A CN109213450B (zh) | 2018-09-10 | 2018-09-10 | 一种基于闪存阵列的关联元数据删除方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811050871.9A CN109213450B (zh) | 2018-09-10 | 2018-09-10 | 一种基于闪存阵列的关联元数据删除方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109213450A true CN109213450A (zh) | 2019-01-15 |
CN109213450B CN109213450B (zh) | 2021-08-31 |
Family
ID=64987348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811050871.9A Active CN109213450B (zh) | 2018-09-10 | 2018-09-10 | 一种基于闪存阵列的关联元数据删除方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109213450B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532201A (zh) * | 2019-08-23 | 2019-12-03 | 北京浪潮数据技术有限公司 | 一种元数据处理方法及装置 |
CN111488117A (zh) * | 2019-01-29 | 2020-08-04 | 伊姆西Ip控股有限责任公司 | 用于管理元数据的方法、电子设备和计算机可读介质 |
CN111901358A (zh) * | 2020-08-07 | 2020-11-06 | 杭州安恒信息技术股份有限公司 | 一种入侵检测规则更新方法、装置、设备及可读存储介质 |
CN111966867A (zh) * | 2020-08-18 | 2020-11-20 | 北京金山云网络技术有限公司 | 对象删除方法、数据处理方法及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110258391A1 (en) * | 2007-12-06 | 2011-10-20 | Fusion-Io, Inc. | Apparatus, system, and method for destaging cached data |
CN102696010A (zh) * | 2009-09-08 | 2012-09-26 | 弗森-艾奥公司 | 用于将数据高速缓存在固态存储设备上的装置、系统和方法 |
US20130086303A1 (en) * | 2011-09-30 | 2013-04-04 | Fusion-Io, Inc. | Apparatus, system, and method for a persistent object store |
CN104303162A (zh) * | 2012-01-12 | 2015-01-21 | 才智知识产权控股公司(2) | 用于管理缓存接纳的系统和方法 |
US20160034217A1 (en) * | 2014-07-31 | 2016-02-04 | Samsung Electronics Co., Ltd. | Memory controller configured to control data sanitization and memory system including the same |
CN105468294A (zh) * | 2014-09-29 | 2016-04-06 | Hgst荷兰有限公司 | 用于固态存储设备的脱机去重 |
CN105701024A (zh) * | 2015-12-31 | 2016-06-22 | 华为技术有限公司 | 一种存储设备及其垃圾数据回收的方法 |
CN105930500A (zh) * | 2016-05-06 | 2016-09-07 | 华为技术有限公司 | 数据库系统中事务恢复的方法与数据库管理系统 |
US9519575B2 (en) * | 2013-04-25 | 2016-12-13 | Sandisk Technologies Llc | Conditional iteration for a non-volatile device |
CN106598493A (zh) * | 2016-11-30 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种固态硬盘地址映射表管理方法 |
CN107391027A (zh) * | 2016-05-03 | 2017-11-24 | 三星电子株式会社 | 廉价磁盘冗余阵列存储设备及其管理方法 |
CN107943422A (zh) * | 2017-12-07 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种高速存储介质数据管理方法、系统及装置 |
CN107992269A (zh) * | 2017-12-08 | 2018-05-04 | 华中科技大学 | 一种基于去重ssd的事务写入方法 |
-
2018
- 2018-09-10 CN CN201811050871.9A patent/CN109213450B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110258391A1 (en) * | 2007-12-06 | 2011-10-20 | Fusion-Io, Inc. | Apparatus, system, and method for destaging cached data |
CN102696010A (zh) * | 2009-09-08 | 2012-09-26 | 弗森-艾奥公司 | 用于将数据高速缓存在固态存储设备上的装置、系统和方法 |
US20130086303A1 (en) * | 2011-09-30 | 2013-04-04 | Fusion-Io, Inc. | Apparatus, system, and method for a persistent object store |
CN104303162A (zh) * | 2012-01-12 | 2015-01-21 | 才智知识产权控股公司(2) | 用于管理缓存接纳的系统和方法 |
US9519575B2 (en) * | 2013-04-25 | 2016-12-13 | Sandisk Technologies Llc | Conditional iteration for a non-volatile device |
US20160034217A1 (en) * | 2014-07-31 | 2016-02-04 | Samsung Electronics Co., Ltd. | Memory controller configured to control data sanitization and memory system including the same |
CN105468294A (zh) * | 2014-09-29 | 2016-04-06 | Hgst荷兰有限公司 | 用于固态存储设备的脱机去重 |
CN105701024A (zh) * | 2015-12-31 | 2016-06-22 | 华为技术有限公司 | 一种存储设备及其垃圾数据回收的方法 |
CN107391027A (zh) * | 2016-05-03 | 2017-11-24 | 三星电子株式会社 | 廉价磁盘冗余阵列存储设备及其管理方法 |
CN105930500A (zh) * | 2016-05-06 | 2016-09-07 | 华为技术有限公司 | 数据库系统中事务恢复的方法与数据库管理系统 |
CN106598493A (zh) * | 2016-11-30 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种固态硬盘地址映射表管理方法 |
CN107943422A (zh) * | 2017-12-07 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种高速存储介质数据管理方法、系统及装置 |
CN107992269A (zh) * | 2017-12-08 | 2018-05-04 | 华中科技大学 | 一种基于去重ssd的事务写入方法 |
Non-Patent Citations (2)
Title |
---|
XIAOLE CAI等: "An Efficient Address Mapping Algorithm for Multichannel Structure SSD", 《2015 11TH INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SECURITY (CIS)》 * |
范玉雷等: "基于相变存储器和闪存的数据库事务恢复模型", 《计算机学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488117A (zh) * | 2019-01-29 | 2020-08-04 | 伊姆西Ip控股有限责任公司 | 用于管理元数据的方法、电子设备和计算机可读介质 |
CN111488117B (zh) * | 2019-01-29 | 2023-10-13 | 伊姆西Ip控股有限责任公司 | 用于管理元数据的方法、电子设备和计算机可读介质 |
CN110532201A (zh) * | 2019-08-23 | 2019-12-03 | 北京浪潮数据技术有限公司 | 一种元数据处理方法及装置 |
CN110532201B (zh) * | 2019-08-23 | 2021-08-31 | 北京浪潮数据技术有限公司 | 一种元数据处理方法及装置 |
CN111901358A (zh) * | 2020-08-07 | 2020-11-06 | 杭州安恒信息技术股份有限公司 | 一种入侵检测规则更新方法、装置、设备及可读存储介质 |
CN111966867A (zh) * | 2020-08-18 | 2020-11-20 | 北京金山云网络技术有限公司 | 对象删除方法、数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109213450B (zh) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213450A (zh) | 一种基于闪存阵列的关联元数据删除方法、装置及设备 | |
CN108647151A (zh) | 一种全闪系统元数据落盘方法、装置、设备及存储介质 | |
JP6343438B2 (ja) | コンピュータシステム及びコンピュータシステムのデータ管理方法 | |
CN110147204B (zh) | 一种元数据落盘方法、装置、系统及计算机可读存储介质 | |
CN109445713A (zh) | 一种元数据卷的存储状态记录方法、系统及相关组件 | |
CN109471843A (zh) | 一种元数据缓存方法、系统及相关装置 | |
CN109086462A (zh) | 一种分布式文件系统中元数据的管理方法 | |
CN107122130A (zh) | 一种数据重删方法及装置 | |
WO2023000536A1 (zh) | 一种数据处理方法、系统、设备以及介质 | |
WO2024119775A1 (zh) | 一种raid卡的节点更新方法、系统及相关装置 | |
CN109753446A (zh) | 一种存储系统下刷缓存数据的方法 | |
CN105373487A (zh) | 一种存储操作系统的碎片整理方法及系统 | |
US11287996B2 (en) | Method, device and computer program product for storing data | |
CN109614045A (zh) | 一种元数据落盘方法、装置及相关设备 | |
CN110399096A (zh) | 分布式文件系统元数据缓存重删的方法、装置以及设备 | |
KR100907477B1 (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
WO2020192710A1 (zh) | 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置 | |
CN108829345B (zh) | 日志文件的数据处理方法和终端设备 | |
KR101077901B1 (ko) | 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 | |
US11132134B2 (en) | Flexible over-provisioning of storage space within solid-state storage devices (SSDs) | |
CN109189345B (zh) | 一种在线数据整理方法、装置、设备及存储介质 | |
CN116594919A (zh) | 一种用于处理内存碎片的方法、计算机设备及介质 | |
US11163446B1 (en) | Systems and methods of amortizing deletion processing of a log structured storage based volume virtualization | |
CN107015764B (zh) | Nand flash的数据处理方法、装置和一种Nand flash | |
CN113326262B (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 |