CN108763103A - 一种内存管理方法、装置、系统及计算机可读存储介质 - Google Patents
一种内存管理方法、装置、系统及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108763103A CN108763103A CN201810508017.6A CN201810508017A CN108763103A CN 108763103 A CN108763103 A CN 108763103A CN 201810508017 A CN201810508017 A CN 201810508017A CN 108763103 A CN108763103 A CN 108763103A
- Authority
- CN
- China
- Prior art keywords
- buffer queue
- eliminated
- directory entry
- tail portion
- memory management
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000007726 management method Methods 0.000 claims description 86
- 230000000694 effects Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000002955 isolation Methods 0.000 description 4
- 238000000151 deposition Methods 0.000 description 3
- 230000001737 promoting effect Effects 0.000 description 3
- 238000005406 washing Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- 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/0877—Cache access modes
-
- 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
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
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)
Abstract
本发明公开了一种内存管理方法,在访问数据时,可以判断与数据对应的目录项是否首次在内存中创建,并通过将首次在内存中创建的目录项存入第一缓存队列,将缓存命中的待淘汰目录项从第一缓存队列中移至第二缓存队列的头部,使热点数据对应的目录项存入第二缓存队列,而因偶发性操作导致访问的冷数据对应的目录项被隔离在第一缓存队列中。在缓存队列满的时候,通过优先淘汰处于第一缓存队列尾部的待淘汰目录项的方式,快速淘汰冷数据对应的目录项,从而能够减少因偶发性操作造成的内存污染。同时,第二缓存队列采用LRU算法,依旧能够保证热点数据的缓存命中率。此外,本发明还公开了一种内存管理装置、系统及计算机可读存储介质,效果如上。
Description
技术领域
本发明涉及存储领域,特别涉及一种内存管理方法、装置、系统及计算机可读存储介质。
背景技术
在数据呈现爆炸式增长的背景下,分布式集群存储具有容量和性能线性扩展的优势,在高性能、视频监控、广电媒资等多个场景广泛应用。
在现有技术中,内存管理采用的是单LRU机制,只有一个缓存队列,并且常常使用LRU算法淘汰缓存队列中的目录项,如此一来,只有在存在热点数据的时候,缓存命中率才较高,而一旦出现偶发性或周期性的操作时,则会造成内存污染,使得缓存命中率会随之降低。
因此,如何在兼容热点数据的前提下,减少偶发性操作造成的内存污染是本领域技术人员目前需要解决的技术问题。
发明内容
本发明的目的是提供一种内存管理方法、装置、系统及计算机可读存储介质,在兼容热点数据的前提下,能够减少偶发性操作造成的内存污染。
为了解决上述技术问题,本发明提供的一种内存管理方法,包括:
当访问数据时,判断与所述数据对应的目录项是否首次在内存中创建;
若是,则将所述目录项作为待淘汰目录项存入第一缓存队列的头部;
将缓存命中的所述待淘汰目录项作为目标目录项从所述第一缓存队列移至第二缓存队列的头部;
当缓存队列满时,淘汰处于所述第一缓存队列尾部的所述待淘汰目录项;
其中,所述缓存队列包括所述第一缓存队列和所述第二缓存队列,且所述第二缓存队列采用LRU算法进行维护。
优选地,所述数据具体为元数据;
则对应的,所述内存具体为元数据内存。
优选地,所述第一缓存队列具体为bottom_lru队列,所述第二缓存队列具体为lru队列。
优选地,当所述第一缓存队列的容量为零时,还包括:
从所述第二缓存队列的尾部淘汰预设数目的所述目标目录项。
优选地,在所述淘汰处于所述第一缓存队列尾部的所述待淘汰目录项之前,还包括:
判断所述第二缓存队列的容量是否大于预设容量;
如果是,则淘汰处于所述第二缓存队列尾部的所述目标目录项;
如果否,则继续执行所述淘汰处于所述第一缓存队列尾部的所述待淘汰目录项的步骤。
优选地,在所述淘汰处于所述第一缓存队列尾部的所述待淘汰目录项之后,还包括:
判断所述第二缓存队列的容量是否大于预设容量;
如果是,则将处于所述第二缓存队列尾部的所述目标目录项作为所述待淘汰目录项移至所述第一缓存队列头部。
优选地,在所述淘汰处于所述第一缓存队列尾部的所述待淘汰目录项之前,还包括:
判断处于所述第一缓存队列尾部的所述待淘汰目录项从创建到当前时刻的时长是否小于处于所述第二缓存队列尾部的所述目标目录项从最后一次被命中到所述当前时刻的时长;
如果是,则淘汰处于所述第二缓存队列尾部的所述目标目录项;
如果否,则继续执行所述淘汰处于所述第一缓存队列尾部的所述待淘汰目录项的步骤。
为了解决上述技术问题,本发明提供的一种内存管理装置,包括:
判断模块,用于当访问数据时,判断与所述数据对应的目录项是否首次在内存中创建;
创建模块,用于当所述目录项首次在所述内存中创建时,将所述目录项作为待淘汰目录项存入第一缓存队列的头部;
移动模块,用于将缓存命中的所述待淘汰目录项作为目标目录项从所述第一缓存队列移至第二缓存队列的头部;
淘汰模块,用于当缓存队列满时,淘汰处于所述第一缓存队列尾部的所述待淘汰目录项;
其中,所述缓存队列包括所述第一缓存队列和所述第二缓存队列,且所述第二缓存队列采用LRU算法进行维护。
为了解决上述技术问题,本发明提供的一种内存管理系统,包括:
存储器,用于存储内存管理程序;
处理器,用于在执行所述内存管理程序时实现如上述任一种内存管理方法的步骤。
为了解决上述技术问题,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有内存管理程序,所述内存管理程序被处理器执行时实现如上述任一种内存管理方法的步骤。
本发明提供的内存管理方法,在访问数据时,可以判断与数据对应的目录项是否首次在内存中创建,并通过将首次在内存中创建的目录项作为待淘汰目录项存入第一缓存队列,将缓存命中的待淘汰目录项作为目标目录项从第一缓存队列中移至第二缓存队列的头部,使热点数据对应的目录项存入第二缓存队列,而因偶发性操作导致访问的冷数据对应的目录项被隔离在第一缓存队列中。在缓存队列满的时候,通过优先淘汰处于第一缓存队列尾部的待淘汰目录项的方式,快速淘汰冷数据对应的目录项,从而能够减少因偶发性操作造成的内存污染。同时,第二缓存队列采用LRU算法,依旧能够保证热点数据的缓存命中率。此外,本发明还提供了一种内存管理装置、系统及计算机可读存储介质,效果如上。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的一种内存管理方法的流程图;
图2为本发明实施例提供的一种内存管理装置的组成示意图;
图3为本发明实施例提供的一种内存管理系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动的前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的目的是提供一种内存管理方法、装置、系统及计算机可读存储介质,在兼容热点数据的前提下,能够减少偶发性操作造成的内存污染。
为了使本领域的技术人员更好的理解本发明技术方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
图1为本发明实施例提供的一种内存管理方法的流程图。如图1所示,本实施例提供的内存管理方法包括:
S10:当访问数据时,判断与数据对应的目录项是否首次在内存中创建。
其中,与数据对应的目录项首次在内存中创建是指:在当前的第一缓存队列和当前的第二缓存队列中均未存有该目录项;第二缓存队列采用LRU算法进行维护,当访问数据时,先在第二缓存队列中进行缓存命中,如果在第二缓存队列中无法命中,则再在第一缓存队列中进行缓存命中。
在步骤S10中,如果判断出与数据对应的目录项是首次在内存中创建,则进入步骤S11;如果判断出与数据对应的目录项不是首次在内存中创建,则对应与两种情况,第一种情况是与数据对应的目录项作为待淘汰目录项已经存入第一缓存队列中,第二种情况是与数据对应的目录项已经作为目标目录项已经存入第二缓存队列中。那么,对于第一种情况而言,则进入步骤S112即可,而对于第二种情况而言,则直接访问第二缓存队列中对应的目标目录项即可。
S11:将目录项作为待淘汰目录项存入第一缓存队列的头部。
对于首次在内存中创建的目录项而言,其可能是对应于热点数据,也可能是对应于冷数据,也就是说,首次在内存中创建的目录项可能是与因偶发性的、周期性的操作导致访问的冷数据对应的,该目录项在本次访问结束后,很可能在相对较长的一段时间内均不会被再次访问,如果直接将其存入采用LRU算法的第二缓存队列中,与热点数据对应的目标目录项混合在一起,可能会降低热点数据的缓存命中率。因此,在步骤S11中,先将首次在内存中创建的目录项作为待淘汰目录项存入第一缓存队列的头部,如果在相对较短的一段时间内,第一缓存队列中的待淘汰目录项被再次命中,则说明该待淘汰目录项很大可能对应于热点数据,进入步骤S12;而如果在相对较长的一段时间内,第一缓存队列中的待淘汰目录项没有被再次命中,则说明该待淘汰目录项很可能对应于冷数据,将随着新存储待淘汰目录项的增多而逐渐被从第一缓存队列中淘汰。
S12:将缓存命中的待淘汰目录项作为目标目录项从第一缓存队列移至第二缓存队列的头部。
在待淘汰目录项从第一缓存队列中被淘汰之前,如果被再次缓存命中,则说明该待淘汰目录项很可能对应于热点数据,所以,将该待淘汰目录项作为目标目录项从第一缓存队列中移至第二缓存队列的头部,将其视为与热点数据对应的目录项,采用LRU算法进行管理。
S13:当缓存队列满时,淘汰处于第一缓存队列尾部的待淘汰目录项。
其中,缓存队列包括第一缓存队列和第二缓存队列,缓存队列满是指第一缓存队列中待淘汰目录项的已存量和第二缓存队列中的目标目录项的已存量之和达到内存的可用容量上限。
相比于存储于第二缓存队列中的目标目录项而言,存储于第一缓存队列中的待淘汰目录项对应与冷数据的可能性更大,而处在第一缓存队列尾部的待淘汰目录项又为存入第一缓存队列中时间最长的待淘汰目录项,所以,与其它存储在第一缓存队列中的待淘汰目录项相比,其为冷数据的概率最大,因此,当缓存队列满的时候,优先淘汰处于第一缓存队尾部的待淘汰目录项。
另外,需要说明的是,在图1中虽然将步骤S10-S13依次顺序排列,但是,在具体实施中,各步骤之间的执行顺序取决于系统的具体运行情况,没有严格的先后之分。
综上所述,本实施例提供的内存管理方法,在访问数据时,可以判断与数据对应的目录项是否首次在内存中创建,并通过将首次在内存中创建的目录项作为待淘汰目录项存入第一缓存队列,将缓存命中的待淘汰目录项作为目标目录项从第一缓存队列中移至第二缓存队列的头部,使热点数据对应的目录项存入第二缓存队列,而因偶发性操作导致访问的冷数据对应的目录项被隔离在第一缓存队列中。在缓存队列满的时候,通过优先淘汰处于第一缓存队列尾部的待淘汰目录项的方式,快速淘汰冷数据对应的目录项,从而能够减少因偶发性操作造成的内存污染。同时,第二缓存队列采用LRU算法,依旧能够保证热点数据的缓存命中率。
为了提升元数据内存管理效率,基于上述实施例,作为一种优选的实施方式,数据具体为元数据;则对应的,内存具体为元数据内存。
在本实施例中,数据具体为元数据,内存具体为元数据内存,也就是说,将本发明提供的内存管理方法应用于元数据内存管理,因此,本实施例提供的内存管理方法可以提升元数据内存管理效率,从而减少元数据内存污染、提高元数据内存的命中率和使用效率,侧面提升元数据的性能。
当然,可以理解的是,除了将本发明提供的内存管理方法应用于元数据内存管理外,还可以应用于其它模块内存管理,例如客户端缓存,本发明对此不做限定。
为了进一步提升内存管理方法的管理效率,基于上述实施例,作为一种优选的实施方式,第一缓存队列具体为bottom_lru队列,第二缓存队列具体为lru队列。
bottom_lru队列和lru队列均为元数据内存中常用的缓存队列,将bottom_lru队列作为第一缓存队列,将lru队列作为第二缓存队列更有利于管理效率的提升。
为了进一步提升内存管理方法的管理效率,基于上述实施例,作为一种优选的实施方式,当第一缓存队列的容量为零时,还包括:
从第二缓存队列的尾部淘汰预设数目的目标目录项。
其中,预设数目预先设置,其具体数值应根据内存的大小及实际使用情况灵活调节,本发明对此不作限定。
由于当缓存队列满时,优先淘汰的是处于第一缓存队列尾部的待淘汰目录项,所以,第二缓存队列中的目标目录项足够多时,第一缓存队列的容量将为零,如此,第一缓存队列便很难再起到隔离冷数据的作用,因此,在本实施例中,当第一缓存队列的容量为零时,则从第二缓存队列的尾部淘汰预设数据的目标目录项,以为第一缓存队列提供的一定容量。处于第二缓存队列的尾部的目标目录项相对于第二缓存队列中的其它目标目录项而言,其未被再次命中的时间稍长,很可能在当前时段处于第二缓存队列的尾部的目标目录项对应的数据已经成为了冷数据,所以,将处于第二缓存队列的尾部的预设数目的目标目录项淘汰掉以为第一缓存队列提供一定的容量,有利于增强第一缓存队列的隔离冷数据的作用。
为了进一步提升内存管理方法的管理效率,基于上述实施例,作为一种优选的实施方式,在淘汰处于第一缓存队列尾部的待淘汰目录项之前,还包括:
判断第二缓存队列的容量是否大于预设容量;
如果是,则淘汰处于第二缓存队列尾部的目标目录项;
如果否,则继续执行淘汰处于第一缓存队列尾部的待淘汰目录的步骤。
其中,预设容量预先设置,其具体数值应根据内存的大小及实际使用情况灵活调节,本发明对此不作限定。
由于当缓存队列满时,优先淘汰的是处于第一缓存队列尾部的待淘汰目录项,所以,如果不对第二缓存队列的容量上限加以设置,最终会导致第一缓存队列的容量为零,无法再起隔离冷数据的作用。再加上,考虑到第二缓存队列中的目标目录项的对应的数据不可能一直为热数据,因此,在本实施例中,通过设置预设容量来限制第二缓存队列的容量,使得第一缓存队列的容量不至于会逐渐缩减为零,能够一直起到隔离冷数据的作用。具体地,在第二缓存队列的容量不大于预设容量之前,如果缓存队列满,则优先淘汰处于第一缓存队列尾部的待淘汰目录项,而在第二缓存队列的容量大于预设容量之后,则优先淘汰处于第二缓存队列尾部的目标目录项,在将处于第二缓存队列尾部的目标目录项淘汰之后,缓存队列便处于未满状态,从而无需再淘汰处于第一缓存队列尾部的待淘汰目录项,达到为第一缓存队列保持一定的容量的目的,有利用提升内存管理方法的管理效率。
为了进一步提升内存管理方法的管理效率,基于上述实施例,作为一种优选的实施方式,在淘汰处于第一缓存队列尾部的待淘汰目录项之后,还包括:
判断第二缓存队列的容量是否大于预设容量;
如果是,则将处于第二缓存队列尾部的目标目录项作为待淘汰目录项移至第一缓存队列头部。
其中,预设容量预先设置,其具体数值应根据内存的大小及实际使用情况灵活调节,本发明对此不作限定。
由于当缓存队列满时,优先淘汰的是处于第一缓存队列尾部的待淘汰目录项,所以,如果不对第二缓存队列的容量上限加以设置,最终会导致第一缓存队列的容量为零,无法再起隔离冷数据的作用。再加上,考虑到第二缓存队列中的目标目录项的对应的数据不可能一直为热数据,因此,在本实施例中,通过设置预设容量来限制第二缓存队列的容量,使得第一缓存队列的容量不至于会逐渐缩减为零,能够一直起到隔离冷数据的作用。具体地,在淘汰处于第一缓存队列尾部的待淘汰目录项之后,如果第二缓存队列的容量大于预设容量则将处于第二缓存队列尾部的目标目录项作为待淘汰目录项移至第一缓存队列头部,而如果第二缓存队列的容量不大于预设容量,则在淘汰处于第一缓存队列尾部的待淘汰目录项之后,无需对缓存队列作出其它调整。
可见,处于第二缓存队列尾部的目标目录项对应的数据虽然相对于第二缓存队列中的其它目录项对应的数据而言,其为冷数据的可能性更大,但是其相对于处于第一缓存队列尾部的待淘汰目录项对应的数据而言,其为热点数据的可能性更大,所以,将处于第一缓存队列尾部的待淘汰目录项淘汰之后,将处于第二缓存队列尾部的目标目录项再移至第一缓存队列的头部,既能够保留热点数据可能性更大的目录项不被删除,又能保持第一缓存队列的容量,有利于进一步提升内存管理方法的管理效率。
优先淘汰处于第二缓存队列尾部的目标目录项,在将处于第二缓存队列尾部的目标目录项淘汰之后,缓存队列便处于未满状态,从而为第一缓存队列能够保持了一定的容量,有利用提升内存管理方法的管理效率。
为了进一步提升内存管理方法的管理效率,基于上述实施例,作为一种优选的实施方式,在淘汰处于第一缓存队列尾部的待淘汰目录项之前,还包括:
判断处于第一缓存队列尾部的待淘汰目录项从创建到当前时刻的时长是否小于处于第二缓存队列尾部的目标目录项从最后一次被命中到当前时刻的时长;
如果是,则淘汰处于第二缓存队列尾部的目标目录项;
如果否,则继续执行淘汰处于第一缓存队列尾部的待淘汰目录项的步骤。
如果处于第一缓存队列尾部的待淘汰目录项从创建到当前时刻的时长小于处于第二缓存队列尾部的目标目录项从最后一次被命中到当前时刻的时长,则说明处于第一缓存队列尾部的待淘汰目录项对应的数据相对于处于第二缓存队列尾部的目标目录项对应的数据,其更可能为热点数据,所以,在淘汰处于第一缓存队列尾部的待淘汰目录项之前,先淘汰处于第二缓存队列尾部的目标目录项,在淘汰完处于第二缓存队列尾部的目标目录项之后,缓存队列处于未满状态,则无需再淘汰处于第一缓存队列尾部的待淘汰目录项;而如果处于第一缓存队列尾部的待淘汰目录项从创建到当前时刻的时长不小于处于第二缓存队列尾部的目标目录项从最后一次被命中到当前时刻的时长,则说明处于第二缓存队列尾部的目标目录项对应的数据相对于处于第一缓存队列尾部的待淘汰目录项对应的数据,其更可能为热点数据,所以,继续执行淘汰处于第一缓存队列尾部的待淘汰目录项的步骤。可见,应用本实施例提供的内存管理方法,总能够淘汰缓存队列中与相对较冷的数据对应的目录项,从而能够进一步提升内存管理方法的管理效率。
上文对于本发明提供的一种内存管理方法的实施例进行了详细的描述,本发明还提供了一种与内存管理方法对应的内存管理装置,由于装置部分的实施例与方法部分的实施例相互照应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
图2为本发明实施例提供的一种内存管理装置的组成示意图。如图2所示,本实施例提供的一种内存管理装置包括:
判断模块20,用于当访问数据时,判断与数据对应的目录项是否首次在内存中创建;
创建模块21,用于当目录项首次在内存中创建时,将目录项作为待淘汰目录项存入第一缓存队列的头部;
移动模块22,用于将缓存命中的待淘汰目录项作为目标目录项从第一缓存队列移至第二缓存队列的头部;
淘汰模块23,用于当缓存队列满时,淘汰处于第一缓存队列尾部的待淘汰目录项;
其中,缓存队列包括第一缓存队列和第二缓存队列,且第二缓存队列采用LRU算法进行维护。
可见,本实施例提供的内存管理装置,在访问数据时,判断模块可以判断与数据对应的目录项是否首次在内存中创建,并通过创建模块将首次在内存中创建的目录项作为待淘汰目录项存入第一缓存队列,移动模块将缓存命中的待淘汰目录项作为目标目录项从第一缓存队列中移至第二缓存队列的头部,使热点数据对应的目录项存入第二缓存队列,而因偶发性操作导致访问的冷数据对应的目录项被隔离在第一缓存队列中。在缓存队列满的时候,通过淘汰模块优先淘汰处于第一缓存队列尾部的待淘汰目录项的方式,快速淘汰冷数据对应的目录项,从而能够减少因偶发性操作造成的内存污染。同时,第二缓存队列采用LRU算法,依旧能够保证热点数据的缓存命中率。
上文对于本发明提供的一种内存管理方法的实施例进行了详细的描述,本发明还提供了一种与内存管理方法对应的内存管理系统,由于系统部分的实施例与方法部分的实施例相互照应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
图3为本发明实施例提供的一种内存管理系统的结构示意图。如图3所示,本实施例提供内存管理系统包括:
存储器30,用于存储内存管理程序;
处理器31,用于在执行内存管理程序时实现如上述任一实施例提供的内存管理方法的步骤。
本实施例提供的内存管理系统,由于可以通过处理器调用存储器存储的管理程序,实现如上述任一实施例提供的内存管理方法的步骤,所以本系统具有同上述内存管理方法同样的实际效果。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有内存管理程序,内存管理程序被处理器执行时实现如上述任一实施例提供的内存管理方法的步骤。
本实施例提供的计算机可读存储介质存储有管理程序,由于管理程序被处理器执行时可以实现如上述任一实施例提供的内存管理方法的步骤,所以本计算机可读存储介质具有同上述内存管理方法同样的实际效果。
以上对本发明所提供的一种内存管理方法、装置、系统及计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明都是与其它实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何变体意在涵盖非排他性的包含,从而使得包括一系列的要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种内存管理方法,其特征在于,包括:
当访问数据时,判断与所述数据对应的目录项是否首次在内存中创建;
若是,则将所述目录项作为待淘汰目录项存入第一缓存队列的头部;
将缓存命中的所述待淘汰目录项作为目标目录项从所述第一缓存队列移至第二缓存队列的头部;
当缓存队列满时,淘汰处于所述第一缓存队列尾部的所述待淘汰目录项;
其中,所述缓存队列包括所述第一缓存队列和所述第二缓存队列,且所述第二缓存队列采用LRU算法进行维护。
2.根据权利要求1所述的内存管理方法,其特征在于,所述数据具体为元数据;
则对应的,所述内存具体为元数据内存。
3.根据权利要求2所述的内存管理方法,其特征在于,所述第一缓存队列具体为bottom_lru队列,所述第二缓存队列具体为lru队列。
4.根据权利要求1-3任一项所述的内存管理方法,其特征在于,当所述第一缓存队列的容量为零时,还包括:
从所述第二缓存队列的尾部淘汰预设数目的所述目标目录项。
5.根据权利要求1-3任一项所述的内存管理方法,其特征在于,在所述淘汰处于所述第一缓存队列尾部的所述待淘汰目录项之前,还包括:
判断所述第二缓存队列的容量是否大于预设容量;
如果是,则淘汰处于所述第二缓存队列尾部的所述目标目录项;
如果否,则继续执行所述淘汰处于所述第一缓存队列尾部的所述待淘汰目录项的步骤。
6.根据权利要求1-3任一项所述的内存管理方法,其特征在于,在所述淘汰处于所述第一缓存队列尾部的所述待淘汰目录项之后,还包括:
判断所述第二缓存队列的容量是否大于预设容量;
如果是,则将处于所述第二缓存队列尾部的所述目标目录项作为所述待淘汰目录项移至所述第一缓存队列头部。
7.根据权利要求1-3任一项所述的内存管理方法,其特征在于,在所述淘汰处于所述第一缓存队列尾部的所述待淘汰目录项之前,还包括:
判断处于所述第一缓存队列尾部的所述待淘汰目录项从创建到当前时刻的时长是否小于处于所述第二缓存队列尾部的所述目标目录项从最后一次被命中到所述当前时刻的时长;
如果是,则淘汰处于所述第二缓存队列尾部的所述目标目录项;
如果否,则继续执行所述淘汰处于所述第一缓存队列尾部的所述待淘汰目录项的步骤。
8.一种内存管理装置,其特征在于,包括:
判断模块,用于当访问数据时,判断与所述数据对应的目录项是否首次在内存中创建;
创建模块,用于当所述目录项首次在所述内存中创建时,将所述目录项作为待淘汰目录项存入第一缓存队列的头部;
移动模块,用于将缓存命中的所述待淘汰目录项作为目标目录项从所述第一缓存队列移至第二缓存队列的头部;
淘汰模块,用于当缓存队列满时,淘汰处于所述第一缓存队列尾部的所述待淘汰目录项;
其中,所述缓存队列包括所述第一缓存队列和所述第二缓存队列,且所述第二缓存队列采用LRU算法进行维护。
9.一种内存管理系统,其特征在于,包括:
存储器,用于存储内存管理程序;
处理器,用于在执行所述内存管理程序时实现如权利要求1-7任一项所述的内存管理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有内存管理程序,所述内存管理程序被处理器执行时实现如权利要求1-7任一项所述的内存管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810508017.6A CN108763103A (zh) | 2018-05-24 | 2018-05-24 | 一种内存管理方法、装置、系统及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810508017.6A CN108763103A (zh) | 2018-05-24 | 2018-05-24 | 一种内存管理方法、装置、系统及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108763103A true CN108763103A (zh) | 2018-11-06 |
Family
ID=64005464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810508017.6A Withdrawn CN108763103A (zh) | 2018-05-24 | 2018-05-24 | 一种内存管理方法、装置、系统及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763103A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399316A (zh) * | 2019-06-28 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种用于业务系统性能优化的方法和装置 |
CN110688226A (zh) * | 2019-09-27 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种缓存回收方法、装置、设备及可读存储介质 |
CN110908612A (zh) * | 2019-11-27 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 缓存管理方法、装置、设备及存储介质 |
CN111240593A (zh) * | 2020-01-06 | 2020-06-05 | 苏州浪潮智能科技有限公司 | 一种动态自适应调度的数据迁移方法、装置、设备和介质 |
CN111309650A (zh) * | 2020-02-11 | 2020-06-19 | 广州市百果园信息技术有限公司 | 缓存控制方法、装置、存储介质及设备 |
CN111367833A (zh) * | 2020-03-31 | 2020-07-03 | 中国建设银行股份有限公司 | 数据缓存方法、装置、计算机设备以及可读存储介质 |
CN111506524A (zh) * | 2019-01-31 | 2020-08-07 | 华为技术有限公司 | 一种数据库中淘汰、预加载数据页的方法、装置 |
CN111736758A (zh) * | 2019-03-25 | 2020-10-02 | 贵州白山云科技股份有限公司 | 一种持久缓存的设置方法、装置、设备及介质 |
CN112000281A (zh) * | 2020-07-30 | 2020-11-27 | 北京浪潮数据技术有限公司 | 一种存储系统重删元数据的缓存方法、系统及装置 |
CN112860185A (zh) * | 2021-01-29 | 2021-05-28 | 西藏宁算科技集团有限公司 | 基于lru算法的高可用缓存方法、存储装置以及电子设备 |
CN112988622A (zh) * | 2021-03-03 | 2021-06-18 | 广州安凯微电子股份有限公司 | 一种队列缓存方法及设备 |
CN113391766A (zh) * | 2021-06-28 | 2021-09-14 | 苏州浪潮智能科技有限公司 | 一种缓存页的淘汰方法、装置、设备及介质 |
CN113590031A (zh) * | 2021-06-30 | 2021-11-02 | 郑州云海信息技术有限公司 | 一种缓存管理方法、装置、设备以及计算机可读存储介质 |
CN117093508A (zh) * | 2023-10-17 | 2023-11-21 | 苏州元脑智能科技有限公司 | 一种内存资源管理方法、装置、电子设备及存储介质 |
CN117149836A (zh) * | 2023-10-27 | 2023-12-01 | 联通在线信息科技有限公司 | 一种缓存处理方法和装置 |
CN117493400A (zh) * | 2024-01-02 | 2024-02-02 | 中移(苏州)软件技术有限公司 | 数据处理方法、装置及电子设备 |
-
2018
- 2018-05-24 CN CN201810508017.6A patent/CN108763103A/zh not_active Withdrawn
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506524A (zh) * | 2019-01-31 | 2020-08-07 | 华为技术有限公司 | 一种数据库中淘汰、预加载数据页的方法、装置 |
CN111506524B (zh) * | 2019-01-31 | 2024-01-30 | 华为云计算技术有限公司 | 一种数据库中淘汰、预加载数据页的方法、装置 |
CN111736758B (zh) * | 2019-03-25 | 2024-07-09 | 贵州白山云科技股份有限公司 | 一种持久缓存的设置方法、装置、设备及介质 |
CN111736753B (zh) * | 2019-03-25 | 2024-09-27 | 贵州白山云科技股份有限公司 | 一种持久缓存方法、装置和计算机设备 |
CN111736753A (zh) * | 2019-03-25 | 2020-10-02 | 贵州白山云科技股份有限公司 | 一种持久缓存方法、装置和计算机设备 |
CN111736758A (zh) * | 2019-03-25 | 2020-10-02 | 贵州白山云科技股份有限公司 | 一种持久缓存的设置方法、装置、设备及介质 |
CN110399316A (zh) * | 2019-06-28 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种用于业务系统性能优化的方法和装置 |
CN110399316B (zh) * | 2019-06-28 | 2021-10-01 | 苏州浪潮智能科技有限公司 | 一种用于业务系统性能优化的方法和装置 |
CN110688226B (zh) * | 2019-09-27 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种缓存回收方法、装置、设备及可读存储介质 |
CN110688226A (zh) * | 2019-09-27 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种缓存回收方法、装置、设备及可读存储介质 |
CN110908612A (zh) * | 2019-11-27 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 缓存管理方法、装置、设备及存储介质 |
CN111240593A (zh) * | 2020-01-06 | 2020-06-05 | 苏州浪潮智能科技有限公司 | 一种动态自适应调度的数据迁移方法、装置、设备和介质 |
CN111309650A (zh) * | 2020-02-11 | 2020-06-19 | 广州市百果园信息技术有限公司 | 缓存控制方法、装置、存储介质及设备 |
CN111309650B (zh) * | 2020-02-11 | 2024-01-05 | 广州市百果园信息技术有限公司 | 缓存控制方法、装置、存储介质及设备 |
CN111367833A (zh) * | 2020-03-31 | 2020-07-03 | 中国建设银行股份有限公司 | 数据缓存方法、装置、计算机设备以及可读存储介质 |
CN112000281A (zh) * | 2020-07-30 | 2020-11-27 | 北京浪潮数据技术有限公司 | 一种存储系统重删元数据的缓存方法、系统及装置 |
CN112860185A (zh) * | 2021-01-29 | 2021-05-28 | 西藏宁算科技集团有限公司 | 基于lru算法的高可用缓存方法、存储装置以及电子设备 |
CN112988622A (zh) * | 2021-03-03 | 2021-06-18 | 广州安凯微电子股份有限公司 | 一种队列缓存方法及设备 |
CN113391766A (zh) * | 2021-06-28 | 2021-09-14 | 苏州浪潮智能科技有限公司 | 一种缓存页的淘汰方法、装置、设备及介质 |
CN113590031B (zh) * | 2021-06-30 | 2023-09-12 | 郑州云海信息技术有限公司 | 一种缓存管理方法、装置、设备以及计算机可读存储介质 |
CN113590031A (zh) * | 2021-06-30 | 2021-11-02 | 郑州云海信息技术有限公司 | 一种缓存管理方法、装置、设备以及计算机可读存储介质 |
CN117093508B (zh) * | 2023-10-17 | 2024-01-23 | 苏州元脑智能科技有限公司 | 一种内存资源管理方法、装置、电子设备及存储介质 |
CN117093508A (zh) * | 2023-10-17 | 2023-11-21 | 苏州元脑智能科技有限公司 | 一种内存资源管理方法、装置、电子设备及存储介质 |
CN117149836A (zh) * | 2023-10-27 | 2023-12-01 | 联通在线信息科技有限公司 | 一种缓存处理方法和装置 |
CN117149836B (zh) * | 2023-10-27 | 2024-02-27 | 联通在线信息科技有限公司 | 一种缓存处理方法和装置 |
CN117493400A (zh) * | 2024-01-02 | 2024-02-02 | 中移(苏州)软件技术有限公司 | 数据处理方法、装置及电子设备 |
CN117493400B (zh) * | 2024-01-02 | 2024-04-09 | 中移(苏州)软件技术有限公司 | 数据处理方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108763103A (zh) | 一种内存管理方法、装置、系统及计算机可读存储介质 | |
CN108920616A (zh) | 一种元数据访问性能优化方法、系统、装置及存储介质 | |
CN100543750C (zh) | 一种基于web应用的矩阵式数据缓存方法及装置 | |
US11537584B2 (en) | Pre-caching of relational database management system based on data retrieval patterns | |
Xu et al. | Characterizing facebook's memcached workload | |
CN106527988B (zh) | 一种固态硬盘数据迁移的方法及装置 | |
CN106844740B (zh) | 基于内存对象缓存系统的数据预读方法 | |
CN105302840B (zh) | 一种缓存管理方法与设备 | |
CN104035925B (zh) | 数据存储方法、装置和存储系统 | |
CN110232049A (zh) | 一种元数据缓存管理方法和装置 | |
CN103491075B (zh) | 动态调整dns递归服务器缓存资源记录的方法和系统 | |
CN106648464A (zh) | 基于云存储的多节点混合块缓存数据读写方法及系统 | |
CN109542907A (zh) | 数据库缓存构建方法、装置、计算机设备以及存储介质 | |
CN106354805A (zh) | 一种分布式存储系统NoSQL搜索缓存的优化方法和系统 | |
CN103810115A (zh) | 一种内存池的管理方法和装置 | |
CN102546674A (zh) | 一种基于网络存储装置的目录树缓存系统及方法 | |
CN103019964B (zh) | 一种缓存数据访问方法及数据缓存系统 | |
CN108459972B (zh) | 一种多通道固态硬盘的高效缓存管理设计方法 | |
CN104731722B (zh) | 一种针对缓存页面的页面管理方法及装置 | |
US9239871B2 (en) | System and method for analyzing sequential data access efficiency | |
CN104978283B (zh) | 一种内存访问控制方法,及装置 | |
CN104424119A (zh) | 存储空间配置方法和装置 | |
CN103905539A (zh) | 内容中心网络中基于内容受欢迎度的最优缓存放置方法 | |
CN107274923A (zh) | 一种提高固态硬盘中顺序读取流性能的方法及固态硬盘 | |
CN103744624B (zh) | 一种实现存储系统ssd缓存数据选择性升级的系统架构 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20181106 |