CN110737399B - 用于管理存储系统的方法、设备和计算机程序产品 - Google Patents

用于管理存储系统的方法、设备和计算机程序产品 Download PDF

Info

Publication number
CN110737399B
CN110737399B CN201810803486.0A CN201810803486A CN110737399B CN 110737399 B CN110737399 B CN 110737399B CN 201810803486 A CN201810803486 A CN 201810803486A CN 110737399 B CN110737399 B CN 110737399B
Authority
CN
China
Prior art keywords
access
replacement list
cache
target
list
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
Application number
CN201810803486.0A
Other languages
English (en)
Other versions
CN110737399A (zh
Inventor
徐鑫磊
杨利锋
高健
董继炳
康剑斌
高宏坡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201810803486.0A priority Critical patent/CN110737399B/zh
Priority to US16/356,417 priority patent/US11288210B2/en
Publication of CN110737399A publication Critical patent/CN110737399A/zh
Application granted granted Critical
Publication of CN110737399B publication Critical patent/CN110737399B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

用于管理存储系统的方法、设备和计算机程序产品
技术领域
本公开的各实现方式涉及存储系统管理,更具体地,涉及对高速缓冲存储器页进行管理的方法、设备和计算机程序产品。
背景技术
在包含磁盘阵列的存储系统中,通常采用高速缓冲存储器来提高访问存储系统中的数据的速度。第一层高速缓冲存储器通常是采用诸如DRAM的高速缓冲存储器,第二层高速缓冲存储器通常是采用诸如SSD/NVMe的高速缓冲存储器。针对第二层高速缓冲存储器,期望在提高高速缓冲存储器中的高速缓冲存储器页的命中率的同时,降低将磁盘上的数据提升到高速缓冲存储器页中的次数。因此,需要一种改进的解决方案来提高存储系统性能。
发明内容
本公开的实施例提供了用于管理存储系统的方法、设备和计算机程序产品。
在本公开的第一方面,提供了一种用于管理存储系统的方法。该方法包括:接收针对目标数据的访问请求;确定目标数据的存储位置,存储位置指示存储设备和高速缓冲存储器中的一项;基于存储位置,从第一替换列表和与第一替换列表相关联的第二替换列表中确定与目标数据相对应的目标元素,第一替换列表至少包括计数元素,计数元素指示存储设备中的数据被访问的次数,第二替换列表包括低频率访问元素,低频率访问元素指示高速缓冲存储器中的访问频率低的高速缓冲存储器页;以及更新目标元素在目标元素所位于的替换列表中的位置。
在本公开的第二方面,提供了一种用于管理存储系统的设备。该设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得设备执行动作,该动作包括:接收针对目标数据的访问请求;确定目标数据的存储位置,存储位置指示存储设备和高速缓冲存储器中的一项;基于存储位置,从第一替换列表和与第一替换列表相关联的第二替换列表中确定与目标数据相对应的目标元素,第一替换列表至少包括计数元素,计数元素指示存储设备中的数据被访问的次数,第二替换列表包括低频率访问元素,低频率访问元素指示高速缓冲存储器中的访问频率低的高速缓冲存储器页;以及更新目标元素在目标元素所位于的替换列表中的位置
在本公开的第三方面,提供了一种计算机程序产品。计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器实现根据本公开的第一方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了传统存储系统的一个示例的示意图;
图2示出了传统存储系统的另一示例的示意图;
图3示出了本公开的实施例可以在其中实现的存储系统的示例的示意图;
图4示出了本公开的实施例可以用于管理存储系统的方法的示例的流程图;
图5示出了本公开的实施例可以用于更新目标元素在替换列表中的位置的方法的一个示例的流程图;
图6示出了本公开的实施例可以用于更新目标元素在替换列表中的位置的方法的另一个示例的流程图;
图7示出了本公开的实施例可以用于更新目标元素在替换列表中的位置的方法的再一个示例的流程图;
图8A-8C示出了用于更新目标元素在替换列表中的位置的示例的示意图;以及
图9示出了可以用来实施本公开内容的实施例的示例设备的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
使用传统LRU算法管理高速缓冲存储器
图1示出了传统存储系统100的一个示例的示意图。如图1所示,存储系统100包括高速缓冲存储器110和存储设备120。高速缓冲存储器110可以是采用诸如SSD/NVMe/NVDIMM等的高速缓冲存储器。存储设备120可以是诸如独立磁盘冗余阵列(RAID)。然而,存储设备120的示例不限于此,并且可以是诸如电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。
高速缓冲存储器110包括多个卷,并且每个卷可以包括多个高速缓冲存储器页。此外,高速缓冲存储器110还包括映射表130、访问历史列表140、页替换列表150和控制器190。映射表130可以包括访问信息。当数据存在于高速缓冲存储器110上时,访问信息可以指示数据在存储设备120中的地址与数据所存在于的高速缓冲存储器页之间的对应关系。此外,当数据不存在于高速缓冲存储器110中时,访问信息可以指示数据在存储设备120中的访问历史,例如数据在存储设备120中被访问的次数。
访问历史列表140可以包括历史信息1451-1457(统称为“历史信息145”)。在此,历史信息145的数目仅是示例,并且访问历史列表140可以包括任何适当数目的历史信息145。历史信息145可以包括数据的访问历史,该数据存在于在存储设备120中并且不存在于高速缓冲存储器110中。访问历史可以是例如数据在存储设备120中被访问的次数。在某些实施例中,访问信息可以包括历史信息145的标识(例如,地址、标识符、名称等),从而可以通过访问信息确定历史信息145中所包括的访问历史。
页替换列表150可以包括页元素1551-1555(统称为“页元素155”)。在此,页元素155的数目仅是示例,并且页替换列表150可以包括任何适当数目的页元素155。页元素155可以指示高速缓冲存储器页。在某些实施例中,在页替换列表150的起始位置处的页元素155(诸如页元素1551)可以指示访问时间最近的高速缓冲存储器页,而在页替换列表150的结束位置处的页元素155(诸如页元素1555)可以指示访问时间最远的高速缓冲存储器页。此外,在某些实施例中,针对每个卷可以存在一个页替换列表150。
控制器190可以对高速缓冲存储器110进行管理,例如采用最近最少使用(LRU,Least Recently Used)算法。控制器190可以记录数据在存储设备120中被访问的次数,标识访问次数多的数据,并且将访问次数多的数据从存储设备120提升或缓存到高速缓冲存储器110。在这种情况下,当下一次接收到访问请求时,控制器190将查找映射表130,并且发现数据被移动到高速缓冲存储器110,从而在高速缓冲存储器110中读取/写入数据以加速对访问请求的处理。
在某些实施例中,控制器190对高速缓冲存储器110的管理的示例过程如下:
步骤1.当控制器190接收到针对目标数据的访问请求时,控制器190首先查找映射表130,以确定映射表130中是否存在与目标数据相对应的访问信息,以及访问信息所指示的内容。如果访问信息指示目标数据在存储设备120中的地址与目标数据所存在于的高速缓冲存储器页之间的对应关系(也被称为“命中”),则跳到步骤5;如果访问信息指示目标数据在存储设备120中被访问的次数(也被称为“伪命中”),则跳到步骤3;如果映射表130中不存在与目标数据相对应的访问信息,则跳到步骤2。
步骤2.控制器190从访问历史列表140的结束位置为目标数据分配历史信息145,以跟踪目标数据在存储设备120上被访问的次数,并且将所分配的历史信息145的位置设置为访问历史列表140的起始位置,换句话说,将所分配的历史信息145插入到访问历史列表140的起始位置处。此外,控制器190还基于所分配的历史信息145,在映射表130中创建指向历史信息145的访问信息,以及在页替换列表150中创建指向历史信息145的计数元素。然后,跳到步骤4。
步骤3.控制器190对与目标数据相对应的历史信息145进行递增操作,例如将目标数据在存储设备120上被访问的次数加1;如果被访问的次数大于预定阈值,则控制器190将目标数据从存储设备120提升或缓存到高速缓冲存储器110中,并且将映射表130中的访问信息改变为指示目标数据在存储设备120中的地址与目标数据所存在于的高速缓冲存储器页之间的对应关系,以及在页替换列表150中添加指示目标数据所存在于的高速缓冲存储器页的页元素155。然后,跳到步骤4。
步骤4.控制器190将访问请求发送到存储设备120,当存储设备120中的访问操作完成时,控制器190将完成通知发送到上层驱动器。
步骤5.控制器190将与目标数据相对应的页元素155的位置设置为页替换列表150的起始位置,将访问请求发送到高速缓冲存储器110,当高速缓冲存储器110中的访问操作完成时,控制器190将完成通知发送到上层驱动程序。
以此方式,控制器190实现了对高速缓冲存储器110的管理。然而,在上述方式中,由于控制器190并未记录高速缓冲存储器页的访问频率,因此仅仅高速缓冲存储器页的访问时间会影响与该高速缓冲存储器页相对应的页元素155在页替换列表150中的位置,而高速缓冲存储器页的访问频率无法影响该位置。因此,上述方式可能导致用访问时间近的数据代替高速缓冲存储器110中的访问频率高的高速缓冲存储器页中的数据。
例如,如图1所示,假设预定阈值为3,并且高速缓冲存储器110中与页替换列表150的结束位置处的页元素1555相对应的高速缓冲存储器页命中的次数为10。当历史信息1511所指示的目标数据在存储设备120上被访问的次数大于3时,控制器190将目标数据从存储设备120提升或缓存到高速缓冲存储器110中以代替与页元素1555相对应的高速缓冲存储器页中的数据。换句话说,用存储设备120中的访问次数为3的、访问时间最近的数据代替了高速缓冲存储器110中访问次数为10的、访问时间最远的数据。
上述缺陷在突发访问不频繁使用的数据,循环访问略大于高速缓冲存储器大小的文件等情况下将更为显著。为了解决上述问题,控制器190可以采用其他方式对高速缓冲存储器110进行管理,例如将在下文中描述的采用低引用间新近性集合(LIRS,Low Inter-Reference Recency Set)算法。
使用传统LIRS算法管理高速缓冲存储器
图2示出了采用LIRS算法的传统存储系统200的一个示例的示意图。LIRS算法的原理在于LIRS算法将存储块分为两个集合:高频率访问存储块集合和低频率访问存储块集合。高速缓冲存储器中的每个块具有高频率访问状态或低频率访问状态。一些低频率访问存储块可能不驻留在高速缓冲存储器中,但是在高速缓冲存储器中具有指示该非驻留低频率访问存储块的非驻留低频率访问元素。
此外,LIRS算法的原理还在于LIRS算法将高速缓冲存储器划分主要部分和次要部分。主要部分用于存储高频率访问存储块,而次要部分用于存储低频率访问存储块。主要部分和次要部分的大小之和等于高速缓冲存储器的大小。当访问请求所针对的目标数据在高速缓冲存储器中未命中,并且需要将高速缓冲存储器中的存储块替换为目标数据时,LIRS算法选择驻留在高速缓冲存储器中的低频率访问存储块。高频率访问存储块总是驻留在高速缓冲存储器中,因此针对高频率访问存储块的访问请求不会未命中。相反,由于高速缓冲存储器中用于存储低频率访问存储块的次要部分非常小(通常可能小到高速缓冲存储器大小的1%),针对低频率访问存储块的访问请求可能会未命中。
进一步地,LIRS算法的原理还在于使用全局列表来管理高速缓冲存储器中的所有存储块。当缓存块退出高速缓冲存储器时,与该存储块有关的信息仍存在于全局列表中。
图2中所示的存储系统200为基于LIRS算法的存储系统。与存储系统100类似,存储系统200包括高速缓冲存储器210和存储设备220。高速缓冲存储器210包括多个卷,并且每个卷可以包括多个高速缓冲存储器页。此外,高速缓冲存储器210还包括映射表230和控制器290。
与存储系统100不同,存储系统200中的映射表230中的访问信息无法指示数据在存储设备120中的访问历史,以及使用两个页替换列表270和280来管理高速缓冲存储器210。
页替换列表270可以用于存储指示访问时间近的存储块的元素。这些元素可以包括高频率访问块元素(例如,元素2753、2754)、低频率访问块元素(例如,元素2751)和非驻留低频率访问元素(例如,元素2752)。高频率访问块元素指示高速缓冲存储器210中的访问频率高的存储块。低频率访问块元素指示高速缓冲存储器210中的访问频率低的存储块。作为对照,页替换列表280可以用于存储指示访问时间远的存储块的元素。这些元素仅可以包括低频率访问块元素(例如,元素2851、2852)。
然而,以此方式,由于非驻留低频率访问元素可以存在于页替换列表270中,导致页替换列表270的长度不固定,甚至可能超过存储系统200的限制。此外,由于一旦目标数据被访问,目标数据就被缓存到高速缓冲存储器210中,这将给存储系统200带来昂贵的开销,因为将目标数据从存储设备220提升/缓存到高速缓冲存储器210中,以及将高速缓冲存储器210中的低频率访问存储块中的数据冲刷/存储到存储设备220是昂贵的。因此,存储系统200与存储系统100相比,虽然提高了目标数据的命中率,然而也相应地提高了将数据从存储设备220提升/缓存到高速缓冲存储器210中的次数,这是不期望。
本公开的存储系统
本公开的示例实施例提出了一种用于管理存储系统的方案。在该方案中,存储系统中的控制器接收针对目标数据的访问请求,并且确定目标数据的存储位置。存储位置指示存储设备和高速缓冲存储器中的一项。然后,控制器基于存储位置,从第一替换列表和与第一替换列表相关联的第二替换列表中确定与目标数据相对应的目标元素。第一替换列表至少包括计数元素。计数元素指示存储设备中的数据被访问的次数。第二替换列表包括低频率访问元素。低频率访问元素指示高速缓冲存储器中的访问频率低的高速缓冲存储器页。然后,控制器更新目标元素在目标元素所位于的替换列表中的位置。以此方式,可以在提高存储系统中的目标数据的命中率,降低将数据从存储设备提升/缓存到高速缓冲存储器中的次数。由此,可以以简洁和有效的方式提高存储系统的效率和性能,进而能够提高用户体验。
图3示出了本公开的实施例可以在其中实现的存储系统300的示例的示意图。如图3所示,存储系统300包括高速缓冲存储器310和存储设备320。高速缓冲存储器310可以是采用诸如SSD/NVMe/NVDIMM等的高速缓冲存储器。存储设备320可以是诸如独立磁盘冗余阵列(RAID)。然而,存储设备320的示例不限于此,并且可以是诸如电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。
高速缓冲存储器310包括多个卷,并且每个卷可以包括多个高速缓冲存储器页。此外,高速缓冲存储器310还包括映射表330、访问历史列表340、页替换列表370(也被称为“第一替换列表”)、页替换列表380(也被称为“第二替换列表”)和控制器390。虽然图中仅示出了一个第一替换列表370和一个第二替换列表380,然而在某些实施例中,针对每个卷可以存在一个第一替换列表370和一个第二替换列表380。因此,在高速缓冲存储器310包括多个卷的情况下,可以存在分别与每个卷相对应的第一替换列表370和第二替换列表380。此外,控制器390可以对高速缓冲存储器310进行管理。控制器390所执行的管理操作将在下文中结合图5-9进行描述。
映射表330可以包括访问信息。当数据存在于高速缓冲存储器310上时,访问信息可以指示数据在存储设备320中的地址与数据所存在于的高速缓冲存储器页之间的对应关系。此外,当数据不存在于高速缓冲存储器310中时,访问信息可以指示数据在存储设备320中的访问历史,例如数据在存储设备320中被访问的次数。
访问历史列表340可以用于跟踪在高速缓冲存储器310中未命中的目标数据的访问历史信息。在某些实施例中,访问历史列表340可以包括历史信息3451-3457(统称为“历史信息345”)。在此,历史信息345的数目仅是示例,并且访问历史列表340可以包括任何适当数目的历史信息345。历史信息345可以包括数据的访问历史,该数据存在于存储设备320中并且不存在于高速缓冲存储器310中。访问历史可以是例如数据在存储设备320中被访问的次数。
访问历史列表340可以与映射表330和第一替换列表370相关联。在某些实施例中,历史信息345可以被链接到映射表330中的访问信息345和第一替换列表370中的计数元素375。例如,访问信息345和计数元素375可以包括历史信息345的标识(例如,地址、标识符、名称等),从而可以通过访问信息345和计数元素375确定历史信息345中所包括的访问历史。相反,访问历史列表340无法与第二替换列表380相关联,例如历史信息345无法被链接到第二替换列表380中的元素。
在某些实施例中,访问历史列表340的大小(例如,所包括的历史信息345的数目)取决于总高速缓冲存储器的大小、高速缓冲存储器页的大小以及有效高速缓冲存储器的比例。例如,历史信息345的数目的可以通过如下等式得出:
其中n表示访问历史列表340中的历史信息345的总数目;sd_1到sd_m分别表示存储系统300中的m个高速缓冲存储器(共同表示为高速缓冲存储器310)的大小,m为大于1的自然数;p表示可以使用的有效高速缓冲存储器的比例;以及sc表示一个高速缓冲存储器页的大小。
第一替换列表370可以用于存储指示访问时间近的高速缓冲存储器页的元素3751-3754(统称为“元素375”)。在此,元素375的数目仅是示例,并且第一替换列表370可以包括任何适当数目的元素375。这些元素可以包括高频率访问元素(例如,元素3753、3754)、低频率访问元素(例如,元素3751)和计数元素(例如,元素3752)。高频率访问元素指示高速缓冲存储器310中的访问频率高的高速缓冲存储器页。低频率访问元素指示高速缓冲存储器310中的访问频率低的高速缓冲存储器页。计数元素指示存储设备320中的数据被访问的次数。
在某些实施例中,在第一替换列表370的起始位置处的元素375(诸如低频率访问元素3751)可以指示第一替换列表370中访问时间最近的高速缓冲存储器页,而在第一替换列表370的结束位置处的元素375(诸如高频率访问元素3754)可以指示第一替换列表370中访问时间最远的高速缓冲存储器页。
作为对照,第二替换列表380可以用于存储指示访问时间远的高速缓冲存储器页的元素3851-3852(统称为“元素385”)。在此,元素385的数目仅是示例,并且第二替换列表380可以包括任何适当数目的元素385。这些元素仅可以包括低频率访问元素(例如,元素3851和3852)。在某些实施例中,在第二替换列表380的起始位置处的元素385(诸如低频率访问元素3851)可以指示第二替换列表380中访问时间最近的高速缓冲存储器页,而在第二替换列表380的结束位置处的元素385(诸如高频率访问元素3852)可以指示第二替换列表380中访问时间最远的高速缓冲存储器页。
在某些实施例中,高频率访问元素和低频率访问元素的大小(例如,数目)取决于总高速缓冲存储器的大小、高速缓冲存储器页的大小以及有效高速缓冲存储器的比例。例如,高频率访问元素和低频率访问元素的数目的可以通过如下等式得出:
其中n表示第一替换列表370和第二替换列表380中的元素的总数目,也即高速缓冲存储器310中的高速缓冲存储器页的总数目;h1到hn分别表示针对第1个卷到第n个卷的第一替换列表370中的高频率访问元素的数目;l1到ln分别表示针对第1个卷到第n个卷的第一替换列表370和第二替换列表380中的低频率访问元素的数目;sd_1到sd_m分别表示存储系统300中的m个高速缓冲存储器(共同表示为高速缓冲存储器310)的大小,m为大于1的自然数;p表示可以使用的有效高速缓冲存储器的比例;以及sc表示一个高速缓冲存储器页的大小。
通过比较等式(1)和等式(2),可知第一替换列表370和第二替换列表380中的元素的总数目或高速缓冲存储器310中的高速缓冲存储器页的总数目等于访问历史列表340中的历史信息345的总数目。换句话说,针对每个高速缓冲存储器页,都存在对应的替换列表中的元素和访问历史列表340中的历史信息。
此外,在某些实施例中,针对每个卷的高频率访问元素(或其所指示的高速缓冲存储器页)和低频率访问元素(或其所指示的高速缓冲存储器页)的比例是固定的。进一步地,高频率访问元素的数目通常应该大于低频率访问元素的数目,例如,高频率访问元素的数目与低频率访问元素的数目之比可以是4:1或5:1。这可以用以下示例等式表示:
其中h1到hn分别表示针对第1个卷到第n个卷的第一替换列表370中的高频率访问元素的数目;l1到ln分别表示针对第1个卷到第n个卷的第一替换列表370和第二替换列表380中的低频率访问元素的数目。
基于以上描述的示例结构,本公开的实施例可以基于如下原理来实现。在某些实施例中,当目标数据从存储设备320提升/缓存到高速缓冲存储器310中时,首先在第一替换列表370中添加与存储目标数据的高速缓冲存储器页相对应的元素,并且将该元素设置为高频率访问元素。当高频率访问元素冷却(例如,长时间不被访问)时,将该高频率访问元素移动到第二替换列表380,并且设置为低频率访问元素。
此外,在某些实施例中,当高速缓冲存储器310被创建时,访问历史列表340中的所有历史信息345中也被创建。如果在第一替换列表370中存在计数元素,则与该计数元素相对应的历史信息也存在于访问历史列表340中。
另外,在某些实施例中,第一替换列表370的结束位置处的元素必须是高频率访问元素或低频率访问元素。当第一替换列表370中的高频率访问元素由于冷却被移动到第二替换列表380中时,如果第一替换列表370的结束位置处的元素是计数元素,则计数元素将从第一替换列表370中去除,但仍存在于访问历史列表340中。此外,去除该计数元素的第一替换列表370中的其他元素的顺序保持不变。
进一步地,在某些实施例中,对于在映射表330中未命中的访问请求,将访问历史列表340的结束位置处的历史信息设置为该访问请求所针对的目标数据的历史信息,并且该历史信息将被添加到访问历史列表340的起始位置处。此外,将为该目标数据创建计数元素,并且将该计数元素添加到第一替换列表370的起始位置处。进一步地,还将为该目标数据创建指示目标数据在存储设备320上被访问的次数的访问信息。
以此方式,本公开的实施例可以使得高频率访问的高速缓冲存储器页在高速缓冲存储器310中存储的时间大于低频率访问的高速缓冲存储器页,从而增加了高速缓冲存储器310的使用率和效率,提高了存储系统300的整体性能。
本公开的管理存储系统的方法
图4示出了本公开的实施例可以用于管理存储系统的方法400的示例的流程图。例如,方法400可以在如图3所示的存储系统300或者其他适当的系统处被执行。例如,方法400可以由存储系统300或高速缓冲存储器310中的控制器390或者与其相关联的其他计算设备来执行。该控制器或计算设备可以是集中式或分布式地实现在存储系统300或高速缓冲存储器310中的任何适当的控制器或计算设备,包括但不限于个人计算机、服务器、客户端、手持或膝上型设备、多处理器、微处理器、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机系统和分布式云以及其组合等。此外,方法400还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的范围在此方面不受限制。
在410,控制器390接收针对目标数据的访问请求,并且在420,确定目标数据的存储位置。存储位置可以指示存储设备320和高速缓冲存储器310中的一项。在某些实施例中,控制器390从高速缓冲存储器310中查找与目标数据有关的访问信息,并且基于访问信息确定目标数据是否存在于高速缓冲存储器310的高速缓冲存储器页上。
例如,控制器390可以从映射表330中查找与目标数据有关的访问信息。如上所述,当数据存在于高速缓冲存储器310上时,访问信息可以指示数据在存储设备320中的地址与数据所存在于的高速缓冲存储器页之间的对应关系。此外,当数据不存在于高速缓冲存储器310中时,访问信息可以指示数据在存储设备320中的访问历史,例如数据在存储设备320中被访问的次数。
在430,控制器390基于存储位置,从第一替换列表370和与第一替换列表370相关联的第二替换列表380中确定与目标数据相对应的目标元素。在某些实施例中,在控制器390从映射表330中查找到与目标数据有关的访问信息,并且访问信息指示目标数据在存储设备320中的地址与目标数据所存在于的高速缓冲存储器页之间的对应关系的情况下,控制器390可以确定目标数据存在于高速缓冲存储器310的高速缓冲存储器页上。在这种情况下,将第一替换列表370和第二替换列表380中与高速缓冲存储器页相对应的元素确定为目标元素。目标元素为低频率访问元素和高频率访问元素中的一项。
第一替换列表370至少包括计数元素。计数元素可以指示存储设备320中的数据被访问的次数。在某些实施例中,第一替换列表370还可以包括低频率访问元素和/或高频率访问元素。低频率访问元素指示高速缓冲存储器中的访问频率低的高速缓冲存储器页。高频率访问元素指示高速缓冲存储器310中的访问频率高的高速缓冲存储器页。第二替换列表380仅包括低频率访问元素。
替换地,在目标数据不存在于高速缓冲存储器310的高速缓冲存储器页的情况下,控制器390可以确定与目标数据有关的、指示目标数据在存储设备320中被访问的次数的访问信息是否存在于高速缓冲存储器310上。在确定该访问信息存在于高速缓冲存储器310上的情况下,控制器390将第一替换列表370中与该访问信息相对应的计数元素确定为目标元素。
此外,替换地,在确定访问信息不存在于高速缓冲存储器310上的情况下,控制器390将访问历史列表340的结束位置处的历史信息分配为与目标数据有关的历史信息,并且将该历史信息添加到访问历史列表340的起始位置处。此外,控制器390在第一替换列表370中创建与目标数据相关联的、链接到该历史信息的计数元素,以作为目标元素。另外,控制器390还在映射表330中创建与目标数据相关联的、链接到该历史信息的访问信息。由于该访问信息链接到历史信息,因此该访问信息可以指示目标数据在存储设备320中被访问的次数。
在440,控制器390更新目标元素在目标元素所位于的替换列表中的位置。在下文中,将结合图5-9描述动作440的详细示例。以此方式,本公开的实施例可以在提高目标数据的命中率的同时,降低将数据从存储设备320提升/缓存到高速缓冲存储器310中的次数,从而增加了高速缓冲存储器310的使用率和效率,提高了存储系统300的整体性能。
图5示出了本公开的实施例可以用于更新目标元素在替换列表中的位置的方法500的示例的流程图。例如,方法500可以由如图3所示的控制器390来执行。应当理解的是,方法500是动作440的一种示例实现方式,然而动作440的实现方式不限于此。此外,方法500还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的范围在此方面不受限制。
方法500针对目标元素在第一替换列表370中并且目标数据存在于高速缓冲存储器310的高速缓冲存储器页上的情况。在510,控制器390确定目标元素是第一替换列表370中的低频率访问元素还是高频率访问元素。在目标元素是高频率访问元素的情况下,在520,控制器390将目标元素的位置设置为第一替换列表370的起始位置。否则,在目标元素是低频率访问元素的情况下,在530,控制器390确定目标元素所指示的高速缓冲存储器页的访问间隔。例如,控制器接收到3次访问请求,第1次访问请求针对高速缓冲存储器页1,第2次访问请求针对高速缓冲存储器页2,并且第3次访问请求针对高速缓冲存储器页1。在这种情况下,高速缓冲存储器页1的访问间隔为2。
在540,控制器390获取第一替换列表370和第二替换列表380中的高频率访问元素和低频率访问元素分别指示的高速缓冲存储器页的访问间隔中的最大值。在550,控制器390确定访问间隔是否小于最大值。在访问间隔小于最大值的情况下,在560,控制器390将目标元素从低频率访问元素设置为高频率访问元素,并且在570,将目标元素的位置设置为第一替换列表370的起始位置。替换地,在访问间隔大于最大值的情况下,在580,控制器390将目标元素的位置设置为第一替换列表370的起始位置。
以此方式,本公开的实施例可以在目标元素在第一替换列表370中并且目标数据存在于高速缓冲存储器310的高速缓冲存储器页上的情况下,更新目标元素在替换列表中的位置,从而实现高速缓冲存储器页的替换。
图6示出了本公开的实施例可以用于更新目标元素在替换列表中的位置的方法600的示例的流程图。例如,方法600可以由如图3所示的控制器390来执行。应当理解的是,方法600是动作440的一种示例实现方式,然而动作440的实现方式不限于此。此外,方法600还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的范围在此方面不受限制。
方法600针对目标元素在第二替换列表380中并且目标数据存在于高速缓冲存储器310的高速缓冲存储器页上的情况。在610,控制器390确定目标元素所指示的高速缓冲存储器页的访问间隔。在615,控制器390获取第一替换列表370和第二替换列表380中的高频率访问元素和低频率访问元素分别指示的高速缓冲存储器页的访问间隔中的最大值。
在620,控制器390确定访问间隔是否小于最大值。在访问间隔大于最大值的情况下,在625,控制器390将目标元素的位置设置为第二替换列表380的起始位置。否则,在访问间隔小于最大值的情况下,在630,控制器390确定第一替换列表370中的元素的数目(也被称为“第一数目”)。
在635,控制器390确定第一数目是否小于预定阈值(也被称为“第一预定阈值”)。在第一数目小于第一预定阈值的情况下,在640,控制器390将目标元素从第二替换列表380添加到第一替换列表370的起始位置处。否则,在第一数目大于第一预定阈值的情况下,在645,控制器390确定第二替换列表380中的元素的数目(也被称为“第二数目”)。
在650,控制器390确定第二数目是否小于预定阈值(也被称为“第二预定阈值”)。在第二数目小于第二预定阈值的情况下,在655,控制器390将第一替换列表370的结束位置处的高频率访问元素或低频率访问元素移动到第二替换列表380中。此外,在660,控制器390确定第一替换列表370的结束位置处的元素是否为计数元素。在第一替换列表370的结束位置处的元素为计数元素的情况下,在665,控制器390从第一替换列表370中去除计数元素。在670,控制器390将目标元素从第二替换列表380添加到第一替换列表370的起始位置处。
替换地,在第二数目大于第二预定阈值的情况下,在675,控制器390去除第二替换列表380的结束位置处的低频率访问元素。此外,控制器中390还将与被去除的低频率访问元素相对应的高速缓冲存储器页释放,例如返回到页空闲列表。在680,控制器390将第一替换列表370的结束位置处的高频率访问元素或低频率访问元素移动到第二替换列表380中。此外,在685,控制器390确定第一替换列表370的结束位置处的元素是否为计数元素。在第一替换列表370的结束位置处的元素为计数元素的情况下,在690,控制器390从第一替换列表370中去除计数元素。在695,控制器390将目标元素从第二替换列表380添加到第一替换列表370的起始位置处。
以此方式,本公开的实施例可以在目标元素在第二替换列表380中并且目标数据存在于高速缓冲存储器310的高速缓冲存储器页上的情况下,更新目标元素在替换列表中的位置,从而实现高速缓冲存储器页的替换。
图7示出了本公开的实施例可以用于更新目标元素在替换列表中的位置的方法700的示例的流程图。例如,方法700可以由如图3所示的控制器390来执行。应当理解的是,方法700是动作440的一种示例实现方式,然而动作440的实现方式不限于此。此外,方法700还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的范围在此方面不受限制。
方法700针对目标元素为在第一替换列表370中的计数元素并且目标数据不存在于高速缓冲存储器310的高速缓冲存储器页上的情况。在710,控制器390确定目标元素是否为新创建的计数元素。在目标元素为新创建的目标元素的情况下,在720,控制器390将目标元素的位置设置为第一替换列表370的起始位置。
否则,在730,控制器390确定目标元素指示的目标数据在存储设备320中被访问的次数是否小于预定阈值。在被访问的次数小于预定阈值的情况下,在740,控制器390将目标元素的位置设置为第一替换列表370的起始位置。替换地,在被访问的次数大于预定阈值的情况下,在750,控制器390将目标元素从计数元素设置为高频率访问元素,并且在760,将目标元素的位置设置为第一替换列表370的起始位置。
此外,在某些实施例中,在被访问的次数大于预定阈值的情况下,控制器390可以将目标数据从存储设备320复制到高速缓冲存储器310中的高速缓冲存储器页。进一步地,控制器390还可以将目标数据在存储设备320中的地址与被复制到的高速缓冲存储器页之间的对应关系存储在访问信息中,使得访问信息不再指示目标数据在存储设备320中被访问的次数。
以此方式,本公开的实施例可以在目标元素为在第一替换列表370中的计数元素并且目标数据不存在于高速缓冲存储器310的高速缓冲存储器页上的情况下,更新目标元素在替换列表中的位置,从而实现高速缓冲存储器页的替换。
图8A-8C分别示出了用于更新目标元素在替换列表中的位置的示例800A-800C的示意图。图8A示出了访问历史列表810A、第一替换列表820A和第二替换列表830A。
如图8A所示,访问历史列表810A包括历史信息2、历史信息6、历史信息0、历史信息7和历史信息9。第一替换列表820A包括高频率访问元素4、低频率访问元素5、低频率访问元素3、计数元素2、高频率访问元素10、计数元素6、计数元素9和高频率访问元素8。计数元素2、计数元素6和计数元素9分别对应于历史信息2、历史信息6和历史信息9。此外,第二替换列表830A包括低频率访问元素5和低频率访问元素3。
当控制器390接收到针对目标数据1的访问请求,并且不存在与目标数据1有关的高频率访问元素、低频率访问元素和计数元素的情况下,如图8B所示,控制器390将访问历史列表810B的结束位置处的历史信息9替换为与目标数据有关的历史信息1,并且将第一替换列表820B中的计数元素9替换为与目标数据有关的计数元素1。
然后,如图8C所示,控制器390将该历史信息1的位置设置为访问历史列表810C的起始位置。此外,控制器390将该计数元素1的位置也设置为第一替换列表820C的起始位置。以此方式,本公开的实施例可以增加高速缓冲存储器的使用率和效率,并且提高存储系统的整体性能。
图9示出了可以用来实施本公开内容的实施例的示例设备900的示意性框图。例如,如图3所示的存储系统300可以由设备900来实施。如图所示,设备900包括中央处理单元(CPU)910,其可以根据存储在只读存储器(ROM)920中的计算机程序指令或者从存储单元980加载到随机访问存储器(RAM)930中的计算机程序指令,来执行各种适当的动作和处理。在RAM 930中,还可存储设备900操作所需的各种程序和数据。CPU 910、ROM 920以及RAM930通过总线940彼此相连。输入/输出(I/O)接口950也连接至总线940。
设备900中的多个部件连接至I/O接口950,包括:输入单元960,例如键盘、鼠标等;输出单元970,例如各种类型的显示器、扬声器等;存储单元980,例如磁盘、光盘等;以及通信单元990,例如网卡、调制解调器、无线通信收发机等。通信单元990允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法400-700,可由处理单元910执行。例如,在一些实施例中,方法400-700可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元980。在一些实施例中,计算机程序的部分或者全部可以经由ROM 920和/或通信单元990而被载入和/或安装到设备900上。当计算机程序被加载到RAM 930并由CPU910执行时,可以执行上文描述的方法400-700的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (31)

1.一种用于管理存储系统的方法,包括:
接收针对目标数据的访问请求;
确定所述目标数据的存储位置,所述存储位置指示存储设备和具有多个高速缓冲存储器页的高速缓冲存储器中的一项;
基于所述存储位置,确定指示访问时间近的高速缓冲存储器页的第一替换列表和指示访问时间远的高速缓冲存储器页的第二替换列表的之一中所包含的所述目标数据对应的目标元素,所述第二替换列表与所述第一替换列表相关联,所述第一替换列表至少包括一个计数元素、指示所述高速缓冲存储器中的访问频率高的对应的高速缓冲存储器页的至少一个高频率访问元素、以及指示所述高速缓冲存储器中的访问频率低的对应的高速缓冲存储器页的至少一个低频率访问元素,所述计数元素指示所述存储设备中的数据被访问的次数,所述第二替换列表包括至少一个低频率访问元素,所述第二替换列表中的所述低频率访问元素指示高速缓冲存储器中的访问频率低的对应的高速缓冲存储器页;以及
更新所述目标元素在包含所述目标元素所述第一替换列表和所述第二替换列表之一中的位置。
2.根据权利要求1所述的方法,其中确定所述存储位置包括:
从高速缓冲存储器中查找与所述目标数据有关的访问信息;
基于所述访问信息确定所述目标数据是否存在于所述高速缓冲存储器的高速缓冲存储器页上。
3.根据权利要求1所述的方法,其中确定与所述目标数据相对应的目标元素包括:
响应于确定所述目标数据的所述存储位置指示所述高速缓冲存储器,确定所述目标元素是所述第二替换列表中的所述低频率访问元素、所述第一替换列表中的所述高频率访问元素、还是所述第一替换列表中的所述低频率访问元素。
4.根据权利要求1所述的方法,其中确定与所述目标数据相对应的目标元素包括:
响应于确定所述目标数据不存在于所述高速缓冲存储器上,确定与所述目标数据有关的访问信息是否存在于所述高速缓冲存储器上,所述访问信息指示所述目标数据在所述存储设备中被访问的次数;
响应于确定所述访问信息存在于所述高速缓冲存储器上,根据所述访问信息确定所述目标元素是与所述访问信息相对应的计数元素并且位于所述第一替换列表中;以及
响应于确定所述访问信息不存在于所述高速缓冲存储器上,在所述第一替换列表中创建与所述目标数据相关联的计数元素,以作为所述目标元素。
5.根据权利要求4所述的方法,还包括:
在所述高速缓冲存储器中创建与所述目标数据相关联的所述访问信息,所述访问信息指示所述目标数据在所述存储设备中被访问的次数。
6.根据权利要求1所述的方法,其中所述目标元素在所述第一替换列表中并且所述目标数据存在于所述高速缓冲存储器中,并且其中更新所述目标元素的位置包括:
确定所述目标元素是所述第一替换列表中所包含的所述低频率访问元素还是所述高频率访问元素;
响应于所述目标元素是所述第一替换列表中的所述高频率访问元素,将所述目标元素的位置设置为所述第一替换列表的起始位置;
响应于所述目标元素是所述第一替换列表中的所述低频率访问元素,基于所述目标元素所指示的高速缓冲存储器页的访问间隔,更新所述目标元素在所述第一替换列表中的位置。
7.根据权利要求6所述的方法,其中更新所述目标元素在所述第一替换列表中的位置包括:
获取所述第一替换列表和所述第二替换列表中的高频率访问元素和低频率访问元素分别指示的高速缓冲存储器页的访问间隔中的最大值;
响应于所述访问间隔大于所述最大值,将所述目标元素的位置设置为所述第一替换列表的起始位置;
响应于所述访问间隔小于所述最大值,
将所述目标元素从所述第一替换列表中的所述低频率访问元素设置为所述第一替换列表中的所述高频率访问元素,以及
将所述目标元素的位置设置为所述第一替换列表的起始位置。
8.根据权利要求1所述的方法,其中所述目标元素被确定为在所述第二替换列表中并且所述目标数据被确定为存在于所述高速缓冲存储器的高速缓冲存储器页上,并且其中更新所述目标元素的位置包括:
获取所述第一替换列表和所述第二替换列表中的高频率访问元素和低频率访问元素分别指示的高速缓冲存储器页的访问间隔中的最大值;
响应于所述目标元素所指示的高速缓冲存储器页的访问间隔大于所述最大值,将所述目标元素的位置设置为所述第二替换列表的起始位置;以及
响应于所述访问间隔小于所述最大值,基于第一数目,更新所述目标元素的位置,所述第一数目指示所述第一替换列表中的元素的总数目。
9.根据权利要求8所述的方法,其中更新所述目标元素的位置包括:
响应于所述第一数目小于第一预定阈值,将所述目标元素从所述第二替换列表添加到所述第一替换列表的起始位置处。
10.根据权利要求8所述的方法,其中更新所述目标元素的位置包括:
响应于所述第一数目大于第一预定阈值,将所述第一替换列表的结束位置处的高频率访问元素或低频率访问元素移动到所述第二替换列表中,所移动的高频率访问元素被设置为低频率访问元素;以及
将所述目标元素从所述第二替换列表添加到所述第一替换列表的起始位置处。
11.根据权利要求8所述的方法,还包括:
确定所述第一替换列表的结束位置处的元素是否为计数元素;以及
响应于确定所述元素为计数元素,从所述第一替换列表中去除所述计数元素。
12.根据权利要求10所述的方法,其中将所述第一替换列表的结束位置处的高频率访问元素或低频率访问元素移动到所述第二替换列表中包括:
确定第二数目,所述第二数目指示所述第二替换列表中的元素的数目;
响应于所述第二数目小于第二预定阈值,将所述第一替换列表的结束位置处的高频率访问元素或低频率访问元素移动到所述第二替换列表中;
响应于所述第二数目大于第二预定阈值,
去除所述第二替换列表的结束位置处的低频率访问元素;
将所述第一替换列表的结束位置处的高频率访问元素或低频率访问元素移动到所述第二替换列表中。
13.根据权利要求1所述的方法,其中响应于确定所述目标元素为在所述第一替换列表中的所述计数元素并且所述目标数据不存在于所述高速缓冲存储器的上,更新所述目标元素的位置包括:
将所述目标元素的位置设置为所述第一替换列表的起始位置。
14.根据权利要求13所述的方法,其中将所述目标元素的位置设置为所述第一替换列表的起始位置还包括:
将所述目标元素指示的所述目标数据在所述存储设备中被访问的次数与预定阈值相比较;
响应于所述被访问的次数大于所述预定阈值,将所述目标元素从所述计数元素改变为所述高频率访问元素。
15.根据权利要求13所述的方法,还包括:
将所述目标元素指示的所述目标数据在所述存储设备中被访问的次数与预定阈值相比较;
响应于所述被访问的次数大于所述预定阈值,
将所述目标数据从所述存储设备复制到所述高速缓冲存储器中所述目标数据要被复制到的高速缓冲存储器页,以及
将所述目标数据在所述存储设备中的地址与被复制到的所述高速缓冲存储器页之间的对应关系存储在访问信息中,所述访问信息不再指示所述目标数据在所述存储设备中被访问的次数。
16.一种用于管理存储系统的设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
接收针对目标数据的访问请求;
确定所述目标数据的存储位置,所述存储位置指示存储设备和具有多个高速缓冲存储器页的高速缓冲存储器中的一项;
基于所述存储位置,确定指示访问时间近的高速缓冲存储器页的第一替换列表和指示访问时间远的高速缓冲存储器页的第二替换列表的之一中所包含的所述目标数据对应的目标元素,所述第二替换列表与所述第一替换列表相关联,所述第一替换列表至少包括一个计数元素、指示所述高速缓冲存储器中的访问频率高的对应的高速缓冲存储器页的至少一个高频率访问元素、以及指示所述高速缓冲存储器中的访问频率低的对应的高速缓冲存储器页的至少一个低频率访问元素,所述计数元素指示所述存储设备中的数据被访问的次数,所述第二替换列表包括至少一个低频率访问元素,所述第二替换列表中的所述低频率访问元素指示高速缓冲存储器中的访问频率低的对应的高速缓冲存储器页;以及
更新所述目标元素在包含所述目标元素所述第一替换列表和所述第二替换列表之一中的位置。
17.根据权利要求16所述的设备,其中确定所述存储位置包括:
从高速缓冲存储器中查找与所述目标数据有关的访问信息;
基于所述访问信息确定所述目标数据是否存在于所述高速缓冲存储器的高速缓冲存储器页上。
18.根据权利要求16所述的设备,其中确定与所述目标数据相对应的目标元素包括:
响应于确定所述目标数据的所述存储位置指示所述高速缓冲存储器,确定所述目标元素是所述第二替换列表中的所述低频率访问元素、所述第一替换列表中的所述高频率访问元素、还是所述第一替换列表中的所述低频率访问元素。
19.根据权利要求16所述的设备,其中确定与所述目标数据相对应的目标元素包括:
响应于确定所述目标数据不存在于所述高速缓冲存储器上,确定与所述目标数据有关的访问信息是否存在于所述高速缓冲存储器上,所述访问信息指示所述目标数据在所述存储设备中被访问的次数;
响应于确定所述访问信息存在于所述高速缓冲存储器上,根据所述访问信息确定所述目标元素是与所述访问信息相对应的计数元素并且位于所述第一替换列表中;以及
响应于确定所述访问信息不存在于所述高速缓冲存储器上,在所述第一替换列表中创建与所述目标数据相关联的计数元素,以作为所述目标元素。
20.根据权利要求19所述的设备,所述动作还包括:
在所述高速缓冲存储器中创建与所述目标数据相关联的所述访问信息,所述访问信息指示所述目标数据在所述存储设备中被访问的次数。
21.根据权利要求16所述的设备,其中所述目标元素在所述第一替换列表中并且所述目标数据存在于所述高速缓冲存储器中,并且其中更新所述目标元素的位置包括:
确定所述目标元素是所述第一替换列表中所包含的所述低频率访问元素还是所述高频率访问元素;
响应于所述目标元素是所述第一替换列表中的所述高频率访问元素,将所述目标元素的位置设置为所述第一替换列表的起始位置;
响应于所述目标元素是所述第一替换列表中的所述低频率访问元素,基于所述目标元素所指示的高速缓冲存储器页的访问间隔,更新所述目标元素在所述第一替换列表中的位置。
22.根据权利要求21所述的设备,其中更新所述目标元素在所述第一替换列表中的位置包括:
获取所述第一替换列表和所述第二替换列表中的高频率访问元素和低频率访问元素分别指示的高速缓冲存储器页的访问间隔中的最大值;
响应于所述访问间隔大于所述最大值,将所述目标元素的位置设置为所述第一替换列表的起始位置;
响应于所述访问间隔小于所述最大值,
将所述目标元素从所述第一替换列表中的所述低频率访问元素设置为所述第一替换列表中的所述高频率访问元素,以及
将所述目标元素的位置设置为所述第一替换列表的起始位置。
23.根据权利要求16所述的设备,其中所述目标元素被确定为在所述第二替换列表中并且所述目标数据被确定为存在于所述高速缓冲存储器的高速缓冲存储器页上,并且其中更新所述目标元素的位置包括:
获取所述第一替换列表和所述第二替换列表中的高频率访问元素和低频率访问元素指示的高速缓冲存储器页的访问间隔中的最大值;
响应于所述目标元素所指示的高速缓冲存储器页的访问间隔大于所述最大值,将所述目标元素的位置设置为所述第二替换列表的起始位置;以及
响应于所述访问间隔小于所述最大值,基于第一数目,更新所述目标元素的位置,所述第一数目指示所述第一替换列表中的元素的总数目。
24.根据权利要求23所述的设备,其中更新所述目标元素的位置包括:
响应于所述第一数目小于第一预定阈值,将所述目标元素从所述第二替换列表添加到所述第一替换列表的起始位置处。
25.根据权利要求23所述的设备,其中更新所述目标元素的位置包括:
响应于所述第一数目大于第一预定阈值,将所述第一替换列表的结束位置处的高频率访问元素或低频率访问元素移动到所述第二替换列表中,所移动的高频率访问元素被设置为低频率访问元素;以及
将所述目标元素从所述第二替换列表添加到所述第一替换列表的起始位置处。
26.根据权利要求23所述的设备,所述动作还包括:
确定所述第一替换列表的结束位置处的元素是否为计数元素;以及
响应于确定所述元素为计数元素,从所述第一替换列表中去除所述计数元素。
27.根据权利要求25所述的设备,其中将所述第一替换列表的结束位置处的高频率访问元素或低频率访问元素移动到所述第二替换列表中包括:
确定第二数目,所述第二数目指示所述第二替换列表中的元素的数目;
响应于所述第二数目小于第二预定阈值,将所述第一替换列表的结束位置处的高频率访问元素或低频率访问元素移动到所述第二替换列表中;
响应于所述第二数目大于第二预定阈值,
去除所述第二替换列表的结束位置处的低频率访问元素;
将所述第一替换列表的结束位置处的高频率访问元素或低频率访问元素移动到所述第二替换列表中。
28.根据权利要求16所述的设备,其中响应于确定所述目标元素为在所述第一替换列表中的所述计数元素并且所述目标数据不存在于所述高速缓冲存储器上,更新所述目标元素的位置包括:
将所述目标元素的所述位置设置为所述第一替换列表的起始位置。
29.根据权利要求28所述的设备,其中将所述目标元素的位置设置为所述第一替换列表的起始位置还包括:
将所述目标元素指示的所述目标数据在所述存储设备中被访问的次数与预定阈值相比较;
响应于所述被访问的次数大于所述预定阈值,将所述目标元素从所述计数元素改变为所述高频率访问元素。
30.根据权利要求28所述的设备,所述动作还包括:
将所述目标元素指示的所述目标数据在所述存储设备中被访问的次数与预定阈值相比较;
响应于所述被访问的次数大于所述预定阈值,
将所述目标数据从所述存储设备复制到所述高速缓冲存储器中所述目标数据要被复制到的高速缓冲存储器页,以及
将所述目标数据在所述存储设备中的地址与被复制到的所述高速缓冲存储器页之间的对应关系存储在访问信息中,所述访问信息不再指示所述目标数据在所述存储设备中被访问的次数。
31.一种非瞬态计算机可读介质,其存储机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至15任一项所述的方法的步骤。
CN201810803486.0A 2018-07-20 2018-07-20 用于管理存储系统的方法、设备和计算机程序产品 Active CN110737399B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810803486.0A CN110737399B (zh) 2018-07-20 2018-07-20 用于管理存储系统的方法、设备和计算机程序产品
US16/356,417 US11288210B2 (en) 2018-07-20 2019-03-18 Method, device and computer program product for managing storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810803486.0A CN110737399B (zh) 2018-07-20 2018-07-20 用于管理存储系统的方法、设备和计算机程序产品

Publications (2)

Publication Number Publication Date
CN110737399A CN110737399A (zh) 2020-01-31
CN110737399B true CN110737399B (zh) 2023-09-05

Family

ID=69162980

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810803486.0A Active CN110737399B (zh) 2018-07-20 2018-07-20 用于管理存储系统的方法、设备和计算机程序产品

Country Status (2)

Country Link
US (1) US11288210B2 (zh)
CN (1) CN110737399B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737399B (zh) * 2018-07-20 2023-09-05 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
KR20240042157A (ko) 2018-10-30 2024-04-01 무진 아이엔씨 자동화된 패키지 등록 시스템, 디바이스 및 방법
US11106601B2 (en) * 2018-12-31 2021-08-31 B. G. Negev Technologies And Applications Ltd., At Ben-Gurion University Method and system for performing adaptive cache management
CN111857571B (zh) * 2020-06-12 2023-01-06 苏州浪潮智能科技有限公司 固态硬盘物理块地址分配方法、装置、设备和存储介质
CN111741142A (zh) * 2020-06-19 2020-10-02 南昌黑鲨科技有限公司 一种高频ip地址获取方法、系统、存储介质及终端设备
US11392499B2 (en) 2020-09-18 2022-07-19 Kioxia Corporation Dynamic buffer caching of storage devices
CN114253458B (zh) * 2020-09-21 2024-04-26 华为技术有限公司 内存缺页异常的处理方法、装置、设备及存储介质
CN113051514B (zh) * 2021-03-26 2023-05-26 挂号网(杭州)科技有限公司 元素的定位方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228649A (zh) * 2016-12-21 2018-06-29 伊姆西Ip控股有限责任公司 用于数据访问的方法和设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592432A (en) 1995-09-05 1997-01-07 Emc Corp Cache management system using time stamping for replacement queue
US5706467A (en) 1995-09-05 1998-01-06 Emc Corporation Sequential cache management system utilizing the establishment of a microcache and managing the contents of such according to a threshold comparison
US5751993A (en) 1995-09-05 1998-05-12 Emc Corporation Cache management system
US6715039B1 (en) 2001-09-12 2004-03-30 Emc Corporation Cache slot promotion in a replacement queue cache using determinations of probabilities and costs
US9582222B2 (en) * 2009-04-30 2017-02-28 Western Digital Technologies, Inc. Pre-cache similarity-based delta compression for use in a data storage system
KR20130032155A (ko) * 2011-09-22 2013-04-01 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 관리 방법
US9940286B2 (en) * 2013-03-14 2018-04-10 Nvidia Corporation PCIE traffic tracking hardware in a unified virtual memory system
CN105009092A (zh) * 2013-04-26 2015-10-28 株式会社日立制作所 存储系统
US9478274B1 (en) 2014-05-28 2016-10-25 Emc Corporation Methods and apparatus for multiple memory maps and multiple page caches in tiered memory
KR102580820B1 (ko) * 2016-03-10 2023-09-20 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN107870729B (zh) * 2016-09-23 2020-11-20 伊姆西Ip控股有限责任公司 一种用于缓存数据的方法、设备和系统
JP6956934B2 (ja) * 2017-03-24 2021-11-02 富士通株式会社 ストレージ制御装置、キャッシュメモリ制御方法及びストレージシステム
US10942867B2 (en) 2018-07-11 2021-03-09 EMC IP Holding Company LLC Client-side caching for deduplication data protection and storage systems
CN110737399B (zh) * 2018-07-20 2023-09-05 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228649A (zh) * 2016-12-21 2018-06-29 伊姆西Ip控股有限责任公司 用于数据访问的方法和设备

Also Published As

Publication number Publication date
US11288210B2 (en) 2022-03-29
CN110737399A (zh) 2020-01-31
US20200026663A1 (en) 2020-01-23

Similar Documents

Publication Publication Date Title
CN110737399B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN107870728B (zh) 用于移动数据的方法和设备
CN111949605B (zh) 用于实现文件系统的方法、设备和计算机程序产品
CN109213694B (zh) 用于缓存管理的方法和设备
CN110413199B (zh) 用于管理存储系统的方法、设备和计算机可读存储介质
CN110765036B (zh) 在控制设备处管理元数据的方法和设备
CN111506604B (zh) 访问数据的方法、装置和计算机程序产品
CN108228649B (zh) 用于数据访问的方法和设备
US8386717B1 (en) Method and apparatus to free up cache memory space with a pseudo least recently used scheme
US11593268B2 (en) Method, electronic device and computer program product for managing cache
CN109725825B (zh) 用于管理缓存的方法、设备和计算机程序产品
CN112068765B (zh) 管理存储系统的方法、设备和计算机程序产品
US11347646B2 (en) Method, device and computer program product for managing cache based on matching API
US11093389B2 (en) Method, apparatus, and computer program product for managing storage system
CN113742131B (zh) 用于存储管理的方法、电子设备和计算机程序产品
US11287993B2 (en) Method, device, and computer program product for storage management
US20200349186A1 (en) Method, apparatus and computer program product for managing metadata of storage object
US11663127B2 (en) Method, electronic device and computer program product for managing storage system
CN110413215B (zh) 用于获取访问权限的方法、设备和计算机程序产品
CN112631517A (zh) 数据存储方法、装置、电子设备和存储介质
US9996570B2 (en) Index traversals utilizing alternative in-memory search structure and system memory costing
CN112068986B (zh) 用于管理备份任务的方法、设备和计算机程序产品
CN118132527A (zh) 用于处理数据的方法、设备和计算机程序产品
US10922228B1 (en) Multiple location index
CN115964391A (zh) 缓存管理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant