CN109002400A - 一种内容感知型计算机缓存管理系统及方法 - Google Patents

一种内容感知型计算机缓存管理系统及方法 Download PDF

Info

Publication number
CN109002400A
CN109002400A CN201810555251.4A CN201810555251A CN109002400A CN 109002400 A CN109002400 A CN 109002400A CN 201810555251 A CN201810555251 A CN 201810555251A CN 109002400 A CN109002400 A CN 109002400A
Authority
CN
China
Prior art keywords
data block
source address
fingerprint
chained list
node
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
CN201810555251.4A
Other languages
English (en)
Other versions
CN109002400B (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.)
Jinan University
Original Assignee
Jinan University
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 Jinan University filed Critical Jinan University
Priority to CN201810555251.4A priority Critical patent/CN109002400B/zh
Publication of CN109002400A publication Critical patent/CN109002400A/zh
Application granted granted Critical
Publication of CN109002400B publication Critical patent/CN109002400B/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/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/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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)
  • 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 (9)

1.一种内容感知型计算机缓存管理系统,其特征在于,所述的缓存管理系统包括:元数据管理模块和数据块管理模块,其中,所述的元数据管理模块包括顺序连接的源地址映射索引单元、源地址管理单元、指纹索引单元,唯一数据块缓存地址管理单元,
所述的源地址映射索引单元,负责请求到达缓存管理系统时,利用散列表映射,快速判断在源地址管理中是否存在所请求的源地址节点;
所述的源地址管理单元,通过双向链表把数据块源地址在缓存中按LRU次序进行组织排列,链表每个节点记录了数据块地址和指纹信息,链表按照节点访问的LRU规则对节点顺序组织;
所述的指纹索引单元,对去重后唯一数据块指纹进行索引,其中去重过程为,当系统写请求数据块到达缓存系统时,对数据块计算指纹,将计算后的指纹散列至指纹索引单元中,通过比对是否存在相同指纹,判断当前写入数据块内容是否与已存储的数据块内容相同,若存在相同指纹,则只增加对指纹和数据块的索引而不进行冗余存储;
所述的唯一数据块缓存地址管理单元,对所述的源地址管理单元中存储的数据块进行索引,通过LRU算法按照数据块访问顺序对数据块进行组织记录,以便缓存需要剔除数据块时,快速发现存在在缓存中适合剔除的数据,缓存数据块经过数据去重后源地址与数据块变为多对一的映射关系,唯一数据块缓存地址管理单元的LRU队列,与源地址管理中的LRU队列保持相对一致的关系;
所述的数据块管理模块,负责数据块的统一存储。
2.根据权利要求1所述的一种内容感知型计算机缓存管理系统,其特征在于,所述的源地址映射索引单元中数据组织形式如下:
以散列表的形式组织源地址到源地址管理链表的映射关系,上层读写请求到达缓存管理系统后,以O(1)的时间复杂度判断判断请求数据的源地址是否存在于源地址管理链表中,从而判断缓存是否命中。
3.根据权利要求1所述的一种内容感知型计算机缓存管理系统,其特征在于,所述的源地址管理单元中数据组织形式如下:
以双向链表的形式管理源地址节点,节点中存放源地址、源地址对应数据块指纹和指向前后源地址节点的指针信息,当请求源地址通过源地址映射索引映射至源地址管理链表中的某一节点时,即缓存命中,根据LRU算法,将命中源地址节点移动至链表首部MRU位置,以维护链表的LRU特性,当源地址未命中时,从下层存储设备获取数据,并构建包含请求源地址信息的新的链表节点至链表首部LRU位置。
4.根据权利要求1所述的一种内容感知型计算机缓存管理系统,其特征在于,所述的指纹索引单元中数据组织形式如下:
以散列表的形式组织数据块指纹到唯一数据块缓存地址链表节点的映射关系,同时每个指纹节点记录当前指纹被多少源地址索引的计数信息,当请求源地址通过源地址映射索引映射在源地址管理链表中命中某一节点时,把源地址管理链表节点获取的数据块指纹信息,映射至指纹索引单元中,查找对应唯一数据块地址链表节点信息,并判断该链表节点是否存在。
5.一种内容感知型计算机缓存管理方法,其特征在于,所述的缓存管理方法包括:读请求步骤和写请求步骤,其中,
所述的读请求步骤过程如下:
S1、缓存管理系统收到上层系统请求读写请求,判断请求源地址在源地址映射索引单元中是否命中,若源地址命中,转至步骤S2,若源地址未命中,转至步骤S5;
S2、若源地址命中,将源地址管理链表节点中存储的指纹映射至指纹索引单元中,判断指纹是否命中;
S3、若指纹索引命中,通过指纹索引单元中节点获取请求数据块存储位置,若指纹索引不命中,从下层设备中将请求数据块读入缓存中;
S4、从下层存储设备中读取数据块时,需要判断当前缓存空间是否已满,若当前缓存管理系统已满,需要剔除部分数据块,以腾出存储空间存储新的数据块,具体执行如下:选取唯一数据块缓存地址管理单元中链表尾部节点,该节点指向最久未访问数据块,删除该节点和对应数据块,将指纹索引单元中指向该节点的指针置为空;
S5、若读请求到达缓存系统,请求源地址在源地址映射索引未命中,即缓存中未存储请求数据块,此时需要将数据块从下层存储设备中读入缓存,对数据块存储前,首先计算该数据块指纹,并映射至指纹索引单元中,若指纹命中且对应数据块存储在缓存中,则增加对应数据块指纹索引计数,同时在源地址管理链表首部增加新的节点,记录请求源地址和指纹信息,并将唯一数据块缓存地址管理单元的链表中指向与请求数据块内容相同数据块地址的节点移动至链表首部MRU位置;
所述的写请求步骤过程如下:
R1、写请求到达缓存管理系统时,首先计算写入数据块指纹,然后判断当前写入数据块源地址是否已缓存;
R2、若源地址已缓存,判断指纹是否相同,则认为缓存中已存在与当前写入数据块内容完全相同的数据块,则不需要进行写操作,将源地址管理单元的链表和唯一数据块缓存地址管理单元的链表中对应节点分别移动至所在链表的首部MRU位置;
R3、若当前写入数据块源地址已缓存,但新写入的数据块指纹与旧指纹不同或当前写入数据块源地址未缓存,则需要判断与当前写入的新数据块内容相同的数据块是否已在缓存中存储,若已存储,则减少旧数据块的指纹索引,增加与当前写入的新数据块内容相同的数据块的指纹索引计数,并更新源地址管理链表和唯一数据块缓存地址管理单元的链表中节点信息;
R4、当请求写入数据块源地址在缓存中命中,但对应数据块以从缓存中被剔除,此时与请求未命中从下层存储设备中读入数据块操作相同。
6.根据权利要求5所述的一种内容感知型计算机缓存管理方法,其特征在于,所述的步骤S3中,若源地址命中,且指纹索引命中,但对应数据块已被剔除缓存,则从下层存储设备中读取数据块至缓存,若此时缓存已满,则剔除最近最久未访问的数据块及其元数据信息;数据块从下层存储设备读入后,在唯一数据块缓存地址管理单元的链表首部MRU位置,创建新的节点,记录该数据块在数据块管理模块中的地址信息,在指纹索引单元映射恢复对唯一数据块缓存地址管理单元的链表中节点的索引。
7.根据权利要求5所述的一种内容感知型计算机缓存管理方法,其特征在于,计算请求写入数据块指纹信息,并判断请求源地址在源地址管理链表中是否命中的执行算法如下:
将数据块指纹信息映射至指纹索引单元中,若对应指纹信息已存在且对应数据块在缓存中,则当前写入数据块为冗余数据块,增加指纹索引中对应指纹索引计数,并将源地址管理链表和唯一数据块缓存地址管理单元的链表中更新对应节点至链表首部MRU位置,使新访问的源地址及其数据块在源地址管理链表和唯一数据块缓存地址管理单元的链表中保持相对同步关系;若对应指纹信息存在,但指纹对应数据块已替换出缓存,则需要将新的数据块写入缓存,并重新恢复元数据映射关系,并更新相关链表信息;若写入数据块时缓存已达到存储上限,需要执行数据块剔除操作。
8.根据权利要求5所述的一种内容感知型计算机缓存管理方法,其特征在于,所述的缓存管理方法中,插入新数据块的执行算法如下:
新数据块写入缓存管理系统前,需要判源地址管理链表中节点数量是否已达到用户设定上限,若已达到,需要剔除最近最久未访问的源地址节点,即源地址管理链表尾部节点;然后,将节点内指纹信息映射至指纹索引中,减少对应指纹的索引计数;如果指纹索引单元计数减为零,则删除指纹索引单元中该指纹信息,唯一数据块缓存地址管理单元中对应节点信息和数据块管理模块中对应数据块。
9.根据权利要求5所述的一种内容感知型计算机缓存管理方法,其特征在于,所述的缓存管理方法中,剔除数据块并更新元数据信息的执行算法如下:
新数据块写入缓存前,数据块管理模块存储的数据块已满,需要从唯一数据块缓存地址管理单元的链表中选取尾部节点,并删除该节点所指数据块;然后,从链表删除该尾部节点,保留指纹索引单元中该数据块的指纹信息,将指纹索引单元中指向唯一数据块缓存地址管理单元的链表尾部节点的指纹置为空。
CN201810555251.4A 2018-06-01 2018-06-01 一种内容感知型计算机缓存管理系统及方法 Active CN109002400B (zh)

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 true CN109002400A (zh) 2018-12-14
CN109002400B 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109471843A (zh) * 2018-12-24 2019-03-15 郑州云海信息技术有限公司 一种元数据缓存方法、系统及相关装置
WO2022002284A1 (zh) * 2019-12-31 2022-01-06 珠海艾派克微电子有限公司 访问请求响应方法、耗材芯片以及存储介质
CN114968103A (zh) * 2022-05-27 2022-08-30 厦门大学 一种基于持久性内存的指纹存储方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110145473A1 (en) * 2009-12-11 2011-06-16 Nimble Storage, Inc. Flash Memory Cache for Data Storage Device
CN102663086A (zh) * 2012-04-09 2012-09-12 华中科技大学 一种数据块索引的检索方法
US20120323860A1 (en) * 2011-06-14 2012-12-20 Netapp, Inc. Object-level identification of duplicate data in a storage system
CN103473150A (zh) * 2013-08-28 2013-12-25 华中科技大学 一种用于数据去重系统中的碎片重写方法
CN104050103A (zh) * 2014-06-06 2014-09-17 华中科技大学 一种用于数据恢复的缓存替换方法与系统
CN105095113A (zh) * 2015-07-21 2015-11-25 浪潮(北京)电子信息产业有限公司 一种缓存管理方法和系统
CN106066896A (zh) * 2016-07-15 2016-11-02 中国人民解放军理工大学 一种应用感知的大数据重复删除存储系统及方法
CN106569745A (zh) * 2016-10-25 2017-04-19 暨南大学 一种内存过载下面向重复数据删除的内存优化系统
CN106886370A (zh) * 2017-01-24 2017-06-23 华中科技大学 一种基于ssd去重技术的数据安全删除方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110145473A1 (en) * 2009-12-11 2011-06-16 Nimble Storage, Inc. Flash Memory Cache for Data Storage Device
US20120323860A1 (en) * 2011-06-14 2012-12-20 Netapp, Inc. Object-level identification of duplicate data in a storage system
CN102663086A (zh) * 2012-04-09 2012-09-12 华中科技大学 一种数据块索引的检索方法
CN103473150A (zh) * 2013-08-28 2013-12-25 华中科技大学 一种用于数据去重系统中的碎片重写方法
CN104050103A (zh) * 2014-06-06 2014-09-17 华中科技大学 一种用于数据恢复的缓存替换方法与系统
CN105095113A (zh) * 2015-07-21 2015-11-25 浪潮(北京)电子信息产业有限公司 一种缓存管理方法和系统
CN106066896A (zh) * 2016-07-15 2016-11-02 中国人民解放军理工大学 一种应用感知的大数据重复删除存储系统及方法
CN106569745A (zh) * 2016-10-25 2017-04-19 暨南大学 一种内存过载下面向重复数据删除的内存优化系统
CN106886370A (zh) * 2017-01-24 2017-06-23 华中科技大学 一种基于ssd去重技术的数据安全删除方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109471843A (zh) * 2018-12-24 2019-03-15 郑州云海信息技术有限公司 一种元数据缓存方法、系统及相关装置
CN109471843B (zh) * 2018-12-24 2021-08-10 郑州云海信息技术有限公司 一种元数据缓存方法、系统及相关装置
WO2022002284A1 (zh) * 2019-12-31 2022-01-06 珠海艾派克微电子有限公司 访问请求响应方法、耗材芯片以及存储介质
CN114968103A (zh) * 2022-05-27 2022-08-30 厦门大学 一种基于持久性内存的指纹存储方法

