CN111221647A - 一种分布式存储缓存回收的优化算法及装置 - Google Patents

一种分布式存储缓存回收的优化算法及装置 Download PDF

Info

Publication number
CN111221647A
CN111221647A CN201911357501.4A CN201911357501A CN111221647A CN 111221647 A CN111221647 A CN 111221647A CN 201911357501 A CN201911357501 A CN 201911357501A CN 111221647 A CN111221647 A CN 111221647A
Authority
CN
China
Prior art keywords
generation
memory page
hash table
global
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.)
Granted
Application number
CN201911357501.4A
Other languages
English (en)
Other versions
CN111221647B (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.)
Tianjin Zhongke Shuguang Storage Technology Co Ltd
Original Assignee
Tianjin Zhongke Shuguang Storage Technology Co Ltd
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 Tianjin Zhongke Shuguang Storage Technology Co Ltd filed Critical Tianjin Zhongke Shuguang Storage Technology Co Ltd
Priority to CN201911357501.4A priority Critical patent/CN111221647B/zh
Publication of CN111221647A publication Critical patent/CN111221647A/zh
Application granted granted Critical
Publication of CN111221647B publication Critical patent/CN111221647B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种分布式存储缓存回收的优化算法,包括将全局链表改写为哈希表,并将hash函数设置为顺序插入,增设start和end变量分别标示哈希表中当前时刻相当于原全局双向链表的头部和尾部;利用start和end计数顺序进行插入和回收流程;设置用于标识内存页面的修改时间的generation机制,在所述插入和回收流程中,更新内存页面;本发明通过将全局双向链表数据结构更改为哈希表数据结构,大大提升了并发系统处理内存页面的速度;并通过generation机制和“start&end”双计数机制保证lru算法的全局保序性;本发明还提供了一种用于实施该方法的装置,解决了分布式系统缓存回收效率低的问题;在各种读写场景下,尤其是4KB随机读写场景下也可以有不错的性能表现。

Description

