CN111857559B - 用于管理元数据的方法、装置和计算机程序产品 - Google Patents
用于管理元数据的方法、装置和计算机程序产品 Download PDFInfo
- Publication number
- CN111857559B CN111857559B CN201910361667.7A CN201910361667A CN111857559B CN 111857559 B CN111857559 B CN 111857559B CN 201910361667 A CN201910361667 A CN 201910361667A CN 111857559 B CN111857559 B CN 111857559B
- Authority
- CN
- China
- Prior art keywords
- memory
- memory page
- page
- determining
- response
- 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
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000004590 computer program Methods 0.000 title claims abstract description 17
- 230000004044 response Effects 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims description 19
- 238000010586 diagram Methods 0.000 description 24
- 238000013507 mapping Methods 0.000 description 17
- 238000003491 array Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000005012 migration Effects 0.000 description 5
- 238000013508 migration Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 239000000835 fiber Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 235000019633 pungent taste Nutrition 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- 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/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/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/0647—Migration mechanisms
-
- 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/0647—Migration mechanisms
- G06F3/0649—Lifecycle 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/0689—Disk arrays, e.g. RAID, JBOD
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及用于管理元数据的方法、装置和计算机程序产品。一种用于管理元数据的方法包括:响应于接收到访问第一存储页面中的元数据的请求,从包括用于存储元数据的存储页面的多个存储单元中确定第一存储页面所在的存储单元,多个存储单元包括第一存储单元和第二存储单元,并且第二存储单元的访问速度超过第一存储单元的访问速度;从确定的存储单元访问第一存储页面中的元数据;响应于第一存储页面从第一存储单元被访问,确定第一存储页面的热度是否超过阈值水平;以及响应于确定第一存储页面的热度超过阈值水平,将第一存储页面从第一存储单元迁移至第二存储单元中。以此方式,本公开的实施例能够提高元数据的访问效率。
Description
技术领域
本公开的实施例总体涉及数据存储领域,具体涉及用于管理元数据的方法、装置和计算机程序产品。
背景技术
在现代存储系统中,通常从不同存储盘中分配多个盘切片以组合成盘阵列(例如,独立冗余磁盘阵列,RAID)。在为上层应用提供存储服务时,通常进一步在盘阵列上创建多个逻辑存储单元,以供上层应用使用。通常,一部分逻辑存储单元被用于存储用户数据,而另一部分逻辑存储单元被用于存储与用户数据相关联的元数据,元数据用于记录用户数据所在的地址、用户数据的属性(例如,是否被压缩等)和与用户数据有关的其他信息。因此,在对用户数据进行实际访问之前,通常需要首先访问与该用户数据相关联的元数据。由于元数据的重要性和较高的访问频率,期望提供管理元数据的方案,以在节省存储空间的同时提高元数据的访问效率。
发明内容
本公开的实施例提供了用于管理元数据的方法、装置和计算机程序产品。
在本公开的第一方面,提供了一种用于管理元数据的方法。该方法包括:响应于接收到访问第一存储页面中的元数据的请求,从包括用于存储元数据的存储页面的多个存储单元中确定第一存储页面所在的存储单元,多个存储单元包括第一存储单元和第二存储单元,并且第二存储单元的访问速度超过第一存储单元的访问速度;从确定的存储单元访问第一存储页面中的元数据;响应于第一存储页面从第一存储单元被访问,确定第一存储页面的热度是否超过阈值水平;以及响应于确定第一存储页面的热度超过阈值水平,将第一存储页面从第一存储单元迁移至第二存储单元中。
在本公开的第二方面,提供了一种用于管理盘阵列的装置。该装置包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得装置执行动作,该动作包括:响应于接收到访问第一存储页面中的元数据的请求,从包括用于存储元数据的存储页面的多个存储单元中确定第一存储页面所在的存储单元,多个存储单元包括第一存储单元和第二存储单元,并且第二存储单元的访问速度超过第一存储单元的访问速度;从确定的存储单元访问第一存储页面中的元数据;响应于第一存储页面从第一存储单元被访问,确定第一存储页面的热度是否超过阈值水平;以及响应于确定第一存储页面的热度超过阈值水平,将第一存储页面从第一存储单元迁移至第二存储单元中。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令。该机器可执行指令在由设备执行时使该设备执行根据本公开的第一方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了本公开的实施例能够在其中被实现的示例存储系统的框图;
图2示出了根据本公开的实施例的存储空间的布局的示意图;
图3示出了根据本公开的实施例的元数据存储单元和用户数据存储单元之间的关系的示意图;
图4A-4E示出了根据本公开的实施例的元数据存储页面在具有不同访问速度的多个存储单元之间迁移的示意图;
图5示出了根据本公开的实施例的确定元数据存储页面的热度的示意图;
图6示出了根据本公开的实施例的用于管理元数据的示例方法的流程图;
图7A-7C示出了根据本公开的实施例的迁移元数据存储页面的示意图;以及
图8示出了可以用来实施本公开内容的实施例的示例设备的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上所述,在现代存储系统中,通常从不同存储盘中分配多个盘切片以组合成盘阵列(例如,RAID)。在为上层应用提供存储服务时,通常进一步在盘阵列上创建多个逻辑存储单元,以供上层应用使用。通常,一部分逻辑存储单元被用于存储用户数据,而另一部分逻辑存储单元被用于存储与用户数据相关联的元数据,元数据用于记录用户数据所在的地址、用户数据的属性(例如,是否被压缩等)和与用户数据有关的其他信息。因此,在对用户数据进行实际访问之前,通常需要首先访问与该用户数据相关联的元数据。由于元数据的重要性和较高的访问频率,期望提供管理元数据的方案,以在节省存储空间的同时提高元数据的访问效率。
本公开的实施例提出了一种用于管理元数据的方案。在该方案中,响应于接收到访问第一存储页面中的元数据的请求,从包括用于存储元数据的存储页面的多个存储单元中确定第一存储页面所在的存储单元,其中多个存储单元包括第一存储单元和第二存储单元并且第二存储单元的访问速度超过第一存储单元的访问速度。该方案可以从确定的存储单元访问第一存储页面中的元数据。响应于第一存储页面从第一存储单元被访问,该方案可以确定第一存储页面的热度是否超过阈值水平。当第一存储页面的热度超过阈值水平时,第一存储页面从第一存储单元被迁移至第二存储单元中,以用于在下次访问时从访问速度更快的第二存储单元来访问。
以此方式,通过将访问热度较高的元数据存储在具有更高访问速度的存储介质中,本公开的实施例能够实现更高的访问效率。此外,本公开的实施例能够充分利用不同存储介质的性能,从而能够实现不同存储介质间的负载均衡。
以下将进一步结合附图来详细描述本公开的实施例。图1示出了本公开的实施例能够在其中被实现的示例存储系统100的框图。应当理解,仅出于示例性的目的描述存储系统100的结构,而不暗示对于本公开的范围的任何限制。例如,本公开的实施例还可以被应用到与存储系统100不同的系统或环境中。
如图1所示,系统100可以包括存储管理器110和存储资源池120。存储资源池120可以包括多个盘121-1、121-2……121-N(统称为或者单独地称为“盘121”,其中N≥1)。在此所述的“盘”可以指代任何目前已知或者将来开发的非易失性存储介质,例如磁盘、光盘、或固态盘等等。多个盘121可以基于不同的存储介质来构建。
存储管理器110可以被配置为管理存储资源池120。如图1所示,存储管理器110例如可以包括逻辑空间管理模块111、映射模块112和盘阵列管理模块113。应当理解,在图1中仅出于示例的目的示出存储管理器110的结构,而不暗示对于本公开的范围的任何限制。在一些实施例中,存储管理器110可以利用不同的结构来实现,例如其可以包括图1中未示出的模块或者省略图1中所示出的某些模块。
盘阵列管理模块113可以将存储资源池120中的每个盘121划分成多个固定大小的盘切片(例如,每个盘切片可以为4GB大小)。盘阵列管理模块113可以将不同盘上的多个盘切片组织成盘阵列。盘阵列管理模块113可以维护盘阵列与多个盘切片之间的映射信息。
映射模块112被配置为实现从物理地址空间到逻辑地址空间之间的映射。例如,映射模块112可以将基于多个盘121而构建的多个盘阵列映射到逻辑地址空间(诸如,映射到多个逻辑存储单元),以用于向逻辑空间管理模块111提供。在一些实施例中,从多个盘阵列映射而成的多个逻辑存储单元可以被进一步划分成不同的存储单元集合,以用于存储不同类型的数据(诸如,用户数据和元数据)。在下文中,用于存储用户数据的存储单元集合也被称为“用户数据存储单元集合”,用于存储元数据的存储单元集合也被称为“元数据存储单元集合”。
逻辑空间管理模块111可以使用由映射模块112提供的逻辑地址空间,以向上层应用提供服务。例如,逻辑空间管理模块111可以在逻辑地址空间上实现文件系统接口和/或块传输协议等。
图2示出了根据本公开的实施例的存储空间的布局的示意图。出于示例的目的,在图2中示出了基于两种不同存储介质而构建的多个盘121。如图2所示,盘121-1、121-2……121-M(其中,M<N)基于第一存储介质而被构建,盘121-M+1、121-M+2……121-N基于第二存储介质而被构建,其中第二存储介质的访问速度超过第一存储介质的访问速度。应当理解,第一存储介质或第二存储介质可以是任何目前已知或者将来开发的非易失性存储介质,包括但不限于磁盘、光盘、固态盘(诸如,串行SCSI接口的固态盘、NVMe接口的固态盘)等等。
如图2所示,盘阵列管理模块113将多个盘121-1、121-2……121-N组织成多个盘阵列220-1、220-2……220-6(统称为“盘阵列220”)。例如,盘阵列220-1、220-3和220-5基于盘121-1、121-2……121-M(也即,第一存储介质)而被构建,盘阵列220-2、220-4和220-6基于盘121-M+1、121-M+2……121-N(也即,第二存储介质)而被构建。进一步地,映射模块112可以将由盘阵列管理模块113提供的物理存储空间映射到多个逻辑存储单元210-1、210-2……210-4(统称为“存储单元210”)。例如,基于第一存储介质而构建的盘阵列220-1、220-3和220-5被映射到存储单元210-1、210-3和210-5;而基于第二存储介质而构建的盘阵列220-1、220-3和220-5被映射到存储单元210-2和210-4。应当理解,图2仅出于示例的目的示出盘阵列和存储单元的数目,而无意于限制本公开的范围。本公开的实施例可以适用于不同数目的盘阵列和存储单元。
如上所述,在一些实施例中,多个逻辑存储单元可以被划分为多个存储单元集合,以用于存储不同类型的数据。例如,多个逻辑存储单元可以被划分为元数据存储单元集合和用户数据存储单元集合,以分别用于存储元数据和用户数据。在本文中,用于存储元数据的存储单元也被称为“元数据存储单元”,而用于存储用户数据的单元也被称为“用户数据存储单元”。
图3示出了根据本公开的实施例的元数据存储单元和用户数据存储单元之间的关系的示意图。图3示出了元数据存储单元集合301和用户数据存储单元集合302。例如,元数据存储单元集合301可以包括元数据存储单元210-1和210-2,而用户数据存储单元集合302可以包括用户数据存储单元210-3和210-5。
在一些实施例中,每个用户数据存储单元可以被划分为多个固定大小(例如,2MB)的存储块。如图3所示,以用户数据存储单元210-3为例,其例如包括N个存储块330-1、330-2……330-N(其中,N≥1)。以用户数据存储单元210-5为例,其例如包括N个存储块340-1、340-2……340-N(其中,N≥1)。每个存储块可以具有对应的存储块描述符(例如,112字节),用于记录该存储块的元数据,诸如该存储块所对应的物理地址和该存储块的使用率等。存储块描述符可以被存储在元数据存储单元中。
在一些实施例中,每个元数据存储单元可以被划分为固定大小(例如,4KB)的存储页面。如图3所示,以元数据存储单元210-1为例,其例如包括X个存储页面310-1、310-2……310-X(其中,X≥1)。以存储页面310-2为例,其例如存储有Y个存储块描述符320-1、320-2……320-Y(其中,Y≥1)。例如,存储块描述符320-1用于记录存储块330-1的元数据,存储块描述符320-2用于记录存储块330-3的元数据,存储块描述符320-3用于记录存储块340-2的元数据……存储块描述符320-1用于记录存储块340-4的元数据等。
在一些实施例中,元数据存储单元集合301中可以包括具有不同访问速度的元数据存储单元。例如,在图3中,元数据存储单元集合301包括存储单元210-1和210-2,其中存储单元210-2基于访问速度较高的第二存储介质构建,而存储单元210-1基于访问速度较低的第一存储介质构建。在一些实施例中,为了能够提高对元数据的访问效率,可以将访问热度较高的元数据存储在具有更高访问速度的元数据存储单元中,而将访问热度较低的元数据存储在具有更低访问速度的元数据存储单元中,由此提高元数据的访问效率。
图4A-4E示出了根据本公开的实施例的元数据存储页面在具有不同访问速度的多个存储单元之间迁移的示意图。
如图4A所示,例如,在初始情况下,元数据存储页面410位于具有较低访问速度的存储单元210-1中。响应于接收401到访问元数据存储页面410中的元数据(例如,存储块描述符)的请求,可以从具有较低访问速度的存储单元210-1来访问元数据存储页面410中的元数据。
响应于元数据存储页面410从具有较低访问速度的存储单元210-1被访问,可以进一步确定存储页面410的热度是否超过阈值水平。在一些实施例中,如以下结合图5进一步描述的,可以将存储页面410以低于阈值时间间隔(例如,预定时间窗口W)的时间间隔从存储单元210-1被访问的次数作为该存储页面410的热度的度量。如果确定的次数超过阈值数目(本文中也称为“第一阈值数目”),则如图4B所示,可以将存储页面410标识为待迁移的存储页面。应当理解,在其他实施例中,例如可以将存储页面410被访问的频率、存储页面410在特定时间间隔内被访问的次数等作为存储页面410的热度的度量。本公开的实施例在此方面不受限制。
如图4C所示,当存储单元210-1中的存储页面410被标识为待迁移的存储页面时,存储页面410可以从具有较低访问速度的存储单元210-1被迁移402至具有较高访问速度的存储单元210-2。例如,可以在存储单元210-2中分配空闲页面以用于存储来自存储单元210-1中的存储页面410中的元数据。响应于空闲页面被分配,可以将存储单元210-1中的存储页面410中的元数据拷贝到所分配的空闲页面中。
如图4D所示,当存储页面410从具有较低访问速度的存储单元210-1被迁移402至具有较高访问速度的存储单元210-2时,存储单元210-1中的相应存储空间可以被释放。
如图4E所示,当再次接收403到访问元数据存储页面410中的元数据的请求时,可以从具有较高访问速度的存储单元210-2来访问元数据存储页面410中的元数据。
尽管在图2-图4E的描述中仅示出了具有两种不同访问速度的两个示例存储单元210-1和210-2,应当理解,这仅仅出于说明的目的,而无意于限制本公开的范围。本公开的实施例也适用于具有更多不同访问速度的更多存储单元。
图5示出了根据本公开的实施例的确定元数据存储页面的热度的示意图。图5示出了如图2所示的元数据存储单元210-1,其例如包括多个存储页面310-1、310-2……310-X(其中,X≥1)。在一些实施例中,针对每个存储页面,映射模块112可以记录该存储页面的访问信息,该访问信息至少包括该存储页面的最后访问时间和访问计数(例如,用于记录该存储页面以低于阈值时间间隔的时间间隔被访问的次数)等。映射模块112可以基于该访问信息来确定该存储页面的热度。
如图5所示,例如,三个时间窗口510、520和530的宽度均为W。在时间窗口510期间,发生了针对存储页面310-4的访问505和针对310-1的访问501。因此,在时间窗口510结束时,存储页面310-4的最后访问时间被更新为访问505发生的时间,并且访问计数值被更新为1。存储页面310-1的最后访问时间被更新为访问501发生的时间,并且访问计数值被更新为1。
在时间窗口510的下一时间窗口520期间,发生了针对存储页面310-1的两次访问502和503。由于访问502与针对同一存储页面310-1的前一次访问501的时间间隔低于W,因此在访问502发生后,存储页面310-1的最后访问时间被更新为访问502发生的时间,并且访问计数值被更新为2。同理,在访问503发生后,存储页面310-1的最后访问时间被更新为访问503发生的时间,并且访问计数值被更新为3。
在时间窗口520的下一时间窗口530期间,发生针对存储页面310-1的访问504和针对存储页面310-4的访问506。在访问504发生后,存储页面310-1的最后访问时间被更新为访问504发生的时间,并且访问计数值被更新为4。由于访问506与针对同一存储页面310-4的前一次访问505的时间间隔超过W,因此在访问506发生后,存储页面310-4的最后访问时间被更新为访问506发生的时间,并且访问计数值被归零。也即,在时间窗口530结束时,存储页面310-1的访问计数值为4,而存储页面310-4的访问计数值为零。
在一些实施例中,映射模块112可以根据每个存储页面的访问计数器的值来确定该存储页面的热度。例如,当某个存储页面的访问计数器的值超过第一阈值数目时,该存储页面可以被标识为待迁移的存储页面。在一些实施例中,第一阈值数目的设定需要综合考虑具有较高访问速度的存储单元中所能够容纳的存储页面的数目和存储系统的性能平衡。例如,如果被迁移到具有较高访问速度的存储单元中的存储页面过多,则元数据都能够以很高的访问效率被访问,而用户数据的访问效率反而可能成为系统的瓶颈,使得存储系统的整体性能无法显著提升。在此情况下,将更多的存储页面迁移到具有较高访问速度的存储单元中并不能够显著地提升存储系统的整体性能。
图6示出了根据本公开的实施例的用于管理元数据的示例方法600的流程图。方法600例如可以由如图1所示的存储管理器110(例如,映射模块112)来执行。应当理解,方法600还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在框610处,响应于接收到访问第一存储页面(例如,如图4所示的存储页面410)中的元数据的请求,存储管理器110从包括用于存储元数据的存储页面的多个存储单元(例如,如图4所示的存储单元集合301)中确定第一存储页面所在的存储单元。在一些实施例中,多个存储单元包括第一存储单元(例如,如图4所示的存储单元210-1)和第二存储单元(例如,如图4所示的存储单元210-2),并且第二存储单元的访问速度超过第一存储单元的访问速度。
在一些实施例中,被迁移至第二存储单元的所有存储页面的相应索引信息可以被记录在索引结构(本文也称为“第一索引结构”)中。例如,第一索引结构可以利用最近最少访问(LRU)队列来实现。在一些实施例中,存储管理器110可以从请求中确定第一存储页面的第一索引信息,然后在第一索引结构中查找该第一索引信息。如果第一索引信息被记录在第一索引结构中,则存储管理器110可以确定第一存储页面在第二存储单元中。否则,存储管理器110可以确定第一存储页面在第一存储单元中。
在框620处,存储管理器110从确定的存储单元访问第一存储页面中的元数据。
在一些实施例中,响应于确定第一存储页面在第二存储单元中,存储管理器110可以从第二存储单元访问第一存储页面中的元数据。
在一些实施例中,响应于确定第一存储页面在第一存储单元中,存储管理器110可以从第一存储单元访问第一存储页面中的元数据。
在框630处,存储管理器110确定第一存储页面是否从访问速度较低的第一存储单元被访问。响应于第一存储页面从第一存储单元被访问,在框640处,存储管理器110确定第一存储页面的热度是否超过阈值水平。
在一些实施例中,存储管理器110可以确定第一存储页面以低于阈值时间间隔的时间间隔从第一存储单元被访问的次数(如以上结合图5描述的)。如果该次数超过第一阈值数目,则存储管理器110可以确定第一存储页面的热度超过阈值水平。
备选地,在另一些实施例中,存储管理器110可以将第一存储页面的访问频率、第一存储页面在特定时间段内被访问的次数作为第一存储页面的热度的度量。例如,当第一存储页面的访问频率超过阈值频率或者一存储页面在特定时间段内被访问的次数超过阈值次数时,存储管理器110可以确定第一存储页面的热度超过阈值水平。
响应于第一存储页面的热度超过阈值水平,在框650处,存储管理器110将第一存储页面从第一存储单元迁移至访问速度较高的第二存储单元。
在一些实施例中,将要从第一存储单元被迁移至访问速度较高的第二存储单元的所有存储页面的相应索引信息可以被记录在索引结构(本文也称为“第二索引结构”)中。例如,第二索引结构可以利用LRU队列来实现。存储管理器110可以确定第一存储页面的第一索引信息是否已被记录在第二索引结构中。如果确定第一存储页面的第一索引信息未被记录在第二索引结构中,则存储管理器110可以将第一索引信息记录在第二索引结构中,以使得第一存储页面能够从第一存储单元被迁移至第二存储单元。
在一些实施例中,存储管理器110可以发起后台服务以用于将第二索引结构中指示的待迁移的存储页面从第一存储单元迁移至第二存储单元。例如,响应于确定第二索引结构中包括待迁移的至少一个存储页面的索引信息,该后台服务可以将至少一个存储页面从第一存储单元迁移至第二存储单元。该后台服务可以进一步将该至少一个存储页面的索引信息从第二索引结构迁移至第一索引结构。以下将进一步结合图7A-7C来详细描述该迁移的过程。
附加地或备选地,在一些实施例中,当访问速度较高的第二存储单元中的存储页面的数目超过阈值数目(本文也称为“第二阈值数目”)时,存储管理器110可以从第二存储单元所包括的存储页面中选择最近最少被访问的存储页面(本文也称为“第二存储页面”),并且将所选择的第二存储页面从第二存储单元迁移至第一存储单元。相应地,存储管理器110可以将第二存储页面的索引信息从第一索引结构中移除。
图7A-7C示出了根据本公开的实施例的元数据存储页面的迁移的示意图。如图7A所示,例如,第一存储单元210-1中的四个存储页面710-1、710-2……710-4被映射模块112标识为待迁移的存储页面。它们的映射信息720-1、720-2……720-4被记录在索引结构701(也即,第二索引结构)中。假设,在初始情况下,第二存储单元210-2未包括任何元数据存储页面。因此,用于记录第二存储单元210-2中的所有存储页面的相应索引信息的索引结构702(也即,第一索引结构)为空。
如图7B所示,例如,映射模块112将四个存储页面710-1、710-2……710-4从第一存储单元210-1迁移至第二存储单元210-2。此外,映射模块112还将四个存储页面710-1、710-2……710-4的相应映射信息720-1、720-2……720-4从索引结构701迁移至索引结构702中。
如图7C所示,当存储页面和索引信息的迁移完成时,第一存储单元210-1和第二索引结构701中的相应存储空间可以被释放。此时,四个存储页面710-1、710-2……710-4中的元数据被存储在第二存储单元210-2中,并且相应映射信息720-1、720-2……720-4被记录在索引结构702中。
通过以上描述能够看出,通过将访问热度较高的元数据存储在具有更高访问速度的存储介质中,本公开的实施例能够实现更高的访问效率。此外,本公开的实施例能够充分利用不同存储介质的性能,从而能够实现不同存储介质间的负载均衡。
图8示出了可以用来实施本公开内容的实施例的示例设备800的示意性框图。例如,如图1所示的存储管理器110可以由设备800实施。如图8所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法600,可由处理单元801执行。例如,在一些实施例中,方法600可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到RAM 803并由CPU 801执行时,可以执行上文描述的方法600的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (19)
1.一种用于管理元数据的方法,包括:
响应于接收到访问第一存储页面中的元数据的请求,从包括用于存储元数据的存储页面的多个存储单元中确定所述第一存储页面所在的存储单元,所述多个存储单元包括第一存储单元和第二存储单元,并且所述第二存储单元的访问速度超过所述第一存储单元的访问速度;
从确定的所述存储单元访问所述第一存储页面中的元数据;
响应于所述第一存储页面从所述第一存储单元被访问,确定所述第一存储页面的热度超过阈值水平;以及
响应于所述第一存储页面的所述热度超过所述阈值水平,将所述第一存储页面从所述第一存储单元迁移至所述第二存储单元中;
其中,确定所述第一存储页面的所述热度超过所述阈值水平包括:
在时长W的时间窗口内对从所述第一存储单元访问所述第一存储页面的次数进行计数;以及
将所述计数重置为零,以响应所述第一存储页面被访问连续两次,所述连续两次被间隔超过W。
2.根据权利要求1所述的方法,其中确定所述第一存储页面所在的所述存储单元包括:
获取第一索引结构,所述第一索引结构用于记录所述第二存储单元中的存储页面的索引信息;
从所述请求中确定所述第一存储页面的第一索引信息;以及
响应于确定所述第一索引信息被记录在所述第一索引结构中,确定所述第一存储页面在所述第二存储单元中。
3.根据权利要求2所述的方法,还包括:
响应于确定所述第一索引信息在所述第一索引结构中缺失,确定所述第一存储页面在所述第一存储单元中。
4.根据权利要求1所述的方法,其中从确定的所述存储单元访问所述第一存储页面包括:
响应于确定所述第一存储页面在所述第二存储单元中,从所述第二存储单元访问所述第一存储页面;以及
响应于确定所述第一存储页面在所述第一存储单元中,从所述第一存储单元访问所述第一存储页面。
5.根据权利要求1所述的方法,其中确定所述第一存储页面的所述热度超过所述阈值水平还包括:
响应于由所述计数产生的计数超过第一阈值数目,确定所述第一存储页面的所述热度超过所述阈值水平。
6.根据权利要求2所述的方法,其中将所述第一存储页面从所述第一存储单元迁移至所述第二存储单元中包括:
获取第二索引结构,所述第二索引结构用于记录将要从所述第一存储单元被迁移至所述第二存储单元的存储页面的索引信息;
确定所述第一索引信息未被记录在所述第二索引结构中;以及
响应于确定所述第一索引信息在所述第二索引结构中缺失,将所述第一索引信息记录在所述第二索引结构中。
7.根据权利要求6所述的方法,还包括:
响应于确定所述第二索引结构包括待迁移的至少一个存储页面的索引信息,将所述至少一个存储页面从所述第一存储单元迁移至所述第二存储单元;以及
将所述至少一个存储页面的所述索引信息从所述第二索引结构迁移至所述第一索引结构。
8.根据权利要求1所述的方法,其中所述第二存储单元包括一组存储页面,并且所述方法还包括:
响应于所述一组存储页面的数目超过第二阈值数目,从所述一组存储页面中确定将从所述第二存储单元被迁移至所述第一存储单元的第二存储页面;以及
将所述第二存储页面从所述第二存储单元迁移至所述第一存储单元。
9.根据权利要求8所述的方法,其中确定所述第二存储页面包括:
从所述一组存储页面中选择最近最少被访问的存储页面作为所述第二存储页面。
10.一种用于管理元数据的装置,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述装置执行动作,所述动作包括:
响应于接收到访问第一存储页面中的元数据的请求,从包括用于存储元数据的存储页面的多个存储单元中确定所述第一存储页面所在的存储单元,所述多个存储单元包括第一存储单元和第二存储单元,并且所述第二存储单元的访问速度超过所述第一存储单元的访问速度;
从确定的所述存储单元访问所述第一存储页面中的元数据;
响应于所述第一存储页面从所述第一存储单元被访问,确定所述第一存储页面的热度是否超过阈值水平;以及
响应于所述第一存储页面的所述热度超过所述阈值水平,将所述第一存储页面从所述第一存储单元迁移至所述第二存储单元中;
其中,确定所述第一存储页面的所述热度超过所述阈值水平包括:
在时长W的时间窗口内对从所述第一存储单元访问所述第一存储页面的次数进行计数;以及
将所述计数重置为零,以响应所述第一存储页面被访问连续两次,所述连续两次被间隔超过W。
11.根据权利要求10所述的装置,其中确定所述第一存储页面所在的所述存储单元包括:
获取第一索引结构,所述第一索引结构用于记录所述第二存储单元中的存储页面的索引信息;
从所述请求中确定所述第一存储页面的第一索引信息;以及
响应于确定所述第一索引信息被记录在所述第一索引结构中,确定所述第一存储页面在所述第二存储单元中。
12.根据权利要求11所述的装置,其中所述动作还包括:
响应于确定所述第一索引信息在所述第一索引结构中缺失,确定所述第一存储页面在所述第一存储单元中。
13.根据权利要求10所述的装置,其中从确定的所述存储单元访问所述第一存储页面包括:
响应于确定所述第一存储页面在所述第二存储单元中,从所述第二存储单元访问所述第一存储页面;以及
响应于确定所述第一存储页面在所述第一存储单元中,从所述第一存储单元访问所述第一存储页面。
14.根据权利要求10所述的装置,其中确定所述第一存储页面的所述热度是否超过所述阈值水平还包括:
响应于由所述计数产生的计数超过第一阈值数目,确定所述第一存储页面的所述热度超过所述阈值水平。
15.根据权利要求11所述的装置,其中将所述第一存储页面从所述第一存储单元迁移至所述第二存储单元中包括:
获取第二索引结构,所述第二索引结构用于记录将要从所述第一存储单元被迁移至所述第二存储单元的存储页面的索引信息;
确定所述第一索引信息是否被记录在所述第二索引结构中;以及
响应于确定所述第一索引信息在所述第二索引结构中缺失,将所述第一索引信息记录在所述第二索引结构中。
16.根据权利要求15所述的装置,其中所述动作还包括:
响应于确定所述第二索引结构包括待迁移的至少一个存储页面的索引信息,将所述至少一个存储页面从所述第一存储单元迁移至所述第二存储单元;以及
将所述至少一个存储页面的所述索引信息从所述第二索引结构迁移至所述第一索引结构。
17.根据权利要求10所述的装置,其中所述第二存储单元包括一组存储页面,并且所述动作还包括:
响应于所述一组存储页面的数目超过第二阈值数目,从所述一组存储页面中确定将从所述第二存储单元被迁移至所述第一存储单元的第二存储页面;以及
将所述第二存储页面从所述第二存储单元迁移至所述第一存储单元。
18.根据权利要求17所述的装置,其中确定所述第二存储页面包括:
从所述一组存储页面中选择最近最少被访问的存储页面作为所述第二存储页面。
19.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行操作,所述操作包括:
响应于接收到访问第一存储页面中的元数据的请求,从包括用于存储元数据的存储页面的多个存储单元中确定所述第一存储页面所在的存储单元,所述多个存储单元包括第一存储单元和第二存储单元,并且所述第二存储单元的访问速度超过所述第一存储单元的访问速度;
从确定的所述存储单元访问所述第一存储页面中的元数据;
响应于所述第一存储页面从所述第一存储单元被访问,确定所述第一存储页面的热度超过阈值水平;以及
响应于所述第一存储页面的所述热度超过所述阈值水平,将所述第一存储页面从所述第一存储单元迁移至所述第二存储单元中;
其中,确定所述第一存储页面的所述热度超过所述阈值水平包括:
在时长W的时间窗口内对从所述第一存储单元访问所述第一存储页面的次数进行计数;以及
将所述计数重置为零,以响应所述第一存储页面被访问连续两次,所述连续两次被间隔超过W。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910361667.7A CN111857559B (zh) | 2019-04-30 | 2019-04-30 | 用于管理元数据的方法、装置和计算机程序产品 |
US16/821,404 US11226778B2 (en) | 2019-04-30 | 2020-03-17 | Method, apparatus and computer program product for managing metadata migration |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910361667.7A CN111857559B (zh) | 2019-04-30 | 2019-04-30 | 用于管理元数据的方法、装置和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111857559A CN111857559A (zh) | 2020-10-30 |
CN111857559B true CN111857559B (zh) | 2024-07-05 |
Family
ID=72965596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910361667.7A Active CN111857559B (zh) | 2019-04-30 | 2019-04-30 | 用于管理元数据的方法、装置和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11226778B2 (zh) |
CN (1) | CN111857559B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667149B (zh) * | 2020-12-04 | 2023-12-29 | 北京浪潮数据技术有限公司 | 一种数据热度感知方法、装置、设备及介质 |
CN112631525A (zh) * | 2020-12-30 | 2021-04-09 | 安徽鸿程光电有限公司 | 存储及显示方法、装置、设备及介质 |
CN114153545B (zh) * | 2021-12-09 | 2024-10-15 | 深圳市华锴信息技术有限公司 | 一种基于多页面的管理系统和方法 |
CN115933997B (zh) * | 2023-01-30 | 2023-06-13 | 南京芯驰半导体科技有限公司 | 数据访问方法、相关设备及存储介质 |
CN118170718A (zh) * | 2024-05-13 | 2024-06-11 | 中移(苏州)软件技术有限公司 | 元数据管理方法、装置、电子设备、介质及芯片 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6487638B2 (en) * | 2001-01-26 | 2002-11-26 | Dell Products, L.P. | System and method for time weighted access frequency based caching for memory controllers |
WO2011135612A1 (en) * | 2010-04-27 | 2011-11-03 | Hitachi, Ltd. | Storage apparatus and method for controlling storage apparatus |
US9235535B1 (en) | 2012-10-31 | 2016-01-12 | Emc Corporation | Method and apparatus for reducing overheads of primary storage by transferring modified data in an out-of-order manner |
US10176183B1 (en) | 2012-10-31 | 2019-01-08 | EMC IP Holding Company LLC | Method and apparatus for reducing overheads of primary storage while transferring modified data |
US9189414B1 (en) | 2013-09-26 | 2015-11-17 | Emc Corporation | File indexing using an exclusion list of a deduplicated cache system of a storage system |
US8935446B1 (en) | 2013-09-26 | 2015-01-13 | Emc Corporation | Indexing architecture for deduplicated cache system of a storage system |
US9336143B1 (en) | 2013-09-26 | 2016-05-10 | Emc Corporation | Indexing a deduplicated cache system by integrating fingerprints of underlying deduplicated storage system |
US9189402B1 (en) | 2013-09-26 | 2015-11-17 | Emc Corporation | Method for packing and storing cached data in deduplicated cache system of a storage system |
US9390116B1 (en) | 2013-09-26 | 2016-07-12 | Emc Corporation | Insertion and eviction schemes for deduplicated cache system of a storage system |
US9304914B1 (en) | 2013-09-26 | 2016-04-05 | Emc Corporation | Deduplicated cache system of a storage system |
US10445025B2 (en) * | 2014-03-18 | 2019-10-15 | Micron Technology, Inc. | Apparatuses and methods having memory tier structure and recursively searching between tiers for address in a translation table where information is only directly transferred between controllers |
CN107870916A (zh) * | 2016-09-23 | 2018-04-03 | 伊姆西Ip控股有限责任公司 | 存储管理方法及设备 |
US10649665B2 (en) * | 2016-11-08 | 2020-05-12 | Micron Technology, Inc. | Data relocation in hybrid memory |
CN108228649B (zh) * | 2016-12-21 | 2021-08-24 | 伊姆西Ip控股有限责任公司 | 用于数据访问的方法和设备 |
US10496290B1 (en) | 2017-04-11 | 2019-12-03 | EMC IP Holding Company LLC | Method and system for window-based churn handling in data cache |
US10936412B1 (en) | 2017-04-17 | 2021-03-02 | EMC IP Holding Company LLC | Method and system for accessing data stored in data cache with fault tolerance |
US10565120B1 (en) | 2017-04-17 | 2020-02-18 | EMC IP Holding Company LLC | Method for efficient write path cache load to improve storage efficiency |
US10908818B1 (en) | 2017-04-17 | 2021-02-02 | EMC IP Holding Company LLC | Accessing deduplicated data from write-evict units in solid-state memory cache |
US10733105B1 (en) | 2017-04-17 | 2020-08-04 | EMC IP Holding Company LLC | Method for pipelined read optimization to improve performance of reading data from data cache and storage units |
US10152381B1 (en) | 2017-04-27 | 2018-12-11 | EMC IP Holding Company LLC | Using storage defragmentation function to facilitate system checkpoint |
US10552046B2 (en) * | 2017-04-27 | 2020-02-04 | International Business Machines Corporation | Automatic tiering of storage using dynamic grouping |
US10860239B2 (en) | 2018-05-04 | 2020-12-08 | EMC IP Holding Company LLC | Fan-out asynchronous replication caching |
US10705753B2 (en) | 2018-05-04 | 2020-07-07 | EMC IP Holding Company LLC | Fan-out asynchronous replication logical level caching |
-
2019
- 2019-04-30 CN CN201910361667.7A patent/CN111857559B/zh active Active
-
2020
- 2020-03-17 US US16/821,404 patent/US11226778B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20200349081A1 (en) | 2020-11-05 |
CN111857559A (zh) | 2020-10-30 |
US11226778B2 (en) | 2022-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111857559B (zh) | 用于管理元数据的方法、装置和计算机程序产品 | |
US10715460B2 (en) | Opportunistic resource migration to optimize resource placement | |
US20180349064A1 (en) | Data set management | |
CN112368673A (zh) | 确定用于数据集和用于迁移数据集的最优存储环境 | |
CN110737401B (zh) | 用于管理独立冗余磁盘阵列的方法、设备和计算机程序产品 | |
US9645747B2 (en) | Management of allocation for alias devices | |
CN111857539B (zh) | 用于管理存储系统的方法、设备和计算机可读介质 | |
US11500577B2 (en) | Method, electronic device, and computer program product for data processing | |
EP4141641A2 (en) | Method and apparatus for writing data in append mode, device and storage medium | |
CN111857557B (zh) | Raid类型转换的方法、设备和计算机程序产品 | |
CN112748849A (zh) | 用于存储数据的方法、设备和计算机程序产品 | |
CN114385069B (zh) | 存储管理的方法、设备和计算机程序产品 | |
US10592123B1 (en) | Policy driven IO scheduler to improve write IO performance in hybrid storage systems | |
JP7431490B2 (ja) | 階層型ストレージ管理システムにおけるデータ・マイグレーション | |
CN112748848A (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
CN115981559A (zh) | 分布式数据存储方法、装置、电子设备和可读介质 | |
US10599340B1 (en) | Policy driven IO scheduler to improve read IO performance in hybrid storage systems | |
CN117992410A (zh) | 小文件数据的处理方法、装置、电子设备及存储介质 | |
CN111857547B (zh) | 用于管理数据存储的方法、设备和计算机可读介质 | |
US9710183B2 (en) | Effectively limitless apparent free space on storage device | |
US10083225B2 (en) | Dynamic alternate keys for use in file systems utilizing a keyed index | |
US11144530B2 (en) | Regulating migration and recall actions for high latency media (HLM) on objects or group of objects through metadata locking attributes | |
KR101754713B1 (ko) | 비대칭 분산 파일 시스템, 연산 분배 장치 및 방법 | |
US11941296B2 (en) | Intelligent storage of messages in page sets |
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 |