1.一种去碎片化方法,所述方法包括:步骤1)确定访问预测序列中每个访问操作的数据对象的预期读/写带宽,所述预取读/写带宽是以该访问操作对应的数据对象长度和访问跳动步长为变量,基于拟合带宽函数而得到的拟合带宽;步骤2)从访问预测序列中某个访问操作开始,对于超过预定个数的连续多个访问操作且每个访问操作的数据对象的预取读/写带宽小于带宽阈值,将这些访问操作的数据对象按序写入到新的连续的存储空间。
2.根据权利要求1所述的方法,所述步骤1)中,所述拟合带宽函数是在需要去碎片化的存储系统中,以数据对象长度和访问跳动步长为变量,基于在不同数据对象长度和访问跳动步长下测量的基准读/写带宽数据,通过拟合方法得到的带宽函数表达式。
3.根据权利要求2所述的方法,所述拟合带宽函数是通过下列步骤得到的:步骤a)在需要去碎片化的存储系统中,以数据对象长度x和访问跳动步长y为变量,测量一组不同x和y下的基准读/写带宽数据;步骤b)从x,y中选定一个主变量,另一个为次变量;步骤c)找到与主变量最为接近的主变量取值;步骤d)找到次变量的取值区间;步骤e)基于所测量的不同x和y下的基准读/写带宽数据拟合x,y为任意取值时的读/写带宽f(x,y)。
4.根据权利要求3所述的方法,所述步骤c)中,当主变量为x时,找到x
i使Δx=h(x
i)-h(x)的绝对值最小;当主变量为y时,找到y
i使Δy=h(y
i)-h(y)的绝对值最小;所述步骤d)中,当次变量为y时,找到y
j使y∈[y
j,y
j+1],当次变量为x时,找到x
j使x∈[x
j,x
j+1];步骤e)中,当次变量为y时,使
f ( x , y ) = f ij + 1 + h ( y ) - h ( y j ) h ( y j + 1 ) - hy j | f ij - ]]> f ij + 1 | + g ( Δx ) , ]]>其中,g(Δx)表示对拟合结果的进一步修正;当次变量为x时,使
f ( x , y ) = f ij + h ( x ) - h ( x j ) h ( x j + 1 ) - h ( x j ) | f ij - f i + 1 j | + g ( Δy ) , ]]>其中,g(Δy)表示对拟合结果的进一步修正。
5.根据权利要求1-4之一所述的方法,还包括步骤3)从访问预测序列中某个访问操作开始,对于超过预定个数的连续多个访问操作且每个访问操作的数据对象的预取读/写带宽大于带宽阈值,则跳过这些访问操作,继续处理接下来的访问操作。
6.根据权利要求5所述的方法,还包括所述步骤4),对于访问预测序列中未由步骤2)或步骤3)处理的、由连续多个访问操作构成的子序列s
i,....,s
i+m,如果该子序列的总体带宽小于某个阈值且该子序列的假设连续带宽大于某个阈值,则将该子序列中各个访问操作的数据对象写入到新的连续的存储空间,并将这些数据对象的访问入口更改为新的位置;其中,所述假设连续带宽表示如果将该子序列中访问操作的数据对象连续存放后的带宽;子序列s
i,...,s
i+m的总体带宽
l
i为s
i的数据对象的长度,f
i为s
i的数据对象的预期读/写带宽,m为该子序列中访问操作的个数。
7.根据权利要求5所述的方法,所述带宽阈值根据需要去碎片化的存储系统的最大带宽值或者连续带宽来确定,所述连续带宽是在访问跳动步长为0的情况下,基于拟合带宽函数而得到的拟合带宽。
8.一种去碎片化系统,所述系统包括:带宽确定装置,用于确定访问预测序列中每个访问操作的数据对象的预期读/写带宽,所述预取读/写带宽是以该访问操作对应的数据对象长度和访问跳动步长为变量,基于拟合带宽函数而得到的拟合带宽;去碎片装置,用于从访问预测序列中某个访问操作开始,对于超过预定个数的连续多个访问操作且每个访问操作的数据对象的预取读/写带宽小于带宽阈值,将这些访问操作的数据对象按序写入到新的连续的存储空间。
9.根据权利要求8所述的系统,其中,所述拟合带宽函数是在需要去碎片化的存储系统中,以数据对象长度和访问跳动步长为变量,基于在不同数据对象长度和访问跳动步长下测量的基准读/写带宽数据,通过拟合方法得到的带宽函数表达式。
10.根据权利要求8或9所述的系统,所述去碎片装置还用于从访问预测序列中某个访问操作开始,对于超过预定个数的连续多个访问操作且每个访问操作的数据对象的预取读/写带宽大于带宽阈值,则跳过这些访问操作,继续处理接下来的访问操作。
11.根据权利要求10所述的系统,所述去碎片装置还用于对于不满足超过预定个数的连续多个访问操作的数据对象的预取读/写带宽都大于或小于带宽阈值的、由连续多个访问操作构成的子序列s
i,...,s
i+m,如果该子序列的总体带宽小于某个阈值且该子序列的假设连续带宽大于某个阈值,则将该子序列中各个访问操作的数据对象写入到新的连续的存储空间,并将这些数据对象的访问入口更改为新的位置;其中,所述假设连续带宽表示如果将该子序列中访问操作的数据对象连续存放后的带宽;子序列s
i,...,s
i+m的总体带宽
l
i为s
i的数据对象的长度,f
i为s
i的数据对象的预期读/写带宽,m为该子序列中访问操作的个数。