CN105068941A - 一种缓存页面替换方法及装置 - Google Patents

一种缓存页面替换方法及装置 Download PDF

Info

Publication number
CN105068941A
CN105068941A CN201510466661.8A CN201510466661A CN105068941A CN 105068941 A CN105068941 A CN 105068941A CN 201510466661 A CN201510466661 A CN 201510466661A CN 105068941 A CN105068941 A CN 105068941A
Authority
CN
China
Prior art keywords
page
dirty
chained list
dirty page
page object
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.)
Pending
Application number
CN201510466661.8A
Other languages
English (en)
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.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry 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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201510466661.8A priority Critical patent/CN105068941A/zh
Publication of CN105068941A publication Critical patent/CN105068941A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种缓存页面替换方法及装置,方法包括:S1:建立脏页链表和非脏页链表,其中,脏页链表用于存储脏页,非脏页链表用于存储非脏页;S2:在确定内存不足时,从非脏页链表中查找目标非脏页,并将查找到的目标非脏页进行释放;S3:若将非脏页链表中所包括的所有非脏页全部释放依然无法满足内存时,从脏页链表中选择目标脏页,并消除目标脏页的脏页标志,并将消除了脏页标志的目标脏页存储至非脏页链表中,并执行S2,直到满足内存。根据本方案,从而提高缓存页面替换的效率。

Description

