CN110727403B - 元数据管理方法及装置 - Google Patents
元数据管理方法及装置 Download PDFInfo
- Publication number
- CN110727403B CN110727403B CN201910866774.5A CN201910866774A CN110727403B CN 110727403 B CN110727403 B CN 110727403B CN 201910866774 A CN201910866774 A CN 201910866774A CN 110727403 B CN110727403 B CN 110727403B
- Authority
- CN
- China
- Prior art keywords
- data
- metadata
- logical address
- storage unit
- address range
- 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
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/061—Improving I/O performance
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了元数据管理方法及装置,涉及数据存储技术领域,有助于减小读放大,节约缓存资源。该方法包括:接收写请求,写请求包括第一数据和第一逻辑地址范围;第一逻辑地址范围是主存中用于存储第一数据的存储空间的地址范围;根据写请求在缓存中确定第一地址,将第一数据写入第一地址指示的第一数据存储单元;第一地址包括第一数据存储单元的标识、第一数据在第一数据存储单元中的初始存储位置和第一数据的长度;生成第一数据的元数据并写入目标元数据存储单元;目标元数据存储单元对应的预设逻辑地址范围包括第一逻辑地址范围;建立第一数据的元数据与目标元数据的写入时间的先后关系;目标元数据是最近一次写入目标元数据存储单元的元数据。
Description
技术领域
本申请涉及数据存储技术领域,尤其涉及元数据管理方法及装置。
背景技术
在存储节点中,缓存是介于处理器和主存之间的高速存储器,主要用于提升系统的读写性能。缓存用于存储主存中的一部分数据。缓存控制器用于对缓存中的数据和元数据进行管理。目前,缓存控制器是按照主存中的预设逻辑地址范围粒度管理数据和元数据的。具体的,假设每个预设逻辑地址范围包括连续的128KB个字节长度的逻辑地址,例如0KB-127KB为一个预设逻辑地址范围,128KB-255KB为另一个预设逻辑地址范围,那么,当处理器接收到写请求,且该写请求包括的待写数据的逻辑地址范围为120KB-200KB时,缓存控制器需要从主存中读取0KB-127KB中的所有数据以及128KB-255KB中的所有数据,并将读取的数据写入缓存中,且将该数据的元数据写入缓存中。
此种元数据管理方式存在较大的读放大(即从主存中读取的数据量大于写请求所请求写入的数据量),增加了处理器的负担,浪费了缓存资源。
发明内容
本申请的实施例提供元数据管理方法及装置,有助于减少读放大,减轻处理器负担。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供一种元数据管理方法,应用于存储节点中的缓存控制器,存储节点还包括主存和缓存;缓存中包含多个元数据存储单元,一个元数据存储单元对应主存的一个预设逻辑地址范围,用于存储预设逻辑地址范围所指示的存储空间中的数据的元数据,且任意两个元数据存储单元对应的预设逻辑地址范围没有交集;该方法包括:接收写请求,该写请求包括第一数据和第一逻辑地址范围;其中,第一逻辑地址范围是主存中用于存储第一数据的存储空间的地址范围;根据该写请求,在缓存中确定第一地址,并将第一数据写入第一地址所指示的第一数据存储单元;其中,第一地址包括第一数据存储单元的标识、第一数据在第一数据存储单元中的初始存储位置和第一数据的长度;生成第一数据的元数据,并将第一数据的元数据写入目标元数据存储单元;其中,第一数据的元数据包括第一地址与第一逻辑地址范围的对应关系;目标元数据存储单元对应的预设逻辑地址范围包括第一逻辑地址范围;建立第一数据的元数据与目标元数据的写入时间的先后关系;其中,目标元数据是最近一次写入目标元数据存储单元的元数据。这样,在缓存控制器接收到写请求时,将按照写请求中的数据写入缓存,不需要再从主存中读取大于写请求所请求写入的数据量,有助于减轻处理器以及缓存控制器的负担,节省缓存空间。
在一种可能的设计中,目标元数据存储单元存储有M次写请求所写入的数据的元数据,M是大于或等于1的整数;该方法还包括:当M大于阈值时,从主存中获取第二数据;其中,第二数据为目标逻辑地址范围所指示的存储空间中的所有数据;其中,目标逻辑地址范围包含目标元数据存储单元中存储的所有逻辑地址范围;在缓存中确定第二地址,并将第二数据写入第二地址所指示的第二数据存储单元;其中,第二地址包括第二数据存储单元的标识、第二数据在第二数据存储单元中的初始存储位置和第二数据的长度;生成第二数据的元数据,并将第二数据的元数据写入目标元数据存储单元;其中,第二数据的元数据包括第二地址与目标逻辑地址范围的对应关系;删除M次写请求所写入的数据的元数据。这样,当目标元数据存储单元中的元数据写入次数过多时,可以合并多次写入数据的元数据,能更减少元数据占用空间,同时提高元数据读取效率。
在另一种可能的设计中,M次写请求所写入的数据的元数据包括M个逻辑地址范围,该方法还包括:接收读请求,读请求包括第四逻辑地址范围;当M大于阈值时,从主存中获取第二数据,包括:若第四逻辑地址范围与M个逻辑地址中的任意一个逻辑地址范围有交集,且M值大于阈值,则从主存中获取第二数据。这样,可以在读请求再次所读的数据有一部分在缓存中时才进行该缓存的目标元数据存储空间中元数据的合并。避免对已经很久不用的数据的操作。
在另一种可能的设计中,将第一数据的元数据写入目标元数据存储单元之前,该方法还包括:若第一逻辑地址范围包含目标元数据存储单元已存储的一个或多个逻辑地址范围,则删除该一个或多个逻辑地址范围所在的元数据;其中,目标元数据是目标元数据存储单元中删除该一个或多个逻辑地址范围所对应的元数据之后剩余的元数据中最近一次写入的元数据。这样,在每次向缓存中写入元数据之前,判断该写入数据的元数据中的逻辑地址范围是否包含已经存在的元数据中的逻辑地址范围,若存在,则将已存在的元数据删除可以减少元数据占用空间,同时提高元数据读取效率。
在另一种可能的设计中,第一数据的元数据与目标元数据的写入时间的先后关系通过链表结构或数组中的一种来表征。这样可以通过数组的下标或者链表的指针表征第一数据的元数据与目标元数据的写入时间的先后关系。
在另一种可能的设计中,该缓存为写缓存、读缓存或smart缓存。
第二方面,提供了一种缓存控制器,该缓存控制器可用于执行上述第一方面的任一种可能的设计提供的任一种方法。
在一种可能的设计中,可以根据上述第一方面提供的任一种方法,对该缓存控制器进行功能模块的划分。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。又如,在该装置包含处理模块的基础之上,还可以包括收发模块,用于该装置与其他装置(或设备)之间收发数据,包括接收模块和发送模块。
第三方面,提供了一种计算机可读存储介质,如计算机非瞬态的可读存储介质。其上储存有计算机程序(或指令),当该计算机程序(或指令)在计算机上运行时,使得该计算机执行上述第一方面或第一方面的任一种可能的设计提供的任一种方法。
第四方面,提供了一种计算机程序产品,当其在计算机上运行时,使得第一方面或第一方面的任一种可能的设计提供的任一种方法被执行。
第五方面,提供了一种存储节点,包括主存、缓存和如第二方面或第二方面任一种可能的设计提供的缓存控制器。
可以理解的是,上述提供的任一种缓存控制器、存储节点、计算机存储介质或计算机程序产品等均可以应用于上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
附图说明
图1为可适用于本申请实施例系统的结构图;
图2为本申请实施例的一种存储节点的结构示意图;
图3为本申请实施例的一种主存预设逻辑地址范围与缓存元数据存储单元的对应图;
图4为本申请实施例提供的一种元数据管理方法的流程示意图;
图5为本申请实施例提供的一种元数据管理方法的流程示意图;
图6为本申请实施例提供的一种元数据管理方法的流程示意图;
图7为本申请实施例提供的一种缓存控制器的结构示意图。
具体实施方式
图1为本申请提供的技术方案所适用的一种系统架构的示意图。图1所示的系统架构可以包括主机1以及存储系统2。存储系统2可以包括:多个存储节点201。存储节点201,是存储系统中提供输入/输出(input/output,I/O)处理能力与存储空间的核心部件。
存储节点201,可以包括至少一个处理器2011、主存2012、主存控制器2013、缓存2014和缓存控制器2015。其中:
处理器2011,是存储节点201的控制中心。
主存2012,是存储节点201的主要存储资源。主存2012可以是固态硬盘(solidstate drive,SSD)等存储器。
主存控制器2013用于对主存2012中的数据进行管理。
缓存2014,是介于处理器2011与主存2012之间的高速存储器,主要用于提升系统的读写性能。缓存2014中的数据可以是主存2012中的一部分数据。进一步的,若缓存2014中包含处理器2011发送的读请求需要读取的数据,则处理器2011可以从缓存2014中获取读请求需要读取的数据,而不用从主存2012中获取读请求需要读取的数据,从而加快了读取速度。缓存2014可以是NandFlash芯片、存储级内存(storage class memory,SCM),也可以是其他的非易失的存储芯片,如相变存储器(phase change memory,PCM)、磁阻式随机访问存储器(magnetic random access memory,MRAM)、阻变式存储器(resistive random accessmemory,RRAM)、非易失性随机访问存储器(non-volatile random access memory,NVRAM)、动态随机存取存储器(dynamic random access memory,DRAM)等高性能介质的存储器。
缓存控制器2015用于对缓存2014中的数据进行管理。
处理器2011、缓存控制器2015和主存控制器2013可以是专用集成电路(application specific integrated circuit,ASIC)芯片,也可以是现场可编程门阵列(field programmable gate array,FPGA)等。
具体实现时,主存2012与主存控制器2013可以集成在一起,也可以独立设置。同样的,缓存2014与缓存控制器2015可以集成在一起,也可以独立设置。存储节点201的物理形态可以是通用的固态硬盘(solid state drives,SSD)。
在一种可能的设计中,如图2所示,缓存2014可以为写缓存、读缓存或smart缓存。相应的,与缓存2014连接的缓存控制器2015可以为:写缓存控制器、读缓存控制器或smart缓存控制器。通常,写缓存用于存储处理器2011发送的写请求中的数据。读缓存用于存储处理器2011从主存2012中读取的数据。读缓存的空间比较小,当读缓存的空间中所存储的数据的数据量大于一个阈值时,处理器2011会将读缓存中的部分数据写入smart缓存,然后删除读缓存中已经写入smart缓存中的数据。
在写请求场景中,当处理器2011接收到主机1发送的写请求时,将该写请求发送给写缓存控制器,写缓存控制器将该写请求中的数据写入写缓存。
在读请求场景中,当处理器2011接收到主机1发送的读请求时,将该读请求发送给写缓存控制器;写缓存控制器确定写缓存中是否存在该读请求所请求的数据,若存在,则将该数据发送给处理器2011;若不存在,则发送该读请求所请求的数据不存在的消息给处理器2011。处理器2011接收到写缓存控制器发送的该消息后,向读缓存控制器发送该读请求;读缓存控制器确定读缓存中是否存在该读请求所请求的数据,若存在,则将该数据发送给处理器2011;若不存在,则发送读请求所请求的数据不存在的消息给处理器2011。处理器2011在接收到读缓存控制器发送的该消息之后,向smart缓存控制器发送该读请求,smart缓存控制器确定smart缓存中是否存在该读请求所请求的数据,若存在,则将该数据发送给处理器2011。若不存在则发送读请求所请求的数据不存在的消息给处理器2011。处理器2011在接收到smart缓存控制器发送的该消息之后,向主存控制器2013发送读请求,主存控制器2013从主存2012中读取该请求所请求的数据并发送给处理器2011。接收到该读请求所请求的数据的处理器2011将该数据写入读缓存中并发送给主机1。
在一种可能的设计中,缓存2014与主存2012的对应关系可以如图3所示。
主存2012包括多个存储单元,每个存储单元具有一个逻辑地址。多个存储单元的逻辑地址被归为了多个逻辑地址范围。不同逻辑地址范围可以相同,也可以不同。例如,在图3中,每个预设逻辑地址范围包括连续的128KB个逻辑地址,如0KB-127KB为一个预设逻辑地址范围、128KB-255KB为另一个预设逻辑地址范围。在一个示例中,一个存储单元包括2个逻辑区块。
缓存2014可以包括数据存储区和元数据存储区。
数据存储区。用于存储数据。可选的,数据存储区可以包括多个数据存储单元。示例的,数据存储单元可以是持久化日志块(persistence log,plog)。不同plog可以有相同的空间大小比如4M,也可以具有不同的空间大小。每个plog用于存储主存中的一部分数据。如图3中数据存储区可以包括plog1、plog2、plog3、plog4和plog5等。
元数据存储区,用于存储数据存储区中所存储的数据的元数据。元数据存储区可以包括多个元数据存储单元,每个元数据存储单元的大小可以不同,也可以相同,可以不是同一块连续的存储空间,也可以是不连续的存储空间。一个元数据存储单元对应主存的一个预设逻辑地址范围,用于存储该预设逻辑地址范围所指示的存储空间中的数据的元数据,且任意两个元数据存储单元对应的预设逻辑地址范围没有交集。一个plog中存储的数据的元数据可以在一个元数据存储单元中,也可以在不同的元数据存储单元中,同样的,一个元数据存储单元中的元数据所对应的数据可以存入相同或不同的plog中,本申请对此不进行限制。如图3所示,元数据存储区包括元数据存储单元1~5等,这些元数据存储单元与主存的预设逻辑地址范围之间的对应关系可以如下表1所示:
表1
元数据存储单元标识 | 主存的逻辑地址范围 |
元数据存储单元1 | 0KB-127KB |
元数据存储单元2 | 128KB-255KB |
元数据存储单元3 | 256KB-383KB |
元数据存储单元4 | 384KB-511KB |
元数据存储单元5 | 512KB-639KB |
为便于更好的理解本申请实施例的技术方案,首先对其中的一些术语进行简单介绍。
1)、元数据
元数据为描述写入缓存中的数据的数据,包括该写入缓存中的数据所写入的数据存储单元的标识符,写入存储单元的初始存储位置和该写入数据的长度等写入数据信息,以及这些写入数据信息与该写入缓存数据的逻辑地址范围的对应关系。可以理解的是每向缓存中写入一次数据,都会写入该写入数据的元数据。以下简称一次写入数据的元数据为一个元数据。
2)、其他术语
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例中,“至少一个”是指一个或多个。“多个”是指两个或两个以上。
在本申请实施例中,“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
实施例一
如图4所示,为本申请实施例提供的一种元数据管理方法的流程示意图。示例性的,本实施例可以应用于图1、图2所示的系统架构。图4所示的方法可以包括以下步骤:
S101:缓存控制器接收处理器发送的写请求。该写请求包括写请求数据和写请求数据的逻辑地址范围。其中,写请求数据的逻辑地址范围是主存中用于存储写请求数据的存储空间的逻辑地址范围。
当缓存控制器是写缓存控制器时,在写请求场景中,处理器接收到主机发送的写请求之后,向写缓存控制器发送该写请求。
当缓存控制器是读缓存控制器,在读请求场景中,读缓存和smart缓存中均没有读请求所请求的数据时,处理器通过主存控制器从主存中获取该数据后,向读缓存控制器发送写请求。
当缓存控制器是smart缓存控制器,在写请求场景中,读缓存中的容量不够时,处理器向smart缓存控制器发送写请求。
当该写请求包括的写请求数据的逻辑地址范围在一个预设逻辑地址范围之内时。缓存控制器直接执行步骤S102-S108。该情况下,写请求数据即为第一数据。
当该写请求包括的写请求数据的逻辑地址范围跨多个预设逻辑地址范围时,缓存控制器可以将写请求数据按照预设逻辑地址范围对写请求数据进行拆分。随后,缓存控制器按照如下步骤S102-S108对拆分后的每一个请求数据进行写入处理。为了方便描述,步骤S102-S108中称当前处理的每一个请求数据为第一数据。
示例性的,写请求数据的逻辑地址范围为0KB-150KB。基于图3中的示例(即预设逻辑地址范围为128KB长度的逻辑地址),缓存控制器可以将写请求数据拆分为第一请求数据和第二请求数据。其中,第一请求数据的逻辑地址范围为0KB-127KB。第二请求数据的逻辑地址范围为128KB-150KB。该情况下,第一请求数据和第二请求数据可以分别作为第一数据。
示例性的,写请求数据的逻辑地址范围为120KB-220KB。基于图3中的示例,缓存控制器可以将写请求数据拆分为第一请求数据和第二请求数据。其中,第一请求数据的逻辑地址范围为120KB-127KB。第二请求数据的逻辑地址范围为128KB-220KB。该情况下,第一请求数据和第二请求数据可以分别作为第一数据。
S102:缓存控制器根据第一逻辑地址范围,在该缓存控制器对应的缓存中确定第一地址。
其中,第一地址包括:第一数据写入的数据存储单元的标识、第一数据写入该数据存储单元的初始存储位置和第一数据的长度。
缓存控制器可以根据第一逻辑地址范围的大小,向数据存储区申请第一数据将写入缓存的数据存储区的数据存储单元的标识。具体如何获取数据存储单元的标识可以参考现有技术。
缓存控制器可以根据第一数据写入缓存的数据存储单元中已存储的数据量,确定第一数据写入该数据存储单元的初始存储位置。
缓存控制器可以根据第一逻辑地址范围的容量确定第一数据的长度。
例如:假设缓存控制器向数据存储区申请的数据存储单元为plog,申请得到的plog标识为plog2,且plog2中已存储的数据量为10KB,则第一数据写入plog2的初始存储位置为10KB。假设第一逻辑地址范围为64KB-86KB时,则第一数据的长度为23KB。基于此,第一地址可以标记为(plog2,10KB,23KB)。
S103:缓存控制器将第一数据写入第一地址所指示的存储空间。
示例性的,基于S102中的示例,即第一地址为(plog2,10KB,23KB),缓存控制器可以将第一数据写入plog2中的10KB-32KB所指示的存储空间。
S104:缓存控制器生成第一数据的元数据,第一数据的元数据包括第一逻辑地址范围与第一地址的对应关系。
例如,基于步骤S102中的示例,第一数据的元数据可以标记为“64KB-86KB:(plog2,10KB,23KB)”。
S105:缓存控制器确定目标元数据存储单元,其中,目标元数据存储单元对应的预设逻辑地址范围包括第一逻辑地址范围。
本申请对如何确定目标元数据存储单元的方法不进行限制。
可选的,缓存控制器在主存包括的多个预设逻辑地址范围中,确定第一逻辑地址范围所属的预设逻辑地址范围;然后,根据预存的每个元数据存储单元对应的预设逻辑地址范围,确定第一逻辑地址范围所属的预设逻辑地址范围所对应的元数据存储单元;并将所确定的元数据存储单元作为目标元数据存储单元。例如,缓存控制器可以在获取主存包括的所有元数据存储单元对应的预设逻辑地址范围之后,按照顺序分别判断第一逻辑地址范围是否属于某个预设逻辑地址范围。若属于,则确定该预设逻辑地址范围对应的元数据存储单元即为目标元数据存储单元。例如,若第一逻辑地址范围为64KB-86KB,则基于表1中的示例,目标元数据存储单元对应的主存的预设逻辑地址范围的为0KB-127KB,目标元数据存储单元为元数据存储单元1。
S106:缓存控制器在目标元数据存储单元中获取目标元数据。
示例性的,假设缓存控制器获取的目标元数据存储单元中的元数据如下表2所示:
表2
第一次写入的元数据 | 第二次写入的元数据 |
0KB-8KB:(plog1,0KB,9KB) | 8KB-28KB:(plog1,8KB,21KB) |
那么,目标元数据为“8KB-28KB:(plog1,8KB,20KB)”
S107:缓存控制器将第一数据的元数据写入目标元数据存储单元。
示例性的,基于表2,缓存控制器将第一数据的元数据写入目标元数据存储单元之后,目标元数据存储单元中的元数据可以如下表3所示:
表3
S108:缓存控制器建立第一数据的元数据与目标元数据的写入时间的先后关系。
需要说明的是,本申请对第一数据的元数据与目标元数据的写入时间的先后关系的表现形式不进行限制,例如:可以以数组的形式存储第一数据的元数据与目标元数据的写入时间的先后关系。又如:可以以链表的形式存储第一数据的元数据与目标元数据的写入时间的先后关系。
本申请实施例对S103与S104~S108的执行顺序不进行限定。
后续,缓存控制器接收到读请求后,可以按照存储的各个元数据的先后关系,从最新写入的元数据往前读取元数据进行命中。避免多次写入缓存的数据存在重叠部分时,读命令命中旧数据。
本实施例中,由于缓存控制器建立了写入目标元数据存储单元的各个元数据的先后关系,因此,缓存控制器在进行元数据写入的时候,不必再考虑多次写入目标元数据存储单元的数据存在重叠部分的元数据的处理。因此,缓存控制器不需要每次按照固定的数据量写入缓存避免读放大的同时,兼顾了元数据管理的简单便捷性。
实施例二
假设目标元数据存储单元存储有M次写入缓存数据的元数据,其中,则每次元数据的写入都包含一个逻辑地址范围。M是大于或等于1的整数,那么,当第一逻辑地址范围包含M个逻辑地址范围中的一个或多个逻辑地址范围时,在S105之后,S106之前,该方法还包括:删除该一个或多个逻辑地址范围所在的元数据。
基于此,在S106中,目标元数据是N次写入缓存的元数据中最新写入的元数据,其中,N次写入缓存的元数据为从M次写入缓存的元数据中删除该一个或多个逻辑地址范围所对应在的元数据之后剩余的元数据。
示例性的,假设第一逻辑地址范围为8KB-30KB,基于表2的示例。缓存控制器获取的目标元数据存储单元中有两个逻辑地址范围,分别为8KB-28KB和0KB-8KB。其中,第一逻辑地址范围(即8KB-30KB)包含8KB-28KB。因此,删除8KB-28KB对应的元数据,那么,目标元数据存储单元中的元数据由表2更新为表4。
表4
第一次写入的元数据 |
0KB-8KB:(plog1,0KB,9KB) |
基于表4,在S106中,缓存控制器获取的目标元数据为“0KB-8KB:(plog1,0KB,9KB)”。
在S107中,缓存控制器将第一数据的元数据写入目标元数据存储单元之后,目标元数据存储单元中的元数据如下表5所示:
表5
第一次写入的元数据 | 第三次写入的元数据 |
0KB-8KB:(plog1,0KB,9KB) | 8KB-30KB:(plog2,10KB,23KB) |
如图5所示,为本实施例提供的一种管理元数据的方法的流程示意图。其中,图5中的S201-S205可以参考图4中的S101-S105,S206执行删除该一个或多个逻辑地址范围所在的元数据的过程。S207-S209可以参考图4中的S106-S108,不予赘述。
本实施例中,由于写入元数据时会判断新写入的逻辑地址范围是否包含之前写入的元数据的逻辑地址范围,若包含则删除包含的逻辑地址范围对应的元数据,这样,可以减少元数据所占用的存储空间。
实施例三
如图6所示,为本申请实施例提供的另一种管理元数据的方法的流程示意图。本实施例可以在执行上述实施例一或实施例二之后执行。示例性的,本实施例可以应用于图1所示的系统架构。图6所示的方法可以包括以下步骤:
S301:缓存控制器获取目标元数据存储单元中的所有元数据的数量M。
可选的,当缓存控制器接收到的读请求中的逻辑地址范围与目标元数据存储单元中存储的任意一个逻辑地址范围有交集时,缓存控制器获取目标元数据存储单元中的所有元数据的数量M,其中,目标元数据存储单元对应的预设逻辑地址范围包括读请求中的逻辑地址范围。
示例性的,假设缓存控制器获取的目标元数据存储单元中的元数据如下表6所示:
表6
S302:缓存控制器判断M是否大于或等于阈值。
若是,则执行步骤S303。若否,则结束。
S303:缓存控制器向主存控制器发送读请求,读请求包括一个逻辑地址范围。
在一种可能的设计中,缓存控制器发送的读请求中的逻辑地址范围是目标元数据存储单元对应的预设逻辑地址范围。例如:读请求中的逻辑地址范围为0KB-127KB。
在另一种可能的设计中,缓存控制器发送的读请求中的逻辑地址范围是按照最大覆盖原则获取的一个逻辑地址范围。最大覆盖原则为获取的逻辑地址范围可以包含该目标元数据存储单元中存储的所有逻辑地址范围。例如:若目标元数据存储单元中存储的逻辑地址范围包括:0KB-8KB,8KB-28KB,64KB-86KB,16KB-66KB,66KB-120KB。则获取的逻辑地址范围可以为0KB-120KB。
S304:主存控制器获取读请求所包括的逻辑地址范围所指示的存储空间中的数据,并将该数据作为第二数据。
S305:主存控制器向缓存控制器发送写请求,该写请求包括第二数据与第二数据的逻辑地址范围(即读请求中携带的逻辑地址范围)。
S306:缓存控制器根据第二数据的逻辑地址范围在缓存中确定第二地址。
具体的,参考实施例一中步骤S102,此处不再赘述。
基于表6中的示例,若第二数据的逻辑地址范围为目标元数据存储单元对应的预设逻辑地址范围,则第二地址为(plog3,56KB,128KB);若第二数据的逻辑地址范围为按照最大原则获取的一个逻辑地址范围,则第二地址为(plog3,56KB,121KB)。
S307:缓存控制器将第二数据写入第二地址所指示的存储空间。
S308:缓存控制器生成第二数据的元数据,其中,第二数据的元数据包括:第二逻辑地址范围与第二地址的对应关系。
基于表6中的示例,若第二数据的逻辑地址范围为目标元数据存储单元对应的预设逻辑地址范围,则第二数据的元数据为“0KB-127KB:(plog3,56KB,128KB)”;若第二数据的逻辑地址范围为按照最大原则获取的一个逻辑地址范围,则第二数据的元数据为“0KB-120KB:(plog3,56KB,121KB)”。
S309:缓存控制器删除步骤S301中的M个元数据。
S310:缓存控制器将第二数据的元数据写入目标元数据存储单元。
基于表6中的示例,若第二数据的逻辑地址范围为目标元数据存储单元对应的预设逻辑地址范围,则将第二数据的元数据写入目标元数据存储单元之后,目标元数据存储单元中的元数据如下表7所示:
表7
第六次写入的元数据 |
0KB-127KB:(plog3,56KB,128KB) |
若第二数据的逻辑地址范围为按照最大原则获取的一个逻辑地址范围,则将第二数据的元数据写入目标元数据存储单元之后,目标元数据存储单元中的元数据如下表8所示:
表8
第六次写入的元数据 |
0KB-120KB:(plog3,56KB,121KB) |
本申请对S309与S310执行的先后顺序不进行限定。
本实施例中,由于缓存控制器在判断目标元数据存储单元中的所有元数据数量大于阈值时,将目标元数据存储单元对应的逻辑地址范围内的所有数据写入缓存,或者按照最大覆盖原则,将最大覆盖范围的逻辑地址范围内的数据写入缓存,并将写入数据的元数据写入元数据存储单元,删除之前的所有元数据,以达到合并元数据的目的,这样,可以减少元数据所占用的存储空间,从而提高响缓存控制器读取数据的效率。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的方法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对缓存设备(如读缓存或写缓存或smart缓存)进行功能模块的划分,例如可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图7所示,为本申请实施例提供的缓存控制器的结构示意图。该缓存控制器70可以用于执行上文中任意一个实施例(如图4-图6所示的任一实施例)中缓存控制器所执行的功能。缓存控制器70可以包括:收发模块701和处理模块702。其中,收发模块701,用于接收写请求,写请求包括第一数据和第一逻辑地址范围;其中,第一逻辑地址范围是主存中用于存储第一数据的存储空间的地址范围;例如,结合图4,收发模块701可以用于执行S101中的接收步骤,结合图5收发模块701可以用于执行S201的接收步骤,结合图6,收发模块701可以用于执行S303中的发送步骤以及S305中的接收步骤。处理模块702用于根据写请求,在缓存中确定第一地址,并将第一数据写入第一地址所指示的第一数据存储单元;其中,第一地址包括第一数据存储单元的标识、第一数据在第一数据存储单元中的初始存储位置和第一数据的长度;生成第一数据的元数据,并将第一数据的元数据写入目标元数据存储单元;其中,第一数据的元数据包括第一地址与第一逻辑地址范围的对应关系;目标元数据存储单元对应的预设逻辑地址范围包括第一逻辑地址范围;建立第一数据的元数据与目标元数据的写入时间的先后关系;其中,目标元数据是最近一次写入目标元数据存储单元的元数据。例如,结合图4,处理模块702可以用于执行S102-S108。结合图5,处理模块702可以用于执行S202-S209。结合图6,处理模块702可以用于执行S301-S302,S306-S310。
可选的,目标元数据存储单元存储有M次写请求所写入的数据的元数据,M是大于或等于1的整数,当M大于阈值时,处理模块702用于从主存中获取第二数据;其中,第二数据为目标逻辑地址范围所指示的存储空间中的所有数据;其中,目标逻辑地址范围包含目标元数据存储单元中存储的所有逻辑地址范围;在缓存中确定第二地址,并将第二数据写入第二地址所指示的第二数据存储单元;其中,第二地址包括第二数据存储单元的标识、第二数据在第二数据存储单元中的初始存储位置和第二数据的长度;生成第二数据的元数据,并将第二数据的元数据写入目标元数据存储单元;其中,第二数据的元数据包括第二地址与目标逻辑地址范围的对应关系;删除M次写请求所写入的数据的元数据。
可选的,M次写请求所写入的数据的元数据包括M个逻辑地址范围,收发模块701还用于:接收读请求,读请求包括第四逻辑地址范围;若第四逻辑地址范围与M个逻辑地址中的任意一个逻辑地址范围有交集,且M值大于阈值,则处理模块702还用于从主存中获取第二数据。
可选的,在将第一数据的元数据写入目标元数据存储单元之前,若第一逻辑地址范围包含目标元数据存储单元已存储的一个或多个逻辑地址范围,则处理模块702用于删除一个或多个逻辑地址范围所在的元数据;其中,目标元数据是目标元数据存储单元中删除该一个或多个逻辑地址范围所对应的元数据之后剩余的元数据中最近一次写入的元数据。
可选的,第一数据的元数据与目标元数据的写入时间的先后关系通过链表结构来表征。
关于上述可选方式的具体描述参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种缓存控制器70的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
需要说明的是,上述各个单元对应执行的动作仅是具体举例,各个单元实际执行的动作参照上述基于图4-图6所述的实施例的描述中提及的动作或步骤。
本申请实施例还提供了一种存储节点,包括主存、缓存和上文中提供的缓存控制器,缓存控制器所执行的步骤可以参考上文,此处不再赘述。
需要说明的是,上文中所描述的缓存控制器可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该缓存控制器可以是逻辑电路、集成电路等。当通过软件来实现时,该缓存控制器可以是一个通用处理器,通过读取存储的软件代码来实现。
本申请实施例还提供了一种芯片。该芯片中集成了用于实现上述缓存控制器的功能的电路和一个或者多个接口。可选的,该芯片支持的功能可以包括基于图4-图6所述的实施例中的处理动作,此处不再赘述。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可通过程序来指令相关的硬件完成。所述的程序可以存储于一种计算机可读存储介质中。上述提到的存储介质可以是只读存储器,随机接入存储器等。上述处理单元或处理器可以是中央处理器,通用处理器、特定集成电路(application specific integratedcircuit,ASIC)、微处理器(digital signal processor,DSP),现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
本申请实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述实施例中的任意一种方法。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriberline,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solidstate disk,SSD))等。
应注意,本申请实施例提供的上述用于存储计算机指令或者计算机程序的器件,例如但不限于,上述存储器、计算机可读存储介质和通信芯片等,均具有非易失性(non-transitory)。
在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。
Claims (14)
1.一种元数据管理方法,其特征在于,应用于存储节点中的缓存控制器,所述存储节点还包括主存和缓存;所述缓存中包含多个元数据存储单元,一个元数据存储单元对应所述主存的一个预设逻辑地址范围,用于存储所述预设逻辑地址范围所指示的存储空间中的数据的元数据,且任意两个元数据存储单元对应的预设逻辑地址范围没有交集;所述方法包括:
接收写请求,所述写请求包括第一数据和第一逻辑地址范围;其中,所述第一逻辑地址范围是所述主存中用于存储所述第一数据的存储空间的地址范围;
根据所述写请求,在所述缓存中确定第一地址,并将所述第一数据写入所述第一地址所指示的第一数据存储单元;其中,所述第一地址包括所述第一数据存储单元的标识、所述第一数据在所述第一数据存储单元中的初始存储位置和所述第一数据的长度;
生成所述第一数据的元数据,并将所述第一数据的元数据写入目标元数据存储单元;其中,所述第一数据的元数据包括所述第一地址与所述第一逻辑地址范围的对应关系;所述目标元数据存储单元对应的预设逻辑地址范围包括所述第一逻辑地址范围;
建立所述第一数据的元数据与目标元数据的写入时间的先后关系;其中,所述目标元数据是最近一次写入所述目标元数据存储单元的元数据。
2.根据权利要求1所述的方法,其特征在于,所述目标元数据存储单元存储有M次写请求所写入的数据的元数据,所述M是大于或等于1的整数;所述方法还包括:
当所述M大于阈值时,从所述主存中获取第二数据;其中,所述第二数据为目标逻辑地址范围所指示的存储空间中的所有数据;其中,所述目标逻辑地址范围包含所述目标元数据存储单元中存储的所有逻辑地址范围;
在所述缓存中确定第二地址,并将所述第二数据写入所述第二地址所指示的第二数据存储单元;其中,所述第二地址包括所述第二数据存储单元的标识、所述第二数据在所述第二数据存储单元中的初始存储位置和所述第二数据的长度;
生成第二数据的元数据,并将所述第二数据的元数据写入所述目标元数据存储单元;其中,所述第二数据的元数据包括所述第二地址与所述目标逻辑地址范围的对应关系;
删除所述M次写请求所写入的数据的元数据。
3.根据权利要求2所述的方法,其特征在于,所述M次写请求所写入的数据的元数据包括M个逻辑地址范围,所述方法还包括:
接收读请求,所述读请求包括第四逻辑地址范围;
所述当所述M大于阈值时,从所述主存中获取第二数据,包括:
若所述第四逻辑地址范围与所述M个逻辑地址中的任意一个逻辑地址范围有交集,且所述M值大于所述阈值,则从所述主存中获取所述第二数据。
4.根据权利要求1-3任一项所述的方法,其特征在于,在将所述第一数据的元数据写入目标元数据存储单元之前,所述方法还包括:
若所述第一逻辑地址范围包含所述目标元数据存储单元已存储的一个或多个逻辑地址范围,则删除所述一个或多个逻辑地址范围所在的元数据;其中,所述目标元数据是所述目标元数据存储单元中删除所述一个或多个逻辑地址范围所对应的元数据之后剩余的元数据中最近一次写入的元数据。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述第一数据的元数据与所述目标元数据的写入时间的先后关系是通过链表结构来表征的。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述缓存为写缓存、读缓存或smart缓存。
7.一种缓存控制器,其特征在于,包括:应用于存储节点中,所述存储节点还包括主存和缓存;所述缓存中包含多个元数据存储单元,一个元数据存储单元对应所述主存的一个预设逻辑地址范围,用于存储所述预设逻辑地址范围所指示的存储空间中的数据的元数据,且任意两个元数据存储单元对应的预设逻辑地址范围没有交集;所述缓存控制器包括:
收发模块,用于接收写请求,所述写请求包括第一数据和第一逻辑地址范围;其中,所述第一逻辑地址范围是主存中用于存储所述第一数据的存储空间的地址范围;
处理模块,用于根据所述写请求,在所述缓存中确定第一地址,并将所述第一数据写入所述第一地址所指示的第一数据存储单元;其中,所述第一地址包括所述第一数据存储单元的标识、所述第一数据在所述第一数据存储单元中的初始存储位置和所述第一数据的长度;生成所述第一数据的元数据,并将所述第一数据的元数据写入目标元数据存储单元;其中,所述第一数据的元数据包括所述第一地址与所述第一逻辑地址范围的对应关系;所述目标元数据存储单元对应的预设逻辑地址范围包括所述第一逻辑地址范围;建立所述第一数据的元数据与目标元数据的写入时间的先后关系;其中,所述目标元数据是最近一次写入所述目标元数据存储单元的元数据。
8.根据权利要求7所述的缓存控制器,其特征在于,所述目标元数据存储单元存储有M次写请求所写入的数据的元数据,所述M是大于或等于1的整数;所述处理模块还用于:
当所述M大于阈值时,从所述主存中获取第二数据;其中,所述第二数据为目标逻辑地址范围所指示的存储空间中的所有数据;其中,所述目标逻辑地址范围包含所述目标元数据存储单元中存储的所有逻辑地址范围;
在所述缓存中确定第二地址,并将所述第二数据写入所述第二地址所指示的第二数据存储单元;其中,所述第二地址包括所述第二数据存储单元的标识、所述第二数据在所述第二数据存储单元中的初始存储位置和所述第二数据的长度;
生成第二数据的元数据,并将所述第二数据的元数据写入所述目标元数据存储单元;其中,所述第二数据的元数据包括所述第二地址与所述目标逻辑地址范围的对应关系;
删除所述M次写请求所写入的数据的元数据。
9.根据权利要求8所述的缓存控制器,其特征在于,所述M次写请求所写入的数据的元数据包括M个逻辑地址范围;
所述收发模块还用于:接收读请求,所述读请求包括第四逻辑地址范围;
所述处理模块还用于:若所述第四逻辑地址范围与所述M个逻辑地址中的任意一个逻辑地址范围有交集,且所述M值大于所述阈值,则从所述主存中获取所述第二数据。
10.根据权利要求7-9任一项所述的缓存控制器,其特征在于,在将所述第一数据的元数据写入目标元数据存储单元之前,所述处理模块还用于:
若所述第一逻辑地址范围包含所述目标元数据存储单元已存储的一个或多个逻辑地址范围,则删除所述一个或多个逻辑地址范围所在的元数据;其中,所述目标元数据是所述目标元数据存储单元中删除所述一个或多个逻辑地址范围所对应的元数据之后剩余的元数据中最近一次写入的元数据。
11.根据权利要求7-9任一项所述的缓存控制器,其特征在于,所述第一数据的元数据与所述目标元数据的写入时间的先后关系是通过链表结构来表征的。
12.一种存储节点,其特征在于,包括主存、缓存和如权利要求7-11任意一项所述的缓存控制器。
13.根据权利要求12所述的存储节点,其特征在于,所述缓存为写缓存、读缓存或smart缓存。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910866774.5A CN110727403B (zh) | 2019-09-12 | 2019-09-12 | 元数据管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910866774.5A CN110727403B (zh) | 2019-09-12 | 2019-09-12 | 元数据管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110727403A CN110727403A (zh) | 2020-01-24 |
CN110727403B true CN110727403B (zh) | 2021-03-30 |
Family
ID=69218937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910866774.5A Active CN110727403B (zh) | 2019-09-12 | 2019-09-12 | 元数据管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110727403B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11422934B2 (en) * | 2020-07-14 | 2022-08-23 | Micron Technology, Inc. | Adaptive address tracking |
CN111949568B (zh) * | 2020-07-31 | 2023-07-21 | 新华三半导体技术有限公司 | 一种报文处理方法、装置及网络芯片 |
CN112486417B (zh) * | 2020-12-03 | 2023-07-04 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN112597074B (zh) * | 2020-12-22 | 2022-08-30 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
CN113741816B (zh) * | 2021-08-31 | 2024-09-24 | 杭州海康威视数字技术股份有限公司 | 块设备的操作方法、装置、设备及机器可读存储介质 |
CN114218017B (zh) * | 2022-02-18 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种数据恢复方法、系统、装置及存储设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335765B (zh) * | 2008-07-25 | 2010-12-29 | 华中科技大学 | 基于移动缓存的存储服务中间件 |
CN103838853B (zh) * | 2014-03-17 | 2017-05-10 | 华中科技大学 | 一种基于不同存储介质的混合文件系统 |
US9836229B2 (en) * | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
CN104461935B (zh) * | 2014-11-27 | 2018-03-13 | 华为技术有限公司 | 一种进行数据存储的方法、装置及系统 |
CN106708442B (zh) * | 2016-12-30 | 2020-02-14 | 硬石科技(武汉)有限公司 | 同时适应磁盘与固态硬盘读写特性的海量数据存储方法 |
-
2019
- 2019-09-12 CN CN201910866774.5A patent/CN110727403B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110727403A (zh) | 2020-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110727403B (zh) | 元数据管理方法及装置 | |
US11687446B2 (en) | Namespace change propagation in non-volatile memory devices | |
US11640242B2 (en) | Namespace management in non-volatile memory devices | |
KR102002830B1 (ko) | 세그먼트 클리닝 장치 및 방법 | |
JP6343438B2 (ja) | コンピュータシステム及びコンピュータシステムのデータ管理方法 | |
CN104866428B (zh) | 数据存取方法和数据存取装置 | |
CN112632069B (zh) | 哈希表数据存储管理方法、装置、介质和电子设备 | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
CN113760185B (zh) | 内存块回收方法和装置 | |
KR20160105624A (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
CN113032293A (zh) | 缓存管理器及控制部件 | |
CN105138469A (zh) | 一种数据读写方法以及主板 | |
JP2019105874A (ja) | 情報処理装置および方法 | |
WO2020192710A1 (zh) | 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置 | |
US11334266B2 (en) | Memory system and method for controlling nonvolatile memory | |
CN104834478A (zh) | 一种基于异构混合存储设备的数据写入及读取方法 | |
US20180217935A1 (en) | Method and apparatus for reading redundant array of independent disks | |
CN117806989A (zh) | 基于持久化内存的高速数据处理方法、装置、设备及介质 | |
US12050539B2 (en) | Data access method and apparatus and storage medium | |
WO2015118623A1 (ja) | 情報処理装置 | |
CN115904211A (zh) | 一种存储系统、数据处理方法及相关设备 | |
CN117806570B (zh) | 在线内存扩展方法、装置、设备及存储介质 | |
CN118244996B (zh) | 硬盘读写方法、装置、电子设备、可读存储介质及产品 | |
CN116665727B (zh) | 写i/o汇聚方法、装置、存储设备和存储介质 | |
US20230342049A1 (en) | Reading a master boot record for a namespace using a regular read operation |
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 |