一种分布式存储缓存回收的优化算法及装置
技术领域
本发明涉及数据缓存回收技术领域,具体而言,为一种分布式存储缓存回收的优化算法及装置。
背景技术
目前业界比较通用的缓存回收算法为加全局锁的链表实现的lru算法,其内存页面回收缓慢,尤其是在4KB随机读写的场景下性能急剧下降。lru算法中,由于内存页面(内存管理的最小单位)的添加,回收和删除均需要对全局双向链表加全局锁操作(加锁是为了在并发情况下保证数据读写顺序);即
所有的内存页面均存放在一个双向链表上;将内存页面添加到链表,回收和删除均需要加上全局lru锁保护;lru锁保护下的资源,可以避免被其他并发线程访问和更新。但代价是,需要访问和更新这些资源的其他并发线程,将不得不等待lru锁保护下的线程完成运行之后,再拿锁执行自己的程序。这导致并行系统在这里串行化运行,极大的降低了并行系统的效率。
所有的资源均在一个链表上,每当有线程并发访问全局双向链表,就会发生后来者等待锁的情况;冲突域为全局。
有鉴于此,特提出本发明。
发明内容
针对现有技术中的缺陷,本发明提供一种分布式存储缓存回收的优化算法及装置,以利于提高缓存回收效率。
为了实现上述目的,本发明的技术方案为:
一种分布式存储缓存回收的优化算法,包括
将全局链表改写为哈希表,并将hash函数设置为顺序插入,增设start和end变量分别标示哈希表中当前时刻相当于原全局双向链表的头部和尾部;
利用start和end计数顺序进行插入和回收流程;
设置用于标识内存页面的修改时间的generation机制,在所述插入和回收流程中,更新内存页面。
一个优选实施例中,上述的分布式存储缓存回收的优化算法,所述哈希表的表头个数为N,N为正整数,以供并发线程对应哈希表头的锁操作内部的内存页面。
一个优选实施例中,上述的分布式存储缓存回收的优化算法,所述内存页面结构体上设置指针指向当前内存页面所在的哈希表头。
一个优选实施例中,上述的分布式存储缓存回收的优化算法,所述generation机制包括
为每个内存页面增设全局计数generation以标识其在全局的时序位置;且所述generation根据start和end计数获得。
一个优选实施例中,上述的分布式存储缓存回收的优化算法,所述generation根据start和end计数获得,包括
start和end通过取模哈希表头最大值得到当前所在哈希表头索引值,generation根据插入次数递增,generation越小,等同于插入该链表的时间越老,即越需要被回收;
回收时读取end计数,得到generation计数,找到对应的哈希表头从表头内双向链表尾部开始回收,遇到小于全局计数generation的回收;否则退出。
另一方面,本发明还提供了一种分布式存储缓存回收装置,包括处理器和存储器,存储器中存储有程序,程序被处理器运行时,执行
改写全局链表为哈希表,并将hash函数设置为顺序插入,增设start和end变量分别标示哈希表中当前时刻相当于原全局双向链表的“头部”和“尾部”;
利用start和end计数顺序进行插入和回收流程;
设置用于标识内存页面的修改时间的generation机制,在所述插入和回收流程中,更新内存页面。
一个优选实施例中,上述的分布式存储缓存回收装置,所述哈希表头个数为N,N为正整数,以供并发线程对应哈希表头的锁操作内部的内存页面。
一个优选实施例中,上述的分布式存储缓存回收装置,所述内存页面结构体上设置指针指向当前内存页面所在的哈希表头。
一个优选实施例中,上述的分布式存储缓存回收装置,所述generation机制包括
为每个内存页面增设全局计数generation,以标识其在全局的时序位置;且所述generation根据start和end计数获得。
一个优选实施例中,上述的分布式存储缓存回收装置,所述generation根据start和end计数获得,包括
start和end通过取模哈希表头最大值得到当前所在哈希表头索引值,generation根据插入次数递增,generation越小,等同于插入该链表的时间越老,即越需要被回收;
回收时读取end计数,得到generation计数,找到对应的哈希表头从表头内双向链表尾部开始回收,遇到小于全局计数generation的回收;否则退出。
本发明的有益效果为:
通过将全局双向链表数据结构更改为哈希表数据结构,大大提升了并发系统处理内存页面(无论是插入还是回收)的速度;并通过generation机制和“start&end”双计数机制保证lru算法的全局保序性;本发明还提供了一种用于实施该方法的装置,解决了分布式系统缓存回收效率低的问题;在各种读写场景下,尤其是4KB随机读写场景下也可以有不错的性能表现。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本发明方法的一个具体实施例中插入与回收流程的示意图;
图2为图1中所示插入流程的流程图;
图3为图1中所示回收流程的流程图;
图4为本发明一个具体实施例中删除流程的流程图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
首先对本发明中涉及的技术术语进行解释:
Figure BDA0002336334650000041
实施例1
一种分布式存储缓存回收的优化算法,包括
将全局链表改写为哈希表,并将hash函数设置为顺序插入,增设start和end变量分别标示哈希表中当前时刻相当于原全局双向链表的“头部”和“尾部”;
利用start和end计数顺序进行插入和回收流程;
设置generation机制,在所述插入和回收流程中,更新内存页面。
本发明方法中,将lru算法的全局双向链表数据结构更改为哈希表数据结构,该结构大大提升了并发系统处理内存页面(无论是插入还是回收)的速度;同时设计了generation机制和“start&end”双计数机制保证lru算法的全局保序性。
具体的,本发明中:
全局双向链表中,不同位置的内存页面代表了其最近使用程度。越靠近头部的内存页面表示其调用时间越靠近当前时间,越靠近尾部的表示其调用时间离当前时间越远;为了保持这种特性,本发明中,将全局链表改写为哈希表,同时将hash函数设置为顺序插入,增设start和end变量分别标示哈希表中当前时刻相当于原全局双向链表的“头部”和“尾部”;插入和拿取(即读请求)均根据能标识“头部”和“尾部”哈希表头位置的变量start和end进行。
并发线程加对应哈希表头的锁操作内部的内存页面:哈希表头个数为N,原来一个全局双向链表就会被平均等分为N份;原来需要等待全局lru锁的线程,如果操作的不是同一个哈希表头内的内存页面,就可以拿取对应表头的锁操作对应表头内部的内存页面,而不必等待。N个表头可以最多同时供N个线程去操作,保证了系统的高并发性。
同时为了保证可以调整单个内存页面在内部双向链表中的位置,在内存页面结构体上新增指针指向当前内存页面所在的哈希表头;该变量的修改在哈希表头的锁内进行,可由相应锁保护。
本发明方法中,利用start和end计数顺序进行插入和回收流程;由于lru算法最为显著的特点就是链表尾部的内存页面即为最老最少被使用的,也就是最需要被回收的页面,下面称这种特性为lru算法的全局保序性。
为了不破坏全局双向链表的全局保序性,本发明设置了generation机制,为每个内存页面增设全局计数generation以标识其在全局的时序位置。
所述generation机制包括:generation根据start和end计数直接获得;start和end通过取模哈希表头最大值可以得到当前所在哈希表头索引值,generation根据插入次数递增,generation越小,等同于插入该链表的时间越老,也即越需要被回收。回收时读取end计数,得到generation计数,找到对应的表头从表头内双向链表尾部开始回收,遇到小于全局计数generation的回收,否则退出。重复该步骤即可像lru算法从链表尾部回收内存页面一样保证HLRU算法也能回收到最老最少被用到的内存页面。
以图1、图2所示实施例说明,插入流程包括:
S21.开始通过start计数获得当前hash桶索引(即哈希表头索引)和当前时刻generation,start计数加1;
起始start和end计数均为0,指针指向哈希表头0,访问内存页面1,需将其插入hlru表(即hash桶内双向链表)中;
读取start计数,将其值赋给generation(未做取模运算的值)并加1,更新start计数,start=1。
S22.拿取哈希表头锁,插入内存页面至桶内双向链表,同时更新其generation;
读取值0与哈希表头最大值3做取模运算得0,找到应该插入的哈希表头0,将内存页面1插入哈希表头0的双向链表的头部,更新内存页面1的generation值为0。
S23.访问内存页面7,重复插入流程步骤S21.~S23.,最终如图1所示将内存页面7插入哈希表头0。
S24.确定所有项插入完毕,释放哈希表头锁。
其中,首先是第4个被访问的内存页面3,取模以后会插入最开始的哈希表头0,但是同时start计数继续增加;这是为了保证generation始终为全局递增变量,保证lru算法的全局有序性。
其次是内存页面1被插入哈希表头0时加表头锁,这时第二个被访问的内存页面7可以不用等待放锁,直接插入顺序的哈希表头1;本发明优化算法一定可以保证高并发情况下不用等待锁的插入,对比原lru算法,开销仅为加锁和放锁,几乎不存在等待锁的开销。
参考图3,回收流程包括:
S31.开始通过end技术获得当前hash桶索引和当前generation计数,end计数加1;
开始从hlru数据结构(即hlru表)的“尾部”回收内存页面。读取当前end计数为0,generation=0。读到的值0与最大哈希表头数3取模得0。
S32.拿取哈希表头锁,从尾部遍历其中的双向链表,比较链表上的各个内存页面的generation与当前generation值0的大小,小于等于当前generation值的内存页面将被回收;
找到哈希表头0,从尾部遍历其中的双向链表,比较链表上的各个内存页面的generation与当前generation值0的大小,小于等于当前generation值的内存页面将被回收,即内存页面1。同时由于内存页面3的generation=3,大于当前generation的值0,所以不会被回收。
S33.检查是否满足回收停止的条件,如果不满足,继续重复回收流程步骤S31.~S32.即可。
S34.内存页面大于当前generation的值,释放哈希表头锁,停止回收。
如图4所示的,删除流程包括:
S41.开始从内存页面获取所在桶指针(哈希表头指针);
S42.加哈希表头锁;
S43.从桶内双向链表上删除内存页面数据;
S44.释放哈希表头锁。
结束。
本发明解决了分布式系统缓存回收效率低的问题。在各种读写场景下,尤其是4KB随机读写场景下也可以有不错的性能表现。
例如如果采用1024个哈希表头分别保护各自的内部双向链表,则原先由一把锁保护的全局资源,在本发明中被分为了1024组资源。只要线程不并发访问同一个表头内的双向链表上的内存页面,就不会产生冲突,后来线程就不会发生等待释放锁的情况,访问资源的冲突域缩小至原来的千分之一。
理想情况下,没有发生任何冲突,所有的线程都会访问没有其他线程访问的哈希表头,则和原有lru算法相比,完全节省了所有线程等待的时间。
可以这么理解,银行办理业务,原先只有一个窗口,所有人都需要等待前面的人办理完业务,而现在有1024个窗口,可供1024个人同时办理业务无需等待;当然如果同时1024个人都在办理业务,那第1025个人就需要等待最早办理完业务的那个窗口,但是等待的时间已经比原先只有一个窗口的时间大大的缩短了。
实施例2
本发明还提供了一种分布式存储缓存回收的装置,包括处理器和存储器,存储器中存储有程序,程序被处理器运行时,执行
改写全局链表为哈希表,并将hash函数设置为顺序插入,增设start和end变量分别标示哈希表中当前时刻相当于原全局双向链表的“头部”和“尾部”;
利用start和end计数顺序进行插入和回收流程;
设置generation机制,在所述插入和回收流程中,更新内存页面。
本发明装置用于实施本发明上述方法步骤,因此该装置的程序执行步骤原理可参考上述实施例1的阐述。
本发明中,将全局链表改写为哈希表,同时将hash函数设置为顺序插入,增设start和end变量分别标示哈希表中当前时刻相当于原全局双向链表的“头部”和“尾部”;插入和拿取(即读请求)均根据能标识“头部”和“尾部”哈希表头位置的变量start和end进行。
其中所述哈希表头个数为N,N为正整数,以供并发线程对应哈希表头的锁操作内部的内存页面。原来需要等待全局lru锁的线程,如果操作的不是同一个哈希表头内的内存页面,就可以拿取对应表头的锁操作对应表头内部的内存页面,而不必等待。N个表头可以最多同时供N个线程去操作,保证了系统的高并发性。
同时为了保证可以调整单个内存页面在内部双向链表中的位置,在内存页面结构体上新增指针指向当前内存页面所在的哈希表头;该变量的修改在哈希表头的锁内进行,可由相应锁保护。
本发明方法中,利用start和end计数顺序进行插入和回收流程;由于lru算法最为显著的特点就是链表尾部的内存页面即为最老最少被使用的,也就是最需要被回收的页面,下面称这种特性为lru算法的全局保序性。
为了不破坏全局双向链表的全局保序性,本发明设置了generation机制,为每个内存页面增设全局计数generation标识其在全局的时序位置。
所述generation机制包括:generation根据start和end计数直接获得;start和end通过取模哈希表头最大值可以得到当前所在哈希表头索引值,generation根据插入次数递增,generation越小,等同于插入该链表的时间越老,也即越需要被回收。回收时读取end计数,得到generation计数,找到对应的表头从表头内双向链表尾部开始回收,遇到小于全局计数generation的回收,否则退出。重复该步骤即可像lru算法从链表尾部回收内存页面一样保证HLRU算法也能回收到最老最少被用到的内存页面。
本发明装置执行插入流程、回收流程以及删除流程的步骤可参考上述实施例1的描述,此处不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (10)

