CN103150245B - 确定数据实体的访问特性的方法和存储控制器 - Google Patents
确定数据实体的访问特性的方法和存储控制器 Download PDFInfo
- Publication number
- CN103150245B CN103150245B CN201210261472.3A CN201210261472A CN103150245B CN 103150245 B CN103150245 B CN 103150245B CN 201210261472 A CN201210261472 A CN 201210261472A CN 103150245 B CN103150245 B CN 103150245B
- Authority
- CN
- China
- Prior art keywords
- counter
- data entity
- subset
- value
- bloom filter
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及确定数据实体的访问特性的方法和存储控制器。在确定数据实体的特性的方法中,提供持续一段时间间隔有效的计数布隆过滤器(CBF1),所述特性基于对存储系统中的所述数据实体的访问频率,所述计数布隆过滤器(CBF1)包含一组(S1)计数器(C1),并提供一种包含一组元素的数据结构。在所述时间间隔期间每次所述数据实体被访问时,增大所述数据实体在所述计数布隆过滤器(CBF1)中被映射到的计数器(C1)的子集中的至少一个计数器(C1)的值。对于与计数器的子集相关联的元素的子集中的至少一个元素,以在时间间隔结束时与所述元素相关联的计数器的值为条件,并以所述元素的当前值为条件,确定新的值。以元素的子集当中的至少一个元素的新值为条件,确定所述数据实体的特性。
Description
技术领域
本发明涉及确定数据实体的特性的方法和存储控制器,所述特性基于对存储系统中的所述数据实体的访问频率。
背景技术
下面,数据实体的代表该数据实体被访问的频率的特性在相对基础上也被表示成这种数据实体的温度。确定特定数据实体(尤其包括其逻辑地址)的温度是存储系统中的一项长期存在的挑战。特定数据实体的温度指的是它的相对引用频率,所述引用可包括对其在同一个存储系统中的对等体的读取或写入访问。整个存储系统的温度信息的集合也被称为热图。如果数据实体被频繁地访问,那么该数据实体通常被称为“热”,或者如果数据实体很少被访问,那么该数据实体通常被称为“冷”。温度可以定量地测量对数据实体的访问有多频繁和有多近。
确定数据实体的温度的一种简单、直接的方式是使用用于每个数据实体的计数器来跟踪引用次数。然而,对于大容量存储系统来说,这是存储效率低的。为了缩小热图的内存占用,一种流行的解决方案是把一个计数器用于一组邻接的数据实体,即,以较粗的粒度来跟踪数据的温度。
发明内容
按照本发明的第一方面,提供一种确定数据实体的特性的方法,所述特性基于对存储系统中的所述数据实体的访问频率。提供持续一段时间间隔工作的计数布隆过滤器(bloomfilter),所述计数布隆过滤器包含一组计数器。提供一种数据结构,所述数据结构包含一组元素,其中所述一组元素中的每个元素被分配给所述一组计数器中的计数器。以所述一组元素中的至少一个元素的值为条件,确定所述数据实体的特性。
对于所述计数布隆过滤器工作的每个单独时间间隔,
-在所述单独时间间隔之前或者在所述单独时间间隔的开始,所述一组计数器中的各个计数器被重置,
-在所述单独时间间隔期间,每次所述数据实体被访问时,增大所述数据实体在所述计数布隆过滤器中被映射到的计数器子集中的至少一个计数器的值,和
-在所述单独时间间隔的结束或者在所述单独时间间隔结束之后,更新所述一组元素中的每个单独元素的值,其中,以分配给所述单独元素的计数器在所述单独时间间隔结束时保持的值为条件,并以所述单独元素的当前值为条件,更新所述单独元素的值。
在实施例中,所述方法包含以下特征中的一个或多个特征:
-使计数布隆过滤器在相继的时间间隔工作多次;
-以分配给所述单独元素的计数器在所述单独时间间隔结束时保持的加权值为条件,并以所述单独元素的加权当前值为条件,更新所述单独元素的值;
-所述单独元素的值是用利用因子α加权的分配给所述单独元素的计数器在单独时间间隔结束时保持的值加上利用因子1-α加权的所述单独元素的当前值来更新的;
-因子α具有在0.75和0.95之间的值;
-所述数据实体借助于一个或多个散列函数被映射到所述计数器子集;
-所述计数器子集包含所述数据实体在计数布隆过滤器中被映射到的多个计数器,其中,只有该子集中的单个计数器的值被增大,所述单个计数器是所述子集中的所述多个计数器当中当前显示最小值的计数器;
-所述一组元素中的每个元素被分配给所述一组计数器中的单个计数器,其中,所述一组计数器中的每个计数器被分配给所述一组元素中的单个元素;
-计数器的子集包含所述数据实体在计数布隆过滤器中被映射到的多个计数器,元素的子集包含被分配给计数器的子集的各个计数器的元素,以及以元素的子集中的一个或多个元素的值为条件,确定所述数据实体的特性;
-以元素的子集中的多个元素当中显示最小值的元素的值为条件,确定所述数据实体的特性;
-访问所述数据实体包括读取所述数据实体和更新所述数据实体中的至少一个;
-所述数据实体代表用单个逻辑块地址寻址的数据;
-以确定的所述数据实体的特性为条件,选择所述数据实体以便被高速缓存;
-以确定的所述数据实体的特性为条件,选择所述数据实体,以便保存在分层存储系统中的指定层中。
按照本发明的第二方面,提供一种确定数据实体的特性的方法,所述特性基于对存储系统中的所述数据实体的访问频率。提供在第一时间间隔内有效的第一计数布隆过滤器,所述第一计数布隆过滤器包含一组第一计数器。在第一时间间隔期间每次所述数据实体被访问时,增大所述数据实体在第一计数布隆过滤器中被映射到的第一计数器的子集中的至少一个第一计数器的值。提供在第二时间间隔内有效的第二计数布隆过滤器,所述第二计数布隆过滤器包含一组第二计数器。在第二时间间隔期间每次所述数据实体被访问时,增大所述数据实体在第二计数布隆过滤器中被映射到的第二计数器的子集中的至少一个第二计数器的值。以在第一时间间隔结束时第一计数器的子集中的至少一个第一计数器的值为条件,并以在第二时间间隔结束时第二计数器的子集中的至少一个第二计数器的值为条件,确定数据实体的特性。
在实施例中,所述方法可包括以下特征中的一个或多个特征:
-提供全部n个计数布隆过滤器,所述n个计数布隆过滤器中的每一个在相关时间间隔内有效,所述相关时间间隔彼此相随;在相关时间间隔期间每次所述数据实体被访问时,依照第一或第二计数布隆过滤器使n个计数布隆过滤器中的每一个工作;以对于n个计数布隆过滤器中的每个计数布隆过滤器,在相关时间间隔结束时相应计数布隆过滤器中与所述数据实体相关联的计数器的子集中的至少一个计数器的值为条件,确定所述数据实体的特性;
-根据从n个计数布隆过滤器中选择的计数器值的平均值来确定所述数据实体的特性;
-借助于一个或多个散列函数,所述数据实体被映射到第一计数器的子集,以及借助于相同的一个或多个散列函数,所述数据实体被映射到第二计数器的子集;
-第一计数器的子集包含所述数据实体在第一计数布隆过滤器中被映射到的多个第一计数器;只有该子集中的单个第一计数器的值被增大,所述单个第一计数器是该述子集中的多个第一计数器当中当前显示最小值的第一计数器;以及第二计数器的子集包含第二计数布隆过滤器中所述实体被映射到多个第二计数器;只有该子集中的单个第二计数器的值被增大,所述单个第二计数器是该子集中的多个第二计数器当中当前显示最小值的第二计数器;
-第一计数器的子集包含第一计数布隆过滤器中所述数据实体被映射到的多个第一计数器,第二计数器的子集包含所述数据实体在第二计数布隆过滤器中被映射到的多个第二计数器;以第一计数器的子集中的指定第一计数器的值为条件,并以第二计数器的子集中的指定第二计数器的值为条件,确定所述数据实体的特性,所述指定第一计数器是在第一时间间隔结束时,第一计数器的子集中的多个第一计数器当中显示最小值的第一计数器,所述指定第二计数器是在第二时间间隔结束时,第二计数器的子集中的多个第二计数器当中显示最小值的第二计数器;
-访问所述数据实体包括读取所述数据实体和更新所述数据实体中的至少一个;
-所述数据实体代表用单个逻辑块地址寻址的数据;
-以确定的所述数据实体的特性为条件,选择所述数据实体以便高速缓存;
-以确定的所述数据实体的特性为条件,选择所述数据实体以便保存在分层存储系统中的指定层中。
本发明的另一个方面涉及一种包含计算机可读介质的计算机程序产品,所述计算机可读介质包含有计算机可读程序代码,该计算机可读程序代码包含被配置成执行按照前述各个方面或实施例任意之一的方法的计算机可读程序代码。
本发明的另一个方面涉及一种用于确定数据实体的特性的存储控制器,所述特性基于对存储系统中的所述实体的访问频率,所述存储控制器包含适合于执行按照前述各个方面或实施例任意之一的方法的控制单元。
显然可以按照与方法权利要求中所列举的顺序不同的顺序来执行方法步骤。这样的不同顺序也像目前列举的步骤的顺序一样,包括在这种权利要求的范围内。
关于设备的各个方面说明的实施例也应当被看作关于诸如方法、计算机程序产品之类的任何其它类别公开的实施例。
附图说明
结合附图,参考按照本发明的目前优选的例证性实施例的以下详细说明,将更透彻地理解本发明及其实施例,其中:
图1是按照本发明的实施例应用的计数布隆过滤器的时序的示图;
图2是按照本发明的实施例应用的第一计数布隆过滤器的示图;
图3是按照本发明的实施例应用的第二计数布隆过滤器的示图;
图4是分层存储系统的示图;
图5是按照本发明的一个实施例的方法的流程图;以及
图6是按照本发明的另一个实施例的方法的流程图。
具体实施方式
作为以下说明的介绍,首先针对本发明的一般方面,涉及确定数据实体的特性的方法和控制器,所述特性基于对所述数据实体的访问频率。这样的方法和存储控制器利用专门适合于本申请的一个或多个布隆过滤器,具体地说,利用一个或多个计数布隆过滤器。
布隆过滤器可被看作一种代表一个集合以便支持成员资格查询的简单的空间高效的随机化数据结构。布隆过滤器以允许假正为代价来实现空间节省;然而,假正的概率能够被限制到足够低的值。布隆过滤器由BurtonBloom在二十世纪70年代提出,此后在数据库应用以及连网方面得到广泛采用。布隆过滤器可被看作一种通过利用m=O(n)比特的比特向量V来表示来自全域U的元素的集合S={s1,s2,…,sn}的方法。向量V中的所有比特最初被设定为0。布隆过滤器可利用k个散列函数h1,h2,…,hk把来自U的元素映射到范围{1,2,…,m}。对于S中的每个元素s,V中在位置h1(s),h2(s),…,hk(s)的各个比特被设定为1。为了查询某个元素,即,测试该元素是否在所述集合中,最好把该元素馈送给k个散列函数中的每一个,以获得k个比特位置。如果在这些位置的任意比特为0,那么该元素不在所述集合中-如果它在所述集合中,那么当插入该元素时,所有比特理应已被设定为1。如果所有识别的比特位置都为1,那么该元素在所述集合中,或者在其它元素的插入期间各个比特已被设定为1;后一种情况被称为假正。由假正引起的错误的概率取决于参数m,k的选择。对k=log2(m/n)来说,可使所述概率最小化。即使对于利用较小常数c的m=cn来说,布隆过滤器也被认为非常有效。例如,对c=8来说,假正出错率稍高于2%。
把新元素插入布隆过滤器,即,把新元素插入元素的集合中是利用以下步骤来完成的:利用k个散列函数来散列所述新元素k次,并把由所述散列产生的比特设定为1。然而,反转该处理并不会从集合中删除元素。如果要删除的元素被散列,并且对应的比特被设定为0,那么比特位置会被设定成由集合中的某个其它元素被散列成的0。为了避免这种问题,现有技术中提出了计数布隆过滤器的思想。在计数布隆过滤器中,布隆过滤器中的每个比特位置并不是由单个比特表示的,而是由计数器表示的。当新元素被插入集合中时,对应的计数器被递增;当从集合中删除元素时,对应的计数器被递减。为了避免计数器溢出,计数器被设计成足够大。例如,每个计数器4个比特足以满足大多数应用。
在目前的存储应用中,计数布隆过滤器可能不适合于被直接用于生成热图,因为计数布隆过滤器固有地是短期的。当越来越多的数据实体被请求,即,被增加到存储系统中时,它们的对应计数器被递增,所述计数器具有一定的大小,从而最终会溢出。
从而,提出了存储和计算高效的方法,以估计与存储系统中的任意数据实体的访问频率有关的特性。
按照所述方法的第一方面,优选地是把最好包含一组计数器的单个计数布隆过滤器反复应用于各个时间间隔的序列,以捕获在这些时间间隔中的每一个时间间隔中一个数据实体(最好是任意数据实体)的访问频率。最好,所述各个时间间隔的序列形成连续的时段。从而,对特定的数据实体来说,在单个时间间隔期间每次该数据实体被访问时,至少一个计数器的值被递增,所述计数器是计数器的子集的一部分,所述数据实体最好借助于一个或多个散列函数被映射到所述计数器的子集。
另外,提供一种数据结构,所述数据结构包含一组元素。最好,所述一组元素中的每个元素与所述一组计数器中的指定的单个计数器相关联,最好,所述一组计数器中的每个计数器只被分配给指定的单个元素。
当开始所述方法时,计数布隆过滤器被首次启动以在第一时间间隔工作。在这样的时间点或之前,所述一组计数器中的所有计数器和所述一组元素中的所有元素最好被重置,即,在具体实施例中,被设定为值0。因而,0值代表在第一时间间隔开始时各个元素和计数器的当前值。然而,在第一时间间隔期间,在数据实体被访问的条件下,计数器会被增大,使得在第一时间间隔结束时,计数器值代表在第一时间间隔期间各个数据实体被多频繁地访问的指示符。相反,在一个时间间隔期间,元素值一般不变化。
在第一时间间隔结束时、在第一时间间隔结束之后、或者响应于第一时间间隔的结束,所述一组元素中的各个元素的当前值中的一个或多个,最好全部被更新。这种更新包括对单个元素来说,具有分配的新值,其中所述新值取决于分配给所述单个元素的计数器的值,并且取决于所述单个元素的当前值。
为了在任意时间点确定具体的数据实体的特性,最好查询所述一组元素。应用分配给对象数据实体的散列函数,从而分别产生具体的计数器子集和/或具体的元素子集。根据在所述给定时刻元素子集的各个元素的值,可得到所述特性。
在本实施例中,计数布隆过滤器可被应用于其中计数布隆过滤器不会冒被计数器溢出阻塞的风险的较短时间间隔。包括所述一组元素的数据结构被用于确定多个时间间隔上的计数器值的平均值。从而,在一个优选实施例中,数据结构的元素的当前值代表在相关计数器的时间间隔结束时先前计数器值的平均值。当另一个时间间隔到期时,最好相对于当前平均值设定在该时间间隔结束时达到的计数器值。在一个优选实施例中,这是通过用接近于1的因子来加权当前元素值,并用接近于0的因子来加权新的计数器值,然后相加这两个加权值来实现的。这样,与保持长期平均计数器值的数据结构一起,只需要单个计数布隆过滤器。
在这方面,数据结构也可被解释为“长期计数布隆过滤器”,因为它保持代表计数布隆过滤器的相关计数器值的定时平均值的元素值,所述计数布隆过滤器的计数器大小有限。一旦长期计数布隆过滤器被更新,最好通过把集合中的所有计数器初始化为0来重置短期计数布隆过滤器,然后开始后续时间间隔。最好可通过读出用所述数据实体的LBA的散列值索引的那些元素当中的最小元素值,来确定数据实体的特性。
按照所述方法的第二方面,在另一个计数布隆过滤器被应用以寻址后续时间间隔之前,第一个计数布隆过滤器只被应用有限的时间间隔。在均反映在相关时间间隔期间对相应数据实体的访问模式的两个或更多个布隆过滤器中,求平均例程最好平均在每个时间间隔结束时达到的计数布隆过滤器结果,即,代表这样的大量计数布隆过滤器结果在时间上的平均计数器值。另外注意,计数布隆过滤器的结果是通过选择对应于应确定其访问频率的数据实体并且其计数器值最好被平均的每个计数布隆过滤器的计数器值来平均的。
就所有各个方面来说,注意计数器或计数器值的增大还可包括可允许估计对相应数据实体的访问的数目/频率的计数器或计数器值的任何其它修改。
第一方面的计数布隆过滤器最好对每个时间间隔,使用相同的一组k个独立散列函数来填充被确定为散列数据实体的结果的计数器。第二方面的计数布隆过滤器,具体地说,第一计数布隆过滤器和第二计数布隆过滤器可使用相同的一组k个独立散列函数来填充被确定为散列数据实体的结果的计数器。
最好,在其数目定义计数布隆过滤器有效的时间间隔的各个请求的跨度内,维持计数布隆过滤器。
两个方面中的长期计数布隆过滤器最好由许多或者全部的过去短期计数布隆过滤器的平滑或指数移动平均值表示,所述长期计数布隆过滤器可被用作热图。特定数据实体的温度是通过查询长期计数布隆过滤器而获得的。在这方面,数据实体的温度同样表示其相对引用频率,所述引用可包括对其在相同存储系统中的对等体的读取或写入访问,所述温度可以是存储系统中待确定的各个感兴趣特性之一。特别地,整个存储系统的全部温度信息也可被称为热图。如果数据实体被频繁地访问,那么该数据实体通常被称为“热”,或者如果数据实体很少被访问或更新,那么该数据实体通常被称为“冷”。温度可以定量地测量对数据实体的访问有多频繁和有多近。然而,在另一个实施例中,基于对数据实体的访问频率/数据实体的访问频率的特性指的是其绝对访问频率/次数。
样本数据实体最好是通过逻辑块地址(LBA)寻址的数据组块。
在图1中,图解说明了按照本发明的一个实施例应用的计数布隆过滤器CBF1~CBF4的时序。在时间t1-t0的第一时间间隔期间应用第一计数布隆过滤器CBF1,在时间t2–t1的第二时间间隔期间应用第二计数布隆过滤器CBF2,在时间t3–t2的第三时间间隔期间应用第三计数布隆过滤器CBF3,在时间t4–t3的第四时间间隔期间应用第四计数布隆过滤器CBF4。可以应用全部n个计数布隆过滤器,每个计数布隆过滤器在相关时间间隔期间有效。按照本发明的第一方面,所有的计数布隆过滤器CBF1~CBF4可在物理上由刚好在每个时间间隔结束时被重新使用和重新启动的单个计数布隆过滤器代表,所述重新启动最好包括其计数器的在先重置。最好,时间间隔不重叠,并且下一个时间间隔跟随前一个时间间隔,它们之间没有间隙。每个时间间隔具有规定的有限长度,所述规定的长度例如可由这样的时间间隔期间的预定访问次数来表示。结果,各个时间间隔未必长度相等。所述预定访问次数可被选择成在相应计数布隆过滤器CBF的大多数计数器C溢出之前可能的最大值。此外,甚至各个时间间隔的访问次数也可不等。
从而,考虑单个计数布隆过滤器的多次使用,或者另一方面,多个计数布隆过滤器的单次使用,所述多个计数布隆过滤器分别在特定的时间间隔期间有效,如图1中所示。对后者来说,在每个时间间隔开始时,新的计数布隆过滤器CBFx被初始化,这种计数布隆过滤器CBF的所有计数器被设定成0。对前者来说,在每个新的时间间隔开始时,所述单个计数布隆过滤器被初始化,这种计数布隆过滤器CBF的所有计数器被设定成0。
图2中描述了第一计数布隆过滤器CBF1。数目为m的第一计数器C1 0~C1 m-1构成分配给第一计数布隆过滤器CBF1的第一计数器的集合S1。在当前情况下,可以是代表数据实体的逻辑块地址LBA的输入值最好通过多个散列函数h1(LBA),h2(LBA),.....hk(LBA)(本例中,k=2)被映射到m个第一计数器C1的集合S1中的k个第一计数器C1。这意味着在当前情况下,一旦主机、存储系统本身或者任何其它实体访问这样的LBA,就对每个LBA应用两个不同的散列函数。在本例中,值为1的LBA被散列到第一计数器C1 0和C1 m-1。值为4的LBA被散列到第一计数器C1 1和C1 4。值为5的LBA被散列到第一计数器C1 3和C1 5。从而,第一计数器C1的集合S1中的两个第一计数器C1的子集被分配给由LBA代表的每个数据项。就LBA的每次访问来说,其子集的相应第一计数器C1被递增。如果应用k个散列函数来构建第一计数布隆过滤器CBF1,即,把每个数据项映射到k个第一计数器C1,那么第一计数器C1的子集一般由k个第一计数器C1组成。在另一个实施例中,对于对相应数据实体的每次访问来说,只有第一计数器C1的子集中的单个第一计数器C1被递增,它最好是第一计数器C1的子集中具有最小值的第一计数器C1。这种实施例的合理性是在该短期CBF中容纳更多的访问,而不存在其计数器的溢出,并且提高频率估计的准确性。
在单计数布隆过滤器应用中,可以反复使用按照图2的第一计数布隆过滤器。
图3中描述了可用于多计数布隆过滤器应用的第二计数布隆过滤器CBF2。基本上,第二计数布隆过滤器的结构与第一计数布隆过滤器CBF1相同。m个第二计数器C2的集合S2包含被分配给第二计数布隆过滤器CBF2的第二计数器C2 0~C2 m-1。通过如在第一计数布隆过滤器CBF1中使用的k个相同散列函数,即,散列函数h1(LBA),h2(LBA),.....hk(LBA)(k=2),同样是在其间第二计数布隆过滤器CBF2有效的第二时间间隔内被访问的逻辑块地址LBA的输入值被映射到m个第二计数器C2的集合S2中的第二计数器C2。在当前情况下,一旦主机、存储系统本身或者任何其它实体访问这样的LBA,就对每个LBA应用两个不同的散列函数。在本例中,值为1的LBA被散列到第二计数器C2 0和C2 m-1。值为4的LBA被散列到第二计数器C2 1和C2 4。值为5的LBA被散列到第二计数器C2 3和C2 5。从而,m个第二计数器C2的集合S2中的两个第二计数器C2的子集被分配给用LBA代表的每个数据项。就LBA的每次访问来说,其子集的相应第二计数器C2被递增。如果应用k个散列函数来构建第二计数布隆过滤器CBF2,即,把每个数据项映射到k个第二计数器C2,那么第二计数器C2的子集一般由k个第二计数器C2组成。在另一个实施例中,对于对相应数据实体的每次访问来说,只有第二计数器C2的子集中的单个第二计数器C2被递增,它最好是第二计数器C2的子集中具有最小值的第二计数器C2。这种实施例的合理性是在该短期CBF中容纳更多的访问,而不存在其计数器的溢出,并提高频率估计的准确性。
在本例中,通过允许与用于定义第一时间间隔的长度的数据实体访问次数相同的给定数据实体访问次数,定义其中应用第二计数布隆过滤器的第二时间间隔。
按照相同的方式,可以应用n个计数短期布隆过滤器CBF,以按照图1覆盖较大的时间间隔。最好,在其相关时间间隔结束时,计数布隆过滤器CBF的每个计数器的计数器值被保存。令Ci j是第j个计数布隆过滤器CBFj中的第i个计数器的值,那么通过对所有短期计数布隆过滤器CBF1~CBFn求Ci j的平均值,可获得长期计数布隆过滤器CBF的第i个计数器的值Ci,即,
结果的计数器值Ci可被用作相关数据实体的温度。通过确定所有计数器值C0~Cm-1,能够获得底层存储系统的热图。这样的计数器值Ci也可被更一般地表示成数据结构的元素,所述数据结构支持各个计数器值的平均。通过把特定数据实体的LBA散列k次,得到也被表示成长期计数布隆过滤器的C0~Cm-1当中的k个计数器值的子集,并把所述k个计数器值的子集当中的最小值作为相应数据实体的估计温度,能够确定所述特定数据实体的温度。
在实现长期计数布隆过滤器的另一个优选实施例中,使用所有过去的短期计数布隆过滤器值的平滑或指数移动平均值。结果,只能够跟踪单个短期计数布隆过滤器CBF。所述单个短期计数布隆过滤器CBF被重新用于每个新时期,即,每个新的时间间隔,并在所述时期开始时被初始化成0,即,其计数器Ci j被设定成0。同样,Ci j表示在刚刚终止的最近的时间间隔j结束时达到的所述一组计数器中的第i个计数器的值。注意,由于只使用单个计数布隆过滤器,因此不再能够访问更多先前的时间间隔的计数器值。通过加权分配的计数器值Ci j,然后相加第i个元素Ci的加权当前值,例如通过利用以下规则之一,能够获得一组元素中的第i个元素Ci的更新值:
其中α、j是加权因子,一般设定为0.75~0.95。最好,对一组元素C0~Cm-1中的所有元素Ci进行该操作,结果形成m个元素值。一旦当前的短期计数布隆过滤器CBF被并入相关的一组元素中,那么其所有计数器被重置为0。从而,可以仅仅使用单个计数布隆过滤器来覆盖当前时间间隔的数据实体访问。在该时间间隔到期时,通过把计数器值应用于分配的元素值来更新相关的数据结构。随后,通过把其所有计数器初始化为0来重置计数布隆过滤器,然后开始重新为其操作计数布隆过滤器的新的时间间隔。
这样,只需要单个短期计数过滤器和数据结构,从而显著降低了RAM要求。
定期更新的数据结构的优点是双重的。首先,它只需要两个保存的计数布隆过滤器CBF的主存储器大小,从而显著降低存储器要求。其次,由于指数移动平均值的使用,提出的长期计数布隆过滤器CBF可适应于工作负荷的变化动态特性。
给定数据实体的温度的准确估计可帮助提高存储系统的性能和/或成本效率。该信息可被并入高速缓冲存储器、分层存储系统或者基于闪存的设备中的一个或多个中。例如,一旦被识别出,“热”数据可被插入高速缓冲存储器中,以提高高速缓冲存储器命中率,从而提高性能。分级的,即,分层存储系统由至少两个存储介质组成:一个一般费用高,但是快速,而另一个一般费用低,但是较慢。一旦被识别出,“热”数据可被保存在分层存储系统的第一层中的费用高但是快速的存储介质上,而“冷”数据可被保存在分层存储系统的第二层中的容量较大、费用低但是较慢的存储介质上,目的在于以较低的成本获得较高的性能。当闪存设备被用作存储介质时,更新频率相似的数据最好被保存在相同的闪速擦除单元中,以最小化写入放大。
本思想适用于可受益于在使用极少量的存储器的同时跟踪长时间内的数据实体的极其大量填充的度量/特性的值的任何系统。
在本发明的一个优选实施例中,本方法可被应用于有选择地填充高速缓冲存储器,最好还可被应用于对从高速缓冲存储器的块逐出进行判决。高速缓冲存储器一般是保持被频繁访问的数据实体,以便通过避免对底层存储介质的多次访问来降低访问等待时间的一部分存储空间。高速缓冲存储器可被实现成读取高速缓冲存储器、写入高速缓冲存储器、或者组合的读取和写入高速缓冲存储器。
尤其是当可在闪存上实现高速缓冲存储器时,过滤填充该高速缓冲存储器的数据实体是至关紧要的:用“冷”数据实体填充该高速缓冲存储器不仅污染该高速缓冲存储器并可能迫使“热”数据实体离开该高速缓冲存储器,而且会导致大量的闪速写入(一般是随机的闪速写入)。后者导致低得多的高速缓冲存储器性能,因为它会严重降低高速缓冲存储器的吞吐量和增大并行执行的其它读取和写入请求的等待时间。此外,对闪速高速缓冲存储器的较高写入率会导致闪速芯片更快地磨损,于是,导致设备的寿命较短。
本方法可被用于通过使用长期计数布隆过滤器CBF,即,源于应用于有限时段的计数布隆过滤器的计数器值的求平均装置,有效地维持高速缓冲存储器。相应的存储控制器可以块粒度,即,代表数据块的数据实体,在整个存储系统地址空间内维持长期CBF,即,跟踪系统中的所有块的温度。在对块的每次访问时,系统在短期CBF中更新其温度。同时,存储控制器最好保持跟踪在高速缓冲存储器的数据块中发现的最低温度。
响应于访问数据块的请求,如果在高速缓冲存储器中找到这种数据块,那么从高速缓冲存储器中提供该数据块。假定请求访问数据块,但是在高速缓冲存储器中未找到该数据块,那么系统从底层存储介质中读取该数据块,在一个实施例中,所述底层存储介质可以是HDD阵列。随后,存储控制器利用当前的短期计数布隆过滤器CBF和长期计数布隆过滤器CBF来获得该数据块的温度的度量。如果所述温度高于高速缓冲存储器中的最小温度,那么允许该数据块进入所述高速缓冲存储器,即,该数据块的副本被写入所述高速缓冲存储器中,具体地说,在高速缓冲存储器被体现为闪速高速缓冲存储器的情况下,被写入闪存中。否则,该数据块被提供给用户,但不被保存在高速缓冲存储器中。
当允许数据块进入高速缓冲存储器时,情况可能是高速缓冲存储器已满,即,在新的数据块能够被写入该高速缓冲存储器中之前,需要逐出高速缓存的数据块。然后,系统可以使用或者可不使用计数布隆过滤器CBF来选择要从该高速缓冲存储器中除去的块。在前一情况下,选择除去高速缓冲存储器中具有最低温度的数据块。在后一情况下,系统可以利用任何其它现有的页面置换策略来选择要除去的数据块。所述策略可以基于访问的近度、访问的频率或者设计人员认为适当的任何其它标准中的一个或多个。这种方法的优点在于不需要对高速缓冲存储器的内部进行修改。
在另一个实施例中,存储系统可包含存储控制器和分层存储介质。这样的系统也被表示成分层存储系统。包含关于性能和容量的多层永久存储器的存储系统也可受益于本方法。在典型的多层存储系统中,存在按照性能特性的存储介质的排序。自然地,存储介质的性能越高,每个存储单元的费用就越高,从而,预计其容量越小。图4的示图中示出这种系统。在本例中,系统包括4层T0-T3,磁带存储介质是在最下层T0中的容量最大但速度最慢的介质,而闪速存储介质是存在于最上层T3中的当前存储介质之中容量最小但速度最快的存储介质。在这两个极端之间,存在包含磁盘的两层T2和T1;次高层T2包含例如按RAID5配置的SAS磁盘,而次低层T1包含例如按RAID6配置的SATA磁盘。从层T0到层T3经过该分级结构,等待时间和吞吐量方面的性能均提高,而容量减小。
一般来说,在分层存储系统中,存储系统的总容量等于各层的合计容量。这实际上意味着所有各层被系统用作永久存储器,以及在任何给定时间,任何数据块都不会在多于一个的层中被找到。具体地说,各层都不被用作分级结构中的高速缓冲存储器。当然,任意数据实体可从一层迁移到某个其它层。为了获得最高的性能,这种分层存储系统的存储控制器目的在于把温度最高的数据块保存在速度最快的层上,而温度最低的数据被向下推送到不那么高的各层。
在这样的分层存储系统中,通过以数据块粒度,确定整个存储系统地址空间内的温度,可应用确定数据实体的温度的本方法,即,利用计数布隆过滤器来跟踪存储系统中的所有数据块的温度。在对数据块的每次访问时,系统在短期计数布隆过滤器中更新其温度。同时,系统可保持跟踪在系统的每一层中发现的最高和最低温度。
在每次访问当前保存在层j上的数据块时,系统可利用当前的短期计数布隆过滤器CBF和长期计数布隆过滤器CBF来获得该数据块的温度的度量。如果该温度高于层j+1中的最低温度,那么触发该数据块从层j到层j+1的迁移。同时,层j+1中的具有最低温度的数据块被降到层j,假定层j+1已满,即,其所有各个数据块都已被分配。注意作为一种备选方案,如果发现数据块的温度高于任意层j'>j+1的最低温度,那么该数据块可被移动到所述任意层j'。当数据块被另一个数据块置换,即,该数据块被发现是其当前层中的最冷数据块时,该数据块最好被降到较低的层中。最初,当分配新的数据块时,该数据块被置于尚未被充满的最高层中。
图5图解说明了表示按照本发明的一个实施例的方法的流程图。在步骤S0,通过把计数布隆过滤器索引I设定为1,开始所述方法。在步骤S1,通过把第一计数布隆过滤器的所有计数器设定为0,启动与索引i=1相应的第一计数布隆过滤器。在步骤S2,接收访问当前存储介质的数据实体的新请求。在步骤S3,核实与第一计数布隆过滤器相关的第一时间间隔是否到期。如果第一时间间隔未到期(N),那么数据实体或其标识符,比如LBA被分别馈送到第一计数布隆过滤器中,以及在步骤S4中,通过利用k个散列函数来散列当前LBA而识别的相应计数器的子集被递增。在步骤S5,可服务该访问请求,并且可选地在步骤S6,与存储系统的高速缓冲存储器中的数据实体的最低温度值比较地分析所述子集的各个计数器。随后,存储系统继续步骤S2,等待/接收新的数据访问请求。
如果在步骤S3中第一时间间隔到期/终止(Y),那么在步骤S7,保存第一计数布隆过滤器的计数器值,然后在步骤S8,根据所有先前的计数器值来确定新的平均计数器值。在下一步骤S9,计数布隆过滤器索引被递增,随后在步骤S1,初始化下一个计数布隆过滤器,即,与所述索引相应的第二计数布隆过滤器。
图6图解说明了表示按照本发明的一个实施例的另一种方法的流程图。在步骤S0,开始该方法,并且与计数布隆过滤器的x个计数器相对应的数据结构的x个元素被设定为0。在步骤S1,通过把计数布隆过滤器的所有x个计数器都设定为0来启动计数布隆过滤器,然后使计数布隆过滤器开始工作在步骤S1中开始的规定时间间隔。在步骤S2,接收访问当前存储介质的数据实体的新请求。在步骤S3,核实预期计数布隆过滤器工作的时间间隔是否已到期。如果该时间间隔未到期(N),那么在步骤S4,数据实体或者其相应的标识符(比如LBA)被馈送到计数布隆过滤器中,然后通过利用k个散列函数来散列当前LBA而识别的计数器子集的各个计数器被递增。在步骤S5,可以服务所述访问请求,并且可选地在步骤S6中,与存储系统的高速缓冲存储器中的数据实体的最低温度值相比较地分析所述子集的计数器。随后,存储系统继续步骤S2,等待/接收新的数据访问请求。
如果在步骤S3,该时间间隔到期/终止(Y)-这可通过已达到规定数目的数据实体访问来确定-那么在步骤S7,根据当前计数器值,并且根据保存的第一计数布隆过滤器的当前元素值,来确定数据结构的各个元素的新值。最好,在每个元素对应于计数布隆过滤器的计数器的情况下,为数据结构中的每个元素确定一个新值。在步骤S8,保存所述新的元素值。在接下来的步骤S1中,计数器值被重置,并开始新的时间间隔。未决的访问请求可被临时保存,并可在所述新的时间间隔中被执行。
本领域的技术人员会理解,本发明的各个方面可被具体体现成系统、方法或计算机程序产品。因而,本发明的各个方面,尤其是控制器的形式可以采取纯硬件实施例、纯软件实施例(包括固件、驻留软件、微代码等),或者结合这里通常都可被称为“电路”、“模块”或“系统”的软件和硬件特征的实施例的形式。此外,本发明的各个方面,比如方法可以采取包含在一个或多个计算机可读介质中的计算机程序产品的形式,所述一个或多个计算机可读介质具有包含于其中的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如(但不限于)电、磁、光、电磁、红外或半导体系统、设备或装置,或者它们的任意适当组合。计算机可读存储介质的更具体例子(非穷举列表)可包括:具有一条或多条导线的电连接、可移植计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置,或者它们的任意适当组合。在本文的上下文中,计算机可读存储介质可以是能够包含或保存供指令执行系统、设备或装置使用的,或者结合指令执行系统、设备或装置使用的程序的任何有形介质。
计算机可读信号介质可包括计算机可读程序代码包含在其中,例如,包含在基带中,或者体现为载波的一部分的传播数据信号。这种传播信号可以采取任意各种形式,包括(但不限于)电磁、光,或者它们的任意适当组合。计算机可读信号介质可以是不是计算机可读存储介质,能够传递、传播或传送供指令执行系统、设备或装置使用的,或者结合指令执行系统、设备或装置使用的程序的任何计算机可读介质。
包含在计算机可读介质上的程序代码可利用任何适当的媒体传送,包括(但不限于)无线、有线、光缆、RF等,或者它们的任何适当组合。
可用一种或多种编程语言,包括诸如Java、Smalltalk、C++之类的面向对象编程语言,和诸如“C”编程语言或类似编程语言之类的常规过程编程语言的任意组合,编写执行本发明的各个方面的操作的计算机程序代码。程序代码可完全在用户的计算机上运行,部分在用户的计算机上运行,作为独立的软件包,部分在用户的计算机上运行并且部分在远程计算机上运行,或者完全在远程计算机或服务器上运行。在后一情况下,远程计算机可通过任意类型的网络,包括局域网(LAN)或广域网(WAN),连接到用户的计算机,或者可实现与外部计算机的连接(例如,利用因特网服务提供商,经因特网实现与外部计算机的连接)。
下面参考按照本发明的各个实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图,说明本发明的各个方面。要明白流程图和/或方框图的每个方框,以及流程图和/或方框图中的各个方框的组合可用计算机程序指令实现。计算机程序指令可被提供给通用计算机,专用计算机或者其它可编程数据处理设备的处理器,从而产生机器,以致借助计算机或其它可编程数据处理设备的处理器运行的指令产生实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。
这些计算机程序指令也可被保存在计算机可读介质中,所述计算机可读介质能够指令计算机、其它可编程数据处理设备或者其它装置按特定方式运行,以致保存在计算机可读介质中的指令产生制成品,所述制成品包括实现在示意流程图和/或示意方框图的一个或多个方框中指定的功能/动作的指令。
计算机程序指令也可被加载到计算机,其它可编程数据处理设备或其它装置上,使得在计算机,其它可编程设备或其它装置上执行一系列的操作步骤,从而产生计算机实现的处理,以致在计算机或其它可编程设备上执行的指令提供实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的处理。
附图中的流程图和方框图图解说明按照本发明的各个实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这方面,流程图或方框图中的每个方框可代表包含实现指定逻辑功能的一个或多个可执行指令的模块、程序段或一部分代码。另外应注意,在一些备选实现中,在方框中表示的功能可不按照附图中所示的顺序发生。例如,接连表示的两个方框事实上可以基本同时地执行,或者各个方框有时可按照相反的顺序执行,取决于所涉及的功能。另外要注意方框图和/或流程图的每个方框,以及方框图和/或流程图中的各个方框的组合可用实现指定功能或动作的基于专用硬件的系统,或者专用硬件和计算机指令的组合实现。
Claims (40)
1.一种确定数据实体的特性的方法,所述特性基于对存储系统中的所述数据实体的访问频率,所述方法包括:
提供持续一段时间间隔工作的计数布隆过滤器(CBF1),所述计数布隆过滤器(CBF1)包含一组(S1)计数器(C1),
提供一种数据结构,所述数据结构包含一组元素,其中所述一组元素中的每个元素被分配给所述一组计数器中的计数器,
以所述一组元素中的至少一个元素的值为条件,确定所述数据实体的特性,
其中,对于所述计数布隆过滤器工作的每个单独时间间隔,
-在所述单独时间间隔之前或者在所述单独时间间隔开始时,所述一组计数器中的各个计数器被重置,
-在所述单独时间间隔期间,每次所述数据实体被访问时,增大所述数据实体在所述计数布隆过滤器(CBF1)中被映射到的计数器(C1)子集中的至少一个计数器(C1)的值,
-在所述单独时间间隔结束时或者在所述单独时间间隔结束之后,更新所述一组元素中的每个单独元素的值,其中,以分配给所述单独元素的计数器在所述单独时间间隔结束时保持的值为条件,并以所述单独元素的当前值为条件,更新所述单独元素的值。
2.按照权利要求1所述的方法,
其中,使计数布隆过滤器在连续的时间间隔工作多次。
3.按照权利要求1或2所述的方法,
其中,以分配给所述单独元素的计数器在所述单独时间间隔结束时保持的加权值为条件,并以所述单独元素的加权当前值为条件,更新所述单独元素的值。
4.按照权利要求3所述的方法,
其中,所述单独元素的值是用利用因子α加权的分配给所述单独元素的计数器在所述单独时间间隔结束时保持的值加上利用因子1-α加权的所述单独元素的当前值来更新的。
5.按照权利要求4所述的方法,
其中,因子α具有在0.75和0.95之间的值。
6.按照权利要求1所述的方法,
其中,所述数据实体借助于一个或多个散列函数(h)被映射到所述计数器(C1)子集。
7.按照权利要求1所述的方法,
其中,所述计数器(C1)子集包含所述数据实体在计数布隆过滤器(CBF1)中被映射到的多个计数器(C1),以及其中,只有该子集中的单个计数器(C1)的值被增大,所述单个计数器(C1)是所述子集中的所述多个计数器(C1)当中当前显示最小值的计数器(C1)。
8.按照权利要求1所述的方法,
其中,所述一组元素中的每个元素被分配给所述一组计数器中的单个计数器,以及其中,所述一组计数器中的每个计数器被分配给所述一组元素中的单个元素。
9.按照权利要求1所述的方法,
其中,所述计数器(C1)子集包含所述数据实体在计数布隆过滤器(CBF1)中被映射到的多个计数器(CBF1),
其中,元素的子集包含被分配给计数器的子集的各个计数器的元素,以及
其中,以元素的子集中的一个或多个元素的值为条件,确定所述数据实体的特性。
10.按照权利要求9所述的方法,
其中,以元素的子集中的多个元素当中显示最小值的元素的值为条件,确定所述数据实体的特性。
11.一种确定数据实体的特性的方法,所述特性基于对存储系统中的所述数据实体的访问频率,所述方法包括:
提供在第一时间间隔内有效的第一计数布隆过滤器(CBF1),所述第一计数布隆过滤器(CBF1)包含一组(S1)第一计数器(C1),
在第一时间间隔期间每次所述数据实体被访问时,增大所述数据实体在第一计数布隆过滤器(CBF1)中被映射到的第一计数器(C1)的子集中的至少一个第一计数器(C1)的值,
提供在第二时间间隔内有效的第二计数布隆过滤器(CBF2),所述第二计数布隆过滤器(CBF2)包含一组(S2)第二计数器(C2),
在第二时间间隔期间每次所述数据实体被访问时,增大所述数据实体在第二计数布隆过滤器(CBF2)中被映射到的第二计数器(C2)的子集中的至少一个第二计数器(C2)的值,
以在第一时间间隔结束时第一计数器(C1)的子集中的至少一个第一计数器(C1)的值为条件,并以在第二时间间隔(CBF2)结束时第二计数器(C2)的子集中的至少一个第二计数器(C2)的值为条件,确定数据实体的特性。
12.按照权利要求11所述的方法,
其中,提供全部n个计数布隆过滤器(CBF),所述n个计数布隆过滤器(CBF)中的每一个在相关时间间隔内有效,所述相关时间间隔彼此相随;
其中,在相关时间间隔期间每次所述数据实体被访问时,依照第一或第二计数布隆过滤器(CBF1,CBF2)使n个计数布隆过滤器(CBF)中的每一个工作;
其中,以对于n个计数布隆过滤器(CBF)中的每一个计数布隆过滤器(CBF),在相关时间间隔结束时相应计数布隆过滤器(CBF)中与所述数据实体相关联的计数器(C)的子集中的至少一个计数器(C)的值为条件,确定所述数据实体的特性。
13.按照权利要求12所述的方法,
其中,根据从n个计数布隆过滤器(CBF)中选择的计数器值的平均值来确定所述数据实体的特性。
14.按照权利要求11所述的方法,
其中,借助于一个或多个散列函数(h),所述数据实体被映射到第一计数器(C1)的子集,以及
其中,借助于相同的一个或多个散列函数(h),所述数据实体被映射到第二计数器(C2)的子集。
15.按照权利要求11所述的方法,
其中,第一计数器(C1)的子集包含所述数据实体在第一计数布隆过滤器(CBF1)中被映射到的多个第一计数器(C1),以及其中,只有该子集中的单个第一计数器(C1)的值被增大,所述单个第一计数器(C1)是该子集中的多个第一计数器(C2)当中当前显示最小值的第一计数器(C1),以及
其中,第二计数器(C2)的子集包含所述数据实体在第二计数布隆过滤器(CBF2)中被映射到的多个第二计数器(C2),以及其中,只有该子集中的单个第二计数器(C2)的值被增大,所述单个第二计数器(C2)是该子集中的多个第二计数器(C2)当中当前显示最小值的第二计数器(C2)。
16.按照权利要求11所述的方法,
其中,第一计数器(C1)的子集包含所述数据实体在第一计数布隆过滤器(CBF1)中被映射到的多个第一计数器(C1),
其中,第二计数器(C2)的子集包含所述数据实体在第二计数布隆过滤器(CBF2)中被映射到的多个第二计数器(C2),以及
其中,以第一计数器(C1)的子集中的指定第一计数器(C1)的值为条件,并以第二计数器(C2)的子集中的指定第二计数器(C2)的值为条件,确定所述数据实体的特性,所述指定第一计数器(C1)是在第一时间间隔结束时,第一计数器(C1)的子集中的多个第一计数器(C1)当中显示最小值的第一计数器(C1),所述指定第二计数器(C2)是在第二时间间隔结束时,第二计数器(C2)的子集中的多个第二计数器(C2)当中显示最小值的第二计数器(C2)。
17.按照权利要求11所述的方法,
其中,访问所述数据实体包括读取所述数据实体和更新所述数据实体中的至少一个。
18.按照权利要求11所述的方法,
其中,所述数据实体代表用单个逻辑块地址(LBA)寻址的数据。
19.按照权利要求11所述的方法,
其中,以确定的所述数据实体的特性为条件,选择所述数据实体以便高速缓存。
20.按照权利要求11所述的方法,
其中,以确定的所述数据实体的特性为条件,选择所述数据实体以便保存在分层存储系统中的指定层(T)中。
21.一种确定数据实体的特性的存储控制器,所述特性基于对存储系统中的所述数据实体的访问频率,所述控制器包括:
用于提供持续一段时间间隔工作的计数布隆过滤器(CBF1)的装置,所述计数布隆过滤器(CBF1)包含一组(S1)计数器(C1),
用于提供一种数据结构的装置,所述数据结构包含一组元素,其中所述一组元素中的每个元素被分配给所述一组计数器中的计数器,
用于以所述一组元素中的至少一个元素的值为条件,确定所述数据实体的特性的装置,
其中,对于所述计数布隆过滤器工作的每个单独时间间隔,
-在所述单独时间间隔之前或者在所述单独时间间隔开始时,所述一组计数器中的各个计数器被重置,
-在所述单独时间间隔期间,每次所述数据实体被访问时,增大所述数据实体在所述计数布隆过滤器(CBF1)中被映射到的计数器(C1)子集中的至少一个计数器(C1)的值,
-在所述单独时间间隔结束时或者在所述单独时间间隔结束之后,更新所述一组元素中的每个单独元素的值,其中,以分配给所述单独元素的计数器在所述单独时间间隔结束时保持的值为条件,并以所述单独元素的当前值为条件,更新所述单独元素的值。
22.按照权利要求21所述的存储控制器,
其中,使计数布隆过滤器在连续的时间间隔工作多次。
23.按照权利要求21或22所述的存储控制器,
其中,以分配给所述单独元素的计数器在所述单独时间间隔结束时保持的加权值为条件,并以所述单独元素的加权当前值为条件,更新所述单独元素的值。
24.按照权利要求23所述的存储控制器,
其中,所述单独元素的值是用利用因子α加权的分配给所述单独元素的计数器在所述单独时间间隔结束时保持的值加上利用因子1-α加权的所述单独元素的当前值来更新的。
25.按照权利要求24所述的存储控制器,
其中,因子α具有在0.75和0.95之间的值。
26.按照权利要求21所述的存储控制器,
其中,所述数据实体借助于一个或多个散列函数(h)被映射到所述计数器(C1)子集。
27.按照权利要求21所述的存储控制器,
其中,所述计数器(C1)子集包含所述数据实体在计数布隆过滤器(CBF1)中被映射到的多个计数器(C1),以及其中,只有该子集中的单个计数器(C1)的值被增大,所述单个计数器(C1)是所述子集中的所述多个计数器(C1)当中当前显示最小值的计数器(C1)。
28.按照权利要求21所述的存储控制器,
其中,所述一组元素中的每个元素被分配给所述一组计数器中的单个计数器,以及其中,所述一组计数器中的每个计数器被分配给所述一组元素中的单个元素。
29.按照权利要求21所述的存储控制器,
其中,所述计数器(C1)子集包含所述数据实体在计数布隆过滤器(CBF1)中被映射到的多个计数器(CBF1),
其中,元素的子集包含被分配给计数器的子集的各个计数器的元素,以及
其中,以元素的子集中的一个或多个元素的值为条件,确定所述数据实体的特性。
30.按照权利要求29所述的存储控制器,
其中,以元素的子集中的多个元素当中显示最小值的元素的值为条件,确定所述数据实体的特性。
31.一种确定数据实体的特性的存储控制器,所述特性基于对存储系统中的所述数据实体的访问频率,所述存储控制器包括:
用于提供在第一时间间隔内有效的第一计数布隆过滤器(CBF1)的装置,所述第一计数布隆过滤器(CBF1)包含一组(S1)第一计数器(C1),
用于在第一时间间隔期间每次所述数据实体被访问时,增大所述数据实体在第一计数布隆过滤器(CBF1)中被映射到的第一计数器(C1)的子集中的至少一个第一计数器(C1)的值的装置,
用于提供在第二时间间隔内有效的第二计数布隆过滤器(CBF2)的装置,所述第二计数布隆过滤器(CBF2)包含一组(S2)第二计数器(C2),
用于在第二时间间隔期间每次所述数据实体被访问时,增大所述数据实体在第二计数布隆过滤器(CBF2)中被映射到的第二计数器(C2)的子集中的至少一个第二计数器(C2)的值的装置,
用于以在第一时间间隔结束时第一计数器(C1)的子集中的至少一个第一计数器(C1)的值为条件,并以在第二时间间隔(CBF2)结束时第二计数器(C2)的子集中的至少一个第二计数器(C2)的值为条件,确定数据实体的特性的装置。
32.按照权利要求31所述的存储控制器,
其中,提供全部n个计数布隆过滤器(CBF),所述n个计数布隆过滤器(CBF)中的每一个在相关时间间隔内有效,所述相关时间间隔彼此相随;
其中,在相关时间间隔期间每次所述数据实体被访问时,依照第一或第二计数布隆过滤器(CBF1,CBF2)使n个计数布隆过滤器(CBF)中的每一个工作;
其中,以对于n个计数布隆过滤器(CBF)中的每一个计数布隆过滤器(CBF),在相关时间间隔结束时相应计数布隆过滤器(CBF)中与所述数据实体相关联的计数器(C)的子集中的至少一个计数器(C)的值为条件,确定所述数据实体的特性。
33.按照权利要求32所述的存储控制器,
其中,根据从n个计数布隆过滤器(CBF)中选择的计数器值的平均值来确定所述数据实体的特性。
34.按照权利要求31所述的存储控制器,
其中,借助于一个或多个散列函数(h),所述数据实体被映射到第一计数器(C1)的子集,以及
其中,借助于相同的一个或多个散列函数(h),所述数据实体被映射到第二计数器(C2)的子集。
35.按照权利要求31所述的存储控制器,
其中,第一计数器(C1)的子集包含所述数据实体在第一计数布隆过滤器(CBF1)中被映射到的多个第一计数器(C1),以及其中,只有该子集中的单个第一计数器(C1)的值被增大,所述单个第一计数器(C1)是该子集中的多个第一计数器(C2)当中当前显示最小值的第一计数器(C1),以及
其中,第二计数器(C2)的子集包含所述数据实体在第二计数布隆过滤器(CBF2)中被映射到的多个第二计数器(C2),以及其中,只有该子集中的单个第二计数器(C2)的值被增大,所述单个第二计数器(C2)是该子集中的多个第二计数器(C2)当中当前显示最小值的第二计数器(C2)。
36.按照权利要求31所述的存储控制器,
其中,第一计数器(C1)的子集包含所述数据实体在第一计数布隆过滤器(CBF1)中被映射到的多个第一计数器(C1),
其中,第二计数器(C2)的子集包含所述数据实体在第二计数布隆过滤器(CBF2)中被映射到的多个第二计数器(C2),以及
其中,以第一计数器(C1)的子集中的指定第一计数器(C1)的值为条件,并以第二计数器(C2)的子集中的指定第二计数器(C2)的值为条件,确定所述数据实体的特性,所述指定第一计数器(C1)是在第一时间间隔结束时,第一计数器(C1)的子集中的多个第一计数器(C1)当中显示最小值的第一计数器(C1),所述指定第二计数器(C2)是在第二时间间隔结束时,第二计数器(C2)的子集中的多个第二计数器(C2)当中显示最小值的第二计数器(C2)。
37.按照权利要求31所述的存储控制器,
其中,访问所述数据实体包括读取所述数据实体和更新所述数据实体中的至少一个。
38.按照权利要求31所述的存储控制器,
其中,所述数据实体代表用单个逻辑块地址(LBA)寻址的数据。
39.按照权利要求31所述的存储控制器,
其中,以确定的所述数据实体的特性为条件,选择所述数据实体以便高速缓存。
40.按照权利要求31所述的存储控制器,
其中,以确定的所述数据实体的特性为条件,选择所述数据实体以便保存在分层存储系统中的指定层(T)中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP11175348 | 2011-07-26 | ||
EP11175348.9 | 2011-07-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103150245A CN103150245A (zh) | 2013-06-12 |
CN103150245B true CN103150245B (zh) | 2016-06-08 |
Family
ID=46605713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210261472.3A Expired - Fee Related CN103150245B (zh) | 2011-07-26 | 2012-07-26 | 确定数据实体的访问特性的方法和存储控制器 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN103150245B (zh) |
DE (1) | DE102012212183B4 (zh) |
GB (1) | GB2493243B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838850B (zh) * | 2014-03-11 | 2017-02-08 | 湖州师范学院 | 一种基于动态计数型Bloom filter的散列数据表示及查询方法 |
US9285994B2 (en) | 2014-06-05 | 2016-03-15 | International Business Machines Corporation | Block-level predictive data migration |
CN105487823B (zh) * | 2015-12-04 | 2018-06-05 | 华为技术有限公司 | 一种数据迁移的方法及装置 |
US10275541B2 (en) | 2016-08-05 | 2019-04-30 | Micron Technology, Inc. | Proactive corrective actions in memory based on a probabilistic data structure |
US11099849B2 (en) * | 2016-09-01 | 2021-08-24 | Oracle International Corporation | Method for reducing fetch cycles for return-type instructions |
US10108368B2 (en) | 2017-01-09 | 2018-10-23 | International Business Machines Corporation | Heat map transfer in space-efficient storage |
KR20200021821A (ko) * | 2018-08-21 | 2020-03-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
CN109656901A (zh) * | 2018-10-15 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 数据处理方法和装置、电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655861A (zh) * | 2009-09-08 | 2010-02-24 | 中国科学院计算技术研究所 | 基于双计数布鲁姆过滤器的哈希方法和哈希装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007101969A1 (en) * | 2006-03-06 | 2007-09-13 | Arm Limited | Accessing a cache in a data processing apparatus |
US20110276744A1 (en) * | 2010-05-05 | 2011-11-10 | Microsoft Corporation | Flash memory cache including for use with persistent key-value store |
-
2012
- 2012-06-11 GB GB1210250.5A patent/GB2493243B/en active Active
- 2012-07-12 DE DE102012212183.8A patent/DE102012212183B4/de active Active
- 2012-07-26 CN CN201210261472.3A patent/CN103150245B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655861A (zh) * | 2009-09-08 | 2010-02-24 | 中国科学院计算技术研究所 | 基于双计数布鲁姆过滤器的哈希方法和哈希装置 |
Non-Patent Citations (2)
Title |
---|
Hot data identification for flash-based storage systems using multiple bloom filters;Dongchul park and david H.C.Du;《IEEE 27th symposium on mass storage systems and technologies》;20110527;论文的第4页第1栏第35-51行,以及图2-5 * |
Scavenger:A new last level cache architecture with global block priority;Arkaprava Basu et al;《40th IEEE symposium on Microarchitecture》;20071201;全文 * |
Also Published As
Publication number | Publication date |
---|---|
DE102012212183B4 (de) | 2017-10-05 |
GB2493243A (en) | 2013-01-30 |
DE102012212183A1 (de) | 2013-01-31 |
CN103150245A (zh) | 2013-06-12 |
GB2493243B (en) | 2014-04-23 |
GB201210250D0 (en) | 2012-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103150245B (zh) | 确定数据实体的访问特性的方法和存储控制器 | |
US10901619B2 (en) | Selecting pages implementing leaf nodes and internal nodes of a data set index for reuse | |
US9959054B1 (en) | Log cleaning and tiering in a log-based data storage system | |
CN104598459B (zh) | 数据库处理、数据访问方法及系统 | |
CN104272244B (zh) | 用于对处理进行调度以实现空间节省的系统、方法 | |
CN106709068B (zh) | 一种热点数据识别方法及其装置 | |
US10606806B2 (en) | Method and apparatus for storing time series data | |
CN103207840B (zh) | 用于将不完整记录从第一缓存降级至第二缓存的系统和方法 | |
CN104503703B (zh) | 缓存的处理方法和装置 | |
CN106547476A (zh) | 用于数据存储系统的方法和装置 | |
CN106610903A (zh) | 层级化存储器系统、存储器控制器和去重及存储器层级化方法 | |
US20140114951A1 (en) | Database performance estimation device and database estimation method | |
CN104268099A (zh) | 一种管理数据读写的方法及装置 | |
CN109086141A (zh) | 内存管理方法和装置以及计算机可读存储介质 | |
CN110795363A (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
CN106970937B (zh) | 一种基于本地缓存快速建立索引的方法及系统 | |
CN104391947B (zh) | 海量gis数据实时处理方法及系统 | |
CN105045894A (zh) | 一种面向分布式顺序表的缓存方法及系统 | |
US20170270147A1 (en) | Method and apparatus for storing data | |
US10185660B2 (en) | System and method for automated data organization in a storage system | |
CN114785858B (zh) | 应用于互感器在线监测系统的资源主动缓存方法及装置 | |
CN106557277B (zh) | 磁盘阵列的读方法及装置 | |
CN115878625A (zh) | 数据处理方法和装置及电子设备 | |
CN110362769A (zh) | 一种数据处理方法及装置 | |
CN111880739A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160608 Termination date: 20200726 |
|
CF01 | Termination of patent right due to non-payment of annual fee |