CN112799590A - 一种针对在线主存储重删的差异化缓存方法 - Google Patents
一种针对在线主存储重删的差异化缓存方法 Download PDFInfo
- Publication number
- CN112799590A CN112799590A CN202110083193.1A CN202110083193A CN112799590A CN 112799590 A CN112799590 A CN 112799590A CN 202110083193 A CN202110083193 A CN 202110083193A CN 112799590 A CN112799590 A CN 112799590A
- Authority
- CN
- China
- Prior art keywords
- fingerprint
- data
- data stream
- redundant
- physical block
- 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
Images
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种针对在线主存储重删的差异化缓存方法,包括:在收到写I/O请求后根据来源进行数据分流为不同的数据流,将数据分块为数据块,并计算每一个数据块的指纹;对不同的数据流进行指纹采样,若某一数据流采样时间到时则对该数据流进行局部性预测得到数据流中非冗余数据块的数量,并根据非冗余数据块的数量调整该数据流的指纹缓存替换概率;正对每一个数据块进行处理,且缓存满需要替换时则按照不同数据流的指纹缓存替换概率优先换出那些冗余块局部性较差数据流中的数据块的指纹。
Description
技术领域
本发明涉及存储系统领域,具体涉及一种针对在线主存储重删的差异化缓存方法,用于差异化的缓存技术提高主存储重删中指纹索引效率,进而提高在线主存储重删率、降低重删逻辑带来的I/O延迟以及延长SSD硬盘的使用寿命等。
背景技术
冗余数据广泛存在于云计算场景下的主存储系统中,这些冗余数据一方面浪费了宝贵的存储容量,另一方面也带来了不必要的存储性能损失。因此,在主存储中消除冗余数据具有重要意义。数据重删技术将数据拆分成多个小块,通过哈希算法得到每个小块的指纹并使用这些指纹来识别和减少冗余数据块。现有的主存储重复数据删除技术主要包括以下两种:一是使用在线方式,通过内联缓存来利用工作负载中的局部性;二是使用离线处理的方式来避免对I/O性能的负面影响。面向在线主存储重删的场景,主存储对I/O延迟要求高,相比于文件系统层,块设备层具有现成的数据分块,避免了数据分块的开销,因而在线主存储重删往往通过设备映射等机制,在块设备层进行实现。
如图1所示,一般的主存储重删实现方法的步骤包括:(1)收到写I/O请求,包含数据块及其逻辑块好LBN;将数据进行分块;利用SHA-1等哈希算法计算得到每一个数据块的指纹;(2)检索指纹到物理块号映射是否存在(通过指纹索引表查询新写入块是否存在),若存在,进行步骤(3);否则,进行步骤(6);(3)检索逻辑块号到物理块号的映射是否已经存在,如果已经存在,进行步骤(4),否则进行步骤(5)。(4)检查物理块号是否与旧的物理块号一致,若一致,说明这是一个冗余I/O,无须进行任何操作,过程结束;否则,减小旧物理块号引用计数,进入步骤(5);(5)向索引表增加逻辑块号到物理块号映射,增加新的物理块号的引用计数,结束。(6)检查逻辑块号到物理块号的映射是否已经存在,如果已经存在,进行步骤(7),否则进行步骤(8)。(7)减小旧物理块号引用计数,进行步骤(8);(8)分配新的物理块号并写入数据块,向索引表加入指纹到物理块号(若缓存满则按照LRU策略进行替换)、逻辑块号到物理块号映射,将新物理块号的引用计数增加2。对于所有数据块写入重复上述步骤,最终完成写I/O请求的处理。
根据进行重删的阶段,已有的方法可以分为在线和离线两种。离线重删方法不能消除写入同一逻辑块的重复I/O,因而导致不必要的I/O写延迟。其次,对于SSD硬盘来说,重复的I/O还会导致硬盘寿命降低等问题。对于离线重删,由于重删逻辑会不可避免地占用一些计算、内存以及I/O带宽资源,因而会对系统中其它程序的运行带来影响。对于在线重删方法,由于指纹表的大小往往远大于系统内存,因而其性能瓶颈主要是指纹的索引。传统的主存储重删系统中往往简单地采用LRU或LFU等缓存替换策略来管理指纹缓存,主存储负载的时间局部性较低,这给有效分配内联缓存空间和实现良好的重删率带来了挑战。在云计算场景下,在虚拟机中运行的多个应用共享了底层物理存储,来自不同数据流的数据相互交叠,进一步降低了负载的时间局部性。当被用于指纹缓存时,维护影子缓存的内存开销很高,因而包括LIRS和ARC等面向较弱局部性条件下的缓存性能也较差。
在云计算场景下,云服务提供商可以将属于多个不同用户、运行不同应用程序的虚拟机部署在同一台物理机上。同时,类似Docker这样的容器技术进一步降低了应用间隔离的开销,进而使得更多的应用可以互不影响地运行在同一台物理机上。典型情况下,云软件栈将不同虚拟机的数据卷映射到底层的存储基础设施。在每个虚拟机或容器内部进行重删往往是不可行的,原因主要有三个方面。首先,大量重删逻辑实例会带来显著的计算、存储开销;其次,虚拟机层面的重删无法去除虚拟机间共享的冗余数据;最后,在虚拟机内部实现重删仍然需要虚拟机管理层的块地址转换机制的介入。因此。在虚拟机管理层实施重删更为合理,对应的在线重删系统结构如图2所示。图2中VM1~VMn分别表示第1~n个虚拟机,参见图2,在线重删逻辑维护指纹缓存、LBN映射表和用来保存非重复块的块存储,垃圾收集负责回收那些无效的数据块并释放空间。
诸如写日志、程序循环、LSM-tree的数据整理等机制使得主存储程序的I/O访问有一定的时间局部性。在线重删中的指纹缓存正是利用了这种局部性使得很大一部分冗余数据块的识别可以通过内存而不是磁盘数据结构索引来实现。受限于缓存大小,其对时间局部性的捕捉往往在一定的时间窗口内。超过该窗口的访问由于相应缓存项被替换出,则无法获得命中。对于单一程序,这种局部性往往比较强,因而可以在给定缓存大小情况下,很大程度上捕捉时间局部性进而识别大多数冗余写。在云计算场景下的主存储中,来自不同虚拟机或不同应用的数据流相互交叠,弱化了向底层存储I/O的相对局部性,进而使得整体重删率下降。
在操作系统页缓存管理等场景中,负载局部性不足等问题普遍存在,相关工作采用影子缓存的机制来解决这类数据流局部性较弱的问题。较有代表性的缓存策略包括LIRS(Lower Inter-Reference Recency Set Replacement Policy)以及ARC(AdaptiveReplacement Cache)等。两者均被提出以优化LRU算法,其基本思想即通过使用额外内存(影子内存)来达到增大缓存追踪窗口的大小,从而更好地利用弱局部性。
LIRS使用IRR(Inter-Reference Recency)来指导缓存替换决策。该策略用影子内存来记录那些最近被替换出缓存的数据,除了Recency外,通过考虑IRR来避免在LRU缓存中扫描等访问模式带来的问题。如图所示,缓存块按照IRR值高低分为两类。LIRS策略的核心思想是维护两个LRU列表,局部性较弱的负载只能进入HIR区,当HIR区的数据块被换出时,其影子块(仅包括元数据)仍然驻留在缓存中,当该数据块再次命中则可以捕捉到其局部性。这样,大多数缓存空间都被局部性较好的数据块(LIR区)占据,而局部性较差数据(列表Q)仅占用少量内存空间。
ARC策略维护一个LRU列表T1和一个LFU列表T2,两者共同占用缓存空间。此外,ARC还维护两个额外的影子LRU缓存B1和B2来记录从T1、T2换出的数据项。和LIRS类似的是,只访问一次的数据只能穿过T1但对T2并无影响。当T1中的数据块被再次访问,就会被移动到T2中。T1或T2中的数据被换出时,数据内容则被丢弃,但其索引仍会被保存在B1和B2影子缓存中,B1和B2的大小根据其命中率进行调节。如图,当影子LRU缓存中的缓存项被命中时,ARC策略将增大LRU的缓存以适应这种访问模式。
在页缓存等场景中,LIRS和ARC缓存往往可以获得较好的效果,但在主存储重删系统中,影子缓存机制并不适用。影子缓存有效很大程度上依赖于较低的索引开销,对于页缓存来说,这个索引相对于4KB的页内容占比很小。而在重删指纹缓存中,索引是指纹,内容为物理块号,前者相对后者占用空间较大,因而显著增加了维护影子缓存的开销,降低了LIRS和ARC类缓存的效率。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种针对在线主存储重删的差异化缓存方法。在云计算场景下的主存储重删当中,来自不同虚拟机或应用的数据流之间相互交叠使得数据流时间局部性相对变弱,现有的常用缓存替换策略无法高效满足识别冗余数据块的要求。因此,更多的冗余数据和I/O将会被写入底层存储,造成存储空间的浪费和固态硬盘寿命的缩短。本发明旨在对来自不同数据流的冗余数据局部性进行预测,数据流冗余数据的局部性本质上可以用给定时间段中到达存储系统的冗余块的数量来进行度量。最简单的方式即使用哈希表等数据结构,对单位时间内不同数据块的冗余块数量进行直接计数。然而,这样的方式带来的内存开销是很高的,其带来的内存开销甚至会高于影子缓存等方式。本专利通过采样的方式来减小内存开销,但样本本身的重复率无法准确反映数据流整体的重复率情况,因此本专利结合统计优化方式来预测数据流的潜在重删收益。按照每个数据流可能带来的潜在重删收益来分配缓存资源,提高主存储重删指纹缓存的命中率。当冗余I/O被大量识别并消除后,该方法可以潜在地提升主存储系统的I/O性能。
为了解决上述技术问题,本发明采用的技术方案为:
一种针对在线主存储重删的差异化缓存方法,包括:
1)在收到写I/O请求后根据来源进行数据分流为不同的数据流,将数据分块为数据块,并计算每一个数据块的指纹;
2)对不同的数据流进行指纹采样,若某一数据流采样时间到时则对该数据流进行局部性预测得到数据流中非冗余数据块的数量,并根据非冗余数据块的数量调整该数据流的指纹缓存替换概率;选择一个数据块作为当前数据块;
3)根据当前数据块的指纹查询指纹索引表判断是否存在匹配项,所述指纹索引表中记录有数据块的指纹、物理块号之间的映射关系;若存在匹配项,则跳转执行步骤4),否则跳转执行步骤5);
4)检查索引表中写I/O请求携带的逻辑块号到物理块号的映射是否已经存在,所述索引表中记录有逻辑块号、物理块号之间的映射关系,如果已经存在,则检查物理块号是否与旧的物理块号一致,若一致则判定写I/O请求是一个冗余I/O,无须进行任何操作,过程结束;否则,减小旧的物理块号的引用计数,向索引表增加逻辑块号到物理块号映射,增加新的物理块号的引用计数;跳转执行步骤6);
5)检查索引表中写I/O请求携带的逻辑块号到物理块号的映射是否已经存在,如果已经存在,则减小旧物理块号引用计数;分配新的物理块号并写入数据块,向索引表加入指纹到物理块号、逻辑块号到物理块号映射,将新物理块号的引用计数增加;若缓存满则按照不同数据流的指纹缓存替换概率优先换出那些冗余块局部性较差数据流中的数据块的指纹;
6)判断该数据流的数据块是否处理完毕,若尚未处理完毕,则选择一个数据块作为当前数据块,跳转执行步骤3),否则结束并退出。
可选地,步骤1)中进行数据分流为不同的数据流包括按照不同的虚拟机、不同的应用、不同的程序计数器中的至少一种类型进行分流。
可选地,步骤2)中进行指纹采样的步骤包括:判断接收到的指纹数量i的数量,若接收到的指纹数量i小于指纹采样缓冲大小m,则将这些指纹依次放入指纹采样缓冲中,若接收到的指纹数量i大于等于指纹采样缓冲大小m,则当接受到任意第i个指纹时,在[0,i]范围内取得一个随机数d,若随机数d落在[0,m-1]范围内,则用接收到的第i个指纹替换采样缓冲当中的第d个指纹。
可选地,步骤2)中对该数据流进行局部性预测得到数据流中非冗余数据块的数量的步骤包括:针对该数据流通过二项分布计算得到采样转移矩阵T;计算采样样本的指纹频率直方图FFH的期望值H′s,其中H表示真实的指纹频率直方图;根据指定的约束条件求解式(1)所示线性规划问题,最终得到该数据流在给定时间段I内的非冗余数据块个数dD=∑iH[i];
上式中,Δ(Hs,H′s)为采样样本的指纹频率直方图FFH及其期望值之间的差值,Hs为采样样本的指纹频率直方图FFH,H′s为采样样本的指纹频率直方图FFH的期望值,Hs[i]为采样样本中出现i次的指纹频数,T为采样转移矩阵,H表示给定时间段内整个数据流真实的指纹频数直方图,(T·H)[i]表示出现i次的指纹频率的期望值。
可选地,所述指定的约束条件的函数表达式为:
上式中,∑iH[i]为出现不同次数的指纹频数之和,H[i]为出现i次的指纹频数期望值,N为该数据流在给定时间段I内的数据块总数量。
可选地,计算采样样本的指纹频率直方图FFH的期望值H′s的函数表达式为:H′s=T·H,其中T为采样转移矩阵,H表示真实的指纹频率直方图。
可选地,步骤2)中根据非冗余数据块的数量调整该数据流的指纹缓存替换概率的步骤包括:记得到的任意一个数据流k的非冗余数据块的数量为uk=∑iHk[i],其中Hk为计算得到数据流k的指纹频率直方图FFH,采用线段树来实现非冗余数据块的数量、指纹缓存替换概率两者的替换,且线段树中[0,1)的空间被划分为n份,其中n为数据流的数量,线段树任意第k份的范围为[Uk-1/Un,Uk/Un),其中Uk-1为前k-1个数据流中非冗余块数量,Uk为前k个数据流中非冗余块数量,Un为所有n个数据流中非冗余块的数量之和,且有其中ui为数据流i的非冗余数据块的数量。
可选地,步骤5)中按照不同数据流的指纹缓存替换概率优先换出那些冗余块局部性较差数据流中的数据块的指纹是指:生成一个范围为[0,1)的随机数,通过线段树查询找到该随机数对应的数据流,从其缓存区域中按照LRU策略换出一个指纹项。
此外,本发明还提供一种针对在线主存储重删的差异化缓存装置,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述针对在线主存储重删的差异化缓存方法的步骤。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述针对在线主存储重删的差异化缓存方法的计算机程序。
和现有技术相比,本发明具有下述优点:本发明在计算每一个数据块的指纹后对不同的数据流进行指纹采样,若某一数据流采样时间到时则对该数据流进行局部性预测得到数据流中非冗余数据块的数量,并根据非冗余数据块的数量调整该数据流的指纹缓存替换概率,最终在缓存满则按照不同数据流的指纹缓存替换概率优先换出那些冗余块局部性较差数据流中的数据块的指纹。通过对不同数据流当中的重复数据块局部性进行预测,提高局部性较弱数据流的指纹缓存换出概率,降低局部性较强数据流指纹换出概率,从而提高指纹缓存的命中率,提高主存储重删率。
附图说明
图1为现有技术的主存储重删方法的流程示意图。
图2为现有技术的在线重删逻辑的配置示意图。
图3为本发明实施例方法的基本流程示意图。
图4为本发明实施例中局部性预测及调整指纹缓存替换概率的流程示意图。
图5为本发明实施例中指纹缓存替换的示例示意图。
具体实施方式
如图3所示,本实施例针对在线主存储重删的差异化缓存方法包括:
1)在收到写I/O请求后根据来源进行数据分流为不同的数据流,将数据分块为数据块,并计算每一个数据块的指纹;
2)对不同的数据流进行指纹采样,若某一数据流采样时间到时则对该数据流进行局部性预测得到数据流中非冗余数据块的数量,并根据非冗余数据块的数量调整该数据流的指纹缓存替换概率,如图4所示;选择一个数据块作为当前数据块;
3)根据当前数据块的指纹查询指纹索引表判断是否存在匹配项,所述指纹索引表中记录有数据块的指纹、物理块号之间的映射关系;若存在匹配项,则跳转执行步骤4),否则跳转执行步骤5);
4)检查索引表中写I/O请求携带的逻辑块号到物理块号的映射是否已经存在,所述索引表中记录有逻辑块号、物理块号之间的映射关系,如果已经存在,则检查物理块号是否与旧的物理块号一致,若一致则判定写I/O请求是一个冗余I/O,无须进行任何操作,过程结束;否则,减小旧的物理块号的引用计数,向索引表增加逻辑块号到物理块号映射,增加新的物理块号的引用计数;跳转执行步骤6);
5)检查索引表中写I/O请求携带的逻辑块号到物理块号的映射是否已经存在,如果已经存在,则减小旧物理块号引用计数;分配新的物理块号并写入数据块,向索引表加入指纹到物理块号、逻辑块号到物理块号映射,将新物理块号的引用计数增加;若缓存满则按照不同数据流的指纹缓存替换概率优先换出那些冗余块局部性较差数据流中的数据块的指纹;
6)判断该数据流的数据块是否处理完毕,若尚未处理完毕,则选择一个数据块作为当前数据块,跳转执行步骤3),否则结束并退出。
本实施例中,步骤1)中进行数据分流为不同的数据流包括按照不同的虚拟机、不同的应用、不同的程序计数器中的至少一种类型进行分流。
考虑到采样时间段内出现的数据块指纹数是不确定的,为确保在任意时刻,所有数据块指纹被采样到的概率都是相同的,本实施例通过实现蓄水池采样(ReserviorSampling)的来确保每个数据流当中。本实施例中,步骤2)中进行指纹采样的步骤包括:判断接收到的指纹数量i的数量,若接收到的指纹数量i小于指纹采样缓冲大小m,则将这些指纹依次放入指纹采样缓冲中,若接收到的指纹数量i大于等于指纹采样缓冲大小m,则当接受到任意第i个指纹时,在[0,i]范围内取得一个随机数d,若随机数d落在[0,m-1]范围内,则用接收到的第i个指纹替换采样缓冲当中的第d个指纹。反复重复以上过程,可保证均匀采样。
对于一个数据流D,我们定义在一个时间段I中,指纹频率直方图FFH(fingerprintfrequency histogram)为f=f1,f2,…,fn,这里fi的值表明出现了i次的指纹数量一共有fi个。经过采样,可以得到了对于采样样本的FFH(记为Hs)。给定该时间段中数据流数据块总量为N,预测算法的目的在于得到数据流中非冗余数据块的数量。本实施例中,步骤2)中对该数据流进行局部性预测得到数据流中非冗余数据块的数量的步骤包括:针对该数据流通过二项分布计算得到采样转移矩阵T;计算采样样本的指纹频率直方图FFH的期望值H′s,其中H表示真实的指纹频率直方图;根据指定的约束条件求解式(1)所示线性规划问题,最终得到该数据流在给定时间段I内的非冗余数据块个数dD=∑iH[i];
上式中,Δ(Hs,H′s)为采样样本的指纹频率直方图FFH及其期望值之间的差值,Hs为采样样本的指纹频率直方图FFH,H′s为采样样本的指纹频率直方图FFH的期望值,Hs[i]为采样样本中出现i次的指纹频数,T为采样转移矩阵,H表示给定时间段内整个数据流真实的指纹频数直方图,(T·H)[i]表示出现i次的指纹频率的期望值。
本实施例中,指定的约束条件的函数表达式为:
上式中,∑iH[i]为出现不同次数的指纹频数之和,H[i]为出现i次的指纹频数期望值,N为该数据流在给定时间段I内的数据块总数量。
本实施例中,计算采样样本的指纹频率直方图FFH的期望值H′s的函数表达式为:H′s=T·H,其中T为采样转移矩阵,H表示真实的指纹频率直方图。
较大的冗余数据块数量表明冗余数据块较为集中地出现,也就意味着数据流的冗余数据块局部性较好。这种度量可以被用于引导指纹缓存替换策略。本实施例中,步骤2)中根据非冗余数据块的数量调整该数据流的指纹缓存替换概率的步骤包括:记得到的任意一个数据流k的非冗余数据块的数量为uk=∑iHk[i],其中Hk为计算得到数据流k的指纹频率直方图FFH,采用线段树来实现非冗余数据块的数量、指纹缓存替换概率两者的替换,且线段树中[0,1)的空间被划分为n份,其中n为数据流的数量,线段树任意第k份的范围为[Uk-1/Un,Uk/Un),其中Uk-1为前k-1个数据流中非冗余块数量,Uk为,Un为前k个数据流中非冗余块数量,且有其中ui为数据流i的非冗余数据块的数量。如图4所示,通过对冗余数据块数量的预测,我们可以得出指纹缓存中各数据流指纹的替换概率。
本实施例中,步骤5)中按照不同数据流的指纹缓存替换概率优先换出那些冗余块局部性较差数据流中的数据块的指纹是指:生成一个范围为[0,1)的随机数,通过线段树查询找到该随机数对应的数据流,从其缓存区域中按照LRU策略换出一个指纹项。最坏情况下,可能存在某个数据流,其对应的所有缓存项均被换出,这种情况将触发对换出概率的调整使得其换出概率为0,换入的指纹项按照其所属的数据流加入相应缓存区域。
如图5所示,各数据流的指纹缓存按照LRU方式组织,用以替换的LRU列表根据相应数据流的替换概率在线段上进行动态选择。
此外,本实施例还提供一种针对在线主存储重删的差异化缓存装置,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行前述针对在线主存储重删的差异化缓存方法的步骤。此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述针对在线主存储重删的差异化缓存方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种针对在线主存储重删的差异化缓存方法,其特征在于,包括:
1)在收到写I/O请求后根据来源进行数据分流为不同的数据流,将数据分块为数据块,并计算每一个数据块的指纹;
2)对不同的数据流进行指纹采样,若某一数据流采样时间到时则对该数据流进行局部性预测得到数据流中非冗余数据块的数量,并根据非冗余数据块的数量调整该数据流的指纹缓存替换概率;选择一个数据块作为当前数据块;
3)根据当前数据块的指纹查询指纹索引表判断是否存在匹配项,所述指纹索引表中记录有数据块的指纹、物理块号之间的映射关系;若存在匹配项,则跳转执行步骤4),否则跳转执行步骤5);
4)检查索引表中写I/O请求携带的逻辑块号到物理块号的映射是否已经存在,所述索引表中记录有逻辑块号、物理块号之间的映射关系,如果已经存在,则检查物理块号是否与旧的物理块号一致,若一致则判定写I/O请求是一个冗余I/O,无须进行任何操作,过程结束;否则,减小旧的物理块号的引用计数,向索引表增加逻辑块号到物理块号映射,增加新的物理块号的引用计数;跳转执行步骤6);
5)检查索引表中写I/O请求携带的逻辑块号到物理块号的映射是否已经存在,如果已经存在,则减小旧物理块号引用计数;分配新的物理块号并写入数据块,向索引表加入指纹到物理块号、逻辑块号到物理块号映射,将新物理块号的引用计数增加;若缓存满则按照不同数据流的指纹缓存替换概率优先换出那些冗余块局部性较差数据流中的数据块的指纹;
6)判断该数据流的数据块是否处理完毕,若尚未处理完毕,则选择一个数据块作为当前数据块,跳转执行步骤3),否则结束并退出。
2.根据权利要求1所述的针对在线主存储重删的差异化缓存方法,其特征在于,步骤1)中进行数据分流为不同的数据流包括按照不同的虚拟机、不同的应用、不同的程序计数器中的至少一种类型进行分流。
3.根据权利要求1所述的针对在线主存储重删的差异化缓存方法,其特征在于,步骤2)中进行指纹采样的步骤包括:判断接收到的指纹数量i的数量,若接收到的指纹数量i小于指纹采样缓冲大小m,则将这些指纹依次放入指纹采样缓冲中,若接收到的指纹数量i大于等于指纹采样缓冲大小m,则当接受到任意第i个指纹时,在[0,i]范围内取得一个随机数d,若随机数d落在[0,m-1]范围内,则用接收到的第i个指纹替换采样缓冲当中的第d个指纹。
4.根据权利要求1所述的针对在线主存储重删的差异化缓存方法,其特征在于,步骤2)中对该数据流进行局部性预测得到数据流中非冗余数据块的数量的步骤包括:针对该数据流通过二项分布计算得到采样转移矩阵T;根据H′s=T·H计算采样样本的指纹频率直方图FFH的期望值H′s,其中H表示真实的指纹频率直方图;根据指定的约束条件求解式(1)所示线性规划问题,最终得到该数据流在给定时间段I内的非冗余数据块个数dD=∑iH[i];
上式中,Δ(Hs,H′s)为采样样本的指纹频率直方图FFH及其期望值之间的差值,Hs为采样样本的指纹频率直方图FFH,H′s为采样样本的指纹频率直方图FFH的期望值,Hs[i]为采样样本中出现i次的指纹频数,T为采样转移矩阵,H表示给定时间段内整个数据流真实的指纹频数直方图,(T·H)[i]表示出现i次的指纹频率的期望值。
6.根据权利要求4所述的针对在线主存储重删的差异化缓存方法,其特征在于,计算采样样本的指纹频率直方图FFH的期望值H′s的函数表达式为:H′s=T·H,其中T为采样转移矩阵,H表示真实的指纹频率直方图。
7.根据权利要求4所述的针对在线主存储重删的差异化缓存方法,其特征在于,步骤2)中根据非冗余数据块的数量调整该数据流的指纹缓存替换概率的步骤包括:记得到的任意一个数据流k的非冗余数据块的数量为uk=∑iHk[i],其中Hk为计算得到数据流k的指纹频率直方图FFH,采用线段树来实现非冗余数据块的数量、指纹缓存替换概率两者的替换,且线段树中[0,1)的空间被划分为n份,其中n为数据流的数量,线段树任意第k份的范围为[Uk-1/Un,Uk/Un),其中Uk-1为前k-1个数据流中非冗余块数量,Uk为前k个数据流中非冗余块数量,Un为所有n个数据流中非冗余块的数量之和,且有其中ui为数据流i的非冗余数据块的数量。
8.根据权利要求7所述的针对在线主存储重删的差异化缓存方法,其特征在于,步骤5)中按照不同数据流的指纹缓存替换概率优先换出那些冗余块局部性较差数据流中的数据块的指纹是指:生成一个范围为[0,1)的随机数,通过线段树查询找到该随机数对应的数据流,从其缓存区域中按照LRU策略换出一个指纹项。
9.一种针对在线主存储重删的差异化缓存装置,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要求1~8中任意一项所述针对在线主存储重删的差异化缓存方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~8中任意一项所述针对在线主存储重删的差异化缓存方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110083193.1A CN112799590B (zh) | 2021-01-21 | 2021-01-21 | 一种针对在线主存储重删的差异化缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110083193.1A CN112799590B (zh) | 2021-01-21 | 2021-01-21 | 一种针对在线主存储重删的差异化缓存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112799590A true CN112799590A (zh) | 2021-05-14 |
CN112799590B CN112799590B (zh) | 2022-07-19 |
Family
ID=75811041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110083193.1A Active CN112799590B (zh) | 2021-01-21 | 2021-01-21 | 一种针对在线主存储重删的差异化缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112799590B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020218A (zh) * | 2021-11-25 | 2022-02-08 | 建信金融科技有限责任公司 | 混合重复数据删除调度方法及系统 |
CN117271224A (zh) * | 2023-11-14 | 2023-12-22 | 苏州元脑智能科技有限公司 | 存储系统的数据重复存储处理方法及装置、存储介质、电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120030477A1 (en) * | 2010-07-29 | 2012-02-02 | Maohua Lu | Scalable segment-based data de-duplication system and method for incremental backups |
CN105487818A (zh) * | 2015-11-27 | 2016-04-13 | 清华大学 | 针对云存储系统中重复冗余数据的高效去重方法 |
US20170115883A1 (en) * | 2015-10-21 | 2017-04-27 | Nimble Storage, Inc. | Processing of Incoming Blocks in Deduplicating Storage System |
CN110569245A (zh) * | 2019-09-10 | 2019-12-13 | 天津理工大学 | 重复数据删除系统中基于强化学习的指纹索引预取方法 |
CN111240840A (zh) * | 2020-01-09 | 2020-06-05 | 中国人民解放军国防科技大学 | 基于一对多页面映射的非易失内存数据一致性更新方法 |
CN112000281A (zh) * | 2020-07-30 | 2020-11-27 | 北京浪潮数据技术有限公司 | 一种存储系统重删元数据的缓存方法、系统及装置 |
CN112148217A (zh) * | 2020-09-11 | 2020-12-29 | 北京浪潮数据技术有限公司 | 全闪存储系统的重删元数据的缓存方法、装置及介质 |
-
2021
- 2021-01-21 CN CN202110083193.1A patent/CN112799590B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120030477A1 (en) * | 2010-07-29 | 2012-02-02 | Maohua Lu | Scalable segment-based data de-duplication system and method for incremental backups |
US20170115883A1 (en) * | 2015-10-21 | 2017-04-27 | Nimble Storage, Inc. | Processing of Incoming Blocks in Deduplicating Storage System |
CN105487818A (zh) * | 2015-11-27 | 2016-04-13 | 清华大学 | 针对云存储系统中重复冗余数据的高效去重方法 |
CN110569245A (zh) * | 2019-09-10 | 2019-12-13 | 天津理工大学 | 重复数据删除系统中基于强化学习的指纹索引预取方法 |
CN111240840A (zh) * | 2020-01-09 | 2020-06-05 | 中国人民解放军国防科技大学 | 基于一对多页面映射的非易失内存数据一致性更新方法 |
CN112000281A (zh) * | 2020-07-30 | 2020-11-27 | 北京浪潮数据技术有限公司 | 一种存储系统重删元数据的缓存方法、系统及装置 |
CN112148217A (zh) * | 2020-09-11 | 2020-12-29 | 北京浪潮数据技术有限公司 | 全闪存储系统的重删元数据的缓存方法、装置及介质 |
Non-Patent Citations (1)
Title |
---|
贺秦禄: "云环境下应用感知的动态重复数据删除机制", 《西安交通大学学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020218A (zh) * | 2021-11-25 | 2022-02-08 | 建信金融科技有限责任公司 | 混合重复数据删除调度方法及系统 |
CN114020218B (zh) * | 2021-11-25 | 2023-06-02 | 建信金融科技有限责任公司 | 混合重复数据删除调度方法及系统 |
CN117271224A (zh) * | 2023-11-14 | 2023-12-22 | 苏州元脑智能科技有限公司 | 存储系统的数据重复存储处理方法及装置、存储介质、电子设备 |
CN117271224B (zh) * | 2023-11-14 | 2024-02-20 | 苏州元脑智能科技有限公司 | 存储系统的数据重复存储处理方法及装置、存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112799590B (zh) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11307765B2 (en) | System and methods for storage data deduplication | |
US9779027B2 (en) | Apparatus, system and method for managing a level-two cache of a storage appliance | |
US10649890B2 (en) | Information processing system, storage control apparatus, storage control method, and storage control program | |
US9767140B2 (en) | Deduplicating storage with enhanced frequent-block detection | |
US9684469B1 (en) | System and method for cache replacement using access-ordering lookahead approach | |
US9772949B2 (en) | Apparatus, system and method for providing a persistent level-two cache | |
EP3089039B1 (en) | Cache management method and device | |
US20130007373A1 (en) | Region based cache replacement policy utilizing usage information | |
US10061517B2 (en) | Apparatus and method for data arrangement | |
CN112799590B (zh) | 一种针对在线主存储重删的差异化缓存方法 | |
Wu et al. | A differentiated caching mechanism to enable primary storage deduplication in clouds | |
CN107562806B (zh) | 混合内存文件系统的自适应感知加速方法及系统 | |
EP3859536B1 (en) | Method and device for buffering data blocks, computer device, and computer-readable storage medium | |
CN109002400B (zh) | 一种内容感知型计算机缓存管理系统及方法 | |
US9851925B2 (en) | Data allocation control apparatus and data allocation control method | |
US20170262485A1 (en) | Non-transitory computer-readable recording medium, data management device, and data management method | |
WO2011019029A1 (ja) | データ処理装置、データ記録方法、データ記録プログラム | |
CN115470157A (zh) | 预取方法、电子设备、存储介质及程序产品 | |
US20130086325A1 (en) | Dynamic cache system and method of formation | |
JPH08263380A (ja) | ディスクキャッシュ制御方式 | |
Chen et al. | Co-optimizing storage space utilization and performance for key-value solid state drives | |
KR101976320B1 (ko) | 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법 | |
US20240070135A1 (en) | Hash engine for conducting point queries | |
EP4261712A1 (en) | Data elimination method and apparatus, cache node, and cache system | |
Li et al. | SPOPB: Reducing solid state drive write traffic for flash‐based key‐value caching |
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 |