1.一种分布式存储缓存回收的优化算法,其特征在于,包括
将全局链表改写为哈希表,并将哈希函数设置为顺序插入,增设start和end变量分别标示哈希表中当前时刻相当于原全局双向链表的头部和尾部;
利用start和end计数顺序进行插入和回收流程;
设置用于标识内存页面的修改时间的generation机制,在所述插入和回收流程中,更新内存页面。
2.根据权利要求1所述的分布式存储缓存回收的优化算法,其特征在于,所述哈希表的表头个数为N,N为正整数,以供并发线程对应哈希表头的锁操作内部的内存页面。
3.根据权利要求2所述的分布式存储缓存回收的优化算法,其特征在于,所述内存页面结构体上设置指针指向当前内存页面所在的哈希表头。
4.根据权利要求3所述的分布式存储缓存回收的优化算法,其特征在于,所述generation机制包括
为每个内存页面增设全局计数generation以标识其在全局的时序位置;且所述generation根据start和end计数获得。
5.根据权利要求4所述的分布式存储缓存回收的优化算法,其特征在于,所述generation根据start和end计数获得,包括
start和end通过取模哈希表头最大值得到当前所在哈希表头索引值,generation根据插入次数递增,generation越小,等同于插入该链表的时间越老,即越需要被回收;
回收时读取end计数,得到generation计数,找到对应的哈希表头从表头内双向链表尾部开始回收,遇到小于全局计数generation的回收;否则退出。
6.一种分布式存储缓存回收装置,其特征在于,包括处理器和存储器,存储器中存储有程序,程序被处理器运行时,执行
改写全局链表为哈希表,并将hash函数设置为顺序插入,增设start和end变量分别标示哈希表中当前时刻相当于原全局双向链表的“头部”和“尾部”;
利用start和end计数顺序进行插入和回收流程;
设置用于标识内存页面的修改时间的generation机制,在所述插入和回收流程中,更新内存页面。
7.根据权利要求6所述的分布式存储缓存回收装置,其特征在于,所述哈希表头个数为N,N为正整数,以供并发线程对应哈希表头的锁操作内部的内存页面。
8.根据权利要求7所述的分布式存储缓存回收装置,其特征在于,所述内存页面结构体上设置指针指向当前内存页面所在的哈希表头。
9.根据权利要求8所述的分布式存储缓存回收装置,其特征在于,所述generation机制包括
为每个内存页面增设全局计数generation,以标识其在全局的时序位置;且所述generation根据start和end计数获得。
10.根据权利要求9所述的分布式存储缓存回收的优化算法,其特征在于,所述generation根据start和end计数获得,包括
start和end通过取模哈希表头最大值得到当前所在哈希表头索引值,generation根据插入次数递增,generation越小,等同于插入该链表的时间越老,即越需要被回收;
回收时读取end计数,得到generation计数,找到对应的哈希表头从表头内双向链表尾部开始回收,遇到小于全局计数generation的回收;否则退出。
CN201911357501.4A 2019-12-25 2019-12-25 一种分布式存储缓存回收的优化方法及装置 Active CN111221647B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911357501.4A CN111221647B (zh) 2019-12-25 2019-12-25 一种分布式存储缓存回收的优化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911357501.4A CN111221647B (zh) 2019-12-25 2019-12-25 一种分布式存储缓存回收的优化方法及装置