一种缓存页面替换方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种缓存页面替换方法及装置。
背景技术
随着数字化时代的不断发展,在日常生活和科学研究中,越来越多的传统业务开始数字化、网络化,促使数据爆炸式增长,存储系统在整个业务处理系统中的地位也愈发重要,然而源源不断的数据流导致存储系统产生严重的I/O瓶颈问题。
目前,当接收到请求且内存不足时,一般采用Linux内核中的缓存页替换方法,通过选择一些页面丢弃其内容供当前请求使用,其中,缓存页替换方法需要维护活跃链表(active_list)和非活跃链表(inactive_list),在active_list链表中存储的是经常被使用的页,而inactive_list链表中存储的是经常不被使用的页。且根据访问频率,两个链表中所存储的页会发生移动。当内存不足时,需要进行页回收,而对于inactive_list链表和active_list链表中的脏页、正在刷写的页不能够进行回收,那么缓存页替换的方法可以包括:首先从inactive_list链表逐个查找可以回收的页,若查找到脏页或正在刷写的页则跳过,若查找到非脏页,则回收;若内存仍然不足时,再回收active_list链表中的页。
然而,在inactive_list链表和active_list链表中包括大量的脏页、正在刷写的页,导致在链表中查找可回收的页时,会遇到很多不能够回收的页,从而降低了缓存页替换的效率。
发明内容
有鉴于此,本发明提供一种缓存页面替换方法及装置,以提高缓存页替换的效率。
本发明提供了一种缓存页面替换方法,包括:
S1:建立脏页链表和非脏页链表,其中,所述脏页链表用于存储脏页,所述非脏页链表用于存储非脏页;
S2:在确定内存不足时,从所述非脏页链表中查找目标非脏页,并将查找到的目标非脏页进行释放;
S3:若将所述非脏页链表中所包括的所有非脏页全部释放依然无法满足内存时,从所述脏页链表中选择目标脏页,并消除所述目标脏页的脏页标志,并将消除了脏页标志的所述目标脏页存储至所述非脏页链表中,并执行S2,直到满足内存。
优选地,所述建立脏页链表和非脏页链表,包括:
在基树空间中查找读操作所针对目标页的索引,若所述基树空间中查找到所述目标页的索引,为所述目标页增加访问计数,并根据所述目标页的类型,将类型为脏页的所述目标页插入到所述脏页链表中的相应位置处,以及将类型为非脏页的所述目标页插入到所述非脏页链表中的相应位置处,并读取所述目标页的内容;其中,所述脏页链表,和/或,所述非脏页链表中按照访问计数进行排列。
优选地,所述建立脏页链表和非脏页链表,包括:
在基树空间中查找写操作所针对目标页的索引,若所述基树空间中查找到所述目标页的索引,为所述目标页增加访问计数,并根据所述目标页的类型,将类型为脏页的所述目标页插入到所述脏页链表中的相应位置处,以及将类型为非脏页的所述目标页从所述非脏页链表中提取出来,并根据所述写操作对所述目标页的内容进行修改,以及在所述目标页上设置脏页标志,并将设置了脏页标志的所述目标页插入到所述脏页链表中的相应位置处;其中,所述脏页链表,和/或,所述非脏页链表中按照访问计数进行排列。
优选地,进一步包括:
按照所述非脏页链表中访问计数从小到大的顺序,从所述非脏页链表中查找目标非脏页;
按照所述脏页链表中访问计数从小到大的顺序,从所述脏页链表中选择目标脏页。
优选地,进一步包括:
若所述基树空间中未查找到所述目标页的索引,则建立所述目标页,并从磁盘中读取所述目标页的内容将读取的该内容填充到所述目标页中,并设置所述目标页的初始访问计数,将所述目标页插入至非脏页链表的相应位置处。
本发明还提供了一种缓存页面替换装置,包括:
建立单元,用于建立脏页链表和非脏页链表,其中,所述脏页链表用于存储脏页,所述非脏页链表用于存储非脏页;
非脏页处理单元,用于在确定内存不足时,从所述非脏页链表中查找目标非脏页,并将查找到的目标非脏页进行释放;
脏页处理单元,用于若将所述非脏页链表中所包括的所有非脏页全部释放依然无法满足内存时,从所述脏页链表中选择目标脏页,并消除所述目标脏页的脏页标志,并将消除了脏页标志的所述目标脏页存储至所述非脏页链表中,并触发所述非脏页处理单元执行相应操作,直到满足内存。
优选地,所述建立单元,用于在基树空间中查找读操作所针对目标页的索引,若所述基树空间中查找到所述目标页的索引,为所述目标页增加访问计数,并根据所述目标页的类型,将类型为脏页的所述目标页插入到所述脏页链表中的相应位置处,以及将类型为非脏页的所述目标页插入到所述非脏页链表中的相应位置处,并读取所述目标页的内容;其中,所述脏页链表,和/或,所述非脏页链表中按照访问计数进行排列。
优选地,所述建立单元,用于在基树空间中查找写操作所针对目标页的索引,若所述基树空间中查找到所述目标页的索引,为所述目标页增加访问计数,并根据所述目标页的类型,将类型为脏页的所述目标页插入到所述脏页链表中的相应位置处,以及将类型为非脏页的所述目标页从所述非脏页链表中提取出来,并根据所述写操作对所述目标页的内容进行修改,以及在所述目标页上设置脏页标志,并将设置了脏页标志的所述目标页插入到所述脏页链表中的相应位置处;其中,所述脏页链表,和/或,所述非脏页链表中按照访问计数进行排列。
优选地,
所述非脏页处理单元,用于按照所述非脏页链表中访问计数从小到大的顺序,从所述非脏页链表中查找目标非脏页;
所述脏页处理单元,用于按照所述脏页链表中访问计数从小到大的顺序,从所述脏页链表中选择目标脏页。
优选地,进一步包括:
重建单元,用于在所述基树空间中未查找到所述目标页的索引,则建立所述目标页,并从磁盘中读取所述目标页的内容将读取的该内容填充到所述目标页中,并设置所述目标页的初始访问计数,将所述目标页插入至非脏页链表的相应位置处。
本发明实施例提供了一种缓存页面替换方法及装置,通过建立脏页链表和非脏页链表,以使得在访问非脏页链表时,所访问的页都是非脏页,在内存不足时,可以快速的选择非脏页链表中的非脏页进行释放,无需对链表中的页的类型进行检测,省却了页的检测时间,从而提高缓存页面替换的效率。
附图说明
图1是本发明实施例提供的方法流程图;
图2是本发明另一实施例提供的方法流程图;
图3是本发明实施例提供的读操作方法流程图;
图4是本发明实施例提供的非脏页链表结构图;
图5是本发明实施例提供的非脏页链表中插入结果示意图;
图6是本发明另一实施例提供的非脏页链表中插入结果示意图;
图7是本发明又一实施例提供方法流程图;
图8是本发明实施例提供的装置所在设备的硬件架构图;
图9是本发明实施例提供的装置结构示意图;
图10是本发明另一实施例提供的装置结构示意图;
图11是本发明又一实施例提供的装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种缓存页面替换方法,该方法可以包括以下步骤:
步骤101:建立脏页链表和非脏页链表,其中,脏页链表用于存储脏页,非脏页链表用于存储非脏页。
步骤102:在确定内存不足时,从非脏页链表中查找目标非脏页,并将查找到的目标非脏页进行释放。
步骤103:若将非脏页链表中所包括的所有非脏页全部释放依然无法满足内存时,从脏页链表中选择目标脏页,并消除目标脏页的脏页标志,并将消除了脏页标志的目标脏页存储至非脏页链表中,并执行步骤102,直到满足内存。
根据上述方案,通过建立脏页链表和非脏页链表,以使得在访问非脏页链表时,所访问的页都是非脏页,在内存不足时,可以快速的选择非脏页链表中的非脏页进行释放,无需对链表中的页的类型进行检测,省却了页的检测时间,从而提高缓存页面替换的效率。
为了保证后续过程中,对缓存页面替换时,能够在链表中只访问同一类型的页来进行释放,可以引入脏页链表和非脏页链表,以实现将读的页和写的页分开存储,因此,在获取到一个读操作时,在基树空间中查找读操作所针对目标页的索引,若基树空间中查找到目标页的索引,为目标页增加访问计数,并根据目标页的类型,将类型为脏页的目标页插入到脏页链表中的相应位置处,以及将类型为非脏页的目标页插入到非脏页链表中的相应位置处,并读取目标页的内容;其中,脏页链表,和/或,非脏页链表中按照访问计数进行排列。
而在在基树空间中查找写操作所针对目标页的索引,若基树空间中查找到目标页的索引,为目标页增加访问计数,并根据目标页的类型,将类型为脏页的目标页插入到脏页链表中的相应位置处,以及经类型为非脏页的目标页从非脏页链表中提取出来,并根据写操作对目标页的内容进行修改,以及在目标页上设置脏页标志,并将设置了脏页标志的目标页插入到脏页链表中的相应位置处;其中,脏页链表,和/或,非脏页链表中按照访问计数进行排列。从而实现了不同类型的页的分开存储方式,提高了缓存页面替换的效率。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图2所示,本发明实施例提供了一种缓存页面替换方法,该方法可以包括以下步骤:
步骤201:建立脏页链表和非脏页链表,其中,脏页链表用于存储脏页,非脏页链表用于存储非脏页。
在本实施例中,为了保证后续过程中,在进行缓存页面替换时,能够提高效率,可以建立两个链表,一个是脏页链表,另一个是非脏页链表,以将读的页和写的页区分开,以使得后续过程中,在访问同一个链表时,所访问到的页的类型都一样,从而提高缓存页面替换的效率。
其中,在建立脏页链表和非脏页链表时,可以包括如下方式:1、根据各个页的类型,手工将同一类型的页插入至同一个链表中。2、利用读操作和写操作来建立脏页链表和非脏页链表。
考虑方式1来建立脏页链表和非脏页链表的效率太低,本实施例可以采用方式2来详细说明脏页链表和非脏页链表的建立过程。
如图3所示,可以利用下述步骤实现利用读操作来建立脏页链表和非脏页链表的过程:
步骤301:在基树空间中查找读操作所针对目标页的索引,若查找到,则执行步骤302;若未查找到,则执行步骤305。
在本实施例中,读操作用于读取目标页的内容,以利用该目标页的内容去为各个应用程序或线程分配内存资源。
其中,基树空间是一个用于存储有页的索引的数据结构,用于指示目标页所存储的位置。若基树空间中包括目标页的索引,则表明在内存中包括该目标页;若基树空间中不包括目标页的索引,则表明在内存中不包括该目标页,就需要去新建该目标页。
步骤302:判断该目标页的类型是否为脏页,若不是,则执行步骤303;若是,则执行步骤304。
为了保证将同一类型的页存储至同一链表中,需要先判断目标页的类型,本实施例中,可以根据目标页是否包括脏页标志来判断目标页是否为脏页。其中,该脏页标志可以包括二进制数、字母标识等。例如,使用二进制0表征非脏页标志,使用二进制1表征脏页标志。
那么,在判断目标页的类型是否为脏页时,可以判断该目标页是否包括脏页标志:若目标页包括脏页标志1,那么该目标页的类型是脏页,若目标页包括非脏页标志,那么该目标页的类型是非脏页。
步骤303:增加该目标页的访问计数,将目标页插入到非脏页链表中的相应位置处,并执行步骤307。
在本实施例中,为了体现页被访问的概率大小,可以用访问计数来标识,例如,第一次访问目标页,那么需要设置该目标页的访问计数为初始访问计数,访问次数越多,其访问计数可以越大,从而表明访问该页的概率越高。对于访问计数越小的页,在内存不足时,可以优先将访问计数小的页进行释放。
因此,本次访问了该目标页,就要增加该目标页的访问计数。例如,当前目标页的访问计数是2,那么,可以为该目标页的访问计数增加1,增加后的目标页的访问计数是3。
如图4所示,为了后续过程中,提高页的释放效率,在非脏页链表中可以按照访问计数对页的顺序进行排列。例如,访问计数大的页在非脏页链表的链表头,访问计数小的页在非脏页链表的链表尾。由于目标页的访问计数是3,那么可以将目标页插入至非脏页链表中与访问计数为3的页之间,如图5所示。
进一步地,可以把当前被访问的目标页看做在后续过程中被访问的概率要高,因此,可以将当前访问的目标页插入到与目标页的访问计数相同的页中,但插入后目标页需与比目标页访问计数大1的页相邻,如图6所示,这样在后续过程中,可以优选选择与目标页访问计数相同的页去释放。
步骤304:增加目标页的访问计数,将目标页插入到脏页链表中的相应位置处,并执行步骤307。
其中,本步骤与步骤303类似,需要将目标页插入到脏页链表中,其中脏页链表同样可以按照页的访问计数对各个非脏页进行排列。
步骤305:则建立目标页,并从磁盘中读取目标页的内容将读取的该内容填充到目标页中,并设置目标页的初始访问计数。
在本实施中,若基树空间中不包括目标页的索引,则表明在内存中不包括该目标页,就需要去新建该目标页。其中,设置的目标页的初始访问计数可以是1。
步骤306:将目标页插入至非脏页链表的相应位置处。
本步骤与步骤303类似,需要将目标页插入到非脏页链表的相应位置处。
步骤307:读取目标页中的内容,然后返回。
在本实施例中,由于是读操作,因此,需要根据读操作,读取该目标页的内容。
根据上述读操作的过程,已经对脏页链表和非脏页链表进行了位置更新以及所包括页的个数的更新,从而建立起脏页链表和非脏页链表。
如图7所示,可以利用下述步骤实现利用写操作来建立脏页链表和非脏页链表的过程:
步骤701:在基树空间中查找写操作所针对目标页的索引,若查找到,则执行步骤702;若未查找到,则执行步骤705。
在本实施例中,写操作用于对目标页的内容进行修改,以利用修改后的该目标页的内容去为各个应用程序或线程分配内存资源。
其中,本步骤与步骤301类似。
步骤702:判断该目标页的类型是否为脏页,若不是,则执行步骤703;若是,则执行步骤704。
其中,本步骤与步骤302类似。
步骤703:增加目标页的访问计数,将目标页从非脏页链表中提取出来,并根据写操作对目标页的内容进行修改,以及在目标页上设置脏页标志,将设置了脏页标志的目标页插入到脏页链表中的相应位置处,并执行步骤707。
在本实施例中,由于在写操作之前目标页是非脏页,存储在于非脏页链表中,而写操作是对目标页的内容进行修改了,那么该目标页的类型就成了脏页了,因此,需要将目标页由非脏页链表中提取出来插入到脏页链表中。
步骤704:将类型为脏页的目标页插入到脏页链表中的相应位置处,并执行步骤707。
本步骤与步骤304类似,在此不做具体赘述。
步骤705:则建立目标页,并从磁盘中读取目标页的内容将读取的该内容填充到目标页中,并设置目标页的初始访问计数。
本步骤与步骤305类似,在此不作具体赘述。
步骤706:将目标页插入至脏页链表的相应位置处。
本步骤与步骤306类似,在此不作具体赘述。
步骤707:根据写操作将数据写入目标页,然后返回。
本步骤与步骤307类似,在此不作具体赘述。
根据上述写操作的过程,已经对脏页链表和非脏页链表进行了位置更新以及所包括页的个数的更新,从而建立起脏页链表和非脏页链表。
步骤202:在确定内存不足时,从非脏页链表中查找目标非脏页,并将查找到的目标非脏页进行释放。
在本实施中,可以根据非脏页链表的链表头到链表尾的方向,将访问计数从大到小的排列顺序可知,可以从非脏页链表的链表尾处开始选择访问计数较小的目标非脏页,来经这些目标非脏页进行释放,即从非脏页链表中移除这些目标非脏页,返回给内存管理器,以为各个应用或线程分配内存资源,从而来满足内存。
步骤203:判断当前释放的目标非脏页个数是否已经足够,若不是,执行步骤204,否则,执行步骤206。
步骤204:继续从非脏页链表中选择目标非脏页来释放,直到非脏页链表为空,则执行步骤205,以实现脏页刷写。
步骤205:从脏页链表中查找目标脏页,将该目标脏页从脏页链表中移除,并将目标脏页的内容写回磁盘,并清除目标脏页的脏页标志,将清除了脏页标志的目标脏页插入到非脏页链表中,并执行步骤202,直到满足内存,执行步骤206。
步骤206:结束。
根据上述方案,通过建立脏页链表和非脏页链表,以使得在访问非脏页链表时,所访问的页都是非脏页,在内存不足时,可以快速的选择非脏页链表中的非脏页进行释放,无需对链表中的页的类型进行检测,省却了页的检测时间,从而提高缓存页面替换的效率。
如图8、图9所示,本发明实施例提供了一种缓存页面替换装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图8所示,为本发明实施例缓存页面替换装置所在设备的一种硬件结构图,除了图8所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图9所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的缓存页面替换装置包括:
建立单元901,用于建立脏页链表和非脏页链表,其中,脏页链表用于存储脏页,非脏页链表用于存储非脏页;
非脏页处理单元902,用于在确定内存不足时,从非脏页链表中查找目标非脏页,并将查找到的目标非脏页进行释放;
脏页处理单元903,用于若将非脏页链表中所包括的所有非脏页全部释放依然无法满足内存时,从脏页链表中选择目标脏页,并消除目标脏页的脏页标志,并将消除了脏页标志的目标脏页存储至非脏页链表中,并触发非脏页处理单元执行相应操作,直到满足内存。
进一步地,建立单元901,用于在基树空间中查找读操作所针对目标页的索引,若基树空间中查找到目标页的索引,为目标页增加访问计数,并根据目标页的类型,将类型为脏页的目标页插入到脏页链表中的相应位置处,以及将类型为非脏页的目标页插入到非脏页链表中的相应位置处,并读取目标页的内容;其中,脏页链表,和/或,非脏页链表中按照访问计数进行排列。
进一步地,建立单元901,用于在基树空间中查找写操作所针对目标页的索引,若基树空间中查找到目标页的索引,为目标页增加访问计数,并根据目标页的类型,将类型为脏页的目标页插入到脏页链表中的相应位置处,以及经类型为非脏页的目标页从非脏页链表中提取出来,并根据写操作对目标页的内容进行修改,以及在目标页上设置脏页标志,并将设置了脏页标志的目标页插入到脏页链表中的相应位置处;其中,脏页链表,和/或,非脏页链表中按照访问计数进行排列。
进一步地,非脏页处理单元902,用于按照非脏页链表中访问计数从小到大的顺序,从非脏页链表中查找目标非脏页;
脏页处理单元902,用于按照脏页链表中访问计数从小到大的顺序,从脏页链表中选择目标脏页。
在本发明一个优选实施例中,如图10所示,该缓存页面替换装置可以进一步包括:
重建单元1001,用于在基树空间中未查找到目标页的索引,则建立目标页,并从磁盘中读取目标页的内容将读取的该内容填充到目标页中,并设置目标页的初始访问计数,将目标页插入至非脏页链表的相应位置处。
根据上述实施例可知,缓存页面替换装置的结构示意图可以如图11所示。其中,脏页链表(dirty_list)和非脏页链表(non_dirty_list)在内存管理区zone内,数据的读写操作可以通过基树来查找页的索引,从而可以实现非脏页链表的读写,以及实现脏页的刷写过程。
综上,本发明实施例至少可以实现如下有益效果:通过建立脏页链表和非脏页链表,以使得在访问非脏页链表时,所访问的页都是非脏页,在内存不足时,可以快速的选择非脏页链表中的非脏页进行释放,无需对链表中的页的类型进行检测,省却了页的检测时间,从而提高缓存页面替换的效率。
上述设备内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃〃〃〃〃〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种缓存页面替换方法,其特征在于,包括:
S1:建立脏页链表和非脏页链表,其中,所述脏页链表用于存储脏页,所述非脏页链表用于存储非脏页;
S2:在确定内存不足时,从所述非脏页链表中查找目标非脏页,并将查找到的目标非脏页进行释放;
S3:若将所述非脏页链表中所包括的所有非脏页全部释放依然无法满足内存时,从所述脏页链表中选择目标脏页,并消除所述目标脏页的脏页标志,并将消除了脏页标志的所述目标脏页存储至所述非脏页链表中,并执行S2,直到满足内存。
2.根据权利要求1所述的方法,其特征在于,所述建立脏页链表和非脏页链表,包括:
在基树空间中查找读操作所针对目标页的索引,若所述基树空间中查找到所述目标页的索引,为所述目标页增加访问计数,并根据所述目标页的类型,将类型为脏页的所述目标页插入到所述脏页链表中的相应位置处,以及将类型为非脏页的所述目标页插入到所述非脏页链表中的相应位置处,并读取所述目标页的内容;其中,所述脏页链表,和/或,所述非脏页链表中按照访问计数进行排列。
3.根据权利要求1所述的方法,其特征在于,所述建立脏页链表和非脏页链表,包括:
在基树空间中查找写操作所针对目标页的索引,若所述基树空间中查找到所述目标页的索引,为所述目标页增加访问计数,并根据所述目标页的类型,将类型为脏页的所述目标页插入到所述脏页链表中的相应位置处,以及将类型为非脏页的所述目标页从所述非脏页链表中提取出来,并根据所述写操作对所述目标页的内容进行修改,以及在所述目标页上设置脏页标志,并将设置了脏页标志的所述目标页插入到所述脏页链表中的相应位置处;其中,所述脏页链表,和/或,所述非脏页链表中按照访问计数进行排列。
4.根据权利要求2或3所述的方法,其特征在于,进一步包括:
按照所述非脏页链表中访问计数从小到大的顺序,从所述非脏页链表中查找目标非脏页;
按照所述脏页链表中访问计数从小到大的顺序,从所述脏页链表中选择目标脏页。
5.根据权利要求2或3所述的方法,其特征在于,进一步包括:
若所述基树空间中未查找到所述目标页的索引,则建立所述目标页,并从磁盘中读取所述目标页的内容将读取的该内容填充到所述目标页中,并设置所述目标页的初始访问计数,将所述目标页插入至非脏页链表的相应位置处。
6.一种缓存页面替换装置,其特征在于,包括:
建立单元,用于建立脏页链表和非脏页链表,其中,所述脏页链表用于存储脏页,所述非脏页链表用于存储非脏页;
非脏页处理单元,用于在确定内存不足时,从所述非脏页链表中查找目标非脏页,并将查找到的目标非脏页进行释放;
脏页处理单元,用于若将所述非脏页链表中所包括的所有非脏页全部释放依然无法满足内存时,从所述脏页链表中选择目标脏页,并消除所述目标脏页的脏页标志,并将消除了脏页标志的所述目标脏页存储至所述非脏页链表中,并触发所述非脏页处理单元执行相应操作,直到满足内存。
7.根据权利要求6所述的缓存页面替换装置,其特征在于,所述建立单元,用于在基树空间中查找读操作所针对目标页的索引,若所述基树空间中查找到所述目标页的索引,为所述目标页增加访问计数,并根据所述目标页的类型,将类型为脏页的所述目标页插入到所述脏页链表中的相应位置处,以及将类型为非脏页的所述目标页插入到所述非脏页链表中的相应位置处,并读取所述目标页的内容;其中,所述脏页链表,和/或,所述非脏页链表中按照访问计数进行排列。
8.根据权利要求6所述的缓存页面替换装置,其特征在于,所述建立单元,用于在基树空间中查找写操作所针对目标页的索引,若所述基树空间中查找到所述目标页的索引,为所述目标页增加访问计数,并根据所述目标页的类型,将类型为脏页的所述目标页插入到所述脏页链表中的相应位置处,以及将类型为非脏页的所述目标页从所述非脏页链表中提取出来,并根据所述写操作对所述目标页的内容进行修改,以及在所述目标页上设置脏页标志,并将设置了脏页标志的所述目标页插入到所述脏页链表中的相应位置处;其中,所述脏页链表,和/或,所述非脏页链表中按照访问计数进行排列。
9.根据权利要求7或8所述的缓存页面替换装置,其特征在于,
所述非脏页处理单元,用于按照所述非脏页链表中访问计数从小到大的顺序,从所述非脏页链表中查找目标非脏页;
所述脏页处理单元,用于按照所述脏页链表中访问计数从小到大的顺序,从所述脏页链表中选择目标脏页。
10.根据权利要求7或8所述的缓存页面替换装置,其特征在于,进一步包括:
重建单元,用于在所述基树空间中未查找到所述目标页的索引,则建立所述目标页,并从磁盘中读取所述目标页的内容将读取的该内容填充到所述目标页中,并设置所述目标页的初始访问计数,将所述目标页插入至非脏页链表的相应位置处。
CN201510466661.8A 2015-07-31 2015-07-31 一种缓存页面替换方法及装置 Pending CN105068941A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510466661.8A CN105068941A (zh) 2015-07-31 2015-07-31 一种缓存页面替换方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510466661.8A CN105068941A (zh) 2015-07-31 2015-07-31 一种缓存页面替换方法及装置

