CN106991060B - 一种读cache的淘汰优化方法及装置 - Google Patents

一种读cache的淘汰优化方法及装置 Download PDF

Info

Publication number
CN106991060B
CN106991060B CN201710108771.6A CN201710108771A CN106991060B CN 106991060 B CN106991060 B CN 106991060B CN 201710108771 A CN201710108771 A CN 201710108771A CN 106991060 B CN106991060 B CN 106991060B
Authority
CN
China
Prior art keywords
elimination
linked list
service
reference count
nodes
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
CN201710108771.6A
Other languages
English (en)
Other versions
CN106991060A (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.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710108771.6A priority Critical patent/CN106991060B/zh
Publication of CN106991060A publication Critical patent/CN106991060A/zh
Application granted granted Critical
Publication of CN106991060B publication Critical patent/CN106991060B/zh
Active 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/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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种读cache的淘汰优化方法及装置,存储池cache在实现业务IO的读写操作时,该方法包括:如果淘汰操作被触发,获取淘汰链表中的节点个数;其中,淘汰链表中的节点与所述业务IO一一对应;检测所述节点个数是否大于预设的淘汰水位值,如果是,则获取所述淘汰链表中各节点所对应的引用计数;其中,所述引用计数表示所述业务IO所读写的数据块被引用的次数;将所述引用计数与预设的计数水位值进行比较,如果所述节点中第一节点对应的第一引用计数小于所述计数水位值,则从所述淘汰链表和所述cache的查找链表中删除所述第一节点对应的业务IO。本申请实施例所公开的方法和装置解决现有读cache的淘汰策略不能很好的满足用户需求的问题。

Description

一种读cache的淘汰优化方法及装置
技术领域
本申请实施例涉及电子技术领域,尤其涉及一种读cache的淘汰优化方法及装置。
背景技术
为了保证内存的有效使用,操作系统会根据cache淘汰策略将阻碍新数据存入的内存块移出内存,从而腾出内存空间来加载新数据。目前常用的cache淘汰策略有近期最少使用(Least Recently Used,LRU)策略,即淘汰存储在内存中但又不用的数据块;最不经常使用页置换(least frequently used,LFU)策略,即淘汰存储在内存中但又不不经常使用的数据块;先入先出(First Input First Output,FIFO)策略,即先存储到内存中的数据先淘汰等方式。其中LRU方式,由于其简单及代价小等特点,在实际的应用中使用最广泛。
存储池在实现业务IO的读操作时,增加读cache来提高读性能。读cache多采用目前业界常用的淘汰策略。根据实际的业务需要和对数据的访问情况来看,采用单纯的LRU策略,不能很好的满足用户需求。针对多次访问引用计数较高及短时间内读相同的IO情况的读模型,采用LRU淘汰策略,会导致多次下盘操作,对读性能影响较大。
发明内容
本申请实施例提供一种读cache的淘汰优化方法及装置,以解决现有读cache的淘汰策略不能很好的满足用户需求的问题。
第一方面,提供一种读cache的淘汰优化方法,该方法包括:
在存储池cache实现业务IO的读写操作时,如果确定淘汰操作被触发,获取淘汰链表中的节点个数;其中,淘汰链表中的节点与所述业务IO一一对应;
若所述节点个数大于预设的淘汰水位值,则获取所述淘汰链表中各节点分别对应的引用计数;其中,所述引用计数表示所述业务IO所读写的数据块被引用的次数;
将每个所述引用计数与预设的计数水位值进行比较,如果存在第一节点对应的第一引用计数小于所述计数水位值,则从所述淘汰链表和所述cache的查找链表中删除所述第一节点对应的业务IO,其中,所述第一节点为所述淘汰链表中各节点中的任意一个。
本申请实施例所提供的方法,引入了引用计数进行cache淘汰。对于引用计数较高的IO则会保留,很大程度上提高了读性能。
在另外一种可选的实施例中,获取淘汰链表中的节点个数之前,还包括:
当所述业务IO中的第一业务IO下发时,查找所述第一业务IO所读写的第一数据块在所述cache中的第一存储地址,根据所述第一存储地址计算第一哈希值;
根据所述第一哈希值确定对应的哈希桶,利用所述第一哈希值遍历所述哈希桶对应的冲突链表,如果在所述冲突链表中查找到与所述第一存储地址相同的存储地址,则读写所述第一数据块;否则读写所述第一数据块后,将所述第一业务IO插入所述冲突链表和所述淘汰链表中。
该实施例中,hash冲突的节点,放在一个链表里面对应一个hash桶;从而使得多次访问引用计数较高及短时间内读相同的IO的情况的读模型,大大减少了下盘次数。
在另外一种可选的实施例中,将所述第一业务IO插入所述淘汰链表中,包括:
获取所述第一业务IO对应的第二引用计数,根据所述第二引用计数将所述第一业务IO插入所述淘汰链表;其中,所述淘汰链表中从表头到表尾的业务IO按照引用计数由大到小的顺序排列。
在该实施例中,利用统计得到的引用计数对节点进行排序,从而能够有效减少反复无效的节点淘汰操作,提高淘汰操作的效率。
在另外一种可选的实施例中,所述淘汰链表包括多个子淘汰链表,根据所述第二引用计数将所述第一业务IO插入所述淘汰链表,包括:
确定每个子淘汰链表对应的引用计数范围,当所述第二引用计数在第一子淘汰链表所对应的第一引用计数范围内,则将所述第一业务IO插入所述第一子淘汰链表中。
该实施例中的淘汰链表是按照引用计数的范围划分的,所以在根据引用计数进行节点淘汰的时候,可以根据自淘汰链表所对应的引用计数范围进行节点淘汰的批量操作,从而提高淘汰操作的效率。
在另外一种可选的实施例中,获取所述淘汰链表中各节点所对应的引用计数,包括:
从所述淘汰链表的表尾获取设定个数的节点所对应的引用计数。
第二方面,本申请实施例还提供一种读cache的淘汰优化装置,包括存储器和处理器,其中:
所述存储器,用于存储数据;
所述处理器,用于在存储池cache实现业务IO对存储器的读写操作时,如果确定淘汰操作被触发,获取淘汰链表中的节点个数;其中,淘汰链表中的节点与所述业务IO一一对应;若所述节点个数大于预设的淘汰水位值,则获取所述淘汰链表中各节点分别对应的引用计数;其中,所述引用计数表示所述业务IO所读写的数据块被引用的次数;将每个所述引用计数与预设的计数水位值进行比较,如果存在第一节点对应的第一引用计数小于所述计数水位值,则从所述淘汰链表和所述cache的查找链表中删除所述第一节点对应的业务IO,其中,所述第一节点为所述淘汰链表中各节点中的任意一个。
在一种可选的实施例中,所述处理器还用于当所述业务IO中的第一业务IO下发时,查找所述第一业务IO所读写的第一数据块在所述cache中的第一存储地址,根据所述第一存储地址计算第一哈希值;根据所述第一哈希值确定对应的哈希桶,利用所述第一哈希值遍历所述哈希桶对应的冲突链表,如果在所述冲突链表中查找到与所述第一存储地址相同的存储地址,则从所述存储器读写所述第一数据块;否则从所述存储器读写所述第一数据块后,将所述第一业务IO插入所述冲突链表和所述淘汰链表中。
在一种可选的实施例中,所述处理器在将所述第一业务IO插入所述淘汰链表中时,具体用于:
获取所述第一业务IO对应的第二引用计数,根据所述第二引用计数将所述第一业务IO插入所述淘汰链表;其中,所述淘汰链表中从表头到表尾的业务IO按照引用计数由大到小的顺序排列。
在一种可选的实施例中,所述淘汰链表包括多个子淘汰链表,所述处理器在根据所述第二引用计数将所述第一业务IO插入所述淘汰链表时,具体用于:
确定每个子淘汰链表对应的引用计数范围,当所述第二引用计数在第一子淘汰链表所对应的第一引用计数范围内,则将所述第一业务IO插入所述第一子淘汰链表中。
在一种可选的实施例中,所述处理器在获取所述淘汰链表中各节点所对应的引用计数时,具体用于:
从所述淘汰链表的表尾获取设定个数的节点所对应的引用计数。
因为第二方面各实施例方案是与第一方面对应的,所以第二方面各实施例所起到的有益效果与第一方面各实施例对应,再次不再赘述。
第三方面,提供了一种计算机可读存储介质,所述可读存储介质上存储有实现第一方面描述的读cache的淘汰优化方法的程序代码,该程序代码包含运行第一方面描述的读cache的淘汰优化方法的执行指令。
上述技术方案中的一个或两个,至少具有如下技术效果:
本申请实施例提供的方案引入了引用计数进行cache淘汰。对于引用计数较高的IO则进行保留,并且结合了LRU策略,使得多次访问引用计数较高及短时间内读相同的IO的情况的读模型,大大减少了下盘次数,很大程度上提高了读性能。
附图说明
图1为本申请实施例提供的一种读cache的淘汰优化方法的流程示意图;
图2为本申请实施例提供的一种生成淘汰链表的流程示意图;
图3为本申请实施例hash桶与节点的关系结构示意图;
图4为本申请实施例提供的一种读cache的淘汰优化装置结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了更清楚详细的说明本申请实施例所提供方案的具体实现过程,以下结合具体的实例对本申请实施例所提供的方法做进一步详细的说明:
实施例一
如图1所示,本申请实施例提供一种读cache的淘汰优化方法,存储池cache在实现业务IO的读写操作时,该方法具体可以包括以下实现步骤:
步骤101,在存储池cache实现业务IO的读写操作时,如果确定淘汰操作被触发,获取淘汰链表中的节点个数;其中,淘汰链表中的节点与所述业务IO一一对应;
在该实施例中,存储池cache在实现业务IO的读写操作时,可能会同时进行多个业务IO的读写操作,所以在该实施例中可以将所有的业务IO以一定的规则添加到淘汰链表中。添加到淘汰链表中的业务IO相关的信息则为淘汰链表的节点。
步骤102,若所述节点个数大于预设的淘汰水位值,则获取所述淘汰链表中各节点分别对应的引用计数(RC);其中,所述引用计数表示所述业务IO所读写的数据块被引用的次数;
在该实施例中,如果淘汰链表中节点的个数超过预先设定的淘汰水位值,则可以确定当前链表中节点太多内存中的数据块超过内存的处理能力,为了调高内存的处理能力则需要淘汰一定的节点。该实施例中可以根据内存的容量以及内存的使用环境等因素设置不同的淘汰水位值。
另外,该实施例中的引用计数是一种元数据,是指数据块被访问的频率。引用计数是该数据块被多个地方引用的计数。比如一个文件里面有多个地方的数据内容是相同的,就是引用了这个数据块内容多次。
步骤103,将每个所述引用计数与预设的计数水位值进行比较,如果存在第一节点对应的第一引用计数小于所述计数水位值,则从所述淘汰链表和所述cache的查找链表中删除所述第一节点对应的业务IO,其中,所述第一节点为所述淘汰链表中各节点中的任意一个。
在该实施例中,可以将计数水位值设为2;即:引用计数值低于2的节点淘汰,因为低于2,说明该节点对应的数据块未来被访问的概率较小,则可以淘汰,同时从hash查找链表摘除。如果超过2,则不淘汰。如果淘汰链表没有依据每个节点对应的引用计数进行排序,则可以将引用计数大于2的节点从淘汰链表中提取出来,然后根据节点的引用计数值以及淘汰链表中各节点的排序规则重新插入淘汰链表的合适位置,淘汰链表中各节点的排序规则可以是引用计数值越大越靠近链表头。
上述实例中说明的是一次淘汰过程,因为淘汰链表中可能会有多个节点的引用计数是小于预设的计数水位值,在该实施例中可以逐个判断淘汰链表中每个节点的引用计数值,然后确定是否淘汰。当淘汰节点中的节点个数小于淘汰水位,则结束淘汰流程。
使用本申请实施例所提供的方法,引入了引用计数进行cache淘汰。对于引用计数较高的IO则会保留,并且结合了LRU策略,使得多次访问引用计数较高及短时间内读相同的IO的情况的读模型,大大减少了下盘次数,很大程度上提高了读性能。
实施例二
如图2所示,为生成实施例一中的淘汰链表,本申请实施例还在实施例一的技术提供以下实现流程,具体包括步骤:
步骤201,当第一业务IO下发时,查找所述第一业务IO所读写的第一数据在所述cache中的第一存储地址,根据所述第一存储地址计算第一哈希值;
步骤202,根据所述第一哈希值确定对应的哈希桶,利用所述第一哈希值遍历所述哈希桶对应的冲突链表,如果在所述冲突链表中查找到与所述第一存储地址相同的存储地址,则读写所述第一数据块;否则读写所述第一数据块后,将所述第一业务IO插入所述冲突链表和所述淘汰链表中。
Hash值相同的多个不同存储地址,就认为是hash冲突,放在一个链表里面对应一个hash桶(如图3所示);其中,在根据业务IO查找数据块时,先根据数据块的存储地址找到对应的hash值冲突链表,然后再到查找链表里查找。该实例中hash桶的长度大小可以根据实际调整。当查找到与所述第一存储地址相同的存储地址,则返回到下发读IO查询操作的步骤,读IO是在读cache里面查找相应的数据块,查找到了数据块,就可以返回读IO完成。
在该实施例中,因为后期需要根据每个节点的引用计数对淘汰链表中的节点进行淘汰,所以为了提高淘汰的效率减少重复的无效操作,则可以在将所述第一业务IO插入所述淘汰链表中包括:
获取所述第一业务IO对应的第二引用计数,根据所述第二引用计数将所述第一业务IO插入所述淘汰链表;其中,所述淘汰链表中从表头到表尾的业务IO按照引用计数由大到小的顺序排列。
例如,淘汰链表中包括5个节点,节点(a,b,c,d,e),每个节点分别对应的引用计数为(5,6,3,2,1),则在淘汰链表中从表头到表尾各节点的排序则是:节点b-节点a-节点c-节点d-节点e。
另外,因为淘汰链表还可划分为多个子淘汰链表,在所述淘汰链表包括多个子淘汰链表的情况下,根据所述第二引用计数将所述第一业务IO插入所述淘汰链表的具体实现方式可以是:
确定每个子淘汰链表对应的引用计数范围,当所述第二引用计数在第一子淘汰链表所对应的第一引用计数范围内,则将所述第一业务IO插入所述第一子淘汰链表中。
通过对淘汰链表中的节点进行排序之后,再获取满足条件的需要被淘汰的节点则更方便,具体获取所述淘汰链表中每个节点所对应的引用计数包括:
从所述淘汰链表的表尾获取设定个数的节点所对应的引用计数。
该实施例中的设定个数可以根据淘汰水位值和/或计数水位值进行设定。
实施例三
如图4所示,本申请实施例还提供一种读cache的淘汰优化装置,该装置包括存储器401和处理器402,在实现业务IO对存储器的读写操作时,包括:
该存储器401,用于存储数据;
所述处理器402,用于在存储池cache实现业务IO对存储器的读写操作时,如果确定淘汰操作被触发,获取淘汰链表中的节点个数;其中,淘汰链表中的节点与所述业务IO一一对应;若所述节点个数大于预设的淘汰水位值,则获取所述淘汰链表中各节点分别对应的引用计数;其中,所述引用计数表示所述业务IO所读写的数据块被引用的次数;将每个所述引用计数与预设的计数水位值进行比较,如果存在第一节点对应的第一引用计数小于所述计数水位值,则从所述淘汰链表和所述cache的查找链表中删除所述第一节点对应的业务IO,其中,所述第一节点为所述淘汰链表中各节点中的任意一个。
可选的为了生成淘汰链表,该处理器402还用于当所述业务IO中的第一业务IO下发时,查找所述第一业务IO所读写的第一数据块在所述cache中的第一存储地址,根据所述第一存储地址计算第一哈希值;根据所述第一哈希值确定对应的哈希桶,利用所述第一哈希值遍历所述哈希桶对应的冲突链表,如果在所述冲突链表中查找到与所述第一存储地址相同的存储地址,则从所述存储器读写所述第一数据块;否则从所述存储器读写所述第一数据块后,将所述第一业务IO插入所述冲突链表和所述淘汰链表中。
进一步,为了便于淘汰节点,在将第一业务IO插入所述淘汰链表中的时候可以根据业务IO所对应的引用计数进行插入操作,具体该处理器402在将所述第一业务IO插入所述淘汰链表中时,具体用于:
获取所述第一业务IO对应的第二引用计数,根据所述第二引用计数将所述第一业务IO插入所述淘汰链表;其中,所述淘汰链表中从表头到表尾的业务IO按照引用计数由大到小的顺序排列。
另外,当淘汰链表包括多个子淘汰链表,该处理器402在根据所述第二引用计数将所述第一业务IO插入所述淘汰链表时,具体用于:
确定每个子淘汰链表对应的引用计数范围,当所述第二引用计数在第一子淘汰链表所对应的第一引用计数范围内,则将所述第一业务IO插入所述第一子淘汰链表中。
因为淘汰链表根据每个节点的引用计数进行排序,所以在判断引用计数是否符合淘汰条件的时候,则可以有倾向性的进行选择从而可以减小无效操作。例如在该实施例中淘汰链表从表头到表尾是根据引用计数由大到小的顺序排列的,所以所述处理器在获取所述淘汰链表中各节点所对应的引用计数时,具体用于:
从所述淘汰链表的表尾获取设定个数的节点所对应的引用计数。
实施例四
如图5所示,本申请实施例还提供另一种电子设备,用于执行前述各个实施例中的读cache的淘汰优化方法,该电子设备包括至少一个处理器501(例如CPU),至少一个网络接口502或者其他通信接口,存储器503,和至少一个通信总线504,用于实现这些装置之间的连接通信。处理器501用于执行存储器503中存储的可执行模块,例如计算机程序。存储器503可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口502(可以是有线或者无线)实现该系统网关与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
在一些实施方式中,存储器存储了程序5031,程序可以被处理器执行,这个程序包括:
在存储池cache实现业务IO的读写操作时,如果确定淘汰操作被触发,获取淘汰链表中的节点个数;其中,淘汰链表中的节点与所述业务IO一一对应;
若所述节点个数大于预设的淘汰水位值,则获取所述淘汰链表中各节点分别对应的引用计数;其中,所述引用计数表示所述业务IO所读写的数据块被引用的次数;
将每个所述引用计数与预设的计数水位值进行比较,如果存在第一节点对应的第一引用计数小于所述计数水位值,则从所述淘汰链表和所述cache的查找链表中删除所述第一节点对应的业务IO,其中,所述第一节点为所述淘汰链表中各节点中的任意一个。
可选的,获取淘汰链表中的节点个数之前,还包括:
当所述业务IO中的第一业务IO下发时,查找所述第一业务IO所读写的第一数据块在所述cache中的第一存储地址,根据所述第一存储地址计算第一哈希值;
根据所述第一哈希值确定对应的哈希桶,利用所述第一哈希值遍历所述哈希桶对应的冲突链表,如果在所述冲突链表中查找到与所述第一存储地址相同的存储地址,则读写所述第一数据块;否则读写所述第一数据块后,将所述第一业务IO插入所述冲突链表和所述淘汰链表中。
可选的,将所述第一业务IO插入所述淘汰链表中,包括:
获取所述第一业务IO对应的第二引用计数,根据所述第二引用计数将所述第一业务IO插入所述淘汰链表;其中,所述淘汰链表中从表头到表尾的业务IO按照引用计数由大到小的顺序排列。
可选的,所述淘汰链表包括多个子淘汰链表,根据所述第二引用计数将所述第一业务IO插入所述淘汰链表,包括:
确定每个子淘汰链表对应的引用计数范围,当所述第二引用计数在第一子淘汰链表所对应的第一引用计数范围内,则将所述第一业务IO插入所述第一子淘汰链表中。
可选的,获取所述淘汰链表中各节点所对应的引用计数,包括:
从所述淘汰链表的表尾获取设定个数的节点所对应的引用计数。
本申请实施例所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本申请实施例的技术方案得出其它的实施方式,同样属于本申请实施例的技术创新范围。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请实施例权利要求及其等同技术的范围之内,则本申请实施例也意图包含这些改动和变型在内。

Claims (10)

1.一种读cache的淘汰优化方法,其特征在于,包括:
在存储池cache实现至少一个业务IO的读写操作时,如果确定淘汰操作被触发,获取淘汰链表中的节点个数;其中,所述淘汰链表中的一个节点即为所述至少一个业务IO中的一个业务IO;且所述淘汰链表中的节点与所述至少一个业务IO一一对应;
若所述节点个数大于预设的淘汰水位值,则获取所述淘汰链表中各节点分别对应的引用计数;其中,所述引用计数表示所述各节点对应的业务IO所读写的数据块被引用的次数;
将每个所述引用计数与预设的计数水位值进行比较,如果存在第一节点对应的第一引用计数小于所述计数水位值,则从所述淘汰链表和所述cache的查找链表中删除所述第一节点对应的业务IO,其中,所述第一节点为所述淘汰链表中各节点中的任意一个,所述查找链表用于查找所述至少一个业务IO对应的数据块。
2.如权利要求1所述的方法,其特征在于,获取淘汰链表中的节点个数之前,还包括:
当所述至少一个业务IO中的第一业务IO下发时,查找所述第一业务IO所读写的第一数据块在所述cache中的第一存储地址,根据所述第一存储地址计算第一哈希值;
根据所述第一哈希值确定对应的哈希桶,利用所述第一哈希值遍历所述哈希桶对应的冲突链表,如果在所述冲突链表中查找到与所述第一存储地址相同的存储地址,则读写所述第一数据块;否则读写所述第一数据块后,将所述第一业务IO插入所述冲突链表和所述淘汰链表中。
3.如权利要求2所述的方法,其特征在于,将所述第一业务IO插入所述淘汰链表中,包括:
获取所述第一业务IO对应的第二引用计数,根据所述第二引用计数将所述第一业务IO插入所述淘汰链表;其中,所述淘汰链表中从表头到表尾的业务IO按照引用计数由大到小的顺序排列。
4.如权利要求3所述的方法,其特征在于,所述淘汰链表包括多个子淘汰链表,根据所述第二引用计数将所述第一业务IO插入所述淘汰链表,包括:
确定每个子淘汰链表对应的引用计数范围,当所述第二引用计数在第一子淘汰链表所对应的第一引用计数范围内,则将所述第一业务IO插入所述第一子淘汰链表中。
5.如权利要求3或4所述的方法,其特征在于,获取所述淘汰链表中各节点所对应的引用计数,包括:
从所述淘汰链表的表尾获取设定个数的节点所对应的引用计数。
6.一种读cache的淘汰优化装置,其特征在于,包括存储器和处理器,其中:
所述存储器,用于存储数据;
所述处理器,用于在存储池cache实现业务IO对存储器的读写操作时,如果确定淘汰操作被触发,获取淘汰链表中的节点个数;其中,淘汰链表中的节点与所述业务IO一一对应;若所述节点个数大于预设的淘汰水位值,则获取所述淘汰链表中各节点分别对应的引用计数;其中,所述引用计数表示所述业务IO所读写的数据块被引用的次数;将每个所述引用计数与预设的计数水位值进行比较,如果存在第一节点对应的第一引用计数小于所述计数水位值,则从所述淘汰链表和所述cache的查找链表中删除所述第一节点对应的业务IO,其中,所述第一节点为所述淘汰链表中各节点中的任意一个。
7.如权利要求6所述的装置,其特征在于,所述处理器还用于当所述业务IO中的第一业务IO下发时,查找所述第一业务IO所读写的第一数据块在所述cache中的第一存储地址,根据所述第一存储地址计算第一哈希值;根据所述第一哈希值确定对应的哈希桶,利用所述第一哈希值遍历所述哈希桶对应的冲突链表,如果在所述冲突链表中查找到与所述第一存储地址相同的存储地址,则从所述存储器读写所述第一数据块;否则从所述存储器读写所述第一数据块后,将所述第一业务IO插入所述冲突链表和所述淘汰链表中。
8.如权利要求7所述的装置,其特征在于,所述处理器在将所述第一业务IO插入所述淘汰链表中时,具体用于:
获取所述第一业务IO对应的第二引用计数,根据所述第二引用计数将所述第一业务IO插入所述淘汰链表;其中,所述淘汰链表中从表头到表尾的业务IO按照引用计数由大到小的顺序排列。
9.如权利要求8所述的装置,其特征在于,所述淘汰链表包括多个子淘汰链表,所述处理器在根据所述第二引用计数将所述第一业务IO插入所述淘汰链表时,具体用于:
确定每个子淘汰链表对应的引用计数范围,当所述第二引用计数在第一子淘汰链表所对应的第一引用计数范围内,则将所述第一业务IO插入所述第一子淘汰链表中。
10.如权利要求7所述的装置,其特征在于,所述处理器在获取所述淘汰链表中各节点所对应的引用计数时,具体用于:
从所述淘汰链表的表尾获取设定个数的节点所对应的引用计数。
CN201710108771.6A 2017-02-27 2017-02-27 一种读cache的淘汰优化方法及装置 Active CN106991060B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710108771.6A CN106991060B (zh) 2017-02-27 2017-02-27 一种读cache的淘汰优化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710108771.6A CN106991060B (zh) 2017-02-27 2017-02-27 一种读cache的淘汰优化方法及装置

Publications (2)

Publication Number Publication Date
CN106991060A CN106991060A (zh) 2017-07-28
CN106991060B true CN106991060B (zh) 2020-04-14

Family

ID=59412531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710108771.6A Active CN106991060B (zh) 2017-02-27 2017-02-27 一种读cache的淘汰优化方法及装置

Country Status (1)

Country Link
CN (1) CN106991060B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110764711B (zh) * 2019-10-29 2022-03-22 北京浪潮数据技术有限公司 一种io数据分类删除方法、装置和计算机可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1869979A (zh) * 2005-12-30 2006-11-29 华为技术有限公司 一种缓存管理方法
CN101951395A (zh) * 2010-08-30 2011-01-19 中国科学院声学研究所 一种基于访问预测的P2P VoD系统服务端的数据缓存策略
US8041893B1 (en) * 2008-09-09 2011-10-18 Vignette Software Llc System and method for managing large filesystem-based caches
CN102511043A (zh) * 2011-11-26 2012-06-20 华为技术有限公司 缓存文件替换方法、装置及系统
CN103051975A (zh) * 2012-12-31 2013-04-17 乐视网信息技术(北京)股份有限公司 一种p2p缓存数据淘汰方法
CN103761052A (zh) * 2013-12-28 2014-04-30 华为技术有限公司 一种管理高速缓存的方法及存储装置
CN104750715A (zh) * 2013-12-27 2015-07-01 中国移动通信集团公司 缓存系统中数据淘汰方法、装置、系统及相关服务器设备
CN105988715A (zh) * 2015-02-05 2016-10-05 深圳市腾讯计算机系统有限公司 数据存储方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3880933B2 (ja) * 2003-01-21 2007-02-14 株式会社東芝 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1869979A (zh) * 2005-12-30 2006-11-29 华为技术有限公司 一种缓存管理方法
US8041893B1 (en) * 2008-09-09 2011-10-18 Vignette Software Llc System and method for managing large filesystem-based caches
CN101951395A (zh) * 2010-08-30 2011-01-19 中国科学院声学研究所 一种基于访问预测的P2P VoD系统服务端的数据缓存策略
CN102511043A (zh) * 2011-11-26 2012-06-20 华为技术有限公司 缓存文件替换方法、装置及系统
CN103051975A (zh) * 2012-12-31 2013-04-17 乐视网信息技术(北京)股份有限公司 一种p2p缓存数据淘汰方法
CN104750715A (zh) * 2013-12-27 2015-07-01 中国移动通信集团公司 缓存系统中数据淘汰方法、装置、系统及相关服务器设备
CN103761052A (zh) * 2013-12-28 2014-04-30 华为技术有限公司 一种管理高速缓存的方法及存储装置
CN105988715A (zh) * 2015-02-05 2016-10-05 深圳市腾讯计算机系统有限公司 数据存储方法及装置

Also Published As

Publication number Publication date
CN106991060A (zh) 2017-07-28

Similar Documents

Publication Publication Date Title
CN111226205B (zh) Kvs树数据库
KR102290835B1 (ko) 유지관리 동작들을 위한 병합 트리 수정들
CN110268394B (zh) 用于存储和操作键值数据的方法、系统及机器可读存储媒体
CN110383261B (zh) 用于多流存储装置的流选择
KR102289332B1 (ko) 병합 트리 가비지 메트릭스
CN108829344A (zh) 数据存储方法、装置及存储介质
CN101826107B (zh) 哈希数据处理方法和装置
WO2017117734A1 (zh) 一种缓存管理方法、缓存控制器以及计算机系统
CN110555001B (zh) 数据处理方法、装置、终端及介质
CN107992577B (zh) 一种哈希表数据冲突处理方法及装置
CN107368437B (zh) 一种末级缓存管理方法及系统
EP3859536B1 (en) Method and device for buffering data blocks, computer device, and computer-readable storage medium
CN104077242A (zh) 一种缓存管理方法和装置
CN109597771B (zh) 用于控制分层存储器系统的方法和装置
CN111506604A (zh) 访问数据的方法、装置和计算机程序产品
CN106991060B (zh) 一种读cache的淘汰优化方法及装置
CN106201918A (zh) 一种基于大数据量和大规模缓存快速释放的方法和系统
US9639566B2 (en) Method, apparatus and computer program product for improved storage of key-value pairs
CN110825652B (zh) 淘汰磁盘块上的缓存数据的方法、装置及设备
CN111723266B (zh) 海量数据处理方法和装置
CN112269947A (zh) 空间文本数据的缓存方法、装置、电子设备及存储介质
Li et al. Necklace: An efficient cuckoo hashing scheme for cloud storage services
CN118051502B (zh) 数据库的索引处理方法、装置、设备及可读存储介质
CN114860783B (zh) 图数据库缓存方法、装置、电子设备和可读存储介质
CN107506445A (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
TR01 Transfer of patent right

Effective date of registration: 20220829

Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right