Publications (2)

Publication Number Publication Date
CN111221647A true CN111221647A (zh) 2020-06-02
CN111221647B CN111221647B (zh) 2023-07-07

Family

ID=70827858

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911357501.4A Active CN111221647B (zh) 2019-12-25 2019-12-25 一种分布式存储缓存回收的优化方法及装置

Country Status (1)

Country Link
CN (1) CN111221647B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102915276A (zh) * 2012-09-25 2013-02-06 武汉邮电科学研究院 一种用于嵌入式系统的内存控制方法
US20150019817A1 (en) * 2013-07-15 2015-01-15 International Business Machines Corporation Tuning global digests caching in a data deduplication system
CN104504076A (zh) * 2014-12-22 2015-04-08 西安电子科技大学 一种高并发和高空间利用率的分布式缓存方法
CN107544756A (zh) * 2017-08-03 2018-01-05 上海交通大学 基于SCM的Key‑Value日志型本地存储方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102915276A (zh) * 2012-09-25 2013-02-06 武汉邮电科学研究院 一种用于嵌入式系统的内存控制方法
US20150019817A1 (en) * 2013-07-15 2015-01-15 International Business Machines Corporation Tuning global digests caching in a data deduplication system
CN104504076A (zh) * 2014-12-22 2015-04-08 西安电子科技大学 一种高并发和高空间利用率的分布式缓存方法
CN107544756A (zh) * 2017-08-03 2018-01-05 上海交通大学 基于SCM的Key‑Value日志型本地存储方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孟晓?等: "一种针对存储系统设计的应用级缓存回收策略", 《小型微型计算机系统》 *