Publications (1)

Publication Number Publication Date
CN105068941A true CN105068941A (zh) 2015-11-18

Family

ID=54498318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510466661.8A Pending CN105068941A (zh) 2015-07-31 2015-07-31 一种缓存页面替换方法及装置

Country Status (1)

Country Link
CN (1) CN105068941A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943422A (zh) * 2017-12-07 2018-04-20 郑州云海信息技术有限公司 一种高速存储介质数据管理方法、系统及装置
CN110895515A (zh) * 2018-09-12 2020-03-20 中兴通讯股份有限公司 内存缓存管理方法、多媒体服务器及计算机存储介质
CN112052089A (zh) * 2020-09-01 2020-12-08 Oppo(重庆)智能科技有限公司 内存回收方法、装置以及电子设备
CN112835528A (zh) * 2021-02-22 2021-05-25 北京金山云网络技术有限公司 脏页刷新方法和装置、电子设备和存储介质
CN113434796A (zh) * 2021-06-24 2021-09-24 青岛海尔科技有限公司 页面缓存的操作方法及装置、存储介质及电子装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080016274A1 (en) * 2006-07-13 2008-01-17 Xing-Jia Wang Method of protecting cache memory data in storage system
CN102012873A (zh) * 2010-11-24 2011-04-13 清华大学 Nand闪存的缓存系统及缓存方法
CN102156753A (zh) * 2011-04-29 2011-08-17 中国人民解放军国防科学技术大学 面向固态硬盘文件系统的数据页缓存方法
CN103049396A (zh) * 2012-12-10 2013-04-17 浪潮(北京)电子信息产业有限公司 数据的刷写方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080016274A1 (en) * 2006-07-13 2008-01-17 Xing-Jia Wang Method of protecting cache memory data in storage system
CN102012873A (zh) * 2010-11-24 2011-04-13 清华大学 Nand闪存的缓存系统及缓存方法
CN102156753A (zh) * 2011-04-29 2011-08-17 中国人民解放军国防科学技术大学 面向固态硬盘文件系统的数据页缓存方法
CN103049396A (zh) * 2012-12-10 2013-04-17 浪潮(北京)电子信息产业有限公司 数据的刷写方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943422A (zh) * 2017-12-07 2018-04-20 郑州云海信息技术有限公司 一种高速存储介质数据管理方法、系统及装置
CN110895515A (zh) * 2018-09-12 2020-03-20 中兴通讯股份有限公司 内存缓存管理方法、多媒体服务器及计算机存储介质
CN112052089A (zh) * 2020-09-01 2020-12-08 Oppo(重庆)智能科技有限公司 内存回收方法、装置以及电子设备
CN112835528A (zh) * 2021-02-22 2021-05-25 北京金山云网络技术有限公司 脏页刷新方法和装置、电子设备和存储介质
CN113434796A (zh) * 2021-06-24 2021-09-24 青岛海尔科技有限公司 页面缓存的操作方法及装置、存储介质及电子装置
CN113434796B (zh) * 2021-06-24 2023-08-18 青岛海尔科技有限公司 页面缓存的操作方法及装置、存储介质及电子装置

