CN104272275B - 增强数据缓存性能 - Google Patents

增强数据缓存性能 Download PDF

Info

Publication number
CN104272275B
CN104272275B CN201380022647.8A CN201380022647A CN104272275B CN 104272275 B CN104272275 B CN 104272275B CN 201380022647 A CN201380022647 A CN 201380022647A CN 104272275 B CN104272275 B CN 104272275B
Authority
CN
China
Prior art keywords
cache
data segment
reference count
multiple data
count information
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
CN201380022647.8A
Other languages
English (en)
Other versions
CN104272275A (zh
Inventor
J·S·海德
S·罗伊
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104272275A publication Critical patent/CN104272275A/zh
Application granted granted Critical
Publication of CN104272275B publication Critical patent/CN104272275B/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
    • 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/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

针对多个频繁访问的数据段被临时存储在其中的高速缓存,结合最近最少使用(LRU)信息,使用多个数据段的引用计数信息来根据预定权重确定将多个数据段保持在高速缓存中的时间长度,其中不管LRU信息如何,多个数据段中的具有较高引用计数的那些数据段比具有较低引用计数的那些数据段被保持更长的时间。

Description

增强数据缓存性能
技术领域
本发明一般地涉及计算机,并且更具体地涉及用于增强计算存储环境中的数据缓存性能的方法、系统和计算机程序产品。
背景技术
在当今社会中计算机和计算机系统在各种场景中被发现。在家中、在工作中、在学校中、在政府中以及在其它场景中都可以发现计算环境和网络。计算环境越来越多地将数据存储在一个或多个存储环境中,在许多情况下,存储环境远离呈现给用户的本地接口。
这些计算存储环境可使用诸如磁盘驱动之类的、常常一致工作的许多存储设备以存储、检索和更新大量数据,然后可以将这些数据提供给请求或发送数据的主机计算机。在一些情况下,一些数据存储子系统被集体管理为单个数据存储系统。这些子系统可以通过组合若干处理单元或处理单元的集群的主机“sysplex”(系统综合体)配置来进行管理。用这种方式,常常包括多种类型的存储设备的多层/多系统计算环境可以用于组织和处理大量数据。
发明内容
许多多层/多系统计算环境实现数据去重复技术,以通过减少跨存储设备的重复存储的量来改善存储性能。数据去重复系统越来越多地被利用,因为它们有助于减少存储数据所要求的物理存储的总量。这种减小是通过确保重复数据不被存储多次来实现的。替代地,例如,如果数据块与已存储的数据块匹配,则指向原始数据的指针被存储在虚拟存储映射中,而不是为新数据块分配新物理存储空间。因此,数据去重系统中的每个数据块与指示多少虚拟映射元素指向给定数据块的“引用计数器”关联。
内联(inline)数据去重复系统必须将前面提到的虚拟存储映射信息(包括引用计数器信息)保持在存储器中,以用于快速访问数据。否则,在从物理存储取得映射信息时,引起额外的映射错误损失,从而显著增加存储延迟。这些存储映射信息是容易得到的,以用于由存储控制器内的其它存储部件使用。
传统的数据缓存算法(指示频繁使用的文件被保持在高速缓存中而不是被调出(page out)到磁盘多长时间的机制)可以实现所谓的“最近最少使用”(LRU)方法,其中最近最少使用的文件被首先丢弃(调出)。这些方法要求跟踪什么时候什么被使用,如果人们希望确保算法总是丢弃最近最少使用的项,这可能是大量占用资源的,并且这可能仍然不总是准确地表示在特定集合的情况下在高速缓存中保持的最佳文件以及哪些文件被保持。存在对频繁使用的数据段的高速缓存管理的更有效的方式的需要。
鉴于前述需要以更好地管理这些数据的缓存,提供了用于通过处理器改善计算环境中的缓存性能的各种实施例。在一个实施例中,仅通过示例的方式,对于多个频繁访问的数据段被临时存储在其中的高速缓存,多个数据段的引用计数信息连同最近最少使用(LRU)信息一起被用于根据预定权重确定在高速缓存中保持多个数据段的时间长度,其中不管LRU信息如何,多个数据段中的具有较高引用计数的那些数据段比具有较低引用计数的那些数据段被保持更长的时间。
除了前述示例性实施例之外,提供了各种系统和计算机程序实施例,并且提供了相关优点。
附图说明
为了使本发明的优点容易地被理解,将参照图示在附图中的特定实施例给出上面简要描述的本发明的更具体的描述。理解了这些附图仅描绘了本发明的典型实施例并且因此不被认为是对其范围的限制,将通过使用附图来更具体和更详细地描述和解释本发明,其中:
图1是图示可以实现本发明的方面的示例性计算环境的框图;
图2是示出数据存储系统的硬件结构的框图,再次本发明的方面可以被实现在其中;
图3是图示用于改善缓存性能的高速缓存管理模块与数据去重复系统之间的关系的本发明的高速缓存系统实施例的框图;
图4是用于增强数据缓存性能、本发明的方面可以被实现在其中的示例性实施例的流程图;
图5是用于增强数据缓存性能的另外的示例性实施例的流程图,再次本发明的方面可以被实现在其中;以及
图6是用于数据段的缓存管理的示例性实施例的流程图,再次本发明的方面可以被实现在其中。
具体实施方式
如先前提到的,各种数据缓存算法实现LRU方法的各种方案,其中被标识为最近最少使用的文件被标记以从高速缓存中调出到硬存储(例如,磁盘或磁带)。然而,在具有数据去重复功能的数据存储环境(诸如,集成的数据去重复引擎)中,每个基于LRU的方法均没有考虑容易得到的引用计数信息,引用计数信息指示(除其他外)指向给定的物理存储的数据块的数据块的虚拟实例的数目。
最高效的数据缓存算法将总是丢弃未来将不再需要的时间最长的信息。传统的数据缓存算法试图达到这个理想化的状态,但总是达不到。因此,总是存在对改善信息被保持在高速缓存中或被丢弃的机制的当前需要。为了解决和改善现有技术的当前状态,所示的实施例描述了如下机制:利用先前描述为由数据去重复子系统提供的引用计数信息,以通过至少部分地向这些算法给予关于高速缓存中的数据状态的更好描绘来增强(例如,在结合LRU信息使用时)数据缓存算法,并且由此改善存储环境的整体性能。
并入数据去重复功能的存储系统实现针对每段数据的引用计数,其指示例如多少段虚拟存储映射到物理存储的单个段上。引用计数信息一般是容易得到的,因此引用计数功能被发现在大多数(如果不是全部)内联数据去重复系统中。通过改善在以数据去重复子系统为特征的存储配置中的数据块的缓存性能,总体上可以大幅降低存储环境中的输入/输出(I/O)操作的平均延迟。
在以下描述中,参照形成其一部分并且图示本发明的若干实施例的附图。要理解的是,在不脱离本发明的范围的情况下,可以利用其它实施例并且可以做出结构和操作上的改变。
转到图1,描绘了本发明的方面可以被实现在其中的示例计算机系统10。计算机系统10包括连接到大容量存储设备14和存储器设备16的中央处理单元(CPU)12。大容量存储设备可以包括硬盘驱动(HDD)设备,其可以被配置在独立盘冗余阵列(RAID)中。进一步描述的高速缓存管理操作可以在位于系统10或其它地方的设备14上执行。存储器设备16可以包括诸如电可擦除可编程只读存储器(EEPROM)这样的存储器或许多相关设备。存储器设备16和大容量存储设备14经由信号承载介质连接到CPU 12。此外,CPU 12通过通信端口18连接到具有附接的多个另外的计算机系统22和24的通信网络20。计算机系统10可以包括一个或多个处理器设备(例如CPU 12)和针对计算机系统10的每个单独部件的另外的存储器设备16以执行并完成本文中描述的每个操作以实现本发明的目的。
图2是示出根据本发明的计算机系统中的数据存储系统的硬件结构的示例性框图200。各自充当用于执行数据处理的中央处理单元的主机计算机210、220、225被示出为数据存储系统200的一部分。主机(物理或虚拟设备)210、220和225可以是一个或多个新物理设备或逻辑设备,以在数据存储系统200中实现本发明的目的。在一个实施例中,仅通过示例的方式,数据存储系统200可以被实现为 System StorageTMDS8000TM。网络连接260可以是光纤通道结构(fabric)、光纤通道点到点链路、通过以太网结构的光纤通道或点到点链路、FICON或ESCON I/O接口、任何其它I/O接口类型、无线网络、有线网络、LAN、WAN、异构的、同构的、公共的(即因特网)、私有的或它们的任意组合。主机210、220和225可以是本地的或者分布在一个或多个位置之间,并且可以配备有到存储控制器240的任何类型的结构(或结构通道)(图2中未示出)或者网络适配器260,诸如光纤通道、FICON、ESCON、以太网、光纤、无线或同轴适配器。据此数据存储系统200配备有合适的结构(图2中未示出)或者网络适配器260以进行通信。在图2中描绘的数据存储系统200包括存储控制器240和存储装置230。
为了便于更清楚地理解本文中描述的方法,在图2中存储控制器240被示出为包括微处理器242、系统存储器243和非易失性存储(“NVS”)216的单个处理单元,这将在下面更详细地描述。要注意的是,在一些实施例中,存储控制器240包括多个处理单元,每个处理单元具有其自己的处理器综合体和系统存储器,并且通过数据存储系统200内的专用网络互连。存储装置230可以包括诸如存储阵列之类的、通过存储网络连接到存储控制器240的一个或多个存储设备。
在一些实施例中,被包括在存储装置230中的设备可以以环架构连接。存储控制器240管理存储装置230,并且有助于处理旨在针对存储230的写请求和读请求。存储控制器240的系统存储器243存储处理器242可以访问以用于执行与管理存储装置230关联的功能的程序指令和数据。在一个实施例中,系统存储器243包括操作软件250、与之关联或通信,并且部分地被配置用于实现本发明的功能。如在图2中示出的,系统存储器243还可以包括针对存储装置230的高速缓存245(本文中还被称为“高速缓存存储器”)或者与之通信,以用于缓冲分别指的是写/读请求及它们关联的数据的“写数据”和“读数据”。在一个实施例中,高速缓存245被分配在系统存储器243外部的设备中,但依然可由微处理器242访问并且除了执行如在本文中描述的操作之外,可以用于提供防止数据丢失的另外的安全性。
在一些实施例中,高速缓存245是通过易失性存储器和非易失性存储器实现的,并且经由本地总线(图2中未示出)耦合到微处理器242,以用于增强数据存储系统200的性能。被包括在数据存储控制器中的NVS 216可由微处理器242访问,并且用于为如在其它图中描述的本发明的操作和执行提供另外的支持。NVS 216还可以被称为“永久”高速缓存或者“高速缓存存储器”,并且通过其可以或可以不利用外部电源来保持存储在其中的数据的非易失性存储器来实现。NVS可以被存储在高速缓存245中且利用高速缓存245来存储,以用于适合于实现本发明的目标的任何目的。在一些实施例中,在数据存储系统200有功率损失的情况下,诸如电池之类的备用电源(图2中未示出)向NVS 216供应足够的功率,以保持存储在其中的数据。在某些实施例中,NVS 216的容量小于或等于高速缓存245的总容量。
存储装置230物理上可以包括诸如存储阵列之类的一个或多个存储设备。存储阵列是诸如硬盘之类的单独存储设备的逻辑分组。在某些实施例中,存储装置230包括JBOD(简单磁盘捆绑)阵列或RAID(独立盘冗余阵列)阵列。物理存储阵列的集合可以被进一步组合以形成级(rank),其从逻辑配置中解离物理存储。级中的存储空间可被分配成定义写/读请求中指定的存储位置的逻辑卷。
在一个实施例中,仅通过示例的方式,如图2中示出的存储系统可以包括逻辑卷,或者简单地,“卷”可以具有不同种类的分配。在数据存储系统200中存储装置230a、230b和230n被示为级,并且本文中被称为级230a、230b和230n。级可以对于数据存储系统200是本地的,或者可以位于物理上的远程位置。换言之,本地存储控制器可以与远程存储控制器连接,并且管理在远程位置处的存储。级230a被示出为配置有两个整卷(234和236)以及一个部分卷232a。级230b被示出为具有另一个部分卷232b。从而卷232跨级230a和230b被分配。级230n被示为完全分配给卷238—也就是说,级230n指的是针对卷238的整个物理存储。根据上面的示例,将理解的是,级可以被配置为包括一个或多个部分卷和/或整卷。卷和级可以进一步被划分成所谓的“轨道”,其表示固定的存储块。因此,轨道与给定的卷关联,并且可以被给予给定的级。
如将进一步描述的,存储控制器240可以包括数据去重复引擎255、高速缓存管理模块257和存储映射/数据频率索引映射(DFIM)259。高速缓存管理模块257可以与存储控制器240的每一个部件、主机210、220、225以及存储设备230协同工作。如本领域普通技术人员将理解的,高速缓存管理模块257在结构上可以是一个完整的模块,或者可以与其它单独模块关联和/或被包括在其它单独模块中。高速缓存管理模块257和/或存储映射/DFIM 259还可以位于高速缓存245或其它部件中。高速缓存245被示出为包括许多频繁使用的数据段261,其被保持在高速缓存中以用于快速访问并且对其管理由高速缓存管理模块257以及其他部件来执行。
存储控制器240包括用于控制光纤通道协议到主机计算机210、220、225的控制开关241、用于控制所有存储控制器240的微处理器242、用于存储用于控制存储控制器240的操作的微程序(操作软件)250、用于控制的数据和随后描述的每个表的非易失性控制存储器243、用于临时存储(缓冲)数据的高速缓存245以及用于辅助高速缓存245读取和写入数据的缓冲器244、用于控制协议的控制开关241以控制向或从存储设备230转移数据、以及信息可被设置在其中的压缩操作模块255和压缩操作列表模块257。通过本发明可以实现多个缓冲器244以协助如本文中描述的操作。
在一个实施例中,主机计算机或一个或多个物理或虚拟设备210、220、225以及存储控制器240通过作为接口的网络适配器(这可以是光纤通道)260(即经由称为“结构”的至少一个开关)连接。在一个实施例中,将描述在图2中示出的系统的操作。微处理器242可以控制存储器243,以存储来自主机设备(物理或虚拟)210的命令信息和用于标识主机设备(物理或虚拟)210的信息。控制开关241、缓冲器244、高速缓存245、操作软件250、微处理器242、存储器243、NVS 216、压缩操作模块255和压缩操作列表模块257彼此通信,并且可以是分离的或者是一个单独的部件。同时,诸如操作软件250之类的若干(如果不是所有)部件可以被包括在存储器243中。为了适合于本发明的目的,所示设备内的每个部件均可以被链接在一起,并且可以彼此通信。
存储控制器240被示出为包括数据去重复引擎255、存储映射/数据频率索引映射(DFIM)259(“存储映射”259)以及高速缓存管理模块257。数据去重复引擎255、高速缓存管理模块257和DFIM259可以与存储控制器240的每一个部件、主机210、220、225以及存储设备230协同操作,以实现根据本发明的功能。数据去重复引擎255、高速缓存管理模块257和DFIM 259在构造上可以是一个完整的模块,或者可以与其它单独模块关联和/或并入其它单独模块中。高速缓存管理模块257和DFIM 259还可以并入高速缓存245或其它部件。
结合诸如微处理器242之类的存储控制器240的其它部件,数据去重复引擎255被配置用于执行对通过存储控制器240传送到存储装置230的写数据的数据去重复操作。
如先前指出的,存储控制器240包括数据频率索引映射(DFIM)259或者简称为存储映射259。高速缓存245(或者可被整体地称为高速缓存系统245,其可以并入高速缓存管理模块257、存储映射259或者甚至数据去重复引擎255)接受来自主机210、220和225或者类似设备的写数据,然后写数据被放置在高速缓存存储器245中。然后,数据去重复引擎255针对高速缓存存储器245中的重复测试写数据,并且将针对高速缓存存储器245中的重复的索引和频率写在存储映射259中。
现在转到图3,本发明的各种功能方面的框图被描绘为示例性流程。具体地,高速缓存系统245被示为接受写数据302,以通过数据去重复引擎255处理为针对高速缓存245的写操作304。因为写数据302是通过数据去重复引擎255处理的,并且如先前描述的,针对与现有存储的重复测试写数据302,并且去重复引擎255将频率和索引信息306传送到存储/数据频率索引映射(DFIM)259。如在图3中示出的并入数据去重复功能的存储系统包括针对每个数据块的引用计数,除了其它指示,其指示虚拟存储的多少个块映射到物理存储的单个块上。
当数据从高速缓存245被读出308时,存储映射259被更新。包含在存储映射259中的信息(包括引用计数信息310)被提供给高速缓存管理模块260,其还处于高速缓存245与存储控制器240(图2)之间的双向通信314中,并且由此作为读数据312被提供给主机210、220和225。根据本发明的方面,如将进一步说明的,至少部分地基于这样的活动,高速缓存管理模块260可以确定写数据302的哪些部分要被放置在高速缓存系统245中以及多长时间合适。
现在转到图4,用于改善存储环境中的高速缓存性能的方法的流程图被示出在一个示例性实施例中。方法400开始(步骤402),通过使用前面提到的引用计数信息连同LRU信息(以及,在其它实施例中,对于本领域普通技术人员来说显而易见的其它统计信息)以确定将具体的频繁访问的数据段261(图2)保持在高速缓存245中适当长度的时间(步骤404)。方法400结束(步骤406)。
接着,图5是在进一步的示例性实施例中用于实现诸如先前在图4中示出的这样的对引用计数信息利用的方法的流程图。这里,方法500开始(步骤502),通过在如先前描述的去重复操作的过程中检查从去重复引擎获得的引用计数数据(步骤504)。在一个实施例中,针对特定数据块的引用计数信息可以与针对该所选数据块的去重复操作的执行近似同步地被获得/检查。基于引用计数信息(和/或通过特定存储策略的实施),建立针对高速缓存中的特定段或者许多段的保持持续时间(步骤506)。这里再次,在一个实施例中,引用计数信息的获得、引用计数信息的更新、引用计数信息的检查和/或引用计数信息的分析来确定特定的保持持续时间可以与前面提到的去重复操作的执行近似同步地发生。
继续图5,然后方法500询问是否针对引用的数据段的引用计数信息已经被更新(例如,依据去重复操作递增),或者例如是否预定时间间隔已经到期(步骤508)。如果是这种情况,先前在步骤506中建立的保持持续时间被重新访问,以重新确定在高速缓存中的新的适当的保持持续时间(步骤510)。在一个实施例中,这可以通过最初为关联到引用计数信息的数据段分配预定权重来执行,在预定时间段的期满之后,如果引用计数信息不递增,那么权重减小。除了其它考虑,分配权重旨在于允许具有高引用计数的那些数据段最终从高速缓存中被丢弃,即使数据段长时间不被访问。
返回到步骤508,如果引用计数信息未被更新或者预定时间间隔没有期满,随着时间的经过,方法500返回到步骤508,以再次询问是否已经满足这些条件的任一个或两者。
如本领域普通技术人员将理解的,各种各样的存储策略(例如,其可以通过管理员/用户的辅助来建立)可以被拿来以基于针对该条目或条目集的当前的引用计数信息,承担是否特定段或数据集应当被保持一定的持续时间。因为针对给定的数据段,引用计数信息指示正被访问的特定条目的可能性,该相同信息可以由这些策略或者映射缓存机制中的其它方式(诸如可以由先前描述的高速缓存管理模块实现的映射缓存算法)智能地使用,以便确定存储在存储映射中的应当从高速缓存存储器调出的那些候选条目。
鉴于前述情况,考虑以下示例。十个(10)映射表条目(数据段)被建立作为候选以被调出。那十个映射表条目中,包含较高引用计数的那些(在一个实施例中,针对所有数据段一起)将比具有较低引用计数的那些更晚地被调出。以这种方式,在预期它们将再次被重新使用的情况下,具有对应较高引用计数的存储映射部分被保持得更长,并且在这种情况发生时,将在高速缓存中找到特定条目以用于快速访问。
接着,图6图示了用于使用引用计数值管理数据在高速缓存中的保持的示例性方法的流程图,本发明的方面可以被实现在其中。方法600开始(步骤602),并且询问关于是否高速缓存是满的,并且不管是否要从磁盘取得新数据段的这一事实(由此要求调出其他映射条目)(步骤604)。如果是这种情况,数据段被集体检查,以确定这些段中的哪些要从高速缓存中调出(步骤606)。作为该检查过程的一部分,方法600然后询问是否特定经检查的条目具有高的(例如在一个实施例中,高于由策略设置的特定阈值)引用计数值,或/和具有或/和继续具有对应重的分配权重(步骤608)。如果是这种情况,条目被保持在高速缓存中(步骤610)。如果条目被确定为不具有在预定义阈值之上的高的值和/或权重,则指定该数据段从高速缓存中调出(步骤612)并且新的段可以被调入高速缓存在其位置中。然后,方法600继续/返回到如先前描述的步骤604。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“模块”、“流程”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
这些计算机程序指令还可以被存储在可以引导计算机、其它可编程数据处理装置或者其它设备以特定方式起作用的计算机可读介质中,使得存储在计算机可读介质中的指令产生包括实现在流程图和/或框图框或多个框中指定的功能/动作的指令的制造品件。计算机程序指令还可以被加载到计算机、其它可编程数据处理装置或者其它设备上,以使得在计算机、其它可编程数据处理装置或者其它设备上完成一系列操作步骤,以产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令提供用于实现在流程图和/或框图框或多个框中指定的功能/动作的过程。
上面附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
虽然已经详细说明了本发明的一个或多个实施例,本领域普通技术人员将理解,可以做出对那些实施例的修改和改写,而不脱离如在所附权利要求中阐述的本发明的范围。

Claims (14)

1.一种用于通过处理器改善计算环境中的缓存性能的方法,包括:
针对多个频繁访问的数据段被临时存储在其中的高速缓存,结合使用最近最少使用(LRU)信息,对于多个所述数据段中保持在所述高速缓存中的那些数据段,在去重复操作的同时获取和检查引用计数信息,其中所述引用计数信息是映射到物理存储的单个块上的虚拟存储的块的个数,使用所述多个数据段的所述引用计数信息以将所述多个数据段加入至所述高速缓存,并且使用所述引用计数信息、所述LRU信息、统计信息、和数据存储策略以根据与所述引用计数信息相关联的预定权重确定将所述多个数据段中的每个数据段保持在所述高速缓存中的时间长度,
其中不管考虑所述LRU信息如何,所述多个数据段中的具有较高引用计数的那些数据段比具有较低引用计数的那些数据段被保持在所述高速缓存中更长的时间,
确定加入至所述高速缓存的所述多个数据段的所述引用计数信息是否已被更新或者预定时间间隔是否期满,其中如果所述引用计数信息未被更新并且所述预定时间间隔未期满:
则在第二预定时间间隔之后重新确定加入至所述高速缓存的所述多个数据段的所述引用计数信息是否已被更新并且所述预定时间间隔是否期满,
在所述预定时间间隔的期满之后重新确定所述时间长度,其中所述预定权重根据所述预定时间间隔的经过而减小,以及
基于所述引用计数信息,向所述高速缓存加入所述多个数据段的高速缓存部分或者从所述高速缓存中移除所述多个数据段的高速缓存部分。
2.根据权利要求1所述的方法,进一步包括从数据去重复引擎获得所述引用计数信息。
3.根据权利要求1所述的方法,其中确定将所述多个数据段保持在高速缓存中的所述时间长度包括实现与以下各项中的一项对应的至少一个策略:所述时间长度、所述多个数据段的至少一个数据段和所述预定权重。
4.根据权利要求1所述的方法,其中确定将所述多个数据段保持在高速缓存中的所述时间长度包括与所述确定近似同步地执行针对所述多个数据段中的被保持在所述高速缓存中的那些数据段的去重复操作。
5.一种用于改善计算环境中的缓存性能的系统,包括:
去重复引擎;
由所述去重复引擎处理的多个频繁访问的数据段;
被配置用于至少临时存储所述多个频繁访问的数据段的高速缓存;以及
与所述高速缓存可操作地通信的高速缓存管理模块;
其中结合使用最近最少使用(LRU)信息,所述高速缓存管理模块被配置为:
对于多个所述数据段中保持在所述高速缓存中的那些数据段,在去重复操作的同时获取和检查引用计数信息,其中所述引用计数信息是映射到物理存储的单个块上的虚拟存储的块的个数,
使用所述多个数据段的所述引用计数信息以将所述多个数据段加入至所述高速缓存,并且使用所述引用计数信息、所述LRU信息、统计信息、和数据存储策略以根据与所述引用计数信息相关联的预定权重确定将所述多个数据段中的每个数据段保持在所述高速缓存中的时间长度,
其中不管考虑所述LRU信息如何,所述多个数据段中的具有较高引用计数的那些数据段比具有较低引用计数的那些数据段被保持在所述高速缓存中更长的时间,
确定加入至所述高速缓存的所述多个数据段的所述引用计数信息是否已被更新或者预定时间间隔是否期满,其中如果所述引用计数信息未被更新并且所述预定时间间隔未期满:
则在第二预定时间间隔之后重新确定加入至所述高速缓存的所述多个数据段的所述引用计数信息是否已被更新并且所述预定时间间隔是否期满,
在所述预定时间间隔的期满之后重新确定所述时间长度,其中所述预定权重根据所述预定时间间隔的经过而减小,以及
基于所述引用计数信息,向所述高速缓存加入所述多个数据段的高速缓存部分或者从所述高速缓存中移除所述多个数据段的高速缓存部分。
6.根据权利要求5所述的系统,其中从所述去重复引擎获得所述引用计数信息。
7.根据权利要求5所述的系统,进一步包括与所述高速缓存管理模块可操作地通信的策略模块,其中所述策略模块被配置为,依据确定了将所述多个数据段保持在高速缓存中的所述时间长度,而实现与以下各项中的一项对应的至少一个策略:所述时间长度、所述多个数据段的至少一个和所述预定权重。
8.根据权利要求7所述的系统,其中所述策略模块进一步被配置用于选择可用于实现的多个策略中的一个。
9.根据权利要求8所述的系统,其中可用的所述多个策略中的每一个策略都与所述多个数据段中的预定数目的数据段和保持所述多个条目中的一些条目的预定时间中的至少一项对应。
10.根据权利要求5所述的系统,其中所述去重复引擎被配置为,结合确定将所述多个数据段保持在高速缓存中的所述时间长度,与所述确定近似同步地执行针对所述多个数据段中的被保持在所述高速缓存中的那些数据段的去重复操作。
11.一种用于通过处理器改善计算环境中的缓存性能的设备,包括:
用于针对多个频繁访问的数据段被临时存储在其中的高速缓存,结合使用最近最少使用(LRU)信息,对于多个所述数据段中保持在所述高速缓存中的那些数据段,在去重复操作的同时获取和检查引用计数信息,其中所述引用计数信息是映射到物理存储的单个块上的虚拟存储的块的个数,使用所述多个数据段的所述引用计数信息以将所述多个数据段加入至所述高速缓存,并且使用所述引用计数信息、所述LRU信息、统计信息、和数据存储策略以根据与所述引用计数信息相关联的预定权重确定将所述多个数据段中的每个数据段保持在所述高速缓存中的时间长度的装置,其中不管考虑所述LRU信息如何,所述多个数据段中的具有较高引用计数的那些数据段比具有较低引用计数的那些数据段被保持在所述高速缓存中更长的时间,
确定加入至所述高速缓存的所述多个数据段的所述引用计数信息是否已被更新或者预定时间间隔是否期满,其中如果所述引用计数信息未被更新并且所述预定时间间隔未期满:
则在第二预定时间间隔之后重新确定加入至所述高速缓存的所述多个数据段的所述引用计数信息是否已被更新并且所述预定时间间隔是否期满,
在所述预定时间间隔的期满之后重新确定所述时间长度,其中所述预定权重根据所述预定时间间隔的经过而减小,以及
基于所述引用计数信息,向所述高速缓存加入所述多个数据段的高速缓存部分或者从所述高速缓存中移除所述多个数据段的高速缓存部分。
12.根据权利要求11所述的设备,进一步包括用于从数据去重复引擎获得所述引用计数信息的装置。
13.根据权利要求11所述的设备,进一步包括用于依据确定了将所述多个数据段保持在高速缓存中的所述时间长度,而实现与下述各项中的一项对应的至少一个策略的装置:所述时间长度、所述多个数据段中的至少一个数据段和所述预定权重。
14.根据权利要求11所述的设备,进一步包括用于依据确定了将所述多个数据段保持在高速缓存中的所述时间长度,而与所述确定近似同步地执行针对所述多个数据段中的被保持在所述高速缓存中的那些数据段的去重复操作的装置。
CN201380022647.8A 2012-05-07 2013-05-06 增强数据缓存性能 Active CN104272275B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/465,476 US9645944B2 (en) 2012-05-07 2012-05-07 Enhancing data caching performance
US13/465,476 2012-05-07
PCT/CA2013/050349 WO2013166599A1 (en) 2012-05-07 2013-05-06 Enhancing data caching performance

Publications (2)

Publication Number Publication Date
CN104272275A CN104272275A (zh) 2015-01-07
CN104272275B true CN104272275B (zh) 2017-08-15

Family

ID=49513550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380022647.8A Active CN104272275B (zh) 2012-05-07 2013-05-06 增强数据缓存性能

Country Status (5)

Country Link
US (4) US9645944B2 (zh)
CN (1) CN104272275B (zh)
DE (1) DE112013002355B4 (zh)
GB (1) GB2516799B (zh)
WO (1) WO2013166599A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9645944B2 (en) 2012-05-07 2017-05-09 International Business Machines Corporation Enhancing data caching performance
US9021203B2 (en) 2012-05-07 2015-04-28 International Business Machines Corporation Enhancing tiering storage performance
US9110815B2 (en) 2012-05-07 2015-08-18 International Business Machines Corporation Enhancing data processing performance by cache management of fingerprint index
US10268592B2 (en) * 2014-01-31 2019-04-23 Avago Technologies International Sales Pte. Limited System, method and computer-readable medium for dynamically mapping a non-volatile memory store
CN105242971B (zh) * 2015-10-20 2019-02-22 北京航空航天大学 面向流式处理系统的内存对象管理方法及系统
KR102456109B1 (ko) * 2015-12-03 2022-10-18 삼성전자주식회사 비휘발성 메인 메모리 시스템의 메모리 맵핑 관리 방법
US10691596B2 (en) * 2018-04-27 2020-06-23 International Business Machines Corporation Integration of the frequency of usage of tracks in a tiered storage system into a cache management system of a storage controller
US11068413B2 (en) 2018-06-26 2021-07-20 International Business Machines Corporation Allocation of cache storage among applications based on application priority and minimum retention time for tracks in least recently used demoting schemes
US11144474B2 (en) * 2018-06-26 2021-10-12 International Business Machines Corporation Integration of application indicated maximum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
US11074197B2 (en) 2018-06-26 2021-07-27 International Business Machines Corporation Integration of application indicated minimum time to cache and maximum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
US11061826B2 (en) 2018-06-26 2021-07-13 International Business Machines Corporation Integration of application indicated minimum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
US11068417B2 (en) 2018-06-26 2021-07-20 International Business Machines Corporation Allocation of cache storage among applications that indicate minimum retention time for tracks in least recently used demoting schemes
US10904022B2 (en) * 2018-08-30 2021-01-26 Acronis International Gmbh System and method for utility ranking and funding for cloud storage
US11455279B2 (en) 2018-11-05 2022-09-27 International Business Machines Corporation Distributed data deduplication reference counting
US11237730B2 (en) * 2019-05-12 2022-02-01 International Business Machines Corporation Favored cache status for selected volumes within a storage system
US11163698B2 (en) 2019-05-12 2021-11-02 International Business Machines Corporation Cache hit ratios for selected volumes using synchronous I/O
US11176052B2 (en) 2019-05-12 2021-11-16 International Business Machines Corporation Variable cache status for selected volumes within a storage system
US11169919B2 (en) 2019-05-12 2021-11-09 International Business Machines Corporation Cache preference for selected volumes within a storage system
US11151035B2 (en) 2019-05-12 2021-10-19 International Business Machines Corporation Cache hit ratios for selected volumes within a storage system
CN110147331B (zh) * 2019-05-16 2021-04-02 重庆大学 缓存数据处理方法、系统及可读存储介质
US11366609B2 (en) * 2019-08-02 2022-06-21 EMC IP Holding Company LLC Technique for encoding deferred reference count increments and decrements
KR102253362B1 (ko) * 2020-09-22 2021-05-20 쿠팡 주식회사 전자 장치 및 이를 이용한 정보 제공 방법
CN117707435B (zh) * 2024-02-05 2024-05-03 超越科技股份有限公司 一种固态盘数据去重方法

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276867A (en) 1989-12-19 1994-01-04 Epoch Systems, Inc. Digital data storage system with improved data migration
CN1149486A (zh) 1996-08-29 1997-05-14 刘素丽 抗孕止血药及制备方法
US5943687A (en) 1997-03-14 1999-08-24 Telefonakiebolaget Lm Ericsson Penalty-based cache storage and replacement techniques
US6353438B1 (en) 1999-02-03 2002-03-05 Artx Cache organization—direct mapped cache
US6654855B1 (en) * 2000-10-26 2003-11-25 Emc Corporation Method and apparatus for improving the efficiency of cache memories using chained metrics
US6807588B2 (en) * 2002-02-27 2004-10-19 International Business Machines Corporation Method and apparatus for maintaining order in a queue by combining entry weights and queue weights
WO2007068122A1 (en) * 2005-12-16 2007-06-21 Univ Western Ontario System and method for cache management
JP2007200203A (ja) 2006-01-30 2007-08-09 Brother Ind Ltd 情報配信システム、再登録メッセージ送信方法、ノード装置、及びノード処理プログラム
US7496711B2 (en) 2006-07-13 2009-02-24 International Business Machines Corporation Multi-level memory architecture with data prioritization
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US7822939B1 (en) * 2007-09-25 2010-10-26 Emc Corporation Data de-duplication using thin provisioning
US7870105B2 (en) 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
US8271736B2 (en) * 2008-02-07 2012-09-18 International Business Machines Corporation Data block frequency map dependent caching
US7567188B1 (en) 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US7908436B1 (en) 2008-04-25 2011-03-15 Netapp, Inc. Deduplication of data on disk devices using low-latency random read memory
US20100088296A1 (en) 2008-10-03 2010-04-08 Netapp, Inc. System and method for organizing data to facilitate data deduplication
US8099555B2 (en) * 2009-01-23 2012-01-17 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for memory management on print devices
US20100306283A1 (en) * 2009-01-28 2010-12-02 Digitiliti, Inc. Information object creation for a distributed computing system
JP5369807B2 (ja) * 2009-03-24 2013-12-18 日本電気株式会社 ストレージ装置
JP2010257094A (ja) 2009-04-23 2010-11-11 Hitachi Ltd 階層ストレージ管理システムにおける移動候補ファイルの抽出方法
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
US8578120B2 (en) 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US8255365B2 (en) 2009-06-08 2012-08-28 Symantec Corporation Source classification for performing deduplication in a backup operation
US8849955B2 (en) * 2009-06-30 2014-09-30 Commvault Systems, Inc. Cloud storage and networking agents, including agents for utilizing multiple, different cloud storage sites
US8880835B2 (en) * 2009-07-07 2014-11-04 International Business Machines Corporation Adjusting location of tiered storage residence based on usage patterns
US8204867B2 (en) 2009-07-29 2012-06-19 International Business Machines Corporation Apparatus, system, and method for enhanced block-level deduplication
US8280854B1 (en) 2009-09-01 2012-10-02 Symantec Corporation Systems and methods for relocating deduplicated data within a multi-device storage system
US8204862B1 (en) 2009-10-02 2012-06-19 Symantec Corporation Systems and methods for restoring deduplicated data
US8171253B2 (en) * 2009-10-30 2012-05-01 Brocade Communications Systems, Inc. Virtual disk mapping
US8694469B2 (en) 2009-12-28 2014-04-08 Riverbed Technology, Inc. Cloud synthetic backups
US8375180B2 (en) 2010-02-05 2013-02-12 International Business Machines Corporation Storage application performance matching
US8250325B2 (en) 2010-04-01 2012-08-21 Oracle International Corporation Data deduplication dictionary system
US9047301B2 (en) 2010-04-19 2015-06-02 Greenbytes, Inc. Method for optimizing the memory usage and performance of data deduplication storage systems
US20110320715A1 (en) * 2010-06-23 2011-12-29 Microsoft Corporation Identifying trending content items using content item histograms
US8407191B1 (en) 2010-06-29 2013-03-26 Emc Corporation Priority based data scrubbing on a deduplicated data store
US8397080B2 (en) 2010-07-29 2013-03-12 Industrial Technology Research Institute Scalable segment-based data de-duplication system and method for incremental backups
CN101989236B (zh) 2010-11-04 2012-05-09 浙江大学 一种指令缓存锁实现方法
US8407419B2 (en) * 2010-11-30 2013-03-26 Open Text S.A. System and method for managing a cache using file system metadata
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US8495304B1 (en) 2010-12-23 2013-07-23 Emc Corporation Multi source wire deduplication
US8478939B2 (en) 2011-07-07 2013-07-02 Lsi Corporation Relative heat index based hot data determination for block based storage tiering
US8732403B1 (en) 2012-03-14 2014-05-20 Netapp, Inc. Deduplication of data blocks on storage devices
US9110815B2 (en) 2012-05-07 2015-08-18 International Business Machines Corporation Enhancing data processing performance by cache management of fingerprint index
US9021203B2 (en) 2012-05-07 2015-04-28 International Business Machines Corporation Enhancing tiering storage performance
US9645944B2 (en) 2012-05-07 2017-05-09 International Business Machines Corporation Enhancing data caching performance

Also Published As

Publication number Publication date
US9697139B2 (en) 2017-07-04
DE112013002355T5 (de) 2015-01-15
GB201421353D0 (en) 2015-01-14
US9645944B2 (en) 2017-05-09
US20180121367A1 (en) 2018-05-03
WO2013166599A1 (en) 2013-11-14
US20130297885A1 (en) 2013-11-07
GB2516799A (en) 2015-02-04
CN104272275A (zh) 2015-01-07
GB2516799B (en) 2020-10-14
US20170255568A1 (en) 2017-09-07
DE112013002355B4 (de) 2023-11-30
US10268599B2 (en) 2019-04-23
US9898419B2 (en) 2018-02-20
US20130297886A1 (en) 2013-11-07

Similar Documents

Publication Publication Date Title
CN104272275B (zh) 增强数据缓存性能
CN103389882B (zh) 提高散列索引密钥查找高速缓存性能的方法和系统
US10430084B2 (en) Multi-tiered memory with different metadata levels
CN104937574B (zh) 在计算存储环境中数据处理的方法和系统
CN106716334B (zh) 文件系统卷内的高效数据移动
JP7046669B2 (ja) 逆キャッシュテーブルを用いるハードウェアベースのマップアクセラレーション
CN103929185B (zh) 实时减少数据压缩的中央处理单元开销的方法和系统
US8583868B2 (en) Storage system cache using flash memory with direct block access
US8966143B2 (en) Method for controlling storages and storage control apparatus
US8996808B2 (en) Enhancing tiering storage performance
CN102770848B (zh) 存储控制器中的转出任务的动态管理
CN103562843B (zh) 用于管理顺序存取存储设备中的数据的方法和设备
CN103473150B (zh) 一种用于数据去重系统中的碎片重写方法
CN106662981A (zh) 存储设备、程序和信息处理方法
CN103907096B (zh) 闪存高速缓存中的部分数据片段的提升
US9959054B1 (en) Log cleaning and tiering in a log-based data storage system
CN109416681A (zh) 使用幽灵指纹进行工作负载优化的重复数据删除
US20130111133A1 (en) Dynamically adjusted threshold for population of secondary cache
CN104040508B (zh) 用于在高速缓存系统中管理数据的方法和系统
US8539007B2 (en) Efficient garbage collection in a compressed journal file
CA2761553C (en) Logical buffer pool extension
CN103207840A (zh) 用于将不完整记录从第一缓存降级至第二缓存的系统和方法
CN106503051A (zh) 一种基于元数据分类的贪婪预取型数据恢复系统及恢复方法
WO2016134303A1 (en) Solid state device parity caching in a hybrid storage array
CN103257932A (zh) 用于管理计算机可读高速缓存系统中的数据的方法和系统

Legal Events

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