CN107870729A - 一种用于缓存数据的方法、设备和*** - Google Patents
一种用于缓存数据的方法、设备和*** Download PDFInfo
- Publication number
- CN107870729A CN107870729A CN201610848587.0A CN201610848587A CN107870729A CN 107870729 A CN107870729 A CN 107870729A CN 201610848587 A CN201610848587 A CN 201610848587A CN 107870729 A CN107870729 A CN 107870729A
- Authority
- CN
- China
- Prior art keywords
- record
- data
- access count
- count information
- area
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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
-
- 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
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/461—Sector or disk block
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- 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/60—Details of cache memory
- G06F2212/6024—History based prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供了一种用于缓存数据的方法、设备和***。在根据本公开的一个实施方式中,所述用于缓存数据的方法包括:在用于记录数据的访问计数信息的记录周期内,记录与各个数据相关的访问计数信息,其中所述记录周期包括多个记录时隙,在单个记录时隙内对所述访问计数信息的记录被约束,而多个记录时隙内的访问计数信息被累计;以及响应于所述记录周期到期,基于所述访问计数信息针对各个数据执行向缓存存储区中的晋级。利用本公开的实施方式,可以使得在较长时间内的较热数据能够得到晋级到缓存存储区的较佳机会,同时也能够减少在短期内较热的噪声数据被晋级的可能,从而实现更有效的数据缓存,更加充分地利用缓存资源。
Description
技术领域
本公开的实施方式涉及缓存技术领域,并且更具体地涉及用于缓存数据的方法、设备和***。
背景技术
分层存储是基于“信息生命周期管理”而提出通过多层对数据信息进行存放的技术。根据该技术,存储结构通常包括底层存储池、中间层缓存(例如EMC公司的FAST Cache)和高层***缓存(例如物理的动态随机存取存储器(DRAM)存储器,诸如EMC公司的SPCache)。层2缓存诸如FAST Cache是位于高层***缓存和底层存储池之间的中间层缓存,其被提出用来解决缓存扩展性问题,以便允许存储***具有更加有效的输入/输出(I/O)响应时间和的I/O处理速率。
在诸如FAST Cache的层2缓存中,采用的是晋级逻辑,其使用引用跟踪技术通过阴影缓存(Shadow Cache)机制来建立关于数据的长期访问历史。这样的机制将建立能够维持针对每个元素的访问计数的跟踪结构,该跟踪结构中存储的访问计数的数目通常是FASTCache中元素列表的大小的倍数,目前这倍数例如被设置为1。当一个元素的引用计数达到晋级阈值(例如被设置为3),则对应的页面被标记以便被晋级到FAST Cache中,而且当该页面被移动到FAST Cache时,该元素被转移到FAST Cache并从阴影缓存中移除。
通常,阴影缓存包括两个组成部分,即高频顺序小块数据过滤器(High-FrequencySmall-block Sequential Filter,HFS2)列表以及阴影缓存列表,其中HFS2列表要比阴影缓存列表小得多。当存在新引用时,新引用将被添加到HFS2列表,而为了腾出存储空间,最早的引用将被转移到阴影缓存列表中。当引用位于HFS2列表中时,再次命中由该元素所表示的高速缓存页面并不会使阴影缓存引用计数增加,而是复位到1。此外,再次命中也会导致该元素(引用)作为最新元素而再次被移动到HFS2列表的头部。这可能会引发长期较热的数据不能晋级到FAST Cache而短期较热的噪声数据却被晋级到FAST Cache的问题。
发明内容
有鉴于此,本公开提供了一种新的用于缓存数据的技术方案,以克服或者缓解如前所述的现有技术中存在的至少一部分缺陷。
根据本公开的第一方面,提供了一种缓存数据的方法。该方法可以包括:在用于记录数据的访问计数信息的记录周期内,记录与各个数据相关的访问计数信息,其中所述记录周期包括多个记录时隙,在单个记录时隙内对所述访问计数信息的记录被约束,而多个记录时隙内的访问计数信息被累计;以及响应于所述记录周期到期,基于所述访问计数信息针对各个数据执行向缓存存储区中的晋级。
在根据本公开的一个实施方式中,所述记录与各个数据相关的引用信息可以包括:在所述记录周期的单个记录时隙内,将针对相同数据的多次访问记为一次访问。
在根据本公开的另一实施方式中,所述方法还可以包括:基于输入/输出I/O负荷状况、缓存状况和晋级频率其中至少一个,调整所述记录时隙和所述记录周期的长度其中至少一个。
在根据本公开的又一实施方式中,所述访问计数信息可以保存在热区列表中,所述热区列表包括第一记录区和第二记录区,所述第一记录区中存储的访问计数信息相关的数据被访问的时间比所述第二记录区中存储的访问计数信息相关的数据被访问的时间更近,其中所述向缓存存储区中的晋级针对与所述第一记录区中记录的访问计数信息相关的数据执行。
在根据本公开的再一实施方式中,所述方法还可以包括当所述第一记录区中存储的访问计数信息超出预定量时,将其中被访问时间较久远的数据的访问计数信息转移到所述第二记录区。
在根据本公开的另一实施方式中,所述方法还可以包括当所述第二记录区中存储的访问计数信息超出预定量时,将其中被访问时间较久远的数据的访问计数信息从所述第二记录区移除。
在根据本公开的又一实施方式中,所述方法还可以包括当访问计数信息被记录在所述第二记录区中的数据被访问时,将与所述数据相关的访问计数信息从所述第二记录区转移到所述第一记录区。
在根据本公开的再一实施方式中,可以维持被转移到所述第一记录区的与所述数据相关的访问计数信息不变。
在根据本公开的另一实施方式中,所述方法还可以包括基于I/O负荷状况和缓存状态,调整所述第一记录区和所述第二记录区的大小。
根据本公开的第二方面,提供了一种用于缓存数据的设备。所述设备可以包括访问计数模块和数据晋级模块。所述访问计数模块可以被配置为在用于记录数据的访问计数信息的记录周期内,记录与各个数据相关的访问计数信息,其中所述记录周期包括多个记录时隙,在单个记录时隙内对所述访问计数信息的记录被约束,而多个记录时隙内的访问计数信息被累计。所述数据晋级模块可以被配置为响应于所述记录周期到期,基于所述访问计数信息针对各个数据执行向缓存存储区中的晋级。
根据本公开的第三方面,提供了一种用于缓存数据的***。所述***包括:访问适配器、时隙发生器、热区管理器和晋级扫描器。所述访问适配器可以被配置用于向外部提供数据访问的接口。所述时隙发生器可以被配置为在用于记录数据的访问计数信息的记录周期内产生记录时隙,并提供相应的记录时隙标识,其中所述记录周期包括多个记录时隙。所述热区管理器,被配置为管理用于存储数据的访问记录信息的热区列表,以及利用所述时隙发生器产生的记录时隙标识,根据经由访问适配器的数据访问,来记录与各个数据相关的访问记录信息和相应的记录时隙,其中在单个记录时隙内对所述访问计数信息的记录被约束,而在多个记录时隙内的访问计数信息将被累计。所述晋级扫描器,用于扫描所述热区列表,并响应于所述记录周期到期,基于所述访问计数信息针对各个数据执行向缓存存储区中的晋级。
根据本公开的第四方面,还提供了一种计算机程序产品,其上包括程序代码,当所述程序代码在处理器上执行时致使所述处理器中执行根据本公开的第一方面所述的方法。
在本公开的实施方式中,提供了一种改进的用于缓存数据的技术方案。根据该技术方案,在各个记录时隙内记录与各个数据相关的访问计数信息,但在一个单独的记录时隙内,针对所述访问计数信息的记录并非总是随着数据被访问次数的增加而持续增加的,而是受到约束,同时不同记录时隙内的访问计数信息将被累计;在记录周期到期后,基于在该记录周期内累计的访问计数信息,确定将被晋级到缓存存储区中的数据。因此,利用本公开的实施方式,可以使得在较长时间内的较热数据能够得到晋级到缓存存储区的较佳机会,同时也能够大大减少在短期内较热的噪声数据被晋级的可能,从而实现更有效的数据缓存,更加充分利用缓存资源。
附图说明
通过结合附图并参考以下详细说明,本公开的各实施方式的特征、优点及其他方面将变得更加明显,在附图中:
图1示意性地示出了可以在其中实现根据本公开的实施方式的计算机设备的结构方框图。
图2示意性地示出了根据本公开的一个实施方式的用于缓存数据的方法的流程图;
图3示意性地示出了根据本公开的一个实施方式的记录周期的实例的图示;
图4示意性地示出了根据本公开的一个实施方式的记录时隙和记录周期的自动调整的图示;
图5示意性地示出了根据本公开的一个实施方式的用于调整记录时隙和记录周期的方法的流程图;
图6示意性地示出了根据本公开的一个实施方式的在记录时隙内执行访问计数的方式的示意图;
图7示意性地示出了根据本公开的一个实施方式的数据缓存方案的示意图;
图8示意性地示出了根据本公开的一个实施方式的用于存储访问计数信息的示例性数据结构的示意图;
图9示意性地示出了根据本公开的一个实施方式的用于调整热区列表的分隔的流程图;
图10示意性地示出了根据本公开的一个实施方式的执行访问计数的记录的方法的流程图;
图11示意性地示出了根据本公开的一个实施方式的用于缓存数据的设备的方框图;以及
图12示意性地示出了根据本公开的一个实施方式的用于缓存数据的***的架构的示意图。
具体实施方式
在下文中,将参考附图详细描述本公开的各个示例性实施方式。应当注意,这些附图和描述涉及的仅仅是作为示例的优选实施方式。应该指出的是,根据随后描述,很容易设想出此处公开的结构和方法的替换实施方式,并且可以在不脱离本公开要求保护的公开的原理的情况下使用这些替代实施方式。
应当理解,给出这些示例性实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。此外,在附图中,出于说明的目的,将可选的步骤、模块、单元等以虚线框示出。
在此使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。
在描述根据本公开的用于对数据进行缓存的技术方案之前,将首先参考图1来描述可以在其中实现本公开的实施方式的计算机设备。图1示意性地示出了可以实现根据本公开的实施方式的计算机设备的结构方框图。
图1中所示的计算机***包括CPU(中央处理单元)101、RAM(随机存取存储器)102a、ROM(只读存储器)102b、高速缓存(CACHE)103、***总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示器控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些部件中,与***总线104相连的有CPU 101、RAM 102a、ROM 102b、高速缓存103、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108和显示器控制器109。硬盘110与硬盘控制器105相连,键盘111与键盘控制器106相连,串行外部设备112与串行接口控制器107相连,并行外部设备113与并行接口控制器108相连,以及显示器114与显示器控制器109相连。
需要说明的是,图1所述的结构方框图仅仅为了示例的目的而示出的,并非是对本公开的限制。在一些情况下,可以根据需要添加或者减少其中的一些设备。此外,本公开的实施方式是针对在诸如高速缓存103中缓存数据的方案,其可以作为计算机程序代码存储在上计算机的例如硬盘110的存储设备中,在被载入诸如内存中运行时,将使得CPU 101执行根据本公开的用于缓存数据的技术方案。
如前所述,在对数据进行存放时,可以采用分层存储,并且在层2缓存中很多采用了晋级逻辑,其使用引用跟踪技术通过阴影缓存机制来建立缓存关于数据的长期访问历史。这样的机制将建立能够维持针对每个元素的访问计数的跟踪结构。当一个元素的计数达到晋级阈值(例如被设置为3),则对应的页面将被标记以便被晋级到FASTCache中,在该元素被转移到Fast Cache的同时并其将从阴影存储器中移除。
然而,根据现有技术中的机制,当数据块在位于HFS2列表期间被重新命中时,它将会被移动到列表头部且其引用计数被重置为1。反复命中这样的热块会使其失去被移动至阴影缓存列表的机会,并最终失去晋级至FAST Cache中的机会。但是,这些热数据块是具有高频率I/O命中的最热数据块,而他们却被排除到晋级之外,这是具有潜在风险的。而且还有些数据块可能会在短期内较热,但是从较长一段时间来看其被命中的频率较低,其并非热数据块。不过,这种数据块较热的时间长度恰好能够使其逃避被HFS2列表复位,比如每次命中恰好在数据块刚刚被放进阴影缓存列表中时发生。这样的数据块实际上属于噪声块,但是根据现有技术中的机制,这些数据块也会被晋级到FAST Cache中。此外,在现有技术的机制中,通常按照固定频率来进行晋级,这种晋级方式非常不灵活,不能适应于***状态变化。
为此,在本公开中提供了一种用于缓存数据的解决方案,以便至少部分上克服现有技术中的问题。根据本公开的一个实施方式,在用于记录数据的访问计数信息的记录周期内,记录与各个数据相关的访问计数信息,其中所述记录周期包括多个记录时隙,在单个记录时隙内对所述访问计数信息的记录被约束,而多个记录时隙内的访问计数信息被累计;响应于所述记录周期到期,基于所述访问计数信息针对各个数据执行向缓存存储区中的晋级。因此,在各个记录时隙内记录与各个数据相关的访问计数信息,但在一个单独的记录时隙内,针对所述访问计数信息的记录并非总是随着数据被访问次数的增加而持续增加的,而是受到约束,同时不同记录时隙内的访问计数信息将被累计。而在记录周期到期后,基于在该记录周期内所累计的访问计数信息,确定将被晋级到缓存存储区中的数据。因此,利用本公开的实施方式,可以使得在较长时间内的较热数据能够得到晋级到缓存存储区的较佳机会,同时也能够大大减少在短期内较热的噪声数据被晋级的可能,从而实现更有效的数据缓存,更加充分利用缓存资源。
在下文中,将参考附图通过实施方式来详细描述根据本公开的实施方式的用于对数据进行缓存的技术方案。
首先参考图2,图2示意性地示出了根据本公开的一个实施方式的用于缓存数据的方法的流程图。
如图2所示,首先在步骤201,在用于记录数据的访问计数信息的记录周期内,记录与各个数据相关的访问计数信息。所述记录周期包括多个记录时隙,其中在单个记录时隙内对所述访问计数信息的记录被约束,而在多个记录时隙内的访问计数信息被累计。换句话说,在根据本公开的实施方式的数据缓存中,引入了记录周期和记录时隙的概念。记录周期也可以称作晋级周期,在一个记录周期结束后将会执行数据晋级过程,并且开始下一个新的记录周期。一个记录周期可以包括若干个记录时隙,在本公开的实施方式中,记录时隙是记录访问计数信息的最小记录时间单元。在单个的记录时隙内,针对各个数据的访问计数信息进行记录,但是针对所述访问计数信息的记录并非总是随着数据被访问次数的增加而持续增加的,而是受到一定的约束。例如,在根据本公开的一个实施方式中,将多次数据访问仅仅记录为一次访问。同时在不同的记录时隙内的访问计数信息将被累计。
然而需要说明的是,对一个记录时隙内的记录次数的约束程度是与长时间较热数据和短期内较热数据的晋级机会相关的,换句话说,其将会对长时间较热数据和短期内较热的噪声数据所得到的晋级到缓存存储区的机会产生影响。该约束的程度越大,给予较热数据的晋级机会越大,而对于热噪声数据的晋级机会的约束越大;反之,该约束的程度越小,给予较热数据的晋级机会越小,而对于热噪声数据的晋级机会约束也越小。因此,在实际应用中,可以根据实际情况对其进行适当的约束。在前面的实例中,将多次数据访问仅仅记录一次访问仅仅是示例性的,也可以将其记录为其他适当的次数,例如两次等。
此外,还可以基于输入/输出(I/O)负荷状况、缓存状况和晋级频率其中至少一个,来调整所述记录时隙和所述记录周期的长度其中至少一个。可以理解的是,通过调整记录周期和记录时隙可以调整晋级频率,还可以调整对访问计数的约束。通过这种调整可以提供一种灵活的晋级方式和晋级机会约束,从而适应于***状态变化。
在根据本公开的实施方式中,可以保持记录周期不变,仅通过改变记录时隙的数目来,调整记录周期的长度;也可以保持记录时隙长度不变,通过改变记录时隙的数目来调整记录周期的长度;也可以仅通过改变记录时隙的长度,来调整记录周期的长度;还可以通过改变记录时隙的长度和改变记录时隙的数目两者来改变记录周期的长度。在根据本公开的另一实施方式中,还可以仅仅改变记录实现的长度或者数目而不改变记录周期,以便仅仅调整对于长期热数据和短期噪声数据的晋级机会的约束。
出于说明的目的,在下文中将参考图3和图4示例性地描述记录周期和记录时隙及其调整,其中图3中示意性的示出了根据本公开的一个实施方式的使用的时间环300,图4使出了根据本公开的一个实施方式的时间环400的调整的图示。
如图3所示,在该实施方式中,记录周期是时间环300的形式,该时间环300被划分成N个时间片,即时间片1、时间片2、时间片3、时间片4…时间片M、…、时间片N-1以及时间片N。每个时间片对应于一个记录时隙。换句话说,若个记录时隙构成了该时间环300。该时间环300的长度可以是固定的,可选地,也可以是可定义的***参数,例如可以是用户可定义的。换句话说,是可以进行调整的。在相同的记录时隙内,I/O命中相同的数据块将不会增加访问计数,即在单个记录时隙内的访问计数被约束到1。而在不同的记录时隙内I/O命中相同的数据块将使得访问计数进行累计。
如前所述,可以基于例如I/O负荷状况,来调整记录周期和记录时隙其中至少一个。例如,在I/O负荷较小的情况下,可以缩短记录周期和/或记录时隙;而在在I/O负荷较大的情况下,可以延长记录周期和/或记录时隙。举例而言,如图4所示,可以将当前的时间环400自动调整为时间环400’。具体地,在图4中示出的是通过将记录时隙的数目从M改变为M’并增加记录时隙的长度来执行上述调整。
然而需要说明的是,图4只是出于示例性的目的而给出的,本发明并不局限于此。例如,也可以根据需要,通过增加记录时隙的数目来增加时间环400的长度,也可以通过减小记录时隙的数目来减小时间环400的长度,还可以仅仅调整记录时隙的长度或者数目而保持记录时隙不变。在根据本公开的一个实施方式中,可以根据需要保持记录时隙的长度不变,通过减少或增加记录时隙的数目调整时间环400的长度。在根据本公开的另一实施方式中,可以仅通过改变记录时隙的长度来改变时间环400的长度。在根据本公开的又一实施方式中,可以通过改变记录时隙的长度和改变记录时隙的数目,来改变时间环400的长度。
此外,也可以根据缓存状况或晋级频率,来执行所述记录周期和所述记录时隙其中至少一个的调整。例如,如果当前缓存使用率较高或者晋级频率过快,则可以考虑,延长记录周期和/或记录时隙,而如果当前缓存使用率较低,或者晋级频率过慢,则可以减小记录周期和/或记录时隙。此外,也可以考虑基于I/O负荷状况、缓存状况或晋级频率的任意组合,来调整所述记录周期和所述记录时隙其中至少一个。
在下文中出于说明的目的,给出了一个用于执行上述调整的一个示例性方法。在该示例性方法中,Dc指示原始记录周期的大小;Dnc指示调整后的记录周期大小;Tc指示原始记录时隙的数目;Tnc指示调整后的记录时隙的数目;α和β是针对记录周期和记录时隙的调整因子,其例如为介于0与1之间的值。
i)在I/O负荷较重的情况下,降低快速缓存的使用率和降低晋级频率是期望的。因此,可以扩展记录周期,减少记录时隙数目,并因而增加记录时隙的长度。此时,可以根据下面的式1进行调整。
Dnc=(1+α)Dc,Tnc=(1-β)Tc (1)
ii)在I/O负荷较轻的情况下,增加快速缓存的使用率和提高晋级频率是期望的。因此,可以收缩记录周期,增加记录时隙数目,并因此减小记录时隙的长度。此时,可以根据下面的式2进行调整。
Dnc=(1-α)Dc,Tnc=(1+β)Tc (2)
然而,需要说明的是,上面式子仅仅是为了说明的目的而给出的,本发明并不局限于此,而是可以根据任何其他适当的方式来执行调整。
另外出于说明的目的,在图5中还示意性地示出了根据本公开的一个实施方式的调整记录时隙和记录周期的流程图。如图所示,首先在步骤501获取缓存状态、I/O请求状况和晋级频率其中至少一个。然后,在步骤502,基于缓存状态、I/O请求状况和晋级频率其中至少一个,确定是否需要调整记录周期。例如,可以确定***状态的改变是否在预定阈值内,若是,则不需要调整,如果不是,则需要进行调整。如果在步骤502确定不需要调整,则结束本次过程;如果需要执行调整,则在步骤503计算并设置新的记录周期,并在步骤504计算并设置新的时隙数量。需要说明的是,步骤503和步骤504可以是按照图5中所述的顺序执行,也可以并行执行,还有可能首先计算并设置新的时隙数量,然而计算并设置新的记录周期。
另外,如前所述,在单个记录时隙内对所述访问计数信息的记录被约束,也就是说,在单个记录时隙内,一个数据的记录信息并非总是随着访问次数的增加而持续增加的,而是受到限制。出于说明的目的,将参考图6详细说明用于记录访问计数的示例性方法,其中在单个记录时隙内的数据访问计数被限制为最多1次。
具体地,在图6中,在以Tm和Tm+1为索引的两个记录时隙内,数据块x共计被访问了三次,数据块y被访问了一次。对于数据x,在以Tm为索引的时隙内,其被访问了两次,但是由于这两次访问是在同一个记录时隙内发生,所以仅仅第一访问被记录(+1),而第一次访问并没有被记录。在以Tm+1为索引的记录时隙内,数据x又一次被访问,由于这次访问与前两次访问发生在不同的记录时隙内,所以该次访问被记录(即,访问计数被加1)。而对于数据y,在以Tm为索引的记录时隙内被访问一次,因此,其访问计数被加1,而在以Tm+1为索引的记录时隙内,其并未被访问,因此其访问计数在该记录时隙保持不变。然而如前所述,需要说明的是,将多次数据访问仅仅记录一次访问仅仅是示例性的,也可以根据实际情况将其记录为其他适当的次数,例如两次等。
接着,返回参考图2继续描述根据本公开的一个实施方式的用于缓存数据的方法。如图2所示,在步骤202,响应于所述记录周期到期,基于所述访问计数信息针对各个数据执行向缓存存储区中的晋级。在记录周期到期后,可以获得各个数据的访问计数信息,然后可以基于这些访问计数信息来确定是否对各个数据执行晋级。例如,如果访问计数信息大于等于3,则可以将其晋级到缓存存储器中,对于访问计数信息小于3的数据将不会被晋级,其访问计数信息将会继续被记录,而数据本身仍然存储在较低速的存储设备中。
根据本公开的实施方式,访问计数信息可以保存在一个热区列表中。该热区列表是一块用于记录数据的访问计数信息的存储区域,其例如可以包括第一记录区和第二记录区。所述第一记录区中存储的访问计数信息相关的数据被访问的时间比所述第二记录区中存储的访问计数信息相关的数据被访问的时间更近。换句话说,第一记录区存储的是较近被访问的数据的访问计数信息,而所述第二记录区存储的是较久远被访问的数据的访问计数信息。而且进一步地,在步骤202中,还可以仅仅针对与所述第一记录区中记录的访问计数信息相关的数据执行晋级。
根据本公开的实施方式,当所述第一记录区中存储的访问计数信息超出预定量时,可以将其中被访问时间较久远的数据的访问计数信息转移到所述第二记录区。根据本公开的实施方式,当所述第二记录区中存储的访问计数信息超出预定量时,可以将其中被访问时间较久远的数据的访问计数信息从所述第二记录区移除。此外,当访问计数信息被记录在所述第二记录区中的数据被访问时,可以将与所述数据相关的访问计数信息从所述第二记录区转移到所述第一记录区。而且,进一步可以维持被转移到所述第一记录区的与所述数据相关的访问计数信息不变。这样,可以在考虑增加长期较热数据的晋级机会的同时,也考虑数据被访问的时间远近的特性对晋级机会的影响,进而更加。
在下文中出于说明的目的,将参考图7来详细描述关于热区列表和晋级操作的示例。然而需要说明的是,本发明并不局限于此。如图7所示,数据块x、y、z、v和w存储在诸如硬盘的低速存储设备701中。热区列表702用于存储关于在低速存储设701中存储的数据块的访问记录信息。其中当低速存储设备701中的数据块被访问时,将在热区列表702中记录关于该数据的访问计数相关信息。快速缓存703是适用于缓存被访问概率较大的数据的缓存存储器,例如是FASTCache。
热区列表702例如可以是快速缓存703中的一小块区域。热区列表702也可以位于其他任何适当的存储区域中。在热区列表702中记录的访问计数信息可以采用任何适当的形式来存储。出于说明的目的,将参考图8来描述根据本公开的一个实施方式的用于记录访问计数信息的示例性的数据结构。
如图8所示,该数据结构包括数据引用801、时隙索引802和访问计数803。数据引用801是关于数据块本身的信息,例如是指向已被访问的实际数据块w、x、y、z的一个指针,其主要目的在于指明该条访问计数信息是关于哪个数据块的信息。时隙索引802当前访问计数所对应的记录时隙。当发生数据访问时,可以根据访问发生时的记录时隙和当前访问计数的时隙是否是同一时隙来确定是否增加访问计数。访问计数803是记录关于数据块的被访问的计数。当需要增加访问计数信息时,将会对访问计数中的数值进行增加,从而对访问计数信息进行记录。然而,需要说明的是,图8仅仅是出于说明的目的而给出的,本公开并不局限于此,任何可以用来记录访问计数信息的数据结构都是可行的。
返回参考图7,如图所示,热区列表702包括第一记录区和第二记录区。热区列表702例如通过分隔704而被划分为第一记录区和第二记录区,其中第一记录区例如可以被称作热记录区,而第二记录区例如可以被称作冷记录区。所述热记录区存储被访问的时间比所述冷记录区的数据被访问的时间更近的数据的访问计数信息。换句话说,其访问计数被存储在热记录区中的数据比访问计数被存储在冷记录区的数据更热。在根据本公开的一个实施方式中,在热区列表中的访问计数信息按照被访问的时间顺序进行存储,新被访问数据或再次被访问的访问计数信息都会被存放在热记录区的头部,而后面的访问计数信息将根据需要逐个向后移动。当所述热记录区中存储的访问计数信息的数量超出预定量时,例如已满时,位于热记录区中的最后面(尾部)的记录将会被移动到后面的冷记录区的头部;并且随着随后的数据访问而会逐步后移,除非其被再次访问。如果冷记录区中的记录数目已达到预定值,例如已满时,热区中新记录的加入会使得冷记录区中的最后一个(尾部)记录从冷记录区中被移除,换句话说,冷记录区的尾部被丢掉或者被抛出热区列表。
在热记录区中的数据引用的访问计数增加的优先级高于冷记录区中的数据引用的访问计数增加的优先级。例如,在根据本公开的一个实施方式中,当其访问计数被存储在热记录区中的数据在一个记录时隙中首次被访问时,其访问计数增加且该数据引用的访问计数信息会被移动到热记录区的头部位置,而在该记录时隙内的后续访问不会增加计数但是会再次将其移动到热记录区的头部位置;与此不同,当其访问计数被存储在冷记录区中的数据被初次访问时,其会被移动到热记录区的头部位置而不会增加访问计数,同时在该记录时隙内的后续访问也不会增加计数而是仅仅会再次将其移动到热记录区的头部位置。
在记录周期期满后,可以执行晋级扫描。在晋级扫描过程中,根据热区列表702中存储的访问计数信息,访问计数大于预定的阈值Ct(例如Ct=3)的数据块将会被从低速存储设备701转移到快速缓存703中。快速缓存703是***的高速缓存存储区,被配置为高速缓存被再次访问的概率较大的数据块,以便提高数据访问性能。
此外,如前所述,可以仅仅针对热记录区中的记录信息执行晋级。这样既能保证真正较热数据被晋级到高速缓存中,同时也给予了长时间较热的数据晋级的较佳机会。
在根据本公开的一个实施方式中,可以进一步基于I/O负荷状况和缓存状态,来调整所述第一记录区和所述第二记录区的大小,以便适应***状况。下面出于说明的目的,将介绍一种示范性的第一记录区和第二记录的分隔704确定的示例性方法,但是需要说明的是,本公开并不局限于此。
在根据本公开的一个实施方式中,可以利用L来指示热区列表的分隔,即第一记录区和第二记录区之间的分隔或者边界。L例如是一个百分值,或者小数值,其表示了第一记录区占整个热区列表的比例。μ用来指示数据块样本点的大小平均值。Xi是采样的数据块样本点的大小,N是数据块的总样本点的数目。该边界L例如可以通过数据块的标准偏差而得到。出于说明的目的,在下面给出了式3,基于该式3可以确定出第一记录区和第二记录区之间的分隔。
另外,在没有捕获到采样点的情况下,第一记录区的最小长度可以设置为初始状态相同,例如L=0.8(即,80%)。
图9示意性地示出了根据本公开的一个实施方式的用于调整热区列表的分隔的流程图。如图9所示,首先在步骤901获取数据块的采样值,然后根据例如式2确定出热区列表的分隔位置,即第一和第二记录区之间的分隔。然后在步骤903,基于第一记录区和第二记录区之间的实际分隔位置和刚刚确定的分隔位置,确定是否要需要执行分隔的调整。例如,如果计算的分隔位置与实际的分隔位置之前的差值在预定的阈值范围内,则不执行调整;相反,如果该差值超出预定阈值,则在步骤904执行调整,以将第一和第二记录区之间的分隔移动到新的分隔位置。需要说明的是,第一记录区和第二记录区之间的分隔的调整方式仅仅是出于说明的目的而给出的,本公开并不局限于此,而是可以采用任何适当的方式来执行第一记录区和第二记录区之间的分隔的调整。
此外,为了使得本领域技术人员更加透彻地理解本发明,出于说明的目的在图10中进一步示例性地根据本公开的一个实施方式的用于执行访问计数的记录的方法的流程图。然而需要说明的是,这些流程和步骤仅仅是示例性的,本公开并不局限于此,也可以采用任何适当的流程来执行访问计数的记录。
如图10所示,首先在步骤1001,可以获得数据访问请求,即I/O请求,该I/O请求例如可以通过***提供的I/O访问适配器来获得。接着,在步骤1002,确定被访问的数据块是否在热区列表中具有与之匹配的数据引用,以由此确定在热区列表中是否已经存在与被访问数据对应的访问计数信息。如果在热区列表中存储有与被访问数据匹配的数据引用,则表明在热区列表中具有与被访问数据匹配的访问计数信息;如果不存在,则表明在热区列表中并不具有与被访问数据匹配的访问计数信息。
如果在热区列表中不具有匹配的数据引用,则需要新增关于被访问数据的访问记录信息。为此,在步骤1003,在热区列表的第一记录区的头部增加新的访问计数信息。例如,可以采用图8所示的结构,例如可以在该结构中的“数据引用801”中写入被访问数据块的数据引用信息。随后在步骤1004,在该结构中的“时隙索引802”和“访问计数803”分别设置时隙索引和访问计数。此时,时隙索引被设置为当前记录时隙对应的时隙索引;而对于访问计数,由于数据是首次被访问,因此其访问计数被设置为1。另一方面,如果在热区列表中具有匹配的数据引用,这指示该数据并非是首次被访问。此时,可以在步骤1005进一步确定该匹配的数据引用存储在热区列表中的哪一个记录区,即是存储在第一记录区还是存储在第二记录区。
如果在步骤1005确定匹配的数据引用存储在用于存放访问时间较久的数据引用相关的记录的第二记录区,则此时该方法1000直接进行至步骤1009,在该步骤中更新时隙索引,即将数据引用相关的时隙索引设置为与当前时隙时间戳对应的时隙索引,并在步骤1010将该数据引用相关的记录移动到热列表中第一记录区的头部,而不增加访问计数值。
相反,如果在步骤1005确定匹配的数据引用被存储在第一记录区,则需要在步骤1006获取与匹配的数据引用相关的时隙索引和访问计数,并在步骤1007进一步确定所获取的时隙索引与当前计数时隙的时间戳是否相同,或者换句话说,确定所获取的时隙索引相对应的记录时隙与当前记录时隙是否是相同的记录时隙。
如果在步骤1007确定所获取的时隙索引与当前计数时隙的时间戳不同,则意味着这次访问时在新的记录时隙中发生的,并因此在步骤1008增加该数据引用的访问计数。然后方法进行至步骤1009,更新时隙索引,即将相关数据引用的时隙索引设置当前记录时隙的时间戳对应的时隙索引,并在步骤1010将该数据引用相关记录移动到热区列表中第一记录区的头部。相反,如果在步骤1007确定所获取的时隙索引与当前计数时隙的时间戳是相同的,则意味着此次访问与上次访问是在相同的记录时隙中发生的,因此该方法1000进行到步骤1010,直接将该数据引用相关记录移动到热区列表中第一记录区的头部,而不增加相应的访问计数值。
在上文中参考图10描述了根据本公开的一个实施方式的用于记录数据的访问计数的示例性方法,然而需要说明的是,在图10示出的流程仅仅是示例性的,本公开并不局限于此。例如,针对被访问数据进行记录的时候,增加访问计数、更新时隙索引和将记录移动至第一记录区的头部的操作可以按照任意的方式进行,只要最终保证移动至第一记录区的头部的记录按照要求被更新即可。
从上面的描述可以看出,在本公开的实施方式中,提供了一种改进的用于缓存数据的技术方案。根据该技术方案,在各个记录时隙内记录与各个数据相关的访问计数信息,但在一个单独的记录时隙内,针对所述访问计数信息的记录并非总是随着数据被访问次数的增加而持续增加的,而是受到约束,而与此同时,不同记录时隙内的访问计数信息将被累计;在记录周期到期后,基于在该记录周期内累计的访问计数信息,确定将被晋级到缓存存储区中的数据。因此,利用本公开的实施方式,可以使得在较长时间内的较热数据能够得到晋级到缓存存储区的较佳机会,同时也能够大大减少在短期内较热的噪声数据被晋级的可能,从而实现更有效的数据缓存,更加充分利用缓存资源。
图11示意性地示出了根据本公开的一个实施方式的用于缓存数据的设备的方框图。如图11所示,用于缓存数据的设备1100可以包括访问计数模块1101和数据晋级模块1102。所述访问计数模块1101被配置为在用于记录数据的访问计数信息的记录周期内,记录与各个数据相关的访问计数信息。此处,所述记录周期包括多个记录时隙,在单个记录时隙内对所述访问计数信息的记录被约束,而多个记录时隙内的访问计数信息被累计。所述数据晋级模块1102被配置为响应于所述记录周期到期,基于所述访问计数信息针对各个数据执行向缓存存储区中的晋级。
在根据本公开的一个实施方式中,所述访问计数模块1101可以被进一步配置为在所述记录周期的单个记录时隙内,将针对相同数据的多次访问记为一次访问。
在根据本公开的另一实施方式中,设备1100还可以包括长度调整模块1103,被配置为基于输入/输出I/O负荷状况、缓存状况和晋级频率其中至少一个,调整所述记录时隙和所述记录周期的长度其中至少一个。
在根据本公开的再一实施方式中,其中所述访问计数模块1101可以被进一步配置为将所述访问计数信息保存在热区列表中,所述热区列表包括第一记录区和第二记录区。所述第一记录区中存储的访问计数信息相关的数据被访问的时间比所述第二记录区中存储的访问计数信息相关的数据被访问的时间更近。所述数据晋级模块1102可以被配置为针对与所述第一记录区中记录的访问计数信息相关的数据执行晋级。
在根据本公开的又一实施方式中,所述访问计数模块1101还可以被配置为执行以下其中任一项:当所述第一记录区中存储的访问计数信息超出预定量时,将其中被访问时间较久远的数据的访问计数信息转移到所述第二记录区。附加地或者替换地,所述访问计数模块1101还可以被配置为当所述第二记录区中存储的访问计数信息超出预定量时,将其中被访问时间较久远的数据的访问计数信息从所述第二记录区移除。
在根据本公开的另一实施方式中,所述访问计数模块1101还被配置为当访问计数信息被记录在所述第二记录区中的数据被访问时,将与所述数据相关的访问计数信息从所述第二记录区转移到所述第一记录区。可选地,可以保持与所述数据相关的访问计数信息不变。
在根据本公开的另一实施方式中,设备1100还可以包括记录区调整模块1104。所述记录区调整模块1104可以被配置为基于I/O负荷状况和缓存状态,调整所述第一记录区和所述第二记录区的大小。
此外,图12还示意性地示出了根据本公开的一个实施方式的用于缓存数据的***的架构的示意图。如图12所示,***1200可以包括:访问适配器1201,时隙发生器1202,热区管理器1203和晋级扫描器1204。
访问适配器1201可以被配置为向外部提供数据访问的接口。换句话说,外部应用可以通过该访问适配器提供的API来访问数据。因此,该访问适配器可以获取来自外部的I/O数据访问,并通知相应的模块,例如热区管理器1203,去执行后续的操作。
时隙发生器1202可以被配置为在用于记录数据的访问计数信息的记录周期内产生记录时隙,并提供相应的记录时隙标识,其中所述记录周期包括多个记录时隙。在采用时间环的实施方式中,当时隙索引达到尾部时隙编号时,即记录周期期满时,该时隙发生器可以从新开始生产时隙索引。
热区管理器1203可以被配置为管理用于存储数据的访问记录信息的热区列表,以及利用所述时隙发生器产生的记录时隙标识,根据经由访问适配器的数据访问,来记录与各个数据相关的访问记录信息和相应的记录时隙。特别地,在单个记录时隙内对所述访问计数信息的记录被约束,而在多个记录时隙内的访问计数信息将被累计。可选地,所述热区管理器1203被配置为在所述记录周期的单个记录时隙内,将针对相同数据的多次访问记为一次访问。同样可选地,所述热区列表可以包括第一记录区和第二记录区。所述第一记录区中存储的访问计数信息相关的数据被访问的时间比所述第二记录区中存储的访问计数信息相关的数据被访问的时间更近。
在根据本公开的一个实施方式中,所述热区管理器1203还可以被配置为当所述第一记录区中存储的访问计数信息超出预定量时,将其中被访问时间较久远的数据的访问计数信息转移到所述第二记录区。附加地,或者替换地,所述热区管理器1203还可以被配置为当所述第二记录区中存储的访问计数信息超出预定量时,将其中被访问时间较久远的数据的访问计数信息从所述第二记录区移除。
在根据本公开的一个实施方式中,所述热区管理器1203还可以被配置为当访问计数信息被记录在所述第二记录区中的数据被访问时,将与所述数据相关的访问计数信息从所述第二记录区转移到所述第一记录区。可选地,可以维持与所述数据相关的访问计数信息保持不变。
晋级扫描器1204可以被配置为扫描所述热区列表,并响应于所述记录周期到期,基于所述访问计数信息针对各个数据执行向缓存存储区中的晋级。特别地,在热区列表包括第一记录区和第二记录区的实施方式中国,所述晋级扫描器1204可以被配置为针对与所述第一记录区中记录的访问计数信息相关的数据执行晋级。
在根据本公开的一个实施方式中,***1200还可以进一步包括时间环调整器1205和时间管理器1206。该时间环调整器1205可以被配置为调整所述记录时隙和所述记录周期的长度其中至少一个。该时间管理器1206可以被配置为管理时隙发生器1202以生成各个记录时隙,以及基于输入/输出I/O负荷状况、缓存状况和晋级频率其中至少一个,来控制所述时间环调整器1205执行对所述记录时隙和所述记录周期的长度其中至少一个的调整。
在根据本公开的一个实施方式中,***1200还可以进一步包括分隔调整器1207。该分隔调整器1207可以被配置为调整所述第一记录区和所述第二记录区的大小。所述热区管理器1203进一步配置为基于I/O负荷状况和缓存状态,来控制所述分隔调整器1207执行对所述第一记录区和所述第二记录区的大小的调整。
在根据本公开的一个实施方式中,***1200还可以进一步包括还包括缓存监测器1208,被配置监测缓存状况和晋级频率其中至少一个,并将监测结果提供给所述热区管理器1203或者所述时间管理器1206。替换地或者附加地,所述***1200还可以进一步包括热区扫描器1209,被配置为扫描热区列表以监测输入/输出I/O负荷状况,并将监测结果提供给所述热区管理器1203或者所述时间管理器1206。这样,就可以提供监测结果信息给热区管理器1203或者所述时间管理器1206,从而支持热区管理器1203基于I/O负荷状况和缓存状态,来控制所述分隔调整器1207执行对所述第一记录区和所述第二记录区的大小的调整,或者支持时间管理器1206基于输入/输出I/O负荷状况、缓存状况和晋级频率其中至少一个,来控制所述时间环调整器1205执行对所述记录时隙和所述记录周期的长度其中至少一个的调整。
需要说明的是,出于简化的目的,上面简要描述了设备1100和***1200的各个部件的操作。关于这些部件的操作的详细细节,可以参考图1至图10对方法的详细描述中的相关部分。
另外,还需要说明的是,本公开的数据缓存方案也可以通过一种计算机程序产品来实现。该计算机程序其上包括程序代码,所述程序代码在被处理器上执行时,致使所述处理器执行根据本公开用于缓存数据的方法。
需要注意的是,本公开的实施方式可以在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本公开的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本公开的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本公开的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本公开的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本公开的方法和/或技术方案。而调用本公开的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本公开的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本公开的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本公开不限于上述示范性实施例的细节,而且在不背离本公开的精神或基本特征的情况下,能够以其他的具体形式实现本公开。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本公开的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本公开内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
另外,还可以理解的是,根据此处的公开内容和教导,本领域技术人员还可以设想到各种修改、变形、替换或等效而并不背离本公开的精神和范围。这些修改、变形、替换或等效均包括在仅由权利要求书限定的本公开的范围内。
Claims (25)
1.一种用于缓存数据的方法,包括:
在用于记录数据的访问计数信息的记录周期内,记录与各个数据相关的访问计数信息,其中所述记录周期包括多个记录时隙,在单个记录时隙内对所述访问计数信息的记录被约束,而多个记录时隙内的访问计数信息被累计;以及
响应于所述记录周期到期,基于所述访问计数信息针对各个数据执行向缓存存储区中的晋级。
2.根据权利要求1所述的方法,其中所述记录与各个数据相关的引用信息包括:
在所述记录周期的单个记录时隙内,将针对相同数据的多次访问记为一次访问。
3.根据权利要求1所述的方法,还包括:
基于输入/输出I/O负荷状况、缓存状况和晋级频率其中至少一个,调整所述记录时隙和所述记录周期的长度其中至少一个。
4.根据权利要求1-3其中任一个所述的方法,其中所述访问计数信息保存在热区列表中,所述热区列表包括第一记录区和第二记录区,所述第一记录区中存储的访问计数信息相关的数据被访问的时间比所述第二记录区中存储的访问计数信息相关的数据被访问的时间更近,其中所述向缓存存储区中的晋级针对与所述第一记录区中记录的访问计数信息相关的数据执行。
5.根据权利要求4所述的方法,还包括:
当所述第一记录区中存储的访问计数信息超出预定量时,将其中被访问时间较久远的数据的访问计数信息转移到所述第二记录区。
6.根据权利要求4所述的方法,还包括:
当所述第二记录区中存储的访问计数信息超出预定量时,将其中被访问时间较久远的数据的访问计数信息从所述第二记录区移除。
7.根据权利要求4所述的方法,还包括:
当访问计数信息被记录在所述第二记录区中的数据被访问时,将与所述数据相关的访问计数信息从所述第二记录区转移到所述第一记录区。
8.根据权利要求7所述的方法,其中维持被转移到所述第一记录区的与所述数据相关的访问计数信息不变。
9.根据权利要求4所述的方法,还包括:
基于I/O负荷状况和缓存状态,调整所述第一记录区和所述第二记录区的大小。
10.一种用于缓存数据的设备,包括:
访问计数模块,被配置为在用于记录数据的访问计数信息的记录周期内,记录与各个数据相关的访问计数信息,其中所述记录周期包括多个记录时隙,在单个记录时隙内对所述访问计数信息的记录被约束,而多个记录时隙内的访问计数信息被累计;以及
数据晋级模块,被配置为响应于所述记录周期到期,基于所述访问计数信息针对各个数据执行向缓存存储区中的晋级。
11.根据权利要求10所述的设备,其中所述访问计数模块被进一步配置为:
在所述记录周期的单个记录时隙内,将针对相同数据的多次访问记为一次访问。
12.根据权利要求10所述的设备,还包括:
长度调整模块,被配置为基于输入/输出I/O负荷状况、缓存状况和晋级频率其中至少一个,调整所述记录时隙和所述记录周期的长度其中至少一个。
13.根据权利要求10-12其中任一个所述的设备,其中所述访问计数模块被进一步配置为将所述访问计数信息保存在热区列表中,所述热区列表包括第一记录区和第二记录区,所述第一记录区中存储的访问计数信息相关的数据被访问的时间比所述第二记录区中存储的访问计数信息相关的数据被访问的时间更近,其中所述数据晋级模块被配置为针对与所述第一记录区中记录的访问计数信息相关的数据执行晋级。
14.根据权利要求13所述的设备,其中所述访问计数模块还被配置为执行以下其中任一项:
当所述第一记录区中存储的访问计数信息超出预定量时,将其中被访问时间较久远的数据的访问计数信息转移到所述第二记录区;以及
当所述第二记录区中存储的访问计数信息超出预定量时,将其中被访问时间较久远的数据的访问计数信息从所述第二记录区移除。
15.根据权利要求13所述的设备,其中所述访问计数模块还被配置为:
当访问计数信息被记录在所述第二记录区中的数据被访问时,将与所述数据相关的访问计数信息从所述第二记录区转移到所述第一记录区,并保持与所述数据相关的访问计数信息不变。
16.根据权利要求13所述的设备,还包括记录区调整模块,被配置为:
基于I/O负荷状况和缓存状态,调整所述第一记录区和所述第二记录区的大小。
17.一种用于缓存数据的***,包括:
访问适配器,被配置为向外部提供数据访问的接口;
时隙发生器,被配置为在用于记录数据的访问计数信息的记录周期内产生记录时隙,并提供相应的记录时隙标识,其中所述记录周期包括多个记录时隙;
热区管理器,被配置为管理用于存储数据的访问记录信息的热区列表,以及利用所述时隙发生器产生的记录时隙标识,根据经由访问适配器的数据访问,来记录与各个数据相关的访问记录信息,其中在单个记录时隙内对所述访问计数信息的记录被约束,而在多个记录时隙内的访问计数信息将被累计;以及
晋级扫描器,被配置为扫描所述热区列表,并响应于所述记录周期到期,基于所述访问计数信息针对各个数据执行向缓存存储区中的晋级。
18.根据权利要求17所述的***,其中所述热区管理器被配置为在所述记录周期的单个记录时隙内,将针对相同数据的多次访问记为一次访问。
19.根据权利要求17所述的***,还包括:
时间环调整器,被配置为调整所述记录时隙和所述记录周期的长度其中至少一个;以及
时间管理器,被配置为管理所述时隙发生器以生成各个记录时隙,以及基于输入/输出I/O负荷状况、缓存状况和晋级频率其中至少一个,控制所述时间环调整器来执行对所述记录时隙和所述记录周期的长度其中至少一个的调整。
20.根据权利要求17-19其中任一个所述的***,其中所述热区列表包括第一记录区和第二记录区,所述第一记录区中存储的访问计数信息相关的数据被访问的时间比所述第二记录区中存储的访问计数信息相关的数据被访问的时间更近,其中所述晋级扫描器被配置为针对与所述第一记录区中记录的访问计数信息相关的数据执行晋级。
21.根据权利要求20所述的***,其中所述热区管理器还被配置为执行以下其中至少一个:
当所述第一记录区中存储的访问计数信息超出预定量时,将其中被访问时间较久远的数据的访问计数信息转移到所述第二记录区;以及
当所述第二记录区中存储的访问计数信息超出预定量时,将其中被访问时间较久远的数据的访问计数信息从所述第二记录区移除。
22.根据权利要求20所述的***,其中所述热区管理器还被配置为:
当访问计数信息被记录在所述第二记录区中的数据被访问时,将与所述数据相关的访问计数信息从所述第二记录区转移到所述第一记录区,并维持与所述数据相关的访问计数信息保持不变。
23.根据权利要求17所述的***,还包括:
分隔调整器,被配置为调整所述第一记录区和所述第二记录区的大小;
其中所述热区管理器进一步配置为基于I/O负荷状况和缓存状态,来控制所述分隔调整器执行对所述第一记录区和所述第二记录区的大小的调整。
24.根据权利要求19或24所述的***,还包括以下其中至少一个:
缓存监测器,被配置监测缓存状况和晋级频率其中至少一个,并将监测结果提供给所述热区管理器或者所述时间管理器;以及
热区扫描器,被配置为扫描热区列表以监测输入/输出I/O负荷状况,并将监测结果提供给所述热区管理器或者所述时间管理器。
25.一种计算机程序产品,其上包括程序代码,所述程序代码在处理器上执行时,致使所述处理器执行根据权利要求1至9中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610848587.0A CN107870729B (zh) | 2016-09-23 | 2016-09-23 | 一种用于缓存数据的方法、设备和*** |
US15/712,418 US10860497B2 (en) | 2016-09-23 | 2017-09-22 | Method, apparatus, and system for caching data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610848587.0A CN107870729B (zh) | 2016-09-23 | 2016-09-23 | 一种用于缓存数据的方法、设备和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107870729A true CN107870729A (zh) | 2018-04-03 |
CN107870729B CN107870729B (zh) | 2020-11-20 |
Family
ID=61686172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610848587.0A Active CN107870729B (zh) | 2016-09-23 | 2016-09-23 | 一种用于缓存数据的方法、设备和*** |
Country Status (2)
Country | Link |
---|---|
US (1) | US10860497B2 (zh) |
CN (1) | CN107870729B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086224A (zh) * | 2018-07-10 | 2018-12-25 | 暨南大学 | 一种自适应分类重用距离来捕捉热数据的缓存方法 |
CN109739646A (zh) * | 2018-12-28 | 2019-05-10 | 北京神州绿盟信息安全科技股份有限公司 | 一种数据处理方法及装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737399B (zh) * | 2018-07-20 | 2023-09-05 | 伊姆西Ip控股有限责任公司 | 用于管理存储***的方法、设备和计算机程序产品 |
TWI688859B (zh) * | 2018-12-19 | 2020-03-21 | 財團法人工業技術研究院 | 記憶體控制器與記憶體頁面管理方法 |
US11645198B2 (en) * | 2020-12-08 | 2023-05-09 | International Business Machines Corporation | Buffer pool maintenance improvement |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070011421A1 (en) * | 2005-07-07 | 2007-01-11 | Keller Thomas W Jr | Method and system for decreasing power consumption in memory arrays having usage-driven power management |
CN103514106A (zh) * | 2012-06-20 | 2014-01-15 | 北京神州泰岳软件股份有限公司 | 一种数据缓存方法 |
US20140379992A1 (en) * | 2013-06-25 | 2014-12-25 | International Business Machines Corporation | Two handed insertion and deletion algorithm for circular buffer |
US20150088805A1 (en) * | 2013-09-20 | 2015-03-26 | Oracle International Corporation | Automatic caching of scan and random access data in computing systems |
CN104516471A (zh) * | 2013-09-27 | 2015-04-15 | 国际商业机器公司 | 一种管理存储器***的电源的方法和装置 |
CN104969170A (zh) * | 2014-01-31 | 2015-10-07 | 株式会社东芝 | 层次化存储***、存储控制器以及代替层次间的数据移动的方法 |
CN105280197A (zh) * | 2014-07-02 | 2016-01-27 | 西部数据技术公司 | 使用区段重定位对数据存储装置进行数据管理 |
CN105335102A (zh) * | 2015-10-10 | 2016-02-17 | 浪潮(北京)电子信息产业有限公司 | 一种缓存数据处理方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10182055B2 (en) * | 2016-06-06 | 2019-01-15 | Cisco Technology, Inc. | Security policy efficacy visualization |
US10089014B2 (en) * | 2016-09-22 | 2018-10-02 | Advanced Micro Devices, Inc. | Memory-sampling based migrating page cache |
-
2016
- 2016-09-23 CN CN201610848587.0A patent/CN107870729B/zh active Active
-
2017
- 2017-09-22 US US15/712,418 patent/US10860497B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070011421A1 (en) * | 2005-07-07 | 2007-01-11 | Keller Thomas W Jr | Method and system for decreasing power consumption in memory arrays having usage-driven power management |
CN103514106A (zh) * | 2012-06-20 | 2014-01-15 | 北京神州泰岳软件股份有限公司 | 一种数据缓存方法 |
US20140379992A1 (en) * | 2013-06-25 | 2014-12-25 | International Business Machines Corporation | Two handed insertion and deletion algorithm for circular buffer |
US20150088805A1 (en) * | 2013-09-20 | 2015-03-26 | Oracle International Corporation | Automatic caching of scan and random access data in computing systems |
CN104516471A (zh) * | 2013-09-27 | 2015-04-15 | 国际商业机器公司 | 一种管理存储器***的电源的方法和装置 |
CN104969170A (zh) * | 2014-01-31 | 2015-10-07 | 株式会社东芝 | 层次化存储***、存储控制器以及代替层次间的数据移动的方法 |
CN105280197A (zh) * | 2014-07-02 | 2016-01-27 | 西部数据技术公司 | 使用区段重定位对数据存储装置进行数据管理 |
CN105335102A (zh) * | 2015-10-10 | 2016-02-17 | 浪潮(北京)电子信息产业有限公司 | 一种缓存数据处理方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086224A (zh) * | 2018-07-10 | 2018-12-25 | 暨南大学 | 一种自适应分类重用距离来捕捉热数据的缓存方法 |
CN109086224B (zh) * | 2018-07-10 | 2022-10-21 | 暨南大学 | 一种自适应分类重用距离来捕捉热数据的缓存方法 |
CN109739646A (zh) * | 2018-12-28 | 2019-05-10 | 北京神州绿盟信息安全科技股份有限公司 | 一种数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107870729B (zh) | 2020-11-20 |
US20180089107A1 (en) | 2018-03-29 |
US10860497B2 (en) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107870729A (zh) | 一种用于缓存数据的方法、设备和*** | |
US20200089624A1 (en) | Apparatus and method for managing storage of data blocks | |
JP5450841B2 (ja) | ユーザコンテンツフィードをサポートするための機構 | |
US11323246B2 (en) | Ring chain architecture | |
US8560511B1 (en) | Fine-grain locking | |
US11537584B2 (en) | Pre-caching of relational database management system based on data retrieval patterns | |
CN104715020B (zh) | 缓存数据的删除方法及服务器 | |
US8112399B2 (en) | Method and apparatus for configurable data aggregation in a data warehouse | |
CN109005056A (zh) | 基于cdn应用的存储容量评估方法和装置 | |
CN107103068A (zh) | 业务缓存的更新方法及装置 | |
CN107092628B (zh) | 时间序列数据的处理方法和装置 | |
CN107608631A (zh) | 一种数据文件存储方法、装置、设备以及存储介质 | |
CN112286459A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN104283866A (zh) | 用于提供当前数据和以往数据给客户端的服务器*** | |
CN110858210B (zh) | 数据查询方法及装置 | |
CN107292388A (zh) | 一种基于神经网络的热点数据的预测方法及*** | |
US8082342B1 (en) | Discovery of short-term and emerging trends in computer network traffic | |
CN105915626B (zh) | 一种面向云存储的数据副本初始放置方法 | |
CN102111920A (zh) | 一种性能报表管理的方法及装置 | |
US20170359398A1 (en) | Efficient Sorting for a Stream Processing Engine | |
CN107038127A (zh) | 应用***及其缓存控制方法和装置 | |
US10366094B2 (en) | Data access using aggregation | |
CN110597830B (zh) | 实时指标生成方法和***、电子设备及存储介质 | |
US20230075676A1 (en) | Generation of user-specific time-to-live values using machine learning | |
CN116450280A (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 |