Similar Documents

Publication Publication Date Title
US10739996B1 (en) Enhanced garbage collection
US10176190B2 (en) Data integrity and loss resistance in high performance and high capacity storage deduplication
CN109783017B (zh) 一种存储设备坏块的处理方法、装置及存储设备
CN103608866B (zh) 用于闪存存储器的数据擦除方法及装置
CN105068941A (zh) 一种缓存页面替换方法及装置
CN102541757B (zh) 写缓存方法、缓存同步方法和装置
US20130290277A1 (en) Deduplicating storage with enhanced frequent-block detection
WO2016041401A1 (zh) 向缓存中写入数据的方法及装置
CN110399310A (zh) 一种存储空间的回收方法及装置
CN105095116A (zh) 缓存替换的方法、缓存控制器和处理器
WO2013012901A1 (en) Method and apparatus for ssd storage access
JP2017084338A (ja) フラッシュメモリのフラッシングを改善する方法およびシステム
CN110673789A (zh) 固态硬盘的元数据存储管理方法、装置、设备及存储介质
CN111930301A (zh) 垃圾回收优化方法、装置、存储介质及电子设备
CN102662799B (zh) 数据备份的方法、服务器及热备份系统
CN109407985B (zh) 一种数据管理的方法以及相关装置
CN107122130A (zh) 一种数据重删方法及装置
WO2021068517A1 (zh) 一种存储数据整理方法与装置
CN104142979B (zh) 一种实现rfid标签存储管理的索引方法
CN108664217B (zh) 一种降低固态盘存储系统写性能抖动的缓存方法及系统
US10007601B2 (en) Data storage device and operating method for flash memory
CN109408416B (zh) 一种地址映射表项页管理方法及装置
CN102169464B (zh) 一种用于非易失性存储器的缓存方法、装置及智能卡
US7080206B2 (en) System and method for adaptively loading input data into a multi-dimensional clustering table
CN111625482A (zh) 顺序流检测方法与装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20151118

WD01 Invention patent application deemed withdrawn after publication