CN113625938A - 一种元数据存储方法及其设备 - Google Patents
一种元数据存储方法及其设备 Download PDFInfo
- Publication number
- CN113625938A CN113625938A CN202010615013.5A CN202010615013A CN113625938A CN 113625938 A CN113625938 A CN 113625938A CN 202010615013 A CN202010615013 A CN 202010615013A CN 113625938 A CN113625938 A CN 113625938A
- Authority
- CN
- China
- Prior art keywords
- metadata
- data
- storage unit
- index
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013500 data storage Methods 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims description 21
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 235000019580 granularity Nutrition 0.000 description 50
- 230000015654 memory Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000020169 heat generation Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0629—Configuration or reconfiguration of 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/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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]
-
- 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
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)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种元数据存储方法,本方法可以用于存储系统中。本申请实施例方法包括:第一元数据存储单元和第二元数据存储单元,其中第一元数据存储单元的尺寸大于第二元数据存储单元的尺寸,当目标数据的尺寸达到设定阈值时,按照第一元数据存储单元存储目标数据的元数据,或者,当目标数据的尺寸小于设定阈值时,按照第二元数据存储单元存储目标数据的元数据。本申请实施例可以减少存储数据时对应的元数据,节省了存储资源。
Description
本申请要求于2020年05月06日提交中国专利局、申请号为202010374530.8、申请名称为“数据处理方法、装置以及存储设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及计算机技术领域,具体涉及一种元数据存储方法及其设备。
背景技术
在存储系统中,性能和成本是存储系统所追求的关键指标。为了提供丰富的存储特性,数据在存储时都会建立索引关系,索引关系应用于管理用户逻辑数据空间与底层存储池或者存储盘的物理数据空间之间的映射关系。
在建立映射关系时,物理数据空间被划分成若干个固定大小的单元,该单元也称为粒度。每一个粒度的逻辑地址到物理地址的映射,在存储系统中也称之为索引元数据。
在现有的存储系统中,在同一时间段内需要读取大量的数据时,服务器会将需要读取的大量数据拆分成多个固定大小的粒度的数据进行查询或读取,对应的产生了多条索引元数据。大量索引元数据的产生会消耗过多的存储资源,进而影响了数据查询或者读取的效率。
发明内容
本申请实施例提供了一种元数据存储方法及其设备,用于存取元数据时,根据目标数据的尺寸将目标数据的元数据存储到对应的元数据存储单元中,而不需要将目标数据拆分为多个元数据进行存储,节省了存储资源。
本申请实施例第一方面提供了一种元数据存储方法,包括:
存储设备中提供了第一元数据存储单元和第二元数据存储单元,其中第一元数据存储单元的尺寸大于第二元数据存储单元的尺寸,该尺寸可以对应为数据粒度。
当目标数据的尺寸达到设定阈值时,则将目标数据的元数据存储在第一元数据存储单元中,该目标数据表示需要存储在存储设备中的数据。
当目标数据的尺寸小于设定阈值时,则将目标数据的元数据存储在第二元数据存储单元中。
本申请实施例中,根据目标数据的尺寸进而将目标数据的元数据存储在对应的存储单元中,而不需要将目标数据拆分为多个元数据进行存储,节省了存储资源。
可选的,在一种可能的实现方式中,存储设备设置元数据存储单元的尺寸的最大值和最小值。第一元数据存储单元的尺寸位于最小值和最大值之间,且第二元数据存储单元的尺寸也位于最小值和最大值之间。
本申请实施例中,设定了元数据存储单元的尺寸的最大值和最小值,增加了方案的可实现性。
可选地,在一种可能的实现方式中,当首次存储目标数据时,目标数据的尺寸小于设定阈值。之后目标数据被更新,对应的目标数据的尺寸被更新为大于设定阈值时,则存储设备删除第二数据存储单元中目标数据的元数据。并将更新后的目标数据的元数据存储在第一元数据存储单元中。
本申请实施例中,当目标数据的尺寸变大时,则将目标数据的元数据存储在尺寸更大的第一元数据存储单元中,增加了元数据存储的灵活性。
可选地,在一种可能的实现方式中,当首次存储目标数据时,目标数据的尺寸大于设定阈值。之后目标数据被更新,对应的目标数据的尺寸被更新为小于设定阈值时,则存储设备删除第一数据存储单元中目标数据的元数据的差值元数据,该差值元数据表示更新后的目标数据的元数据与目标数据的元数据之间的差值。并将该差值元数据存储在第二元数据存储单元中。
本申请实施例中,当目标数据的尺寸变小时,则将目标数据的元数据的差值元数据存储在第二元数据存储单元中,将不同的元数据进行分类管理,增加了元数据存储的灵活性。
可选地,在一种可能的实现方式中,当存储设备中存在多个第二元数据存储单元,多个第二元数据存储单元中分别存储有不同的目标数据的元数据时,且多个第二元数据存储单元叠加的尺寸小于或者等于第一元数据存储单元的尺寸,则删除多个第二元数据存储单元中的元数据,并且将这些不同的目标数据的元数据存储到第一元数据存储单元中。
本申请实施例中,当多个存储单元分别存着尺寸较小的目标数据的元数据时,可以将这些尺寸较小的目标数据的元数据合并到一个大的元数据存储单元中,提升了元数据存储的灵活性,也节省了元数据的存储资源。
本申请实施例第二方面提供了一种存储设备,包括:
第一元数据存储单元和第二元数据存储单元,其中第一元数据存储单元的尺寸大于第二元数据存储单元的尺寸;
处理单元,用于当目标数据的尺寸达到设定阈值时,按照第一元数据存储单元存储目标数据的元数据;或者
处理单元还用于当目标数据的尺寸小于设定阈值时,按照第二元数据存储单元存储目标数据的元数据。
可选地,存储设备还包括:
设置单元,用于设置元数据存储单元的尺寸的最大值和最小值,第一元数据存储单元的尺寸位于最小值和最大值之间,第二元数据存储单元的尺寸位于最小值和最大值之间。
可选地,当目标数据的尺寸小于设定阈值时,存储设备还包括:
删除单元,用于目标数据的尺寸被更新为大于设定阈值时,删除第二数据存储单元中目标数据的元数据;
处理单元还用于将更新后的目标数据的元数据存储在第一元数据存储单元中。
可选地,当目标数据的尺寸大于设定阈值时,存储设备还包括:
删除单元还用于目标数据的尺寸被更新为小于设定阈值时,删除第一数据存储单元中目标数据的元数据的差值元数据,差值元数据表示更新后的目标数据的元数据与目标数据的元数据之间的差值;
处理单元还用于将差值元数据存储在第二元数据存储单元中。
可选地,当存在多个第二元数据存储单元,多个第二元数据存储单元中分别存储有不同的目标数据的元数据时,且多个第二元数据存储单元叠加的尺寸小于或者等于第一元数据存储单元的尺寸,删除单元还用于删除多个第二元数据存储单元中的元数据;
处理单元还用于将不同的目标数据的元数据存储到第一元数据存储单元中。
本申请实施例第三方面提供了一种存储系统,包括:
第一元数据存储单元,用于执行本申请第一方面的实施方式中第一元数据存储单元所执行的步骤。
第二元数据存储单元,用于执行本申请第一方面的实施方式中第二元数据存储单元所执行的步骤。
本申请实施例第四方面提供一种存储设备,包括:
处理器、存储器以及输入输出接口,该处理器、该存储器与该输入输出接口连接;该存储器,用于存储程序代码;该处理器调用该存储器中的程序代码时执行本申请第一方面实施方式提供的方法。
本申请实施例第五方面提供一种存储介质,需要说明的是,本发的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产口的形式体现出来,该计算机软件产品存储在一个存储介质中,用于储存为上述设备所用的计算机软件指令,其包含用于执行上述第一方面中为元数据存储方法所设计的程序。
该存储介质包括:U盘、移动硬盘、只读存储器(英文缩写ROM,英文全称:Read-OnlyMemory)、随机存取存储器(英文缩写:RAM,英文全称:Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例第六方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如本申请第一方面实施方式的方法。
其中,上述任一处提到的处理器,可以是一个通用中央处理器(CentralProcessing Unit,CPU),微处理器,特定应用集成电路(application-specificintegrated circuit,ASIC),或一个或多个用于控制上述第一方面中端口检测的方法的程序执行的集成电路。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,根据目标数据的尺寸进而将目标数据的元数据存储在对应的存储单元中,而不需要将目标数据拆分为多个元数据进行存储,节省了存储资源。
附图说明
图1为本申请实施例提供的元数据存储系统框架示意图;
图2为本申请实施例提供的元数据存储方法一个流程示意图;
图3为本申请实施例提供的元数据存储方法一个场景示意图;
图4为本申请实施例提供的元数据存储方法另一场景示意图;
图5为本申请实施例提供的元数据存储方法另一场景示意图;
图6为本申请实施例提供的元数据存储方法另一场景示意图;
图7为本申请实施例提供的元数据存储方法另一流程示意图;
图8为本申请实施例提供的元数据存储方法另一场景示意图;
图9为本申请实施例提供的元数据存储方法另一场景示意图;
图10为本申请实施例提供的元数据存储方法另一场景示意图;
图11为本申请实施例提供的元数据存储方法另一场景示意图;
图12为本申请实施例提供的存储设备一个结构示意图;
图13为本申请实施例提供的存储设备另一结构示意图。
具体实施方式
本申请实施例提供了一种数据存储方法及其设备,用于在数据存取时,根据第一数据生成对应的第一索引节点,该第一索引节点的数据粒度大于最小数据粒度,因此不需要对应的生成多条对应最小粒度的索引节点,节省了存储资源,从而提升了数据读写的效率。
请参阅图1,为本申请实施例提供的元数据存储系统框架示意图。
本申请实施例提供了一种元数据存储索引框架,该数据存储索引框架包括多个索引节点,不同索引节点之间的对应关系构成了索引树的框架。其中,如图MGTree部分,根索引节点对应的数据粒度最大,一个根索引节点下对应多个子索引节点,不同的子索引节点下再对应更多的子索引节点。在同层的索引节点中,同层的索引节点可以对应不同的数据粒度,也可以对应相同的数据粒度,具体本申请实施例中不做限定。在上下层索引节点的对应关系中,下层索引节点的数据粒度小于上层索引节点对应的数据粒度,即下层索引节点依附于上层索引节点。
其中,在一种可能的实现方式中,最底层的索引节点对应的数据粒度最小,该最小的数据粒度为存储系统预先设置的。其中,最上层的索引节点可以命名为Max Grain,即表示最大数据粒度对应的索引节点,即最上层的索引节点对应为元数据存储单元的尺寸的最大值,最下层的索引节点可以命名为Min Grain,即表示最小数据粒度对应的索引节点,即最下层的索引节点对应为元数据存储单元的尺寸的最小值。
需要说明的是,该MGTree可以单独设置于存储索引系统中,也可以嫁接在已有的存储索引系统中。例如,MGTree可以嫁接与ARTree中。更具体的,MGTree的根索引节点对应于ARTree最下层的一个索引节点。对于ARTree来说,原先索引一个固定的数据块的功能则转变为索引一个MGTree的根索引节点。一个MGTree子索引实例整体,则对应ARTree主索引的一条记录,仍然描述一个固定大小的数据粒度,只是这个数据粒度的大小可以对应设置,例如1MB,2MB等。可以理解的是,在实际应用过程中,该MGTRee还可以嫁接在其他存储索引系统中,例如B+树的存储索引系统中,具体此处不做限定。
该存储索引框架可以应用于存储设备中,例如存储服务器,具有存储功能的终端设备等,具体此处不做限定。
在实际应用过程中,该存储设备可以包括至少一个第一元数据存储单元和至少一个第二元数据存储单元,该元数据存储单元的尺寸即表示数据粒度。元数据存储单元中存储着目标数据的元数据,该元数据即表示索引节点中存储的索引信息,存储单元则对应索引节点。
下面结合图1的存储系统框架,对本申请实施例中的数据存储方法进行描述。
本申请实施例中存储设备对写入数据对应的索引信息的方式包括两种,其中一种是重叠模式,即在写入重复数据对应的索引信息时,根据写入的顺序建立对应的索引节点,且不对之前的索引节点中已经存在的索引信息进行修改。这样在写入数据的时候可以快速的写入相关的索引信息,提升了写入数据时的效率。另外一种是线性模式,即在写入重复数据对应的索引信息时,先修改之前的索引节点中已经存在的索引信息,再建立对应的此次修改的数据的子索引节点,并将此次修改的数据的索引信息保存在该新建立的子索引节点中。线性模式在读取数据时,不需要再重新判断索引信息是否有重复,直接根据索引信息读取相应的数据即可,提升了读取数据的效率。具体的,本申请实施例为两个不同的索引信息建立的方式分别进行描述。
一、重叠模式。
请参阅图2,为本申请实施例提供的数据存储方法一个流程示意图。
在步骤201中,存储设备接收第一写请求。
当终端设备或者其他网络设备需要将数据写入存储设备时,存储设备会接收到第一写请求,该第一写请求用于写入第一数据,即该第一数据为目标数据。
具体的,在一种可能的实现方式中,该第一写请求中包含了待写入的第一数据的数据长度和相关信息。存储设备根据第一写请求中包含的第一数据的数据长度和相关信息为其分配存储地址。
本申请实施例应用的场景有多种,例如在带宽型场景下,终端设备或者其他网络设备会在单位时间内写入大量的数据,例如在1ms的时间内写入256kb或者1mb的数据。则此时的第一写请求要求写入的数据大小为256kb或者1mb。
在步骤202中,存储设备根据第一写请求生成子索引树。
存储设备在获取到第一写请求之后,存储设备根据第一写请求中携带的相关信息生成子索引树,该子索引树为主索引树中的子索引树,该主索引树用于查询存储设备存储的数据。
具体的,该主索引树为存储设备中主要的索引框架。当存储设备获取到第一写请求中待写入的第一数据的数据长度和相关信息之后,存储设备会分配对应的需要写入的地址。存储设备根据对应的地址在主索引树中找到对应的主索引树中的索引节点,并在该索引节点下生成子索树,该子索引树至少包括了一个根节点,该根节点即为MaxGrain。
需要说明的是,不同的子索引树的根节点的数据粒度可以不同,也可以相同,具体根据实际应用过程中的需求进行设置,具体此处不做限定。
在实际应用过程中,当第一写请求请求写入的第一数据的数据粒度大于预先设置的子索引树的根节点的数据粒度时,则分别在主索引树中建立多个子索引树,并将该第一数据分解成多个根节点数据粒度大小的数据,再对应的在各个不同的子索引树中保存该被分解的第一数据。
在步骤203中,存储设备根据子索引树和第一写请求生成第一索引节点。
存储设备在生成子索引树之后,根据子索引树和第一写请求中的相关信息生成第一索引节点,该第一索引节点为子索引树的子节点,第一索引节点记录了第一数据的索引信息,该第一数据的索引信息用于查询第一数据。
具体的,存储设备在生成了子索引树之后,存储设备根据该第一数据的数据长度,确定是否将该第一数据的索引信息记录在子索引树根节点中,即当目标数据的尺寸达到设定阈值时,按照第一元数据存储单元存储目标数据的元数据,此时第一元数据存储单元即为根节点。当第一数据的数据长度等于MaxGrain的数据粒度时,则存储设备将该第一数据的索引信息记录在该根节点内,即该根节点为第一索引节点。若该第一数据的数据长度小于MaxGrain的数据粒度时,即目标数据的尺寸小于设定阈值时,按照第二元数据存储单元存储目标数据的元数据,此时第二元数据存储单元即为根节点下的子索引节点。在该根节点下生成子索引节点,并将该第一数据的索引信息记录在该子索引节点中,即该子索引节点为第一索引节点。
优选的,在一种可能的实现方式中,当第一数据的数据长度大于根节点数据粒度的一半,且小于根节点数据粒度时,则存储设备将该第一数据的索引信息记录在该子索引树中的根节点内。当第一数据的数据长度小于或者等于根节点的数据粒度的一半时,则存储设备在根索引节点下生成一个新的子索引节点,并将该第一数据的索引信息记录在该新的子索引节点中。
需要说明的是,存储设备是根据第一数据的数据长度生成对应的索引信息并存在对应的索引节点之中,而不需要将第一数据拆分成若干个最小数据粒度的数据,并对应的生成最小数据粒度的索引信息。因此节省了存储设备存储索引信息的存储资源。
举例来说,当第一写请求请求写入一个2MB的数据,存储设备在索引树中对应的索引节点下生成子索引树,并将该数据的索引信息记录在根节点下。即该根节点对应的数据粒度为2MB。
在步骤204中,存储设备接收第二写请求。
存储设备保存了第一写请求的索引信息之后,存储设备接收到第二写请求,该第二写请求用于写入第二数据,第二数据写入的逻辑地址属于第一数据的索引信息所在的子索引树的逻辑地址区间内。
在步骤205中,存储设备根据第二写请求和子索引树生成第二索引节点。
当存储设备接收到第二写请求之后,存储设备根据第二写请求和子索引树生成第二索引节点,该第二索引节点中的索引信息用于查询第二数据。
在一种可能的实现方式中,当第二数据为对第一数据进行修改的数据,且第二数据的数据长度小于第一数据的数据长度时,存储设备根据第二写请求中携带的相关信息、子索引树中记录的索引信息和第一索引节点生成第二索引节点,该第二索引节点为第一索引节点的子节点。如图3所示,图3左边的条格从Old至New方向,最下层的条格表示最先写入的第一数据对应的索引信息,最上层的条格表示最后写入的第一数据的修改的数据对应的索引信息。条格从最下面一层到最上面一层,依次表示不同批次的写请求对第一数据的修改数据对应的索引信息,其中,不同的网格条代表着不同的修改数据对应的不同的索引信息。图3右边的树状图中,最上层的节点为根节点,依次往下为该子索引树的子索引节点。
具体的,在一种可能的实现方式中,第二写请求中携带的第二数据的逻辑地址信息指示将第二数据写入第一数据所在的子索引树中,且第二数据的数据长度小于第一数据的数据长度,即表示第二数据为第一数据中进行修改的数据。存储设备在第一数据对应的第一索引节点的下一层建立新的索引节点,即第二索引节点,并将第二数据对应的索引信息保存在该第二索引节点中。在实际应用过程中,第一数据为目标数据,第二数据为更新后的目标数据,设定的阈值为第一数据对应的数据粒度,差值元数据表示第一数据中进行修改的数据对应的索引信息,则更新后的目标数据的尺寸小于设定的阈值,将差值元数据存储在第二元数据存储单元中,该第二元数据存储单元即为第二索引节点。
在一种可能的实现方式中,当第二数据的数据长度大于或者等于第一数据的数据长度时,即表示第二数据覆盖了第一数据。存储设备通过第二数据的逻辑地址信息和查找到的对应于第二数据的逻辑地址信息的子索引树,并确定第二数据为对第一数据进行修改的数据。存储设备查找到对应的第一索引节点之后,将该第一索引节点删除。
当第二数据的数据长度等于第一数据的数据长度时,存储设备在第一索引节点的相同位置生成第二索引节点,或者,存储设备在第一索引节点平行的位置生成第二索引节点,具体此处不做限定。
当第二数据的数据长度大于第一数据的数据长度时,存储设备在第一索引节点的母节点位置生成第二索引节点。其中,在一种可能的实现方式中,生成第二索引节点的位置可以根据第二数据的数据长度确定。例如,当该子索引树从根节点开始,每下降一层代表数据粒度减少一半,该子索引树层高为log2(最大数据粒度/最小数据粒度)。当第一数据的数据长度为根节点数据粒度的四分之一时,则第一数据对应的索引节点在根节点的下两层。若第二数据的数据长度大于第一数据的数据长度,且小于第一数据的数据长度的两倍时,则在该子索引树的第二层生成第二子索引节点,即第一子索引节点的母节点位置。若第二数据的数据长度大于第一数据的数据长度的两倍时,则将第二数据的索引信息写入根节点,即此时第二子索引节点为根节点。在实际应用过程中,第一数据为目标数据,第二数据为更新后的目标数据,设定的阈值为第一数据对应的数据粒度,第一元数据存储单元即为根节点,第二元数据存储单元为子索引节点,则更新后的目标数据的尺寸大于设定的阈值,则删除第二元数据存储单元中目标数据的元数据,并将更新后的目标数据的元数据存储在第一元数据存储单元中。
举例来说,如图4所示,为在重叠模式下,数据对应的索引信息的写入流程。图4中左上方图表示在现有的ARTree的结构。图4中右上方图表示接收到了一个第一写请求,则在对应的ARTree的最下层的索引节点上生成对应的子索引树,并在该根节点的下两层生成第一子索引节点。图4中右下方图表示接收到一个第二写请求,且该第二写请求请求写入数据的数据长度小于第一写请求请求写入的数据的数据长度,则在第一索引节点下层生成一个子索引节点。图4中左下方图表示接收到一个第二写请求,且该第二写请求请求写入数据的数据长度大于或者等于第一写请求请求写入的数据的数据长度,则在第一写请求的母节点生成第二索引节点,并将该第二索引节点下的子索引节点删除。
对应的,存储设备在生成了第二子索引节点之后,存储设备根据第二写请求更新存储设备中存储的第一数据得到第三数据。
在步骤206中,存储设备获取第一读请求。
存储设备获取第一读请求,该第一读请求用于读取第四数据,该第四数据属于第一数据,且第四数据的数据长度小于第一数据的数据长度,即该第四数据为第一数据中的一部分。第一读请求中携带了第四数据的逻辑地址信息和第四数据的数据长度的信息。
在步骤207中,存储设备根据第四数据的逻辑地址信息和第四数据的数据长度从第一数据中读取第四数据。
存储设备获取到第一读请求之后,存储设备根据第一读请求中携带的第四数据的逻辑地址信息和第四数据的数据长度,从第一数据中读取第四数据。
具体的,如图5所示,存储设备从第一读请求中确定第四数据的逻辑地址信息,并根据该逻辑地址信息确定第四数据对应的子索引树。在查找到了对应的子索引树后,存储设备在子索引树中继续查找对应的子索引节点。当第四数据的索引信息存在于第一数据的索引信息对应的第一子索引节点的子索引节点中时,则存储设备根据第一子索引节点的子索引节点提取第四数据。其中,在读取对应的第一子索引节点时,判断该第一子索引节点是否有对应的子索引节点,如图6所示,若存在对应的子索引节点,则需要该第一子索引节点的子索引节点对应的数据也同时读取上来,进而再进行数据的拼接。
当第四数据的索引信息不存在于第一数据的索引信息对应的第一子索引节点的子索引节点中时,如图10所示,存储设备获取第一子索引节点对应的索引信息,并根据第一读请求中逻辑地址和数据长度,计算出相对于第一子索引节点中逻辑地址的偏移量,并根据该相对于第一子索引节点中逻辑地址的偏移量得到物理偏移量,再根据该物理偏移量在第一数据对应的数据块中读取对应的第四数据的数据块。
因此,根据该种方法进行数据的读取,可以做到读取小的数据粒度的数据时,不存在读放大的问题。
在步骤208中,存储设备获取第二读请求。
存储设备获取第二读请求,该第二读请求用于读取第二数据和第三数据,其中,第二数据为第二写请求写入的数据,第三数据为根据第二写请求更新第一数据得到的数据。
在步骤209中,存储设备根据第二读请求查找第一索引节点和第二索引节点。
存储设备获取到第二读请求之后,存储设备根据第二读请求查找第一索引节点和第二索引节点。
具体的,存储设备根据第二读请求中第二数据和第三数据的逻辑地址信息,从主索引树中确定第二数据和第三数据的逻辑地址信息对应的子索引树,在查找到了对应的子索引树后,存储设备在子索引树中继续查找第三数据和第四数据对应的子索引节点。
在步骤210中,存储设备根据第二索引节点更新第一索引节点得到第三索引节点。
存储设备查找到了第一索引节点和第二索引节点之后,存储设备根据第二索引节点中的索引信息,更新第一索引节点得到第三索引节点,该第三索引节点用于查询第三数据。
具体的,存储设备确定的第二索引节点中的索引信息对应的逻辑地址区间和第一索引节点中的索引信息对应的逻辑地址区间有重叠,则存储设备将第一索引节点中的索引信息对应的逻辑地址区间和第二索引节点中的索引信息对应的逻辑地址区间重叠的部分删除,得到一份新的索引信息,即第三索引节点为第一索引节点更新索引信息之后的索引节点。该新的索引信息即对应了第三数据。在实际应用过程中,第一索引节点对应第一元数据存储单元,则删除第一元数据存储单元中目标数据的元数据的差值元数据,该差值元数据即表示更新后的目标数据的元数据与目标数据的元数据之间的差值,即第一索引节点中的索引信息对应的逻辑地址区间和第二索引节点中的索引信息对应的逻辑地址区间重叠的部分。
在步骤211中,存储设备根据第二索引节点和第三索引节点读取第二数据和第三数据。
存储设备在获取到了第三索引节点之后,存储设备根据第三索引节点和第二索引节点从存储设备中读取出第二数据和第三数据。
具体的,存储设备根据第二索引节点中的索引信息中逻辑地址信息与物理地址信息的对应关系,从存储设备中获取对应的第二数据。同理,存储设备从根据第三索引节点中的索引信息的逻辑地址信息与物理地址信息的对应关系,从存储设备中获取对应的第三数据。
在实际应用过程中,如果同样的数据被反复写,则对应的子索引树内会存在大量的子索引节点,增加了索引数据的冗余性。因此,存储设备还可以对子索引树对应的数据进行碎片整理。
具体的,存储设备将子索引树中不连续的数据都提取上来,对应的再作为一个完整数据的写入。因此,不连续的数据对应的多个子索引节点会被之后写入的一个完整数据对应的新的子索引节点覆盖,从而减少了子索引树中的子索引节点的数量,节省了存储资源。
在一种可能的实现方式中,多个第二元数据存储单元对应大量的子索引节点,且该多个元数据存储单元中分别存储有不同的目标数据的元数据时,该多个第二元数据存储单元叠加的尺寸小于或者等于第一元数据存储单元的尺寸,则删除多个第二元数据存储单元中的元数据,并且将不同的目标数据的元数据存储到第一元数据存储单元中,此时该第一元数据存储单元可以对应根节点,也可以对应一个上层的子索引节点。
从整理的时机来看,可以如下表1所示。
表1碎片整理建议表
读 | 写 | 是否整理 |
热 | 冷 | 强烈建议 |
冷 | 冷 | 建议 |
热 | 热 | 不建议 |
冷 | 热 | 不建议 |
其中,读热表示该子索引树中读数据的频率比较高。读冷则表示该子索引树中读数据的频率比较低。写热表示该子索引树中写数据的频率比较高。写冷表示该子索引树中写数据的频率比较低。
当子索引树对应的状态为读热写冷时,则强烈建议对该子索引树进行碎片整理,因为在读热写冷时,表示经常需要根据子索引节点查找对应的数据,且生成或者更新子索引节点的频率比较低,因此如果子索引节点过多时,则会影响查找数据的效率。
当子索引树对应的状态为读冷写冷时,也建议对该子索引树进行碎片整理,因为在读冷写冷时,表示读取数据和写入数据的频率都比较低,此时系统的资源消耗教少,可以进行对应的碎片整理。
当子索引树对应的状态为读热写热时,则不建议对该子索引树进行碎片整理。因为在读热写热时,表示经常需要频繁的写入数据,从而会频繁的生成或者更新子索引节点,因此就算碎片整理完成,也会快速的产生更多的子索引节点。
当子索引树对应的状态为读冷写热时,和读热写热时的原因相同,也不建议对该子索引树进行碎片整理。
在实际应用过程中,步骤204至步骤211为可选步骤。当不执行步骤204至步骤211时,即存储设备只接收到第一写请求,并生成该第一写请求对应的子索引树和对应的子索引节点。
本实施例中,步骤204至205和步骤206至207之间没有先后顺序关系,即可以在接收第二写请求之前获取第一读请求,也可以在接收第二写请求之后获取第一读请求,具体此处不做限定。
本申请实施例中,存储设备根据第一数据生成对应的第一索引节点,且该第一索引节点对应的数据粒度大于最小数据粒度,因此不需要对应的生成多个对应最小粒度的索引节点,节省了存储资源,进而提升了数据读写的效率。
一、线性模式。
请参阅图7,为本申请实施例提供的元数据存储方法另一流程示意图。
在步骤701中,存储设备接收第一写请求。
在步骤702中,存储设备根据第一写请求生成子索引树。
在步骤703中,存储设备根据子索引树和第一写请求生成第一索引节点。
在步骤704中,存储设备接收第二写请求。
本实施例中的步骤701至步骤704与前述图2所示的实施例中的步骤201至204类似,具体此处不再赘述。
在步骤705中,存储设备根据第二写请求和子索引树生成第二索引节点。
接收到第二写请求之后,存储设备根据第二写请求和子索引树生成第二索引节点,该第二索引节点中的索引信息用于查询第二数据。
在一种可能的实现方式中,当第二数据为对第一数据进行修改的数据,且第二数据的数据长度小于第一数据的数据长度时,存储设备根据第二写请求中携带的相关信息、子索引树中记录的索引信息和第一索引节点生成第二索引节点,该第二索引节点为第一索引节点的子节点。如图8所示,图8左边的一个条格记录为一个子索引树的根节点对应的索引信息,其中,该条格中不同的网格格子代表着不同的修改数据对应的不同的索引信息,从上至下,依次表示第一次写入该根节点中的元数据,到最近一次写入根节点的元数据,即每次写入元数据,直接在原来的元数据中进行修改。
具体的,在一种可能的实现方式中,第二写请求中携带的第二数据的逻辑地址信息指示将第二数据写入第一数据所在的子索引树中,且第二数据的数据长度小于第一数据的数据长度,即表示第二数据为第一数据中进行修改的数据。如图8右边的子索引树所示,存储设备对第一数据对应的第一索引节点进行更新得到第三索引节点。具体的,将第一索引节点拆分为两个下层的子索引节点,即第二索引节点和第三索引节点。第二索引节点对应第二数据,第三索引节点对应第一数据中未进行修改的数据。在实际应用过程中,第一数据为目标数据,第二数据为更新后的目标数据,设定的阈值为第一数据对应的数据粒度,差值元数据表示第一数据中进行修改的数据对应的索引信息,则更新后的目标数据的尺寸小于设定的阈值,将差值元数据存储在第二元数据存储单元中,该第二元数据存储单元即为第二索引节点。
需要说明的是,线性模式可以通过如图8左边的链表方式进行元数据的写入,也可以通过图8右边的二叉树模式进行元数据的写入,可以理解的是,在实际应用过程中,还可以通过其他方式写入元数据,例如通过数组的方式写入元数据,具体此处不做限定。
在一种可能的实现方式中,当第二数据的数据长度大于或者等于第一数据的数据长度时,即表示第二数据覆盖了第一数据。存储设备通过第二数据的逻辑地址信息和查找到的对应于第二数据的逻辑地址信息的子索引树,并确定第二数据为对第一数据进行修改的数据。存储设备查找到对应的第一索引节点之后,将该第一索引节点删除。
当第二数据的数据长度等于第一数据的数据长度时,存储设备在第一索引节点的相同位置生成第二索引节点,或者,存储设备在第一索引节点平行的位置生成第二索引节点,具体此处不做限定。
当第二数据的数据长度大于第一数据的数据长度时,存储设备在第一索引节点的母节点位置生成第二索引节点。其中,在一种可能的实现方式中,生成第二索引节点的位置可以根据第二数据的数据长度确定。例如,当该子索引树从根节点开始,每下降一层代表数据粒度减少一半,该子索引树层高为log2(最大数据粒度/最小数据粒度)。当第一数据的数据长度为根节点数据粒度的四分之一时,则第一数据对应的索引节点在根节点的下两层。若第二数据的数据长度大于第一数据的数据长度,且小于第一数据的数据长度的两倍时,则在该子索引树的第二层生成第二子索引节点,即第一子索引节点的母节点位置。若第二数据的数据长度大于第一数据的数据长度的两倍时,则将第二数据的索引信息写入根节点,即此时第二子索引节点为根节点。在实际应用过程中,第一数据为目标数据,第二数据为更新后的目标数据,设定的阈值为第一数据对应的数据粒度,第一元数据存储单元即为根节点,第二元数据存储单元为子索引节点,则更新后的目标数据的尺寸大于设定的阈值,则删除第二元数据存储单元中目标数据的元数据,并将更新后的目标数据的元数据存储在第一元数据存储单元中。
举例来说,如图9所示,为在线性模式下,数据对应的索引信息的写入流程。图4中最上层的条格表示为空白的元数据,该空白的元数据即对应一个子索引树,其中一个数据粒度的小条格即对应一个子索引节点。在接收到一个第一写请求时,将元数据中的两个数据粒度的元数据更新为第一写请求对应的元数据。当接收到一个第二写请求时,且该第二写请求请求写入数据的数据长度小于第一写请求写入的数据的数据长度,则将两个数据粒度的元数据中的其中一个数据粒度更新为第二写请求对应的元数据。当接收到一个第二写请求,且该第二写请求请求写入数据的数据长度大于或者等于第一写请求写入的数据的数据长度,则将之前两个数据粒度的元数据覆盖为第二写请求中携带的第二数据对应的元数据,即此时覆盖的元数据对应第二索引节点。
对应的,存储设备在得到了第二索引节点之后,存储设备根据第二写请求更新存储设备中存储的第一数据得到第三数据。
在步骤706中,存储设备获取第一读请求。
在步骤707中,存储设备根据第三数据的逻辑地址信息和第三数据的数据长度从第一数据中读取第三数据。
在步骤708中,存储设备获取第二读请求。
本实施例中的步骤706至步骤708与前述图2所示的实施例中的步骤206至208类似,具体此处不再赘述。
在步骤709中,存储设备根据第二读请求读取第二数据和第三数据。
存储设备获取到第二读请求之后,存储设备根据第二读请求查找第一索引节点和第二索引节点。
具体的,存储设备根据第二读请求中第二数据和第三数据的逻辑地址信息,从主索引树中确定第二数据和第三数据的逻辑地址信息对应的子索引树,在查找到了对应的子索引树后,存储设备在子索引树中继续查找第二数据和第三数据对应的第二子索引节点和第三子索引节点。
存储设备根据第三索引节点和第二索引节点从存储设备中读取出第二数据和第三数据。
具体的,存储设备根据第二索引节点中的索引信息中逻辑地址信息与物理地址信息的对应关系,从存储设备中获取对应的第二数据。同理,存储设备从根据第三索引节点中的索引信息的逻辑地址信息与物理地址信息的对应关系,从存储设备中获取对应的第三数据。
在实际应用过程中,如果同样的数据被反复写,则对应的子索引树内会存在大量的子索引节点,增加了索引数据的冗余性。因此,存储设备还可以对子索引树对应的数据进行碎片整理。
具体的,如图11所示,存储设备将子索引树中不连续的数据都提取上来,对应的再作为一个完整数据的写入。因此,不连续的数据对应的多个子索引节点会被之后写入的一个完整数据对应的新的子索引节点覆盖,从而减少了子索引树中的子索引节点的数量,节省了存储资源。
在一种可能的实现方式中,多个第二元数据存储单元对应大量的子索引节点,且该多个元数据存储单元中分别存储有不同的目标数据的元数据时,该多个第二元数据存储单元叠加的尺寸小于或者等于第一元数据存储单元的尺寸,则删除多个第二元数据存储单元中的元数据,并且将不同的目标数据的元数据存储到第一元数据存储单元中,此时该第一元数据存储单元可以对应根节点,也可以对应一个上层的子索引节点。
从整理的时机来看,可以如下表1所示。
表1碎片整理建议表
读 | 写 | 是否整理 |
热 | 冷 | 强烈建议 |
冷 | 冷 | 建议 |
热 | 热 | 不建议 |
冷 | 热 | 不建议 |
其中,读热表示该子索引树中读数据的频率比较高。读冷则表示该子索引树中读数据的频率比较低。写热表示该子索引树中写数据的频率比较高。写冷表示该子索引树中写数据的频率比较低。
当子索引树对应的状态为读热写冷时,则强烈建议对该子索引树进行碎片整理,因为在读热写冷时,表示经常需要根据子索引节点查找对应的数据,且生成或者更新子索引节点的频率比较低,因此如果子索引节点过多时,则会影响查找数据的效率。
当子索引树对应的状态为读冷写冷时,也建议对该子索引树进行碎片整理,因为在读冷写冷时,表示读取数据和写入数据的频率都比较低,此时系统的资源消耗教少,可以进行对应的碎片整理。
当子索引树对应的状态为读热写热时,则不建议对该子索引树进行碎片整理。因为在读热写热时,表示经常需要频繁的写入数据,从而会频繁的生成或者更新子索引节点,因此就算碎片整理完成,也会快速的产生更多的子索引节点。
当子索引树对应的状态为读冷写热时,和读热写热时的原因相同,也不建议对该子索引树进行碎片整理。
在实际应用过程中,步骤704至步骤709为可选步骤。当不执行步骤704至步骤709时,即存储设备只接收到第一写请求,并生成该第一写请求对应的子索引树和对应的子索引节点。
本实施例中,步骤704至705和步骤706至707之间没有先后顺序关系,即可以在接收第二写请求之前获取第一读请求,也可以在接收第二写请求之后获取第一读请求,具体此处不做限定。
本实施例中,存储设备根据线性模式进行存取对应的元数据,减少了元数据的冗余,从而节省了存储资源。
上面对本申请实施例中的元数据存储方法进行了描述,下面对本申请实施例中的存储设备进行描述。
请参阅图12,为本申请实施例提供的存储设备一个结构示意图。
一种存储设备,包括:
第一元数据存储单元1202和第二元数据存储单元1203,其中第一元数据存储单元1202的尺寸大于第二元数据存储单元1203的尺寸;
处理单元1201,用于当目标数据的尺寸达到设定阈值时,按照第一元数据存储单元1202存储目标数据的元数据;或者
处理单元1201还用于当目标数据的尺寸小于设定阈值时,按照第二元数据存储单元1203存储目标数据的元数据。
本实施例中,存储设备各单元所执行的操作与前述图2和图7所示实施例描述的类似,具体此处不再赘述。
请参阅图13,为本申请实施例提供的存储设备另一结构示意图。
一种存储设备,包括:
第一元数据存储单元1302和第二元数据存储单元1303,其中第一元数据存储单元1302的尺寸大于第二元数据存储单元1303的尺寸;
处理单元1301,用于当目标数据的尺寸达到设定阈值时,按照第一元数据存储单元1302存储目标数据的元数据;或者
处理单元1301还用于当目标数据的尺寸小于设定阈值时,按照第二元数据存储单元1303存储目标数据的元数据。
可选地,存储设备还包括:
设置单元1304,用于设置元数据存储单元的尺寸的最大值和最小值,第一元数据存储单元1302的尺寸位于最小值和最大值之间,第二元数据存储单元1303的尺寸位于最小值和最大值之间。
可选地,当目标数据的尺寸小于设定阈值时,存储设备还包括:
删除单元1305,用于目标数据的尺寸被更新为大于设定阈值时,删除第二数据存储单元1303中目标数据的元数据;
处理单元1301还用于将更新后的目标数据的元数据存储在第一元数据存储单元1302中。
可选地,当目标数据的尺寸大于设定阈值时,存储设备还包括:
删除单元1305还用于目标数据的尺寸被更新为小于设定阈值时,删除第一数据存储单元1302中目标数据的元数据的差值元数据,差值元数据表示更新后的目标数据的元数据与目标数据的元数据之间的差值;
处理单元1301还用于将差值元数据存储在第二元数据存储单元1303中。
可选地,当存在多个第二元数据存储单元1303,多个第二元数据存储单元1303中分别存储有不同的目标数据的元数据时,且多个第二元数据存储单元1303叠加的尺寸小于或者等于第一元数据存储单元1302的尺寸,删除单元1305还用于删除多个第二元数据存储单元1303中的元数据;
处理单元1301还用于将不同的目标数据的元数据存储到第一元数据存储单元1302中。
本实施例中,存储设备各单元所执行的操作与前述图2和图7所示实施例描述的类似,具体此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述任一方法实施例中与存储设备所执行的方法流程。对应的,该计算机可以为上述存储设备。
应理解,本申请以上实施例中的提及的控制器或处理器,可以是中央处理单元(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等中的一种或多种的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请中以上实施例中的存储设备中的处理器或控制器的数量可以是一个,也可以是多个,可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。本申请实施例中的存储器的数量可以是一个,也可以是多个,可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。
还应理解,本申请实施例中以上实施例中的存储设备等中提及的存储器或可读存储介质等,可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
本领域普通技术人员可以理解实现上述实施例的全部或部分由存储设备或者处理器执行的步骤可以通过硬件或程序来指令相关的硬件完成。程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,随机接入存储器等。具体地,例如:上述处理单元或处理器可以是中央处理器,通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。上述的这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
当使用软件实现时,上述实施例描述的方法步骤可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质等。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本申请实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。
取决于语境,如在此所使用的词语“如果”或“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (12)
1.一种元数据存储方法,其特征在于,包括:
第一元数据存储单元和第二元数据存储单元,其中所述第一元数据存储单元的尺寸大于第二元数据存储单元的尺寸;
当目标数据的尺寸达到设定阈值时,按照所述第一元数据存储单元存储所述目标数据的元数据;或者
当目标数据的尺寸小于所述设定阈值时,按照所述第二元数据存储单元存储所述目标数据的元数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
设置元数据存储单元的尺寸的最大值和最小值,所述第一元数据存储单元的尺寸位于所述最小值和所述最大值之间,所述第二元数据存储单元的尺寸位于所述最小值和所述最大值之间。
3.根据权利要求2所述的方法,其特征在于,当目标数据的尺寸小于所述设定阈值时,所述方法还包括:
所述目标数据的尺寸被更新为大于所述设定阈值时,删除所述第二元数据存储单元中所述目标数据的元数据;
将更新后的所述目标数据的元数据存储在所述第一元数据存储单元中。
4.根据权利要求2所述的方法,其特征在于,当目标数据的尺寸大于所述设定阈值时,所述方法还包括:
所述目标数据的尺寸被更新为小于所述设定阈值时,删除所述第一元数据存储单元中所述目标数据的元数据的差值元数据,所述差值元数据表示所述更新后的目标数据的元数据与所述目标数据的元数据之间的差值;
将所述差值元数据存储在所述第二元数据存储单元中。
5.根据权利要求1至4所述的方法,其特征在于,当存在多个第二元数据存储单元,所述多个第二元数据存储单元中分别存储有不同的目标数据的元数据时,且所述多个第二元数据存储单元叠加的尺寸小于或者等于所述第一元数据存储单元的尺寸,则删除所述多个第二元数据存储单元中的元数据;
将所述不同的目标数据的元数据存储到第一元数据存储单元中。
6.一种存储设备,其特征在于,包括:
第一元数据存储单元和第二元数据存储单元,其中所述第一元数据存储单元的尺寸大于第二元数据存储单元的尺寸;
处理单元,用于当目标数据的尺寸达到设定阈值时,按照所述第一元数据存储单元存储所述目标数据的元数据;或者
所述处理单元还用于当目标数据的尺寸小于所述设定阈值时,按照所述第二元数据存储单元存储所述目标数据的元数据。
7.根据权利要求6所述的存储设备,其特征在于,所述存储设备还包括:
设置单元,用于设置元数据存储单元的尺寸的最大值和最小值,所述第一元数据存储单元的尺寸位于所述最小值和所述最大值之间,所述第二元数据存储单元的尺寸位于所述最小值和所述最大值之间。
8.根据权利要求7所述的存储设备,其特征在于,当目标数据的尺寸小于所述设定阈值时,所述存储设备还包括:
删除单元,用于所述目标数据的尺寸被更新为大于所述设定阈值时,删除所述第二数据存储单元中所述目标数据的元数据;
所述处理单元还用于将更新后的所述目标数据的元数据存储在所述第一元数据存储单元中。
9.根据权利要求7所述的存储设备,其特征在于,当目标数据的尺寸大于所述设定阈值时,所述存储设备还包括:
所述删除单元还用于所述目标数据的尺寸被更新为小于所述设定阈值时,删除所述第一数据存储单元中所述目标数据的元数据的差值元数据,所述差值元数据表示所述更新后的目标数据的元数据与所述目标数据的元数据之间的差值;
所述处理单元还用于将所述差值元数据存储在所述第二元数据存储单元中。
10.根据权利要求6至9所述的存储设备,其特征在于,当存在多个第二元数据存储单元,所述多个第二元数据存储单元中分别存储有不同的目标数据的元数据时,且所述多个第二元数据存储单元叠加的尺寸小于或者等于所述第一元数据存储单元的尺寸,所述删除单元还用于删除所述多个第二元数据存储单元中的元数据;
所述处理单元还用于将所述不同的目标数据的元数据存储到第一元数据存储单元中。
11.一种存储系统,其特征在于,包括:
第一元数据存储单元,用于执行权利要求1至5中任一项所述方法中第一元数据存储单元所执行的步骤;
第二元数据存储单元,用于执行权利要求1至5中任一项所述方法中第二元数据存储单元所执行的步骤。
12.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行如权利要求1至5中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022560503A JP7462790B2 (ja) | 2020-05-06 | 2021-04-30 | メタデータ記憶方法およびデバイス |
PCT/CN2021/091294 WO2021223669A1 (zh) | 2020-05-06 | 2021-04-30 | 一种元数据存储方法及其设备 |
EP21800042.0A EP4120058A4 (en) | 2020-05-06 | 2021-04-30 | METADATA STORAGE METHOD AND APPARATUS |
US17/978,838 US20230063305A1 (en) | 2020-05-06 | 2022-11-01 | Metadata storage method and device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010374530 | 2020-05-06 | ||
CN2020103745308 | 2020-05-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113625938A true CN113625938A (zh) | 2021-11-09 |
Family
ID=78377679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010615013.5A Pending CN113625938A (zh) | 2020-05-06 | 2020-06-30 | 一种元数据存储方法及其设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230063305A1 (zh) |
EP (1) | EP4120058A4 (zh) |
JP (1) | JP7462790B2 (zh) |
CN (1) | CN113625938A (zh) |
WO (1) | WO2021223669A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416741A (zh) * | 2022-01-16 | 2022-04-29 | 瞰客信息科技(上海)有限公司 | 基于多级索引的kv数据写入读取方法、装置及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996217A (zh) * | 2009-08-24 | 2011-03-30 | 华为技术有限公司 | 一种存储数据的方法及其存储设备 |
WO2018082616A1 (zh) * | 2016-11-02 | 2018-05-11 | 华为技术有限公司 | 一种基于dram的存储缓存方法和智能终端 |
WO2018144339A2 (en) * | 2017-05-16 | 2018-08-09 | Apple Inc. | Devices, methods, and graphical user interfaces for navigating between user interfaces and interacting with control objects |
CN109657009A (zh) * | 2018-12-21 | 2019-04-19 | 北京锐安科技有限公司 | 数据预分区存储周期表创建方法、装置、设备和存储介质 |
CN109726145A (zh) * | 2018-12-29 | 2019-05-07 | 杭州宏杉科技股份有限公司 | 一种数据存储空间的分配方法、装置及电子设备 |
US20190187902A1 (en) * | 2017-12-18 | 2019-06-20 | SK Hynix Inc. | Storage device and method of operating the same |
CN110750211A (zh) * | 2019-09-05 | 2020-02-04 | 华为技术有限公司 | 一种存储空间的管理方法及装置 |
CN110764706A (zh) * | 2019-10-25 | 2020-02-07 | 普联技术有限公司 | 存储系统、数据管理方法及存储介质 |
CN110879800A (zh) * | 2018-09-05 | 2020-03-13 | 阿里巴巴集团控股有限公司 | 数据写入、压缩和读取方法、数据处理方法及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5407430B2 (ja) | 2009-03-04 | 2014-02-05 | 日本電気株式会社 | ストレージシステム |
CN101655818A (zh) * | 2009-09-10 | 2010-02-24 | 深圳华为通信技术有限公司 | 一种存储方法及设备 |
CN103368817A (zh) * | 2012-03-31 | 2013-10-23 | 国际商业机器公司 | 电子邮件发送、接收方法及装置 |
JP6291977B2 (ja) | 2014-03-31 | 2018-03-14 | 日本電気株式会社 | 分散ファイルシステム、バックアップファイル取得方法、制御装置及び管理装置 |
US10503697B1 (en) * | 2016-06-30 | 2019-12-10 | EMC IP Holding Company LLC | Small file storage system |
CN106294603B (zh) * | 2016-07-29 | 2019-07-23 | 北京奇虎科技有限公司 | 文件存储方法及装置 |
US10416928B2 (en) * | 2017-06-15 | 2019-09-17 | Hitachi, Ltd. | Data storage system and process for data compression of distributed data in a scalable cluster system and computer program for such data storage system |
US10592408B2 (en) * | 2017-09-13 | 2020-03-17 | Intel Corporation | Apparatus, computer program product, system, and method for managing multiple regions of a memory device |
US10664461B2 (en) | 2018-06-29 | 2020-05-26 | Cohesity, Inc. | Large content file optimization |
US11074135B2 (en) * | 2018-06-29 | 2021-07-27 | Cohesity, Inc. | Large content file optimization |
US10949384B2 (en) | 2018-07-03 | 2021-03-16 | Cohesity, Inc. | Using a storage system to optimize and maintain the metadata associated with a plurality of small files |
CN109508143B (zh) * | 2018-08-17 | 2022-04-22 | 郑州云海信息技术有限公司 | 一种数据存储方法及装置 |
CN110069215B (zh) * | 2019-03-27 | 2022-11-04 | 浙江宇视科技有限公司 | 一种基于块存储的动态调整存储单元的方法及装置 |
WO2023048747A1 (en) * | 2021-09-24 | 2023-03-30 | Intel Corporation | Systems, apparatus, articles of manufacture, and methods for cross training and collaborative artificial intelligence for proactive data management and analytics |
-
2020
- 2020-06-30 CN CN202010615013.5A patent/CN113625938A/zh active Pending
-
2021
- 2021-04-30 WO PCT/CN2021/091294 patent/WO2021223669A1/zh unknown
- 2021-04-30 EP EP21800042.0A patent/EP4120058A4/en active Pending
- 2021-04-30 JP JP2022560503A patent/JP7462790B2/ja active Active
-
2022
- 2022-11-01 US US17/978,838 patent/US20230063305A1/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996217A (zh) * | 2009-08-24 | 2011-03-30 | 华为技术有限公司 | 一种存储数据的方法及其存储设备 |
WO2018082616A1 (zh) * | 2016-11-02 | 2018-05-11 | 华为技术有限公司 | 一种基于dram的存储缓存方法和智能终端 |
WO2018144339A2 (en) * | 2017-05-16 | 2018-08-09 | Apple Inc. | Devices, methods, and graphical user interfaces for navigating between user interfaces and interacting with control objects |
US20190187902A1 (en) * | 2017-12-18 | 2019-06-20 | SK Hynix Inc. | Storage device and method of operating the same |
CN110879800A (zh) * | 2018-09-05 | 2020-03-13 | 阿里巴巴集团控股有限公司 | 数据写入、压缩和读取方法、数据处理方法及装置 |
CN109657009A (zh) * | 2018-12-21 | 2019-04-19 | 北京锐安科技有限公司 | 数据预分区存储周期表创建方法、装置、设备和存储介质 |
CN109726145A (zh) * | 2018-12-29 | 2019-05-07 | 杭州宏杉科技股份有限公司 | 一种数据存储空间的分配方法、装置及电子设备 |
CN110750211A (zh) * | 2019-09-05 | 2020-02-04 | 华为技术有限公司 | 一种存储空间的管理方法及装置 |
CN110764706A (zh) * | 2019-10-25 | 2020-02-07 | 普联技术有限公司 | 存储系统、数据管理方法及存储介质 |
Non-Patent Citations (1)
Title |
---|
阎芳等: "重复数据删除系统数据组织研究", 《北京理工大学学报》, no. 5, 31 May 2014 (2014-05-31) * |
Also Published As
Publication number | Publication date |
---|---|
JP7462790B2 (ja) | 2024-04-05 |
EP4120058A1 (en) | 2023-01-18 |
US20230063305A1 (en) | 2023-03-02 |
WO2021223669A1 (zh) | 2021-11-11 |
EP4120058A4 (en) | 2023-08-16 |
JP2023520564A (ja) | 2023-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102564170B1 (ko) | 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체 | |
US9886464B2 (en) | Versioned bloom filter | |
JP4648723B2 (ja) | データ価値に基づく階層型ストレージ管理の為の方法と装置 | |
US11580162B2 (en) | Key value append | |
US20070124277A1 (en) | Index and Method for Extending and Querying Index | |
KR102195836B1 (ko) | 인덱스 관리 방법 | |
WO2018205151A1 (zh) | 数据更新方法和存储装置 | |
CN111459884B (zh) | 一种数据的处理方法、装置、计算机设备和存储介质 | |
CN113392089B (zh) | 一种数据库索引优化方法及可读存储介质 | |
KR101806394B1 (ko) | 모바일 dbms환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법 | |
US10558636B2 (en) | Index page with latch-free access | |
US20230063305A1 (en) | Metadata storage method and device | |
KR102071072B1 (ko) | 데이터 저장장치의 주소 맵핑 테이블 운용 방법 | |
WO2016206070A1 (zh) | 一种文件更新方法及存储设备 | |
CN106354793B (zh) | 监控热点对象的方法及装置 | |
JPWO2012114402A1 (ja) | データベース管理装置及びデータベース管理方法 | |
US10762139B1 (en) | Method and system for managing a document search index | |
CN108984720B (zh) | 基于列存储的数据查询方法、装置、服务器及存储介质 | |
US10169250B2 (en) | Method and apparatus method and apparatus for controlling access to a hash-based disk | |
CN117215503B (zh) | 一种读取闪存数据的方法 | |
CN117493284B (zh) | 文件存储方法、文件读取方法、文件存储和读取系统 | |
CN113312414B (zh) | 数据处理方法、装置、设备和存储介质 | |
WO2021224960A1 (ja) | 保存装置、保存方法、およびプログラム | |
CN114661249B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
WO2023141987A1 (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 |