CN103389882A - 在计算环境中提高散列索引密钥查找高速缓存性能 - Google Patents

在计算环境中提高散列索引密钥查找高速缓存性能 Download PDF

Info

Publication number
CN103389882A
CN103389882A CN2013101633219A CN201310163321A CN103389882A CN 103389882 A CN103389882 A CN 103389882A CN 2013101633219 A CN2013101633219 A CN 2013101633219A CN 201310163321 A CN201310163321 A CN 201310163321A CN 103389882 A CN103389882 A CN 103389882A
Authority
CN
China
Prior art keywords
entries
data
cache
reference count
speed cache
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.)
Granted
Application number
CN2013101633219A
Other languages
English (en)
Other versions
CN103389882B (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 CN103389882A publication Critical patent/CN103389882A/zh
Application granted granted Critical
Publication of CN103389882B publication Critical patent/CN103389882B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及在计算环境中提高散列索引密钥查找高速缓存性能。更具体而言,提供在计算环境中提高散列索引密钥查找高速缓存性能的各种实施例。在一个实施例中,对于具有与多个数据指纹对应的多个条目的高速缓存的指纹映射,使用参考计数信息以确定在高速缓存中保留多个条目的时间长度。多个条目的具有较高参考计数的那些条目被保留得比具有较低参考计数的那些条目长。

Description

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

Claims (14)

1.一种通过处理器在计算环境中提高散列索引密钥查找高速缓存性能的方法,包括:
对于具有与被数据去复制系统使用的多个数据指纹对应的多个条目的高速缓存的指纹映射,使用参考计数信息以确定在高速缓存中保留所述多个条目的时间长度,其中,所述多个条目中的具有较高参考计数的那些条目被保留得比具有较低参考计数的那些条目长。
2.根据权利要求1的方法,还包括从数据去复制引擎获得所述参考计数信息。
3.根据权利要求1的方法,还包括基于所述参考计数信息的更新重新确定所述时间长度。
4.根据权利要求3的方法,还包括以下中的一个:对于每个参考计数递增执行所述重新确定和在期间观察到物理块上没有活动的预定的时间间隔到期之后执行所述重新确定。
5.根据权利要求1的方法,其中,确定在高速缓存中保留所述多个条目的时间长度包括实现与以下之一对应的至少一个策略:所述时间长度或所述多个条目中的至少一个条目。
6.根据权利要求1的方法,其中,与对于所述多个条目的保留于所述高速缓存中的那些条目的去复制操作大致同步地执行确定在高速缓存中保留所述多个条目的时间长度。
7.一种用于在计算环境中提高散列索引密钥查找高速缓存性能的系统,包括:
去复制引擎;
具有与多个数据指纹对应的多个条目的指纹映射,所述指纹映射由所述去复制引擎填充;
被配置为至少暂时存储所述指纹映射的高速缓存;和
与所述高速缓存在操作上通信的高速缓存管理模块,
其中,所述高速缓存管理模块被配置为使用参考计数信息以确定在所述高速缓存中保留所述多个条目的时间长度,其中,所述多个条目中的具有较高参考计数的那些条目被保留得比具有较低参考计数的那些条目长。
8.根据权利要求7的系统,其中,从所述去复制引擎获得所述参考计数信息。
9.根据权利要求7的系统,其中,所述高速缓存管理模块进一步被配置为基于所述参考计数信息的更新重新确定所述时间长度。
10.根据权利要求9的系统,其中,所述高速缓存管理模块进一步被配置为用于以下中的一个:对于每个参考计数递增执行所述重新确定和在其期间观察到物理块上没有活动的预定的时间间隔到期之后执行所述重新确定。
11.根据权利要求7的系统,还包括与所述高速缓存管理模块在操作上通信的策略模块,其中,所述策略模块被配置为根据确定在所述高速缓存中保留所述多个条目的时间长度而实现与以下之一对应的至少一个策略:所述时间长度或所述多个条目中的至少一个条目。
12.根据权利要求11的系统,其中,所述策略模块进一步被配置为选择多个可用策略中的一个策略以用于实现。
13.根据权利要求12的系统,其中,所述多个可用策略中的每一个策略与以下之一对应:所述多个条目的预定数量和保留所述多个条目中的一些条目的预定时间。
14.根据权利要求7的系统,其中,与用于所述多个条目中的保留于所述高速缓存中的那些条目的去复制操作大致同步地确定在所述高速缓存中保留所述多个条目的时间长度。
CN201310163321.9A 2012-05-07 2013-05-07 提高散列索引密钥查找高速缓存性能的方法和系统 Expired - Fee Related CN103389882B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/465,456 2012-05-07
US13/465,456 US9110815B2 (en) 2012-05-07 2012-05-07 Enhancing data processing performance by cache management of fingerprint index

Publications (2)

Publication Number Publication Date
CN103389882A true CN103389882A (zh) 2013-11-13
CN103389882B CN103389882B (zh) 2017-04-26

Family

ID=49513419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310163321.9A Expired - Fee Related CN103389882B (zh) 2012-05-07 2013-05-07 提高散列索引密钥查找高速缓存性能的方法和系统

Country Status (2)

Country Link
US (3) US9110815B2 (zh)
CN (1) CN103389882B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109313538A (zh) * 2016-04-26 2019-02-05 Netapp股份有限公司 内联去重

Families Citing this family (31)

* 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
US9521198B1 (en) 2012-12-19 2016-12-13 Springpath, Inc. Systems and methods for implementing an enterprise-class converged compute-network-storage appliance
US9436697B1 (en) * 2013-01-08 2016-09-06 Veritas Technologies Llc Techniques for managing deduplication of data
US9632720B2 (en) * 2013-08-29 2017-04-25 International Business Machines Corporation Data de-duplication
GB2518158A (en) * 2013-09-11 2015-03-18 Ibm Method and system for data access in a storage infrastructure
US9917894B2 (en) * 2014-08-06 2018-03-13 Quest Software Inc. Accelerating transfer protocols
US9984093B2 (en) 2014-08-06 2018-05-29 Quest Software Inc. Technique selection in a deduplication aware client environment
US9990352B2 (en) 2014-08-06 2018-06-05 Quest Software Inc. Chunk compression in a deduplication aware client environment
US10459886B2 (en) 2014-08-06 2019-10-29 Quest Software Inc. Client-side deduplication with local chunk caching
US9396341B1 (en) * 2015-03-31 2016-07-19 Emc Corporation Data encryption in a de-duplicating storage in a multi-tenant environment
US10296219B2 (en) * 2015-05-28 2019-05-21 Vmware, Inc. Data deduplication in a block-based storage system
US11625181B1 (en) 2015-08-24 2023-04-11 Pure Storage, Inc. Data tiering using snapshots
US10198194B2 (en) * 2015-08-24 2019-02-05 Pure Storage, Inc. Placing data within a storage device of a flash array
US11294588B1 (en) 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
US9842114B2 (en) * 2015-09-25 2017-12-12 Netapp, Inc. Peer to peer network write deduplication
US20170123676A1 (en) * 2015-11-04 2017-05-04 HGST Netherlands B.V. Reference Block Aggregating into a Reference Set for Deduplication in Memory Management
US9658968B1 (en) * 2015-11-09 2017-05-23 International Business Machines Corporation Implementing hardware accelerator for storage write cache management
US9817865B2 (en) * 2015-12-07 2017-11-14 International Business Machines Corporation Direct lookup for identifying duplicate data in a data deduplication system
CN106682225B (zh) * 2017-01-04 2019-07-23 成都四方伟业软件股份有限公司 一种大数据的汇集存储方法与系统
US10282127B2 (en) 2017-04-20 2019-05-07 Western Digital Technologies, Inc. Managing data in a storage system
US10891201B1 (en) * 2017-04-27 2021-01-12 EMC IP Holding Company LLC Dynamic rule based model for long term retention
US10809928B2 (en) * 2017-06-02 2020-10-20 Western Digital Technologies, Inc. Efficient data deduplication leveraging sequential chunks or auxiliary databases
US11429587B1 (en) * 2017-06-29 2022-08-30 Seagate Technology Llc Multiple duration deduplication entries
US10585802B1 (en) * 2017-07-13 2020-03-10 EMC IP Holding Company LLC Method and system for caching directories in a storage system
US10503608B2 (en) 2017-07-24 2019-12-10 Western Digital Technologies, Inc. Efficient management of reference blocks used in data deduplication
CN107506150A (zh) * 2017-08-30 2017-12-22 郑州云海信息技术有限公司 分布式存储装置、重删、写、删除、读取方法以及系统
WO2020162739A1 (ko) * 2019-02-08 2020-08-13 주식회사 센스톤 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법, 프로그램 및 장치
CN110222209B (zh) * 2019-06-14 2020-01-03 北京马赫谷科技有限公司 图片存储方法、查询方法、装置及存取系统
US12105636B2 (en) * 2022-04-07 2024-10-01 Dell Products L.P. Caching techniques using a data deduplication cache and a data cache

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1149486C (zh) * 1997-03-14 2004-05-12 艾利森电话股份有限公司 基于惩罚的高速缓冲存储器和置换技术
US7567188B1 (en) * 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US20090204765A1 (en) * 2008-02-07 2009-08-13 Karan Gupta Data block frequency map dependent caching

Family Cites Families (39)

* 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
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
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
US20100306180A1 (en) 2009-01-28 2010-12-02 Digitiliti, Inc. File revision management
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
US20100333116A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to 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
US9501365B2 (en) * 2009-12-28 2016-11-22 Netapp, Inc. Cloud-based disaster recovery of backup data and metadata
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
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
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
US9110815B2 (en) 2012-05-07 2015-08-18 International Business Machines Corporation Enhancing data processing performance by cache management of fingerprint index

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1149486C (zh) * 1997-03-14 2004-05-12 艾利森电话股份有限公司 基于惩罚的高速缓冲存储器和置换技术
US20090204765A1 (en) * 2008-02-07 2009-08-13 Karan Gupta Data block frequency map dependent caching
US7567188B1 (en) * 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109313538A (zh) * 2016-04-26 2019-02-05 Netapp股份有限公司 内联去重
CN109313538B (zh) * 2016-04-26 2021-11-19 Netapp股份有限公司 内联去重

Also Published As

Publication number Publication date
US20130297884A1 (en) 2013-11-07
US20150293848A1 (en) 2015-10-15
US9098424B2 (en) 2015-08-04
US9110815B2 (en) 2015-08-18
US9495294B2 (en) 2016-11-15
US20130297569A1 (en) 2013-11-07
CN103389882B (zh) 2017-04-26

Similar Documents

Publication Publication Date Title
CN103389882A (zh) 在计算环境中提高散列索引密钥查找高速缓存性能
US10459808B2 (en) Data storage system employing a hot spare to store and service accesses to data having lower associated wear
CN104272275B (zh) 增强数据缓存性能
CN105009085B (zh) 信息处理系统、控制程序以及信息处理设备
US9612964B2 (en) Multi-tier file storage management using file access and cache profile information
US10102117B2 (en) Systems and methods for cache and storage device coordination
US9251052B2 (en) Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
CN104272300B (zh) 通过加密在数据去重复系统中保留冗余性
US9128855B1 (en) Flash cache partitioning
CN102598020B (zh) 用于改进的数据去重的装置、系统及方法
US20160306557A1 (en) Storage apparatus provided with a plurality of nonvolatile semiconductor storage media and storage control method
US20130318196A1 (en) Storage system and storage control method for using storage area based on secondary storage as cache area
US9606734B2 (en) Two-level hierarchical log structured array architecture using coordinated garbage collection for flash arrays
WO2016046911A1 (ja) ストレージシステム及びストレージシステムの管理方法
KR102449585B1 (ko) 버저닝 저장 장치 및 방법
CN103514247A (zh) 将去除了重复的数据打包到有限大小容器中的方法和系统
US10387039B2 (en) Data storage management
US8935304B2 (en) Efficient garbage collection in a compressed journal file
Wu et al. LDM: Log disk mirroring with improved performance and reliability for SSD-based disk arrays
EP2606429A2 (en) Systems and methods for efficient sequential logging on caching-enabled storage devices
CN103713853A (zh) 用于数据管理的方法和系统
Liu et al. Performance considerations for writing data to solid-state drives
Khil et al. Hot and Cold Data Replacement Method for Hybrid Storage System

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170426

CF01 Termination of patent right due to non-payment of annual fee