Also Published As

Publication number Publication date
CN109002400B (zh) 2023-05-05

Similar Documents

Publication Publication Date Title
CN105872040B (zh) 一种利用网关节点缓存优化分布式块存储写性能的方法
US11010102B2 (en) Caching of metadata for deduplicated luns
US9405473B2 (en) Dense tree volume metadata update logging and checkpointing
US10564850B1 (en) Managing known data patterns for deduplication
KR101717644B1 (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
US9582421B1 (en) Distributed multi-level caching for storage appliances
US8880787B1 (en) Extent metadata update logging and checkpointing
US10108547B2 (en) High performance and memory efficient metadata caching
US9146877B2 (en) Storage system capable of managing a plurality of snapshot families and method of snapshot family based read
US9268502B2 (en) Dense tree volume metadata organization
CN107992269B (zh) 一种基于去重ssd的事务写入方法
CN107491523A (zh) 存储数据对象的方法及装置
CN110321301A (zh) 一种数据处理的方法及装置
US20130290636A1 (en) Managing memory
CN109002400A (zh) 一种内容感知型计算机缓存管理系统及方法
CN110147331A (zh) 缓存数据处理方法、系统及可读存储介质
CN110196818A (zh) 缓存数据的方法、缓存设备和存储系统
US11099998B2 (en) Method and device for optimization of data caching
KR101806394B1 (ko) 모바일 dbms환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법
CN103077099A (zh) 一种块级快照系统及基于该系统的用户读写方法
CN108664217A (zh) 一种降低固态盘存储系统写性能抖动的缓存方法及系统
CN111443874A (zh) 基于内容感知的固态盘内存缓存管理方法、设备及固态盘
KR101968474B1 (ko) 플래시 캐시에서 트랜잭션 지원 방법 및 장치
KR100236675B1 (ko) 객체지향 데이터베이스 시스템을 위한 비용기반 객체 버퍼 교체 방법
CN116974472A (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