Also Published As

Publication number Publication date
CN111221647B (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
US9436596B2 (en) Flash memory cache including for use with persistent key-value store
CN111344684B (zh) 多层缓存安置机制
US11182083B2 (en) Bloom filters in a flash memory
EP2281233B1 (en) Efficiently marking objects with large reference sets
US10936207B2 (en) Linked lists in flash memory
US10007615B1 (en) Methods and apparatus for performing fast caching
US8041918B2 (en) Method and apparatus for improving parallel marking garbage collectors that use external bitmaps
US11106362B2 (en) Additive library for data structures in a flash memory
US11113195B2 (en) Method, device and computer program product for cache-based index mapping and data access
US20190004957A1 (en) Low-overhead index for a flash cache
US20150012711A1 (en) System and method for atomically updating shared memory in multiprocessor system
US9235523B2 (en) Data processing apparatus and control method thereof
CN111723058B (zh) 一种预读数据缓存方法、装置、设备及存储介质
CN107562806B (zh) 混合内存文件系统的自适应感知加速方法及系统
US6412050B1 (en) Memory record update filtering
Kwon et al. DeNOVA: Deduplication extended nova file system
US9208080B2 (en) Persistent memory garbage collection
CN111221647A (zh) 一种分布式存储缓存回收的优化算法及装置
US11204880B2 (en) Hash tables in flash memory
US11030109B2 (en) Mechanisms for a contention free lookup in a cache with concurrent insertions and deletions
US20140115246A1 (en) Apparatus, system and method for managing empty blocks in a cache
US12010214B2 (en) Hash based key value to block translation methods and systems
US20220147265A1 (en) Metadata management for extent-based storage system
Gilbert et al. Evaluation of Pointer Swizzling for Database Buffer Management.
CN118245387A (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