CN109002400B - 一种内容感知型计算机缓存管理***及方法 - Google Patents
一种内容感知型计算机缓存管理***及方法 Download PDFInfo
- Publication number
- CN109002400B CN109002400B CN201810555251.4A CN201810555251A CN109002400B CN 109002400 B CN109002400 B CN 109002400B CN 201810555251 A CN201810555251 A CN 201810555251A CN 109002400 B CN109002400 B CN 109002400B
- Authority
- CN
- China
- Prior art keywords
- data block
- cache
- source address
- fingerprint
- linked 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种内容感知型计算机缓存管理***及方法,包括元数据管理模块和数据块管理模块。元数据管理模块包括:源地址映射索引,源地址管理,指纹索引,唯一数据块缓存地址管理。数据块管理模块负责缓存内数据块的维护。本发明改变传统的基于LRU算法缓存***的元数据组织,通过结合重复数据删除技术,使缓存***具有内容感知能力,通过识别并删除缓存中相同内容的冗余数据块,提高缓存***的利用率,扩大缓存数据块映射数据量,提高缓存命中率,减少对下层存储设备的访问,减少平均I/O时延,提升***整体性能。
Description
技术领域
本发明涉及计算机缓存***优化的技术领域,具体涉及一种内容感知型计算机缓存管理***及方法。
背景技术
缓存(cache)机制是利用数据访问的时间局部性和空间局部性来提高计算机整体性能的重要途径。在计算机中,缓存机制在硬件层(CPU与内存间的各级缓存、磁盘缓存)、***层(文件***的buffer cache、块层的bcache)和应用层(应用***内部缓存)中都大量使用。缓存作为速度差异设备的中间“桥梁”,对其数据的有效组织和管理将影响到各层设备的性能。例如,对文件***cache的有效管理,将影响内存管理***和文件***的性能。
现代计算机***设计中,存储***的设计,特别是缓存的设计是一项重要的工作,而缓存设计的重点是如何对缓存内数据进行有效的组织和缓存替换算法的选择。最近最少使用算法(least recently used algorithm,LRU)基于其实现简单、开销小和效果较好等优点,在过去的几十年里其在缓存替换算法中一直占据着首要地位。然而,传统的基于LRU算法的缓存***中,基于地址的映射无法感知缓存数据块内容,对地址不同但内容相同的数据块的缓存,导致缓存***的空间浪费。
因此,为了有效利用缓存空间资源,提高缓存空间使用率和缓存命中率,需要一种内容感知型计算机缓存管理***及方法,感知并删除缓存中内容相同的冗余数据块,提高缓存利用率,扩大缓存数据块映射数量,提升缓存***命中率,减少下层存储设备的访问。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种内容感知型计算机缓存管理***及方法,感知缓存数据块内容,避免存储源地址相同但内容相同的数据块,提高缓存利用率和命中率,减少下层存储设备访问。
根据公开的实施例,本发明的第一方面公开了一种内容感知型计算机缓存管理***,该缓存管理***包括:元数据管理模块和数据块管理模块。其中元数据管理模块包括:源地址映射索引单元、源地址管理单元、指纹索引单元、唯一数据块缓存地址管理单元,上述各单元顺序连接,其中,
所述的源地址映射索引单元,负责请求到达缓存管理***时,利用散列表映射,快速判断在源地址管理中是否存在请求源地址节点;
所述的源地址管理单元,通过双向链表把数据块源地址在缓存中按LRU次序进行组织排列,其按访问次序记录了给定数量范围内的数据块源地址和指纹信息,当新的访问请求到达时按照LRU算法规则对排列顺序进行调整;
所述的指纹索引单元,对去重后唯一数据块指纹进行索引,写请求数据块到达时候,将计算后的指纹散列至指纹索引单元中,判断当前写入数据块是否在缓存管理***中已存储,若是,则只增加索引而不进行冗余存储;
所述的唯一数据块缓存地址管理单元,对所述的源地址管理单元中存储的数据块进行索引,通过LRU算法按照数据块访问顺序对数据块进行组织记录,以方便进行缓存数据块剔除时,快速发现存在在缓存中适合剔除的数据。缓存数据块经过数据去重后源地址与数据块变为多对一的映射关系,唯一数据块缓存地址管理单元的LRU队列,与源地址管理中的LRU队列保持相对一致的关系。
所述的数据块管理模块,该模块负载数据块的统一存储。
进一步地,所述的源地址映射索引单元中数据组织形式如下:
以散列表的形式组织源地址到源地址管理链表的映射关系,上层读写请求到达缓存管理***后,以O(1)的时间复杂度判断请求源地址是否存在于源地址管理链表中。
进一步地,所述的源地址管理单元中数据组织形式如下:
以双向链表的形式管理源地址节点,节点中存放源地址、源地址对应数据块指纹和指向前后源地址节点的指针信息,当请求源地址通过源地址映射索引映射至某一节点时,即源地址命中,根据LRU算法,将命中源地址节点移动至链表首部MRU位置,以维护链表的LRU特性,当源地址未命中时,构建包含请求源地址信息的新的链表节点至链表首部LRU位置。
进一步地,所述的指纹索引单元中数据组织形式如下:
以散列表的形式组织数据块指纹到唯一数据块缓存地址链表节点的映射关系,同时每个指纹节点记录当前指纹被多少源地址索引的计数信息,当请求源地址通过源地址映射索引映射在源地址管理链表中命中某一节点时,把源地址管理链表节点获取的数据块指纹信息,映射至指纹索引单元中,查找对应唯一数据块地址链表节点信息,并判断该链表节点是否存在。
根据公开的实施例,本发明的第二方面公开了一种内容感知型计算机缓存管理方法,所述的缓存管理方法包括:读请求步骤和写请求步骤,其中,
所述的读请求步骤过程如下:
S1、缓存管理***收到上层***请求读写请求,判断请求源地址在源地址映射索引单元中是否命中,若源地址命中,转至步骤S2,若源地址未命中,转至步骤S5;
S2、若源地址命中,将源地址管理链表节点中存储的指纹映射至指纹索引单元中,判断指纹是否命中;
S3、若指纹索引命中,通过指纹索引单元中节点获取请求数据块存储位置,若指纹索引不命中,从下层设备中将请求数据块读入缓存中;
S4、从下层存储设备中读取数据块时,需要判断当前缓存空间是否已满,若当前缓存管理***已满,需要剔除数据块,具体执行如下:选取唯一数据块缓存地址管理单元中链表尾部节点,该节点指向最久未访问数据块,删除该节点和对应数据块,将指纹索引单元中指向该节点的指针置为空;
当向缓存***写入新的非重复唯一数据块,且缓存***存储数据块已达到存储上限时,需要执行数据块剔除操作。不同于常规缓存***中,在源地址管理中基于源地址LRU替换算法查找替换数据块。本发明提出的内容感知型缓存中,由于不同源地址的相同数据块只存储一份,因此源地址与数据块存在多对一的关系,并通过指纹索引连接关联。为减少计算,同时避免源地址管理链表中历史源地址的无效查找。本发明提出将唯一数据块缓存地址管理单元的链表与源地址管理链表保持LRU相对统一的关系,当需要执行剔除数据块操作时,直接在唯一数据块源地址管理链表尾部获取数据块地址并执行数据块删除操作,然后更新元数据信息即可。
S5、若读请求到达缓存***,请求源地址在源地址映射索引未命中,即缓存中未存储请求数据块,此时需要将数据块从下层存储设备中读入缓存,对数据块存储前,首先计算该数据块指纹,并映射至指纹索引单元中,若指纹命中且对应数据块存储在缓存中,则增加对应数据块指纹索引计数,同时在源地址管理链表首部增加新的节点,记录请求源地址和指纹信息,并将唯一数据块缓存地址管理单元的链表中指向与请求数据块内容相同数据块地址的节点移动至链表首部MRU位置;
所述的读请求步骤过程如下:
R1、写请求到达缓存管理***时,首先计算写入数据块指纹,然后判断当前写入数据块源地址是否已缓存;
R2、若源地址已缓存,判断指纹是否相同,相同则不需要进行写操作,将源地址管理单元的链表和唯一数据块缓存地址管理单元的链表中对应节点移动至链表首部MRU位置;
R3、若当前写入数据块源地址已缓存,但新写入的数据块指纹与旧指纹不同或当前写入数据块源地址未缓存,则需要判断与当前写入的新数据块内容相同的数据块是否已在缓存中存储,若已存储,则减少久数据块的指纹索引,增加与当前写入的新数据块内容相同的数据块的指纹索引计数,并更新源地址管理链表和唯一数据块缓存地址管理单元的链表中节点信息;
R4、当请求写入数据块源地址在缓存中命中,但对应数据块为已被剔除的数据块,此时与请求从下层存储设备中读入数据块操作相同。
进一步地,所述的步骤S3中,若源地址命中,且指纹索引命中,但对应数据块已被剔除缓存,则从下层存储设备中读取数据块至缓存,若此时缓存已满,则剔除最近最久未访问的数据块及其元数据信息;数据块从下层存储设备读入后,在唯一数据块缓存地址管理单元的链表首部MRU位置,创建新的节点,记录该数据块在数据块管理模块中的地址信息,在指纹索引单元映射恢复对唯一数据块缓存地址管理单元的链表中节点的索引。
进一步地,计算请求写入数据块指纹信息,并判断请求源地址在源地址管理链表中是否命中的执行算法如下:
将数据块指纹信息映射至指纹索引单元中,若对应指纹信息已存在且对应数据块在缓存中,则当前写入数据块为冗余数据块,增加指纹索引中对应指纹索引计数,并将源地址管理链表和唯一数据块缓存地址管理单元的链表中更新对应节点至链表首部MRU位置,使新访问的源地址及其数据块在源地址管理链表和唯一数据块缓存地址管理单元的链表中保持相对同步关系;若对应指纹信息存在,但指纹对应数据块已替换出缓存,则需要将新的数据块写入缓存,并重新恢复元数据映射关系,并更新相关链表信息;若写入数据块时缓存已达到存储上限,需要执行数据块剔除操作。
进一步地,***新数据块的执行算法如下:
新数据块写入缓存管理***前,需要判源地址管理链表中节点数量是否已达到用户设定上限,若已达到,需要剔除最近最久未访问的源地址节点,即源地址管理链表尾部节点;然后,将节点内指纹信息映射至指纹索引中,减少对应指纹的索引计数;如果指纹索引单元计数减为零,则删除指纹索引单元中该指纹信息,唯一数据块缓存地址管理单元中对应节点信息和数据块管理模块中对应数据块。
进一步地,剔除数据块并更新元数据信息的执行算法如下:
新数据块写入缓存前,数据块管理模块存储的数据块已满,需要从唯一数据块缓存地址管理单元的链表中选取尾部节点,并删除该节点所指数据块;然后,从链表删除该尾部节点,保留指纹索引单元中该数据块的指纹信息,将指纹索引单元中指向唯一数据块缓存地址管理单元的链表尾部节点的指纹置为空。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明改变传统基于LRU替换算法的缓存管理机制,通过计算、存储和检索数据块指纹信息,在写入新的数据块时,判断与新数据块相同内容的数据块是否在缓存中已存在,若存在则不需要进行冗余存储,使缓存***具有内容感知能力。
(2)本发明通过提示缓存***的内容感知能力,提高缓存利用率,扩大缓存映射数据块数量,提高缓存命中率,减少下层存储设备访问。
(3)本发明通过保留替换出缓存***数据块的指纹信息,在数据块再次请求时候,可以快速激活映射到该数据块的所有源地址信息,从而提高缓存读命中。
(4)本发明通过设定源地址上限阀值,通过LRU算法,可及时地删除数据块已被替换出缓存***,同时删除长期未访问的无效源地址信息,避免过多无效源地址信息浪费缓存空间。
附图说明
图1是本发明公开的一种内容感知型计算机缓存管理***及方法的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
缓存机制是利用数据访问的时间局部性和空间局部性来提高计算机整体性能的重要途径。在计算机中,缓存机制在硬件层、***层和应用层中都大量使用。本实施例提出的一种内容感知型计算机缓存管理***及方法,可应用于各级缓存中。当数据块进入缓存***时,计算数据块指纹感知与当前数据块内容相同的数据块是否已缓存,若已缓存,则只增加源地址映射关系,以避免缓冲中不同源地址但内容相同的数据块存储。提升缓存***的映射数量,提高缓存命中率,减少下层存储设备的访问。
如图1所示,本实施例公开了一种内容感知型计算机缓存管理***,该***包括:元数据管理模块和数据块管理模块。其中元数据管理模块包括:源地址映射索引单元、源地址管理单元、指纹索引单元,唯一数据块缓存地址管理单元,上述各单元顺序连接,其中,
所述的源地址映射索引单元,负责请求到达缓存管理***时,利用散列表映射,快速判断在源地址管理中是否存在请求源地址节点;
所述的源地址管理单元,通过双向链表把数据块源地址在缓存中按LRU次序进行组织排列,其按访问次序记录了给定数量范围内的数据块源地址和指纹信息,当新的访问请求到达时按照LRU算法规则对排列顺序进行调整;
所述的指纹索引单元,对去重后唯一数据块指纹进行索引,写请求数据块到达时候,将计算后的指纹散列至指纹索引单元中,判断当前写入数据块是否在缓存管理***中已存储,若是,则只增加索引而不进行冗余存储;
所述的唯一数据块缓存地址管理单元,对所述的源地址管理单元中存储的数据块进行索引,通过LRU算法按照数据块访问顺序对数据块进行组织记录,以方便进行缓存数据块剔除时,快速发现存在在缓存中适合剔除的数据。缓存数据块经过数据去重后源地址与数据块变为多对一的映射关系,唯一数据块缓存地址管理单元的LRU队列,与源地址管理中的LRU队列保持相对一致的关系。
所述的数据块管理模块,该模块负载数据块的统一存储。
在具体的实施方式中,所述的源地址映射索引单元,通过哈希表,记录源地址到源地址管理链表节点的映射关系,上层请求到达时,以O(1)的时间复杂度判断请求源地址是否存在于源地址管理链表中。
在具体的实施方式中,所述的源地址管理单元,由双向链表实现,以LRU替换算法根据源地址请求访问时间对源地址节点进行组织,其中链表节点中记录了源地址和该源地址对应数据块指纹信息。
在具体的实施方式中,所述的指纹索引单元,通过哈希表,记录数据块指纹到唯一数据块缓存地址管理单元的链表节点信息。主要作用一方面是通过源地址管理单元、指纹索引单元和唯一数据块缓存地址管理单元构建源地址到指纹,再从指纹到数据块的映射关系,方便读请求时获取据数据块。另一方面,向缓存管理***写入新的数据块时,通过指纹索引,判断当前写入数据块是否已存在于缓存中,使缓存管理***具有内容感知能力,避免不同源地址但内容相同的数据块缓存。
在具体的实施方式中,所述的唯一数据块缓存地址管理单元,由双向链表实现,以LRU替换算法数据块访问时间对数据块在缓存中的存储地址进行组织,该链表节点与源地址管理的链表节点保持相对统一的关系,该唯一数据块缓存地址管理单元的作用一方面是通过其读取数据块信息,另一方面在数据块剔除时,可直接从链表尾部发现要剔除数据块位子。
基于上述内容感知型计算机缓存管理***的具体工作流程如下:
读请求步骤:
S1、缓存管理***收到上层***请求读写请求,判断请求源地址在源地址映射索引单元中是否命中,若源地址命中,转至步骤S2,若源地址未命中,转至步骤S5;
S2、若源地址命中,将源地址管理链表节点中存储的指纹映射至指纹索引单元中,判断指纹是否命中;
S3、若指纹索引命中,通过指纹索引单元中节点可获取请求数据块存储位置,若指纹索引不命中,从下层设备中将请求数据块读入缓存中;
S4、从下层存储设备中读取数据块时,需要判断当前缓存空间是否已满,
若当前缓存管理***已满,需要剔除数据块,具体执行如下:选取唯一数据块缓存地址管理单元中链表尾部节点,该节点指向最久未访问数据块,删除该节点和对应数据块,将指纹索引单元中指向该节点的指针置为空;
所述的步骤S3中,若源地址命中,且指纹索引命中,但对应数据块已被剔除缓存。需要从下层存储设备中读取数据块至缓存,若此时缓存已满,需要剔除最近最久未访问的数据块及其元数据信息。数据块从下层存储设备读入后,在唯一数据块缓存地址管理单元的链表首部MRU位置,创建新的节点,记录该数据块在数据块管理模块中的地址信息。在指纹索引单元映射恢复对唯一数据块缓存地址管理单元的链表中节点的索引。
S5、若读请求到达缓存***,请求源地址在源地址映射索引未命中,即缓存中未存储请求数据块,此时需要将数据块从下层存储设备中读入缓存,对数据块存储前,首先计算该数据块指纹,并映射至指纹索引单元中,若指纹命中且对应数据块存储在缓存中,说明当前数据块为重复冗余数据块,不需要进行二次存储,仅增加对应数据块指纹索引计数即可。同时在源地址管理链表首部增加新的节点,记录请求源地址和指纹信息。并将唯一数据块缓存地址管理单元的链表中指向与请求数据块内容相同数据块地址的节点移动至链表首部MRU位置。
写请求步骤:
R1、写请求到达缓存管理***时,首先计算写入数据块指纹,然后判断当前写入数据块源地址是否已缓存。
R2、若源地址已缓存,判断指纹是否相同,相同则不需要进行写操作,将源地址管理单元的链表和唯一数据块缓存地址管理单元的链表中对应节点移动至链表首部MRU位置即可。
R3、若当前写入数据块源地址已缓存,但新写入的数据块指纹与旧指纹不同或当前写入数据块源地址未缓存,则需要判断与当前写入的新数据块内容相同的数据块是否已在缓存中存储,若已存储,则减少久数据块的指纹索引,增加与当前写入的新数据块内容相同的数据块的指纹索引计数,并更新源地址管理链表和唯一数据块缓存地址管理单元的链表中节点信息。
R4、当请求写入数据块源地址在缓存中命中,但对应数据块为已被剔除的数据块,此时与请求从下层存储设备中读入数据块操作相同;
写操作写入新的数据块或增加新的源地址映射时,与读请求增加新的数据块和映射相同,都需要判断当前数据块空间和源地址映射是否已达到上限,若是需要执行剔除操作,则更新对应元数据信息。
通过上述步骤,本实施例公开的一种内容感知型计算机缓存管理方法,可有效的感知缓存数据块内容,避免源地址不同但内容相同的数据块的存储,从而提高缓存利用率,扩大缓存中数据块映射数量,提高缓存命中率,减少下层缓存设备访问,提高***整体性能。
综上所述,该缓存***改变了传统基于LRU替换算法的缓存元数据组织,使缓存***具有内容感知能力,有效删除了缓存中相同内容的冗余数据块,避免了源地址不同但内容相同的数据块的存储,提高了缓存利用率,扩大了缓存数据块映射数量,提高了缓存命中率,从而提高***的整体性能。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (8)
1.一种内容感知型计算机缓存管理***,其特征在于,所述的缓存管理***包括:元数据管理模块和数据块管理模块,其中,所述的元数据管理模块包括顺序连接的源地址映射索引单元、源地址管理单元、指纹索引单元,唯一数据块缓存地址管理单元,
所述的源地址映射索引单元,负责请求到达缓存管理***时,利用散列表映射,快速判断在源地址管理中是否存在所请求的源地址节点;
所述的源地址管理单元,通过双向链表把数据块源地址在缓存中按LRU次序进行组织排列,链表每个节点记录了数据块地址和指纹信息,链表按照节点访问的LRU规则对节点顺序组织;
所述的指纹索引单元,对去重后唯一数据块指纹进行索引,其中去重过程为,当***写请求数据块到达缓存***时,对数据块计算指纹,将计算后的指纹散列至指纹索引单元中,通过比对是否存在相同指纹,判断当前写入数据块内容是否与已存储的数据块内容相同,若存在相同指纹,则只增加对指纹和数据块的索引而不进行冗余存储;
所述的唯一数据块缓存地址管理单元,对所述的源地址管理单元中存储的数据块进行索引,通过LRU算法按照数据块访问顺序对数据块进行组织记录,以便缓存需要剔除数据块时,快速发现存在在缓存中适合剔除的数据,缓存数据块经过数据去重后源地址与数据块变为多对一的映射关系,唯一数据块缓存地址管理单元的LRU队列,与源地址管理中的LRU队列保持相对一致的关系;
所述的数据块管理模块,负责数据块的统一存储;
基于所述内容感知型计算机缓存管理***的缓存管理方法包括:读请求步骤和写请求步骤,其中,
所述的读请求步骤过程如下:
S1、缓存管理***收到上层***请求读写请求,判断请求源地址在源地址映射索引单元中是否命中,若源地址命中,转至步骤S2,若源地址未命中,转至步骤S5;
S2、若源地址命中,将源地址管理链表节点中存储的指纹映射至指纹索引单元中,判断指纹是否命中;
S3、若指纹索引命中,通过指纹索引单元中节点获取请求数据块存储位置,若指纹索引不命中,从下层设备中将请求数据块读入缓存中;
S4、从下层存储设备中读取数据块时,需要判断当前缓存空间是否已满,若当前缓存管理***已满,需要剔除部分数据块,以腾出存储空间存储新的数据块,具体执行如下:选取唯一数据块缓存地址管理单元中链表尾部节点,该节点指向最久未访问数据块,删除该节点和对应数据块,将指纹索引单元中指向该节点的指针置为空;
S5、若读请求到达缓存***,请求源地址在源地址映射索引未命中,即缓存中未存储请求数据块,此时需要将数据块从下层存储设备中读入缓存,对数据块存储前,首先计算该数据块指纹,并映射至指纹索引单元中,若指纹命中且对应数据块存储在缓存中,则增加对应数据块指纹索引计数,同时在源地址管理链表首部增加新的节点,记录请求源地址和指纹信息,并将唯一数据块缓存地址管理单元的链表中指向与请求数据块内容相同数据块地址的节点移动至链表首部MRU位置;
所述的写请求步骤过程如下:
R1、写请求到达缓存管理***时,首先计算写入数据块指纹,然后判断当前写入数据块源地址是否已缓存;
R2、若源地址已缓存,判断指纹是否相同,则认为缓存中已存在与当前写入数据块内容完全相同的数据块,则不需要进行写操作,将源地址管理单元的链表和唯一数据块缓存地址管理单元的链表中对应节点分别移动至所在链表的首部MRU位置;
R3、若当前写入数据块源地址已缓存,但新写入的数据块指纹与旧指纹不同或当前写入数据块源地址未缓存,则需要判断与当前写入的新数据块内容相同的数据块是否已在缓存中存储,若已存储,则减少旧数据块的指纹索引,增加与当前写入的新数据块内容相同的数据块的指纹索引计数,并更新源地址管理链表和唯一数据块缓存地址管理单元的链表中节点信息;
R4、当请求写入数据块源地址在缓存中命中,但对应数据块以从缓存中被剔除,此时与请求未命中从下层存储设备中读入数据块操作相同。
2.根据权利要求1所述的一种内容感知型计算机缓存管理***,其特征在于,所述的源地址映射索引单元中数据组织形式如下:
以散列表的形式组织源地址到源地址管理链表的映射关系,上层读写请求到达缓存管理***后,以O(1)的时间复杂度判断请求数据的源地址是否存在于源地址管理链表中,从而判断缓存是否命中。
3.根据权利要求1所述的一种内容感知型计算机缓存管理***,其特征在于,所述的源地址管理单元中数据组织形式如下:
以双向链表的形式管理源地址节点,节点中存放源地址、源地址对应数据块指纹和指向前后源地址节点的指针信息,当请求源地址通过源地址映射索引映射至源地址管理链表中的某一节点时,即缓存命中,根据LRU算法,将命中源地址节点移动至链表首部MRU位置,以维护链表的LRU特性,当源地址未命中时,从下层存储设备获取数据,并构建包含请求源地址信息的新的链表节点至链表首部LRU位置。
4.根据权利要求1所述的一种内容感知型计算机缓存管理***,其特征在于,所述的指纹索引单元中数据组织形式如下:
以散列表的形式组织数据块指纹到唯一数据块缓存地址链表节点的映射关系,同时每个指纹节点记录当前指纹被多少源地址索引的计数信息,当请求源地址通过源地址映射索引映射在源地址管理链表中命中某一节点时,把源地址管理链表节点获取的数据块指纹信息,映射至指纹索引单元中,查找对应唯一数据块地址链表节点信息,并判断该链表节点是否存在。
5.根据权利要求1所述的一种内容感知型计算机缓存管理***,其特征在于,所述的步骤S3中,若源地址命中,且指纹索引命中,但对应数据块已被剔除缓存,则从下层存储设备中读取数据块至缓存,若此时缓存已满,则剔除最近最久未访问的数据块及其元数据信息;数据块从下层存储设备读入后,在唯一数据块缓存地址管理单元的链表首部MRU位置,创建新的节点,记录该数据块在数据块管理模块中的地址信息,在指纹索引单元映射恢复对唯一数据块缓存地址管理单元的链表中节点的索引。
6.根据权利要求1所述的一种内容感知型计算机缓存管理***,其特征在于,计算请求写入数据块指纹信息,并判断请求源地址在源地址管理链表中是否命中的执行算法如下:
将数据块指纹信息映射至指纹索引单元中,若对应指纹信息已存在且对应数据块在缓存中,则当前写入数据块为冗余数据块,增加指纹索引中对应指纹索引计数,并将源地址管理链表和唯一数据块缓存地址管理单元的链表中更新对应节点至链表首部MRU位置,使新访问的源地址及其数据块在源地址管理链表和唯一数据块缓存地址管理单元的链表中保持相对同步关系;若对应指纹信息存在,但指纹对应数据块已替换出缓存,则需要将新的数据块写入缓存,并重新恢复元数据映射关系,并更新相关链表信息;若写入数据块时缓存已达到存储上限,需要执行数据块剔除操作。
7.根据权利要求1所述的一种内容感知型计算机缓存管理***,其特征在于,所述的缓存管理方法中,***新数据块的执行算法如下:
新数据块写入缓存管理***前,需要判源地址管理链表中节点数量是否已达到用户设定上限,若已达到,需要剔除最近最久未访问的源地址节点,即源地址管理链表尾部节点;然后,将节点内指纹信息映射至指纹索引中,减少对应指纹的索引计数;如果指纹索引单元计数减为零,则删除指纹索引单元中该指纹信息,唯一数据块缓存地址管理单元中对应节点信息和数据块管理模块中对应数据块。
8.根据权利要求1所述的一种内容感知型计算机缓存管理***,其特征在于,所述的缓存管理方法中,剔除数据块并更新元数据信息的执行算法如下:
新数据块写入缓存前,数据块管理模块存储的数据块已满,需要从唯一数据块缓存地址管理单元的链表中选取尾部节点,并删除该节点所指数据块;然后,从链表删除该尾部节点,保留指纹索引单元中该数据块的指纹信息,将指纹索引单元中指向唯一数据块缓存地址管理单元的链表尾部节点的指纹置为空。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810555251.4A CN109002400B (zh) | 2018-06-01 | 2018-06-01 | 一种内容感知型计算机缓存管理***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810555251.4A CN109002400B (zh) | 2018-06-01 | 2018-06-01 | 一种内容感知型计算机缓存管理***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109002400A CN109002400A (zh) | 2018-12-14 |
CN109002400B true CN109002400B (zh) | 2023-05-05 |
Family
ID=64573422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810555251.4A Active CN109002400B (zh) | 2018-06-01 | 2018-06-01 | 一种内容感知型计算机缓存管理***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109002400B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109471843B (zh) * | 2018-12-24 | 2021-08-10 | 郑州云海信息技术有限公司 | 一种元数据缓存方法、***及相关装置 |
CN111737164A (zh) * | 2019-12-31 | 2020-10-02 | 珠海艾派克微电子有限公司 | 访问请求响应方法、耗材芯片以及存储介质 |
CN114968103B (zh) * | 2022-05-27 | 2024-06-18 | 厦门大学 | 一种基于持久性内存的指纹存储方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8285918B2 (en) * | 2009-12-11 | 2012-10-09 | Nimble Storage, Inc. | Flash memory cache for data storage device |
US9292530B2 (en) * | 2011-06-14 | 2016-03-22 | Netapp, Inc. | Object-level identification of duplicate data in a storage system |
CN102663086B (zh) * | 2012-04-09 | 2014-05-07 | 华中科技大学 | 一种数据块索引的检索方法 |
CN103473150B (zh) * | 2013-08-28 | 2016-08-31 | 华中科技大学 | 一种用于数据去重***中的碎片重写方法 |
CN104050103B (zh) * | 2014-06-06 | 2017-07-18 | 华中科技大学 | 一种用于数据恢复的缓存替换方法与*** |
CN105095113B (zh) * | 2015-07-21 | 2018-06-29 | 浪潮(北京)电子信息产业有限公司 | 一种缓存管理方法和*** |
CN106066896B (zh) * | 2016-07-15 | 2021-06-29 | 中国人民解放军理工大学 | 一种应用感知的大数据重复删除存储***及方法 |
CN106569745B (zh) * | 2016-10-25 | 2019-07-19 | 暨南大学 | 一种内存过载下面向重复数据删除的内存优化*** |
CN106886370B (zh) * | 2017-01-24 | 2019-12-06 | 华中科技大学 | 一种基于ssd去重技术的数据安全删除方法及*** |
-
2018
- 2018-06-01 CN CN201810555251.4A patent/CN109002400B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109002400A (zh) | 2018-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010102B2 (en) | Caching of metadata for deduplicated luns | |
US9465554B2 (en) | Tiered caching and migration in differing granularities | |
US8719501B2 (en) | Apparatus, system, and method for caching data on a solid-state storage device | |
US9411742B2 (en) | Use of differing granularity heat maps for caching and migration | |
US9779027B2 (en) | Apparatus, system and method for managing a level-two cache of a storage appliance | |
US9430404B2 (en) | Thinly provisioned flash cache with shared storage pool | |
US9489239B2 (en) | Systems and methods to manage tiered cache data storage | |
US9104327B2 (en) | Fast translation indicator to reduce secondary address table checks in a memory device | |
US10740251B2 (en) | Hybrid drive translation layer | |
US9772949B2 (en) | Apparatus, system and method for providing a persistent level-two cache | |
US10409728B2 (en) | File access predication using counter based eviction policies at the file and page level | |
KR101297442B1 (ko) | 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템 | |
CN109002400B (zh) | 一种内容感知型计算机缓存管理***及方法 | |
CN107562806B (zh) | 混合内存文件***的自适应感知加速方法及*** | |
JP2017162194A (ja) | データ管理プログラム、データ管理装置、及びデータ管理方法 | |
US20140359228A1 (en) | Cache allocation in a computerized system | |
US10579541B2 (en) | Control device, storage system and method | |
US20140115246A1 (en) | Apparatus, system and method for managing empty blocks in a cache | |
US20210263648A1 (en) | Method for managing performance of logical disk and storage array | |
US10922228B1 (en) | Multiple location index |
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 |