CN106569962A - 一种基于增强时间局部性的热点数据识别方法 - Google Patents
一种基于增强时间局部性的热点数据识别方法 Download PDFInfo
- Publication number
- CN106569962A CN106569962A CN201610910664.0A CN201610910664A CN106569962A CN 106569962 A CN106569962 A CN 106569962A CN 201610910664 A CN201610910664 A CN 201610910664A CN 106569962 A CN106569962 A CN 106569962A
- Authority
- CN
- China
- Prior art keywords
- data
- bit
- node
- recency
- counter
- 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
Links
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/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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced 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/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
-
- 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/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于增强时间局部性的热点数据识别方法,通过利用数据访问模式中的时间局部性原理来实现高效地识别热点数据,该发明采用HotList和CandidateList双队列结构来保存热点数据和候选热点数据的热度值信息,使得只需要保存部分数据集的访问信息,从而有效地降低存储开销。另外,本发明采用recency bit的位和D‑bit counter计数器组合的数据结构来反映出热点数据访问模式中最近和频繁这两个特性,信息更新机制对离散访问和连续访问的数据赋予不同的热度值,更加准确地反映出数据项的访问模式,提高热点数据的识别率。本发明采取概率筛选机制,将冷数据提早筛选走,降低算法的运行时开销。
Description
技术领域
本发明涉及热点数据识别技术领域,具体涉及一种基于增强时间局部性的热点数据识别方法。
背景技术
热点数据识别技术对现代计算机系统的优化非常重要。传统的热点数据识别算法只简单地把访问次数最多的数据作为热点数据,其它的作为冷数据。这样的识别方法是很模糊的,它只考虑了数据的访问次数。然而就识别热点数据而言这里还有一个很重要的因素--时间。通常,很多场景下的访问模式都呈现出很高的时间局部性,因此,最近被访问过的数据很有可能在不久的将来会被再次访问,这就是识别热点数据时需要考虑时间因素的原因。
每个具体应用中热点数据识别方法会有不同,这些方法可以运用在不同的领域中。但是,总的来说它们都是用来做数据caching的。通过预先把这些热点数据缓存到内存中,可以显著地提高系统的性能。闪存中针对垃圾回收机制和磨损均衡来采用热点数据识别算法,通过把热点数据回收并存放到相同的块中,可以提高垃圾回收机制的效率,这也降低了垃圾回收机制的运行时开销,不仅这样,还可以通过把回收到的热点数据放到擦除次数比较低的闪存块中来提高闪存系统的可靠性。混合固态硬盘,例如SLC-MLC hybrid和Flash-PCM hybrid是对热点数据识别技术的另外一种应用。可以把热点数据存储到SLC(Single-Level Cell)或者PCM(Phase Change Memory)中,把冷数据存储到MLC(Multi-Level Cell)or NAND flash中,这样就可以提高SSD的性能和可靠性。除了以上这些应用之外,热点数据识别技术还在很多领域都具有被利用的潜质。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种基于增强时间局部性的热点数据识别方法,该方法可以保证在有限的存储开销和较低的运行时开销的条件下准确高效地捕捉数据的访问模式,通过特殊的数据结构以及优化过的算法过程有效地反映出数据访问的时间局部性,对过去频繁访问以及最近频繁访问的数据能区别对待,增强时间局部性的准确度。通过识别出热点数据,并对其进行缓存,有效提高系统整体性能。
本发明的目的可以通过采取如下技术方案达到:
一种基于增强时间局部性的热点数据识别方法,所述方法包括下列步骤:
R1、初始化HotList队列和CandidateList队列,其中,所述HotList队列和所述CandidateList队列为LRU(Least recently used,最近最少使用)队列,队列中的每个节点采用数据用长度为D的D-bit counter计数器和长度为1的recency-bit配合的数据结构,其中,所述D-bit counter计数器用于记录数据的访问频度信息,存储范围为0到2D-1,所述recency-bit用于标识节点关联的数据最近是否被访问过,初始时所有节点的counter为0,recency-bit为0,当节点所关联的数据被访问时,则根据其节点的recency-bit状态来增加其counter;
R2、将被访问的数据用长度为D的D-bit counter计数器和长度为1的recency-bit配合的数据结构进行记录,并将经过概率筛选机制筛选的数据插入到队列中;
R3、根据所述recency-bit的状态更新所述D-bit counter的值;
R4、根据所述D-bit counter的值决定数据放置在所述HotList队列还是所述CandidateList队列中,并把放置在所述HotList队列中的数据置为热数据;
R5、周期性地运行信息更新机制;
R6、当所述所述HotList队列或者所述CandidateList队列中任一队列因容量不足而需要筛选一个节点离开时,运行筛选机制,根据各节点recency-bit的状态以及D-bitcounter的值来进行筛选。
双队列结构。使用HotList队列和CandidateList队列的双队列结构来保存热点数据和候选热点数据的热度值信息,只有进入到HotList队列中的数据才被判定为热点数据,并被系统缓存。所有离开HotList队列的数据都将加入到CandidateList队列,并被判定为冷数据。离开CandidateList队列的数据不再跟踪它的访问模式,这种双队列结构使得系统只需要保存部分数据集的访问信息,从而有效地降低了存储开销,同时这里只需要维护部分数据集的信息,在查找,判定和信息更新等方面也有效降低了运行时开销。队列中的每个节点包含一个叫做recency-bit的位和一个长度为D的counter计数器用以捕获数据访问模式的访问频度和高精度的时间局部性信息。
其中,D-bit counter计数器和recency-bit数据结构设计如下:
D-bit counter计数器是用来记录数据的访问热度值信息的,长度为D,存储范围为0到2D-1。而recency-bit则用来标识节点关联的数据最近是否被访问过,长度为1,当recency-bit为1时表示数据最近被访问过,recency-bit为0时表示数据最近没被访问过,算法可根据recency-bit的值进行信息更新。
进一步地,当新数据访问请求到达时,通过概率筛选机制进行筛选决定是否加入到CandidateList队列,若新数据进入加入所述CandidateList队列,则把其对应节点的D-bit counter和recency-bit置1。
进一步地,所述信息更新机制具体为:
当节点所关联的数据被访问时,则根据其节点的recency-bit状态来增加其counter,若recency-bit为0,表示所关联的数据在之前较长一段时间内没被访问过,为其counter递增1,同时将其recency-bit置1,表示其刚刚被访问过;若recency-bit为1,则所关联的数据肯定是一个刚刚被访问过的数据,为其counter递增2。
初始时所有节点的counter为0,recency bit为0,当节点所关联的数据被访问时,则根据其节点的recency-bit状态来增加其counter。若recency-bit为0,表示所关联的数据在之前较长一段时间内没被访问过,为其counter递增1,同时将其recency-bit置1,表示其刚刚被访问过。若recency-bit为1,则所关联的数据肯定是一个刚刚被访问过的数据,为其counter递增2。如果counter的值超过了2D-1,就得不到其精确的访问频度,然而在热点数据识别算法中,只需要简单地知道其counter是否超过某个给定的阈值。这使得本发明可以用较低的存储开销就获得较高的识别准确率。
如果一个热点数据识别算法仅仅考虑数据的访问次数,它只能得到一个很粗糙的识别准确度。在本发明中,D-bit counters并不是简单地存储数据的访问次数,其代表的是数据的一个热度值。即使两个数据访问的总次数相等,一个是集中在过去访问的,另一个是集中在最近访问的,那么它们将会得到不同的热度值。同时,考虑在一段时期内被连续访问的数据比离散访问的数据更具有被缓存的价值,在本发明提出的算法中,它们也将得到不同的热度值。例如一个数据在过去的一段短时间内被多次访问,相信这个数据很有可能是一个潜在的热点数据,由于recency-bit被置1,其counter将会得到一个较大的热度值。相反,如果一个数据在很长一段时间内只被访问过少数几次,那么认为它没有被缓存的价值,由于算法中存在一个衰减机制(Decay period),其counter不仅没有随着访问次数的增加而增加,反而随着时间推移变得越来越少。
进一步地,所述筛选机制具体为:
在recency-bit为0的节点中寻找counter值最少的节点作为筛选的节点;
若没有符合上述步骤条件中的节点,则在recency-bit为1的节点中寻找counter值最少的节点作为筛选节点。
进一步地,所述概率筛选机制中在新数据通过概率筛选加入所述CandidateList队列的概率不低于50%。
若新访问的数据不在任一队列中,则需要进行一个概率筛选,这里所用的概率筛选只是简单地使数据有一定概率通过此筛选,目的是使队列不会太经常变动。例如采用50%的通过几率来进行筛选。这样的筛选不会妨碍经常访问的数据晋升到CandidateList队列的机会,因为经常被访问的数据,它通过筛选的几率也会比其它数据要大。当新的数据通过概率筛选后,会加入到CandidateList队列,此时若CandidateList队列没有空位,则要筛选一个节点离开。
进一步地,所述热点数据识别方法还包括衰减机制,通过所述衰减机制定期将所述D-bit counter计数器的值减去一半,使得数据的访问频度信息随着时间的推移得到更新。
每个热点数据识别算法都需要一个衰减机制来更新数据的访问频度信息。就像multiple hash function算法一样,本发明的衰减机制也是定期地把counter的值减去一半,这样就可以使得数据的访问频度信息随着时间的推移得到更新。因此,即使一个数据过去被连续频繁地访问,只要它之后不再被频繁访问了,它最终也会成为一个冷数据,最后通过筛选机制被踢出热点数据队列。
进一步地,所述筛选机制具体如下:
记录数据访问信息的结构中包括1位的recency bit和4位的counter,而recencybit把队列Lx(x∈{0,1},L0表示HotList队列,L1表示CandidateList队列)中的数据分为两个集合S1和S0(其中S1,且S1∪S0=Lx),S1代表recency bit为1的数据集合,即最近被访问过的数据,S0代表较久未被访问过的数据,当Lx中的节点已经存满又有新数据需要加入到队列中时,就需要进行一次筛选,整个筛选可以分为两个部分,先在recencybit为0的节点中,选出counter最少的数据刷掉,即若则在集合S0中选出counter最少的数据s即 若无recency bit为0的节点,则再在recency bit为1的节点中筛选。即则在集合S1中选出counter最少的数据s,
进一步地,若数据的访问请求命中了所述CandidateList队列,将其访问信息更新后其热度值超过了某个预定的阈值后,将其节点提升到所述HotList队列。
进一步地,算法运行过程中,当有新节点加入到某一队列时,将同一队列的其它节点的recency-bit置0,从HotList队列中被筛选出来的数据都将被放入CandidateList队列中并将其counter减去一半,若CandidateList队列不够位置存储被筛选出来的节点,则用相同的方法来筛选腾出空位。
进一步地,所述筛选机制的优化机制具体为:
在recency-bit为0的节点中寻找counter值低于指定阈值的第一个节点近似作热度值最低的筛选节点;
若没有符合上述步骤条件中的节点,则在recency-bit为1的节点中寻找counter值低于指定阈值的第一个节点近似作热度值最低的筛选节点。
在筛选时并不一定要筛选出真正热度值最少的节点,只要找到低于某个阈值的节点,就可以停止遍历了。例如在HotList队列中,找到一个热度值低于HotThreshold的节点就可以停止遍历,在CandidateList中,找到热度值低于1的节点也可以停止遍历。最坏的情况,若遍历完整个队列也没有符合优化条件的节点,因为此时已经得到整个队列中热度值最少的节点,就可以直接将这个节点剔除掉。因为关心的是热度值高的节点,所以,这个对筛选的简单优化并不会对算法的热点数据识别准确度有太大的影响。
算法在新访问到达时,采用了概率筛选的方式,提前将部分冷数据筛选走,进一步降低冷热点数据转换时带来的读写闪存开销。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明不需要记录下所有数据访问的记录,作为替代,本发明热点数据识别方法采用了双队列的结构,只记录热点数据和有可能成为热点数据的数据访问信息,本发明方法并不需要记录所有数据的访问信息,只关心热点数据和候选的热点数据的访问信息来分辨出热点数据和冷数据,该双队列的结构使得算法具有较低的存储开销。
(2)本发明中的D-bit counter和recency-bit的组合可以精确地扑捉到数据访问模式中的频度信息,信息更新机制对离散访问和连续访问的数据做出区别对待,并且充分地利用了其访问模式中时间局部性,该发明中热点数据识别方法采用D-bit counter和recency-bit的组合以及相适应的筛选机制使得算法具有较高的准确度。
(3)本发明中的概率筛选从早期开始就把部分冷数据筛选走,筛选优化机制利用最简单的方法降低了运行时开销,使得算法在不降低识别准确度的前提下具有较低的运行时开销。
附图说明
图1是基于增强时间局部性的热点数据识别的闪存存储系统结构示意图;
图2是基于增强时间局部性的热点数据识别方法的基本原理图;
图3是基于增强时间局部性的热点数据识别方法的工作流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
热点数据识别对于现代计算机系统的优化非常重要。例如,热点数据识别可以用于延长闪存的使用寿命。然而,在热点数据识别的研究领域存在着一个很大的挑战,如何在低存储开销和低运行时开销的条件下高效准确地识别热点数据。本发明通过利用数据访问模式中的时间局部性原理来实现高效地识别热点数据。它只需要维护一个热点数据队列和一个候选热点数据队列来记录数据的访问模式,这种双队列的设计使得系统只需要保存部分数据集的访问信息,从而有效地降低了存储开销。另外,本发明采用一个叫做recencybit的位,和D-bit counter计数器来反映出热点数据访问模式中最近和频繁这两个特性,信息更新机制对离散访问和连续访问的数据赋予不同的热度值,这样就可以更加准确地反映出数据项的访问模式,从而提高热点数据的识别率。本发明还采取了一个叫概率筛选的机制,这机制可以在算法的早期就把一些冷数据提早筛选走,在进行筛选时采用了简单的筛选优化,这些都降低了算法的运行时开销。
基于增强时间局部性的热点数据识别的闪存存储系统整体架构图如图1所示。整体工作流程图如图2所示。图1描述了一个典型的基于闪存的存储系统的系统架构。本发明主要运用于系统中的Hot Data Identifier模块,提供热点数据识别的功能。在这个存储系统中,存储技术设备(MTD)和FLASH转换层(FTL)是闪存体系结构的两个主要组成部分。MTD提供读、写和擦除等一些主要的闪存操作。而FTL则主要负责把逻辑块地址(LBA)转换为物理块地址,FTL的这种地址转换使得用户几乎不需要对系统做任何的修改就可以像使用传统的文件系统一样来使用闪存。一个典型的FTL主要是由一个地址分配器(addressallocator)和一个垃圾回收器(cleaner)组成。地址转换器负责地址转换的相关工作,而垃圾回收器则会把那些充满无效数据页(page)的区块(block)回收,为将来的重复利用做准备。这种垃圾回收机制是以区块为单位的,所以,在选中的回收区块中的所有有效数据页都得复制到其他空闲的空间,以便整个区块执行擦除操作。在闪存中的另一个很重要的问题就是磨损均衡,磨损均衡的一个目的是避免一些冷数据在某些区块中滞留过长的时间,它的主要目标是使各个块中的擦除操作次数尽量平均分布,以此来使整个闪存的使用寿命最大化。
基于增强时间局部性的热点数据识别方法的基本原理及流程如图2、图3所示,本发明中基于增强时间局部性的热点数据识别方法采用一个双队列的结构来记录数据的访问模式。
(1)HotList队列记录系统目前的热点数据,当数据进入HotList队列时,成为热点数据,在缓存管理时应该被保留下来,当数据离开HotLis队列t时,成为冷数据,在缓存管理时可以被写回闪存中。CandidateList队列负责记录最近被访问的候选热点数据。这种双队列的结构,将大部分的数据热度值扰动控制在了CandidateList队列中,避免了不必要的冷热点数据转换。
(2)队列中的每个节点包含一个叫做recency-bit的位和一个长度为D的位counter计数器用以捕获数据访问模式的访问频度和高精度的时间局部性信息。counter计数器是用来记录数据的访问频度信息的,存储范围为0到2D-1,而recency-bit则用来标识节点关联的数据最近是否被访问过。初始时所有节点的counter为0,recency-bit为0,当节点所关联的数据被访问时,则根据其节点的recency-bit状态来增加其counter。若recency-bit为0,表示所关联的数据在之前较长一段时间内没被访问过,为其counter递增1,同时将其recency-bit置1,表示其刚刚被访问过。若recency-bit为1,则所关联的数据肯定是一个刚刚被访问过的数据,为其counter递增2。如果counter的值超过了2D-1,就得不到其精确的访问频度,然而在热点数据识别算法中,只需要简单地知道其counter是否超过某个给定的阈值。这使得本算法可以用较低的存储开销就获得较高的识别准确率。
(3)开始时,两条队列都是空的,所有的数据都属于冷数据,当有数据访问请求到达时,先检查该数据是否已经在两条队列中。
(4)若数据不在任何一个队列中,则进行一个概率筛选,新的节点如果通过了概率筛选机制则加入到CandidateList队列中。这里所用的概率筛选只是简单地使数据有一定概率通过此筛选,目的是使队列不会太经常变动。例如采用50%的通过几率来进行筛选。这样的筛选不会妨碍经常访问的数据晋升到CandidateList队列的机会,因为经常被访问的数据,它通过筛选的几率也会比其它数据要大。
(5)此时若CandidateList队列已满,根据筛选机制选择要剔除的节点。记录数据访问信息的结构中包括1位的recency bit和4位的counter,而recency bit把队列Lx(x∈{0,1},L0表示HotList,L1表示CandidateList)中的数据分为两个集合S1和S0(其中S1,且S1∪S0=Lx),S1代表recency bit为1的数据集合,即最近被访问过的数据,S0代表较久未被访问过的数据。当Lx中的节点已经存满又有新数据需要加入到队列中时,就需要进行一次筛选。整个筛选可以分为两个部分,先在recency bit为0的节点中,选出counter最少的数据刷掉。即若则在集合S0中选出counter最少的数据s即若无recency bit为0的节点,则再在recency bit为1的节点中筛选。即则在集合S1中选出counter最少的数据s, 在每次筛选过程后,把除了新加入的节点外的其它节点的recency bit置0。在筛选时并不一定要筛选出真正热度值最少的节点,只要找到低于某个阈值的节点,就可以停止遍历了。最坏的情况,若遍历完整个队列也没有符合优化条件的节点,因为此时已经得到整个队列中热度值最少的节点,就可以直接将这个节点剔除掉。因为关心的是热度值高的节点,所以,这个对筛选的简单优化并不会对算法的热点数据识别准确度有太大的影响。
(6)若第(3)步中数据已经在其中一条队列中,则根据节点的recency-bit来更新其热度值,导致其在队列中的逻辑位置变化。若recency-bit为0,表示所关联的数据在之前较长一段时间内没被访问过,为其counter递增1,同时将其recency-bit置1,表示其刚刚被访问过。若recency-bit为1,则所关联的数据肯定是一个刚刚被访问过的数据,为其counter递增2。如果counter的值超过了2D-1,就得不到其精确的访问频度,然而在热点数据识别算法中,只需要简单地知道其counter是否超过某个给定的阈值。这使得本发明可以用较低的存储开销就获得较高的识别准确率。
(7)此时若数据在CandidateList队列且其counter已经大于某个阀值(HotThreshold),则此数据提升为热点数据,将此数据所关联的节点移至HotList队列中。
(8)此时若HotList队列已满,根据筛选机制选择要剔除的节点,并将该节点插入到CandidateList队列尾部。从HotList队列中被刷出来的数据将其counter减去一半。
(9)运行衰减机制,这里的衰减机制定期地把counter的值减去一半,这样就可以使得数据的访问频度信息随着时间的推移得到更新。因此,即使一个数据过去被连续频繁地访问,只要它之后不再被频繁访问了,它最终也会成为一个冷数据,最后通过筛选机制被踢出热点数据队列。
综上所述,本发明热点数据识别方法采用了双队列的结构,只记录热点数据和有可能成为热点数据的数据访问信息,本发明方法并不需要记录所有数据的访问信息,只关心热点数据和候选的热点数据的访问信息来分辨出热点数据和冷数据,该双队列的结构使得算法具有较低的存储开销。本发明中的D-bit counter和recency-bit的组合可以精确地扑捉到数据访问模式中的频度信息,信息更新机制对离散访问和连续访问的数据做出区别对待,并且充分地利用了其访问模式中时间局部性,具有较高的准确度。本发明中的概率筛选从早期开始就把部分冷数据筛选走,筛选优化机制利用最简单的方法降低了运行时开销,使得算法在不降低识别准确度的前提下具有较低的运行时开销。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (10)
1.一种基于增强时间局部性的热点数据识别方法,其特征在于,所述方法包括下列步骤:
R1、初始化HotList队列和CandidateList队列,其中,所述HotList队列和所述CandidateList队列为LRU队列,队列中的每个节点采用数据用长度为D的D-bit counter计数器和长度为1的recency-bit配合的数据结构,其中,所述D-bit counter计数器用来记录数据的访问频度信息,存储范围为0到2D-1,所述recency-bit用来标识节点关联的数据最近是否被访问过,初始时所有节点的counter为0,recency-bit为0,当节点所关联的数据被访问时,则根据其节点的recency-bit状态来增加其counter;
R2、将被访问的数据用长度为D的D-bit counter计数器和长度为1的recency-bit配合的数据结构进行记录,并将通过概率筛选机制筛选的数据插入到队列中;
R3、根据所述recency-bit的状态更新所述D-bit counter的值;
R4、根据所述D-bit counter的值决定数据放置在所述HotList队列还是所述CandidateList队列中,并把放置在所述HotList队列中的数据置为热数据;
R5、周期性地运行信息更新机制;
R6、当所述HotList队列或者所述CandidateList队列中任一队列因容量不足而需要筛选一个节点离开时,运行筛选机制,根据各节点recency-bit的状态以及D-bit counter的值来进行筛选。
2.根据权利要求1所述的一种基于增强时间局部性的热点数据识别方法,其特征在于,
当新数据访问请求到达时,通过概率筛选机制进行筛选决定该数据是否加入CandidateList队列,若新数据进入加入所述CandidateList队列,则把其对应节点的D-bitcounter和recency-bit置1。
3.根据权利要求1所述的一种基于增强时间局部性的热点数据识别方法,其特征在于,所述信息更新机制具体为:
当节点所关联的数据被访问时,则根据其节点的recency-bit状态来增加其counter,若recency-bit为0,表示所关联的数据在之前较长一段时间内没被访问过,为其counter递增1,同时将其recency-bit置1,表示其刚刚被访问过;若recency-bit为1,则所关联的数据肯定是一个刚刚被访问过的数据,为其counter递增2。
4.根据权利要求1所述的一种基于增强时间局部性的热点数据识别方法,其特征在于,所述筛选机制具体为:
在recency-bit为0的节点中寻找counter值最少的节点作为筛选的节点;
若没有符合上述步骤条件中的节点,则在recency-bit为1的节点中寻找counter值最少的节点作为筛选节点。
5.根据权利要求2所述的一种基于增强时间局部性的热点数据识别方法,其特征在于,所述概率筛选机制中新数据通过概率筛选加入所述CandidateList队列的概率不低于50%。
6.根据权利要求1所述的一种基于增强时间局部性的热点数据识别方法,其特征在于,所述热点数据识别方法还包括衰减机制,通过所述衰减机制定期将所述D-bit counter计数器的值减去一半,使得数据的访问频度信息随着时间的推移得到更新。
7.根据权利要求1所述的一种基于增强时间局部性的热点数据识别方法,其特征在于,所述筛选机制具体如下:
记录数据访问信息的结构中包括1位的recency bit和4位的counter,而recency bit把队列Lx(x∈{0,1},L0表示HotList队列,L1表示CandidateList队列)中的数据分为两个集合S1和S0(其中S1,且S1∪S0=Lx),S1代表recency bit为1的数据集合,即最近被访问过的数据,S0代表较久未被访问过的数据,当Lx中的节点已经存满又有新数据需要加入到队列中时,就需要进行一次筛选,整个筛选可以分为两个部分,先在recency bit为0的节点中,选出counter最少的数据刷掉,即若则在集合S0中选出counter最少的数据s即 若无recency bit为0的节点,则再在recency bit为1的节点中筛选。即则在集合S1中选出counter最少的数据s,
8.根据权利要求1所述的一种基于增强时间局部性的热点数据识别方法,其特征在于,
若数据的访问请求命中了所述CandidateList队列,将其访问信息更新后其热度值超过了某个预定的阈值后,将其节点提升到所述HotList队列。
9.根据权利要求1所述的一种基于增强时间局部性的热点数据识别方法,其特征在于,
在算法运行过程中,当有新节点加入到某一队列时,将同一队列的其它节点的recency-bit置0,从HotList队列中被筛选出来的数据都将被放入CandidateList队列中并将其counter减去一半,若CandidateList队列不够位置存储被筛选出来的节点,则用相同的方法来筛选腾出空位。
10.根据权利要求4所述的一种基于增强时间局部性的热点数据识别方法,其特征在于,所述筛选机制的优化机制具体为:
在recency-bit为0的节点中寻找counter值低于指定阈值的第一个节点近似作热度值最低的筛选节点;
若没有符合上述步骤条件中的节点,则在recency-bit为1的节点中寻找counter值低于指定阈值的第一个节点近似作热度值最低的筛选节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610910664.0A CN106569962A (zh) | 2016-10-19 | 2016-10-19 | 一种基于增强时间局部性的热点数据识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610910664.0A CN106569962A (zh) | 2016-10-19 | 2016-10-19 | 一种基于增强时间局部性的热点数据识别方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106569962A true CN106569962A (zh) | 2017-04-19 |
Family
ID=58533903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610910664.0A Pending CN106569962A (zh) | 2016-10-19 | 2016-10-19 | 一种基于增强时间局部性的热点数据识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106569962A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870875A (zh) * | 2017-08-09 | 2018-04-03 | 成都萌想科技有限责任公司 | 一种基于分布式内存可定制智能数据缓存方法 |
CN109144896A (zh) * | 2018-08-10 | 2019-01-04 | 暨南大学 | 一种基于mlc奇偶对称性的可感知型数据缓存管理方法 |
CN111723022A (zh) * | 2019-03-20 | 2020-09-29 | 群联电子股份有限公司 | 数据存储方法、存储器存储装置及存储器控制电路单元 |
CN111741142A (zh) * | 2020-06-19 | 2020-10-02 | 南昌黑鲨科技有限公司 | 一种高频ip地址获取方法、系统、存储介质及终端设备 |
CN111881346A (zh) * | 2020-07-15 | 2020-11-03 | 北京浪潮数据技术有限公司 | 一种热点数据的识别方法、系统及相关装置 |
WO2021115021A1 (zh) * | 2019-12-11 | 2021-06-17 | 华为技术有限公司 | 数据处理方法、装置、终端设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100161780A1 (en) * | 2008-12-22 | 2010-06-24 | Electronics And Telecommunications Research Institute | Hot data management method based on hit counter |
CN103294167A (zh) * | 2013-05-21 | 2013-09-11 | 暨南大学 | 一种基于数据行为的低能耗集群存储复制装置和方法 |
CN103597444A (zh) * | 2011-06-09 | 2014-02-19 | 微软公司 | 按照使用来管理基于闪存的存储上的数据放置 |
CN104951403A (zh) * | 2015-07-06 | 2015-09-30 | 中国科学技术大学 | 一种低开销且无差错的冷热数据识别方法 |
-
2016
- 2016-10-19 CN CN201610910664.0A patent/CN106569962A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100161780A1 (en) * | 2008-12-22 | 2010-06-24 | Electronics And Telecommunications Research Institute | Hot data management method based on hit counter |
CN103597444A (zh) * | 2011-06-09 | 2014-02-19 | 微软公司 | 按照使用来管理基于闪存的存储上的数据放置 |
CN103294167A (zh) * | 2013-05-21 | 2013-09-11 | 暨南大学 | 一种基于数据行为的低能耗集群存储复制装置和方法 |
CN104951403A (zh) * | 2015-07-06 | 2015-09-30 | 中国科学技术大学 | 一种低开销且无差错的冷热数据识别方法 |
Non-Patent Citations (1)
Title |
---|
CHEN等: "HDCat: Effectively Identifying Hot Data in Large-Scale I/O Streams with Enhanced Temporal Locality", 《SPRINGER INTERNATIONAL PUBLISHING》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870875A (zh) * | 2017-08-09 | 2018-04-03 | 成都萌想科技有限责任公司 | 一种基于分布式内存可定制智能数据缓存方法 |
CN109144896A (zh) * | 2018-08-10 | 2019-01-04 | 暨南大学 | 一种基于mlc奇偶对称性的可感知型数据缓存管理方法 |
CN109144896B (zh) * | 2018-08-10 | 2022-09-27 | 暨南大学 | 一种基于mlc奇偶对称性的可感知型数据缓存管理方法 |
CN111723022A (zh) * | 2019-03-20 | 2020-09-29 | 群联电子股份有限公司 | 数据存储方法、存储器存储装置及存储器控制电路单元 |
WO2021115021A1 (zh) * | 2019-12-11 | 2021-06-17 | 华为技术有限公司 | 数据处理方法、装置、终端设备及计算机可读存储介质 |
CN111741142A (zh) * | 2020-06-19 | 2020-10-02 | 南昌黑鲨科技有限公司 | 一种高频ip地址获取方法、系统、存储介质及终端设备 |
CN111881346A (zh) * | 2020-07-15 | 2020-11-03 | 北京浪潮数据技术有限公司 | 一种热点数据的识别方法、系统及相关装置 |
CN111881346B (zh) * | 2020-07-15 | 2022-06-17 | 北京浪潮数据技术有限公司 | 一种热点数据的识别方法、系统及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10838859B2 (en) | Recency based victim block selection for garbage collection in a solid state device (SSD) | |
CN106569962A (zh) | 一种基于增强时间局部性的热点数据识别方法 | |
CN107193646B (zh) | 一种基于混合主存架构的高效动态页面调度方法 | |
Park et al. | Hot data identification for flash-based storage systems using multiple bloom filters | |
CN102012867B (zh) | 资料储存系统 | |
Canim et al. | SSD bufferpool extensions for database systems | |
Murugan et al. | Rejuvenator: A static wear leveling algorithm for NAND flash memory with minimized overhead | |
US20140122774A1 (en) | Method for Managing Data of Solid State Storage with Data Attributes | |
Koltsidas et al. | Data management over flash memory | |
Agarwal et al. | A closed-form expression for write amplification in nand flash | |
CN104598386B (zh) | 通过追踪和利用二级映射索引重复利用固态驱动器块 | |
CN107025071A (zh) | 非易失性存储器装置及其垃圾收集方法 | |
CN109710541B (zh) | 针对NAND Flash主控芯片Greedy垃圾回收的优化方法 | |
CN110968269A (zh) | 基于scm与ssd的键值存储系统及读写请求处理方法 | |
CN110888600B (zh) | 一种面向nand闪存的缓冲区管理方法 | |
Lee et al. | An empirical study of hot/cold data separation policies in solid state drives (SSDs) | |
CN106874213A (zh) | 一种融合多种机器学习算法的固态硬盘热数据识别方法 | |
CN111580754B (zh) | 一种写友好的闪存固态盘缓存管理方法 | |
US11016889B1 (en) | Storage device with enhanced time to ready performance | |
KR101480424B1 (ko) | 하이브리드 플래시 메모리의 성능과 수명 최적화 장치 및 방법 | |
Jin et al. | Exploring index structures for zoned namespaces SSDs | |
CN108664217B (zh) | 一种降低固态盘存储系统写性能抖动的缓存方法及系统 | |
Wu et al. | A data management method for databases using hybrid storage systems | |
CN102779017A (zh) | 一种固态盘中数据缓存区的控制方法 | |
Li et al. | StableBuffer: optimizing write performance for DBMS applications on flash devices |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170419 |