CN103389946B - Go flaking method and system - Google Patents
Go flaking method and system Download PDFInfo
- Publication number
- CN103389946B CN103389946B CN201310298326.2A CN201310298326A CN103389946B CN 103389946 B CN103389946 B CN 103389946B CN 201310298326 A CN201310298326 A CN 201310298326A CN 103389946 B CN103389946 B CN 103389946B
- Authority
- CN
- China
- Prior art keywords
- bandwidth
- access
- data object
- read
- variable
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000006870 function Effects 0.000 claims abstract description 30
- 238000013467 fragmentation Methods 0.000 claims abstract description 25
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 25
- 238000010009 beating Methods 0.000 claims abstract 9
- 238000012937 correction Methods 0.000 claims description 8
- 230000006399 behavior Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 230000009191 jumping Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
技术领域technical field
本发明属于计算机存储领域,尤其涉及处理数据碎片的方法。The invention belongs to the field of computer storage, in particular to a method for processing data fragments.
背景技术Background technique
碎片化是指逻辑上原本相对连续的文件数据经存储在存储介质后,其存储位置变得相对分散,在数据访问时带来了大量随机读写操作。对于目前主流的基于磁盘的存储系统来说,碎片化会导致读/写带宽的不断下降,因此,需要一种去碎片化方法,降低碎片化的影响,减少随机读写访问。Fragmentation means that logically relatively continuous file data is stored in the storage medium, and its storage location becomes relatively scattered, which brings a large number of random read and write operations during data access. For the current mainstream disk-based storage systems, fragmentation will lead to a continuous decline in read/write bandwidth. Therefore, a de-fragmentation method is needed to reduce the impact of fragmentation and reduce random read and write access.
现有的去碎片化方法通常是输入访问预测序列,根据该访问预测序列识别碎片化数据并将碎片化数据写入到新的存储区域,从而达到去碎片化的目的。所述访问预测序列是对将来最有可能的访问顺序的一种预测,存在多种预测方法,但从本质上可以分为两种:(1)静态预测,如根据数据的逻辑存储顺序预测;(2)动态预测,如根据当前访问顺序预测。Existing de-fragmentation methods usually input an access prediction sequence, identify fragmented data according to the access prediction sequence, and write the fragmented data into a new storage area, so as to achieve the purpose of de-fragmentation. The access prediction sequence is a prediction of the most likely access sequence in the future. There are many prediction methods, but they can be divided into two types in essence: (1) static prediction, such as prediction according to the logical storage order of data; (2) Dynamic prediction, such as prediction according to the current access sequence.
在去碎片化的过程中,主要需要解决两个问题:(1)什么样的数据对象是碎片化数据,即如果按照访问预测序列访问当前存储系统,哪些数据对象的访问会导致读/写带宽出现较多的下降;(2)哪些数据应当写入到新的存储位置,从而在减少将来的随机读写访问的同时,尽可能较少影响系统的当前性能。现有去碎片化方法中存在的主要问题表现在如下几个方面:首先,对碎片化数据的判定不够准确,不能有效提升性能;其次,去碎片化过程中,需要移动的数据量过多,造成操作期间系统性能出现明显地下降。In the process of de-fragmentation, there are two main problems to be solved: (1) What kind of data object is fragmented data, that is, if the current storage system is accessed according to the access prediction sequence, which data object access will cause read/write bandwidth (2) Which data should be written to the new storage location, so as to reduce the random read and write access in the future and affect the current performance of the system as little as possible. The main problems in the existing de-fragmentation methods are as follows: first, the judgment of fragmented data is not accurate enough to effectively improve performance; second, in the process of de-fragmentation, too much data needs to be moved, Causes a noticeable drop in system performance during operation.
发明内容Contents of the invention
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种新的去碎片化方法。Therefore, the object of the present invention is to overcome the above-mentioned defects in the prior art and provide a new method for defragmentation.
本发明的目的是通过以下技术方案实现的:The purpose of the present invention is achieved through the following technical solutions:
一方面,本发明提供了一种去碎片化方法,所述方法包括:In one aspect, the present invention provides a defragmentation method, the method comprising:
步骤1)确定访问预测序列中每个访问操作的数据对象的预期读/写带宽,所述预取读/写带宽是以该访问操作对应的数据对象长度和访问跳动步长为变量,基于拟合带宽函数而得到的拟合带宽;Step 1) Determine the expected read/write bandwidth of the data object of each access operation in the access prediction sequence, the prefetch read/write bandwidth is based on the length of the data object corresponding to the access operation and the access jitter step as variables, based on the proposed The fitting bandwidth obtained by combining the bandwidth function;
步骤2)从访问预测序列中某个访问操作开始,对于超过预定个数的连续多个访问操作且每个访问操作的数据对象的预取读/写带宽小于带宽阈值,将这些访问操作的数据对象按序写入到新的连续的存储空间。Step 2) Starting from a certain access operation in the access prediction sequence, for more than a predetermined number of consecutive access operations and the prefetch read/write bandwidth of the data object of each access operation is less than the bandwidth threshold, the data of these access operations Objects are written sequentially to the new contiguous storage space.
在上述方法中,所述步骤1)中,所述拟合带宽函数可以是在需要去碎片化的存储系统中,以数据对象长度和访问跳动步长为变量,基于在不同数据对象长度和访问跳动步长下测量的基准读/写带宽数据,通过拟合方法得到的带宽函数表达式。In the above method, in the step 1), the fitting bandwidth function can be in the storage system that needs to be de-fragmented, with the data object length and the access jitter step as variables, based on different data object lengths and access Benchmark read/write bandwidth data measured under the jitter step, and the bandwidth function expression obtained by the fitting method.
在上述方法中,所述拟合带宽函数可以是通过下列步骤得到的:In the above method, the fitted bandwidth function may be obtained through the following steps:
步骤a)在需要去碎片化的存储系统中,以数据对象长度x和访问跳动步长y为变量,测量一组不同x和y下的基准读/写带宽数据;Step a) In the storage system that needs to be de-fragmented, take the data object length x and the access jitter step y as variables, and measure a set of benchmark read/write bandwidth data under different x and y;
步骤b)从x,y中选定一个主变量,另一个为次变量;Step b) select a main variable from x, y, and the other is a secondary variable;
步骤c)找到与主变量最为接近的主变量取值;Step c) find the value of the main variable closest to the main variable;
步骤d)找到次变量的取值区间;Step d) finding the value interval of the secondary variable;
步骤e)基于所测量的不同x和y下的基准读/写带宽数据拟合x,y为任意取值时的读/写带宽f(x,y)。Step e) Fitting the read/write bandwidth f(x, y) when x and y are arbitrary values based on the measured reference read/write bandwidth data under different x and y.
在上述方法中,所述步骤c)中,当主变量为x时,找到xi使Δx=h(xi)-h(x)的绝对值最小;当主变量为y时,找到yi使Δy=h(yi)-h(y)的绝对值最小;In the above method, in the step c), when the main variable is x, find xi so that the absolute value of Δx=h( xi )-h(x) is the smallest; when the main variable is y, find y so that Δy = The absolute value of h(y i )-h(y) is the smallest;
所述步骤d)中,当次变量为y时,找到yj使y∈[yj,yj+1],当次变量为x时,找到xj使x∈[xj,xj+1];In the step d), when the secondary variable is y, find y j such that y∈[y j , y j+1 ], and when the secondary variable is x, find x j such that x ∈ [x j , x j+ 1 ];
步骤e)中,当次变量为y时,使
在上述方法中,还可包括步骤3)从访问预测序列中某个访问操作开始,对于超过预定个数的连续多个访问操作且每个访问操作的数据对象的预取读/写带宽大于带宽阈值,则跳过这些访问操作,继续处理接下来的访问操作。In the above method, it may also include step 3) starting from a certain access operation in the access prediction sequence, for more than a predetermined number of consecutive access operations and the prefetch read/write bandwidth of the data object of each access operation is greater than the bandwidth threshold, skip these access operations and continue to process the next access operations.
在上述方法中,还可包括所述步骤4),对于访问预测序列中未由步骤2)或步骤3)处理的、由连续多个访问操作构成的子序列si,...,si+m,如果该子序列的总体带宽小于某个阈值且该子序列的假设连续带宽大于某个阈值,则将该子序列中各个访问操作的数据对象写入到新的连续的存储空间,并将这些数据对象的访问入口更改为新的位置;其中,所述假设连续带宽表示如果将该子序列中访问操作的数据对象连续存放后的带宽;子序列si,...,si+m的总体带宽li为si的数据对象的长度,fi为si的数据对象的预期读/写带宽,m为该子序列中访问操作的个数。In the above method, step 4) may also be included, for subsequences s i , ..., s i that are not processed by step 2) or step 3) in the access prediction sequence and are composed of multiple consecutive access operations +m , if the overall bandwidth of the subsequence is less than a certain threshold and the assumed continuous bandwidth of the subsequence is greater than a certain threshold, write the data objects of each access operation in the subsequence to a new continuous storage space, and Change the access entry of these data objects to a new location; wherein, the assumed continuous bandwidth represents the bandwidth after the data objects of the access operation in the subsequence are continuously stored; the subsequence s i , ..., s i+ Overall bandwidth of m l i is the length of the data object of si , fi is the expected read/write bandwidth of the data object of si , and m is the number of access operations in the subsequence.
在上述方法中,所述带宽阈值可根据需要去碎片化的存储系统的最大带宽值或者连续带宽来确定,所述连续带宽是在访问跳动步长为0的情况下,基于拟合带宽函数而得到的拟合带宽。In the above method, the bandwidth threshold can be determined according to the maximum bandwidth value or the continuous bandwidth of the storage system that needs to be de-fragmented, and the continuous bandwidth is determined based on the fitting bandwidth function when the access jitter step is 0 The resulting fitted bandwidth.
又一方面,本发明还提供一种去碎片化系统,所述系统包括:In yet another aspect, the present invention also provides a defragmentation system, the system comprising:
带宽确定装置,用于确定访问预测序列中每个访问操作的数据对象的预期读/写带宽,所述预取读/写带宽是以该访问操作对应的数据对象长度和访问跳动步长为变量,基于拟合带宽函数而得到的拟合带宽;A bandwidth determination device, configured to determine the expected read/write bandwidth of the data object of each access operation in the access prediction sequence, the prefetch read/write bandwidth is based on the length of the data object corresponding to the access operation and the access jitter step as variables , the fitted bandwidth obtained based on the fitted bandwidth function;
去碎片装置,用于从访问预测序列中某个访问操作开始,对于超过预定个数的连续多个访问操作且每个访问操作的数据对象的预取读/写带宽小于带宽阈值,将这些访问操作的数据对象按序写入到新的连续的存储空间。The defragmentation device is used to start from a certain access operation in the access prediction sequence, and for a plurality of consecutive access operations exceeding a predetermined number and the prefetch read/write bandwidth of the data object of each access operation is less than the bandwidth threshold, these access The manipulated data objects are sequentially written to the new continuous storage space.
在上述系统中,所述拟合带宽函数可以是在需要去碎片化的存储系统中,以数据对象长度和访问跳动步长为变量,基于在不同数据对象长度和访问跳动步长下测量的基准读/写带宽数据,通过拟合方法得到的带宽函数表达式。In the above system, the fitting bandwidth function may be based on benchmarks measured under different data object lengths and access jitter steps in a storage system that needs to be de-fragmented, with data object lengths and access jitter steps as variables Read/write bandwidth data, the bandwidth function expression obtained by the fitting method.
在上述系统中,所述去碎片装置还可用于从访问预测序列中某个访问操作开始,对于超过预定个数的连续多个访问操作且每个访问操作的数据对象的预取读/写带宽大于带宽阈值,则跳过这些访问操作,继续处理接下来的访问操作。In the above system, the defragmentation device can also be used to prefetch the read/write bandwidth of the data object for multiple consecutive access operations exceeding a predetermined number and for each access operation starting from a certain access operation in the access prediction sequence is greater than the bandwidth threshold, skip these access operations, and continue to process the next access operations.
在上述系统中,所述去碎片装置还可用于对于不满足超过预定个数的连续多个访问操作的数据对象的预取读/写带宽都大于或小于带宽阈值的、由连续多个访问操作构成的子序列si,...,si+m,如果该子序列的总体带宽小于某个阈值且该子序列的假设连续带宽大于某个阈值,则将该子序列中各个访问操作的数据对象写入到新的连续的存储空间,并将这些数据对象的访问入口更改为新的位置;其中,所述假设连续带宽表示如果将该子序列中访问操作的数据对象连续存放后的带宽;子序列si,...,si+m的总体带宽li为si的数据对象的长度,fi为si的数据对象的预期读/写带宽,m为该子序列中访问操作的个数。In the above system, the defragmentation device can also be used for data objects whose prefetch read/write bandwidths are greater than or less than the bandwidth threshold for data objects that do not meet the predetermined number of consecutive multiple access operations. If the subsequence s i , ..., s i+m of the subsequence is less than a certain threshold and the assumed continuous bandwidth of the subsequence is greater than a certain threshold, the subsequence of each access operation in the subsequence Write the data objects into a new continuous storage space, and change the access entries of these data objects to new locations; wherein, the assumed continuous bandwidth means that if the data objects of the access operations in the subsequence are stored continuously, the bandwidth ;The overall bandwidth of the subsequence s i ,..., s i+m l i is the length of the data object of si , fi is the expected read/write bandwidth of the data object of si , and m is the number of access operations in the subsequence.
与现有技术相比,本发明所提供的去碎片化方法,能较为准确的判断出碎片化数据,在较少影响当前系统性能的情况下,提高读取性能,在变化的环境具有较好适应性。Compared with the prior art, the de-fragmentation method provided by the present invention can more accurately judge the fragmented data, improve the reading performance with less impact on the current system performance, and have better performance in changing environments. adaptability.
附图说明Description of drawings
以下参照附图对本发明实施例作进一步说明,其中:Embodiments of the present invention will be further described below with reference to the accompanying drawings, wherein:
图1为根据本发明一个实施例的去碎片化方法的流程示意图;FIG. 1 is a schematic flow diagram of a de-fragmentation method according to an embodiment of the present invention;
图2为根据本发明又一个实施例的去碎片化方法的流程示意图。Fig. 2 is a schematic flowchart of a defragmentation method according to yet another embodiment of the present invention.
具体实施方式detailed description
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。In order to make the object, technical solution and advantages of the present invention clearer, the present invention will be further described in detail below through specific embodiments in conjunction with the accompanying drawings. It should be understood that the specific embodiments described here are only used to explain the present invention, not to limit the present invention.
访问预测序列实际上就是一系列的访问操作,而读/写带宽主要与每个访问操作所访问的数据对象的大小以及访问该数据对象之前或之后的访问位置变化距离(或也可以称为访问跳动步长)相关。通常,访问预测序列中读/写带宽较小的数据对象的碎片化程度较高,但是考虑到读/写带宽是一种后验指标,无法事先得到。因此,在本发明的实施例中,采用了读/写带宽拟合方法,计算出访问预测序列中每个访问操作所访问的数据对象的预期读/写带宽(下文有时也将其称为访问操作对应的拟合带宽),并基于该指标进行碎片化程度的判定。The access prediction sequence is actually a series of access operations, and the read/write bandwidth is mainly related to the size of the data object accessed by each access operation and the change distance of the access position before or after accessing the data object (or it can also be called access Jumping step size) related. Usually, access to data objects with smaller read/write bandwidth in the predicted sequence has a higher degree of fragmentation, but considering that read/write bandwidth is a posteriori indicator, it cannot be obtained in advance. Therefore, in the embodiment of the present invention, the read/write bandwidth fitting method is adopted to calculate the expected read/write bandwidth of the data object accessed by each access operation in the access prediction sequence (hereinafter sometimes referred to as access The fitting bandwidth corresponding to the operation), and judge the degree of fragmentation based on this index.
图1给出了根据本发明一个实施例的去碎片化方法的流程示意图。该方法包括:步骤1)确定访问预测序列中每次访问操作的数据对象的预期读/写带宽;步骤2)从访问预测序列中某个访问操作开始,如果超过预定个数的连续多个访问操作的数据对象的预取读/写带宽小于带宽阈值,将这些访问操作的数据对象按序写入到新的连续的存储空间。Fig. 1 shows a schematic flowchart of a defragmentation method according to an embodiment of the present invention. The method includes: step 1) determining the expected read/write bandwidth of the data object for each access operation in the access prediction sequence; step 2) starting from a certain access operation in the access prediction sequence, if more than a predetermined number of consecutive access The prefetch read/write bandwidth of the operated data objects is less than the bandwidth threshold, and these access operated data objects are sequentially written to the new continuous storage space.
参考图1,更具体地,在步骤1)确定访问预测序列中每次访问操作的数据对象的预期读/写带宽。所述预取读/写带宽是以该访问操作对应的数据对象长度和访问跳动步长为变量,基于拟合带宽函数而得到的拟合带宽。根据本发明的一个实施例,所述步骤1)可包括下列步骤:Referring to FIG. 1 , more specifically, in step 1), the expected read/write bandwidth of the data object for each access operation in the access prediction sequence is determined. The prefetching read/write bandwidth is a fitting bandwidth obtained based on a fitting bandwidth function using the length of the data object corresponding to the access operation and the access jitter step as variables. According to an embodiment of the present invention, the step 1) may include the following steps:
步骤11)逐个接收访问预测序列中的访问操作,并保存在队列S:<s1,...,sn>中。在队列S中所保存的信息中包含但不限于通过某种方式(如元数据访问,索引查找等)获取的每个访问操作所访问数据对象的起始位置oi以及数据对象的长度li。队列S中保存的访问预测序列可以是直接得到的预测序列(静态预测或者动态预测)。但也可以是经过预处理的预测序列(如去掉重复的预测序列);例如,如果所接收的第k个访问操作sk与队列S中s1,...,sk-1的其中一个访问相同数据对象,则不将该访问操作sk加入队列S中。Step 11) Receive the access operations in the access prediction sequence one by one, and store them in the queue S: <s 1 , . . . , s n >. The information stored in the queue S includes, but is not limited to, the starting position o i of the data object accessed by each access operation and the length l i of the data object obtained through a certain method (such as metadata access, index search, etc.) . The access prediction sequence stored in the queue S may be a directly obtained prediction sequence (static prediction or dynamic prediction). But it can also be a preprocessed prediction sequence (such as removing repeated prediction sequences) ; If the same data object is accessed, the access operation sk will not be added to the queue S.
步骤12)计算队列S中每个访问操作si对应的拟合带宽fi。Step 12) Calculate the fitting bandwidth f i corresponding to each access operation si in the queue S.
如上文提到的,所述拟合带宽实际上是以该访问操作对应的数据对象长度和访问跳动步长为变量,基于拟合带宽函数而得到的带宽。所述拟合带宽函数是在需要去碎片化的存储系统中,以数据对象长度和访问跳动步长为变量,基于一组在不同数据对象长度和访问跳动步长下的测量的基准读/写带宽数据,通过拟合方法得到的带宽函数表达式。在本发明的一个实施例中,通过下列步骤得到拟合带宽函数的表达式:As mentioned above, the fitting bandwidth is actually a bandwidth obtained based on fitting a bandwidth function using the length of the data object corresponding to the access operation and the access jitter step as variables. The fitting bandwidth function is based on a set of measured benchmark read/writes under different data object lengths and access jitter steps in a storage system that needs to be de-fragmented, with the data object length and access jitter step as variables Bandwidth data, the bandwidth function expression obtained by the fitting method. In one embodiment of the present invention, the expression of fitting bandwidth function is obtained by following steps:
步骤a)在需要去碎片化的存储系统中,以数据对象长度x和访问跳动步长y为变量,测量一组不同x和y下的基准读/写带宽数据,如表1所示。其中xi,yj代表x和y的不同取值,经过实际测量对应读/写带宽为fij,所述不同x和y指变量的递增方式,包括但不限于等差递增,等比递增等。Step a) In the storage system that needs to be de-fragmented, take the data object length x and the access jitter step y as variables, and measure a set of benchmark read/write bandwidth data under different x and y, as shown in Table 1. Among them, x i , y j represent different values of x and y. After actual measurement, the corresponding read/write bandwidth is f ij . Wait.
表1Table 1
步骤b)从x,y中选定一个主变量,另一个为次变量。Step b) Select a main variable from x, y, and the other is a secondary variable.
步骤c)找到与主变量最为接近的主变量取值(例如,x0~xm中的一个取值),即当主变量为x时,找到xi使Δx=h(xi)-h(x)的绝对值最小,当主变量为y时,找到yi使Δy=h(yi)-h(y)的绝对值最小,其中函数h(x)包含但不限于线性函数(如h(x)=x),对数函数(如h(x)=log2x)等。Step c) Find the value of the main variable closest to the main variable (for example, one of x 0 ~ x m ), that is, when the main variable is x, find x i so that Δx=h( xi )-h( The absolute value of x) is the smallest, when the main variable is y, find y i to make the absolute value of Δy=h(y i )-h(y) the smallest, where the function h(x) includes but not limited to linear functions (such as h( x)=x), logarithmic function (such as h(x)=log 2 x), etc.
步骤d)找到次变量的取值区间,即当次变量为y时,找到yj使y∈[yj,yj+1],当次变量为x时,找到xj使x∈[xj,xj+1]。Step d) Find the value interval of the secondary variable, that is, when the secondary variable is y, find y j such that y∈[y j , y j+1 ], and when the secondary variable is x, find x j such that x∈[x j , x j+1 ].
步骤e)基于基准数据拟合x,y为任意取值时的读/写带宽f(x,y):在次变量取值区间对应的带宽区间内按比例取一个合理的取值作为拟合结果,即当次变量为y时,使
通过上述步骤a)-步骤e)得到了拟合带宽函数的表达式,其中包含两个变量数据对象长度x和访问跳动步长y。所述数据对象长度可以是以字节为单位的物理长度,也可以是自定义单位的逻辑长度,所述访问跳动步长是指在访问该数据对象之前或之后访问位置的变化距离,该距离可以是以字节为单位的物理距离,也可以是自定义单位的逻辑距离。Through the steps a)-e) above, the expression of the fitting bandwidth function is obtained, which includes two variable data object length x and access jitter step size y. The length of the data object can be a physical length in bytes, or a logical length in a user-defined unit, and the access jitter step refers to the change distance of the access position before or after accessing the data object. It can be a physical distance in bytes or a logical distance in custom units.
例如,所测量基准数据可以是读带宽数据,对于数据对象长度x和访问跳动步长可采用从小到大按2的整数次方作为取值方式,即取xi=2i,yj=2j,按照xi,yj分多次从头至尾读取一个大文件,以平均值作为fij。针对每个xi还需要测量顺序读取(即访问跳动步长y=0)时的基准带宽数据,也就是不存在碎片时的带宽数据(可以将其称为连续带宽)。这里可选择主变量为访问数据大小x,次变量为跳动步长y。接着找到最接近主变量的取值(x0~xm中的一个取值)和次变量取值区间。令h(x)=log2x,Δx=i-log2x,则i=[log2x+0.5]时Δx最小。令,次变量取值区间为[2j,2j+1],当y=0时,区间为[0,1]。令g(Δx)=Δx×(fij-fij+1),则如上文所述,可得到读带宽拟合函数
然后,根据所得到的拟合带宽函数,计算队列S中每个访问操作si对应的拟合带宽fi=f(li,|oi-oi-1-li-1|)。可见,该拟合带宽实际上是根据数据对象的长度(例如,li)和访问该对象之前或之后的访问位置变化距离(例如,|oi-oi-1-li-1|),通过上述得到拟合带宽函数计算得到的一个数值。当例如访问预测序列接收完毕、到达时延上限(为避免去碎片化引入过多的延迟而设置的阈值),或者接收队列S已满等等时开始转至步骤2)继续执行。Then, according to the obtained fitting bandwidth function, the fitting bandwidth f i =f(l i , |o i -o i-1 -l i-1 |) corresponding to each access operation s i in the queue S is calculated. It can be seen that the fitting bandwidth is actually based on the length of the data object (for example, l i ) and the change distance of the access position before or after accessing the object (for example, |o i -o i-1 -l i-1 |) , a numerical value obtained through the above calculation of the fitted bandwidth function. When, for example, the reception of the access prediction sequence is completed, the upper limit of the delay is reached (the threshold set to avoid excessive delay caused by defragmentation), or the receiving queue S is full, etc., it starts to go to step 2) and continues to execute.
继续参考图1,在步骤2)从访问预测序列中某个访问操作开始,如果超过预定个数的连续多个访问操作的数据对象的预取读/写带宽都小于带宽阈值,将这些访问操作的数据对象按序写入到新的连续的存储空间。这样,该方法通过上文计算的拟合带宽选择对那些数据对象进行去碎化,以尽量减少对当前写入带宽带来负面影响。如果超过预定个数的连续多个访问操作的数据对象的预取读/写带宽都大于带宽阈值,则跳过这些访问操作,继续处理接下来的访问操作。Continuing to refer to FIG. 1, in step 2) starting from a certain access operation in the access prediction sequence, if the prefetch read/write bandwidth of data objects exceeding a predetermined number of consecutive multiple access operations is less than the bandwidth threshold, these access operations The data objects are sequentially written to the new contiguous storage space. In this way, the method chooses to defragment those data objects through the fitted bandwidth calculated above to minimize the negative impact on the current write bandwidth. If the prefetch read/write bandwidth of the data object exceeding the predetermined number of consecutive multiple access operations is greater than the bandwidth threshold, these access operations are skipped, and the next access operation is continued to be processed.
其中,所述带宽阈值可以是静态阈值,可根据需要去碎片化的存储系统的最大带宽值确定。例如可将带宽阈值设置为存储系统最大带宽的百分比,如存储系统最大带宽的60%以上;所述带宽阈值也可以是动态阈值时,可根据连续带宽来确定,该连续带宽是从拟合函数计算所得,即访问跳动步长为0时的拟合带宽f(x,0)。例如可将带宽阈值设置为可设置为连续带宽的百分比,如连续带宽的70%以上。Wherein, the bandwidth threshold may be a static threshold, which may be determined according to the maximum bandwidth value of the storage system that needs to be de-fragmented. For example, the bandwidth threshold can be set as a percentage of the maximum bandwidth of the storage system, such as more than 60% of the maximum bandwidth of the storage system; when the bandwidth threshold can also be a dynamic threshold, it can be determined according to the continuous bandwidth, which is obtained from the fitting function The calculated result is the fitting bandwidth f(x, 0) when the access jitter step is 0. For example, the bandwidth threshold may be set as a percentage of the continuous bandwidth, such as more than 70% of the continuous bandwidth.
为了更有效降低系统碎片化程序同时避免写入操作对系统整体性能的影响,在又一个实施例中,在步骤2)按照三个条件将访问预测序列分成三类连续子序列,并对各类子序列进行不同处理。如上文所述,在队列S:<s1,...,sn>保存的是所接收的访问预测序列,从头至尾扫描接收队列S,按照下面三个条件将该访问预测序列划分为多个子序列:In order to more effectively reduce the system fragmentation program and avoid the impact of write operations on the overall performance of the system, in another embodiment, in step 2) the access prediction sequence is divided into three types of continuous subsequences according to three conditions, and each type Subsequences are treated differently. As mentioned above, the received access prediction sequence is stored in the queue S: <s 1 , ..., s n >, and the receiving queue S is scanned from the beginning to the end, and the access prediction sequence is divided according to the following three conditions: Multiple subsequences:
条件1:si,...,si+m满足fi+1≥Tfi+1,...,fi+m≥Tfi+m,m≥Tm,fi+m+1<Tfi+m+1或i+m=n;这里表明从访问预测序列中某个访问操作(例如si)开始,超过一定个数(即Tm)的连续多个访问操作的拟合带宽都大于带宽阈值,也就是说这些访问操作的数据对象的碎片化程度较低,可以忽略这类子序列。此时si,...,si+m对应的数据对象无需写入到新的连续的存储位置,对si,...,si+m不需任何处理,继续识别下个子序列。其中,Tfi表示针对si的拟合带宽的带宽阈值,Tm为预先设定的一个整数阈值。如上文所述,带宽阈值Tfi可以为所述带宽阈值可以是静态阈值,如可设置为需要去碎片的存储系统最大带宽的60%以上;也可以是动态阈值时,如可设置为可设置为连续带宽的70%以上,该连续带宽是指访问跳动步长为0时的拟合带宽f(x,0)。Condition 1: s i ,..., s i+m satisfy f i+1 ≥T fi+1 ,..., f i+m ≥T fi+m , m≥T m , f i+m+1 <T fi+m+1 or i+m=n; here indicates the fitting of multiple consecutive access operations exceeding a certain number (ie T m ) starting from a certain access operation (such as s i ) in the access prediction sequence The bandwidth is greater than the bandwidth threshold, which means that the fragmentation of the data objects of these access operations is low, and such subsequences can be ignored. At this time, the data objects corresponding to s i ,..., s i + m do not need to be written to a new continuous storage location, and no processing is required for s i ,..., s i+m , and continue to identify the next subsequence . Wherein, T fi represents the bandwidth threshold of the fitting bandwidth for si , and T m is a preset integer threshold. As mentioned above, the bandwidth threshold T fi can be a static threshold, such as can be set to more than 60% of the maximum bandwidth of the storage system that needs to be defragmented; it can also be a dynamic threshold, such as can be set to be configurable It is more than 70% of the continuous bandwidth, which refers to the fitting bandwidth f(x, 0) when the access jitter step size is 0.
条件2:si...,si+m满足fi<Tfi,...,fi+m<Tfi+m,m≥T′m,fi+m+1≥Tfi+m+1或i+m=n;这里表明从从访问预测序列中某个访问操作(例如si)开始,超过一定个数(例如T′m)的连续多个访问操作的拟合带宽都小于带宽阈值,也就是说这些访问操作的数据对象的碎片化程度较高,需要对这类子序列进行去碎片化处理。此时si,...,si+m对应的数据对象需要写入到新的连续的存储。其中,Tfi表示针对si的拟合带宽的带宽阈值,T′m为预先设定的一个整数阈值。Condition 2: s i ..., s i+m satisfy f i <T fi , ..., f i+m <T fi+m , m≥T′ m , f i+m+1 ≥T fi+ m+1 or i+m=n; here it indicates that starting from a certain access operation (such as s i ) in the access prediction sequence, the fitting bandwidth of multiple consecutive access operations exceeding a certain number (such as T′ m ) is equal to It is less than the bandwidth threshold, which means that the data objects of these access operations are highly fragmented, and such subsequences need to be de-fragmented. At this time, the data objects corresponding to s i , . . . , s i+m need to be written into new continuous storage. Wherein, T fi represents the bandwidth threshold of the fitting bandwidth for si , and T′ m is a preset integer threshold.
对于满足条件2的子序列si,...,si+m,可将si,...,si+m对应的数据对象按序写入到新的连续的存储空间,并将这些数据对象的访问入口更改为新的位置。其中,所写入数据对象可以从本地存储位置读取,也可以通过网络从其他设备获取。For the subsequences s i , ..., s i+m satisfying condition 2, the data objects corresponding to s i , ..., s i +m can be sequentially written into a new continuous storage space, and The access entries for these data objects are changed to the new location. Wherein, the written data object can be read from a local storage location, and can also be obtained from other devices through the network.
条件3,除条件1和条件2的其余情况。例如,si,...,si+m不满足条件1或条件2,同时i+m=n,或者si+m+1,...,si+m+k满足条件1或条件2。Condition 3, except for conditions 1 and 2. For example, s i , ..., s i+m do not satisfy condition 1 or condition 2, while i+m=n, or s i+m+1 , ..., s i+m+k satisfy condition 1 or Condition 2.
对于不满足(1)和(2)划分条件的子序列,例如si,...,si+m,计算该序列的总体带宽,也就是执行该序列中所有访问操作产生的总体带宽,而不是某个访问操作的带宽。如果该序列的总体带宽大于某个阈值(例如阈值a),则说明该序列访问的数据对象碎片化程度不高,不必处理该序列。反之,如果总体带宽小于阈值a,则计算该序列的假设连续带宽,该假设连续带宽指如果将该序列中访问操作的数据对象连续存放后的带宽。如果总体带宽小于阈值a且假设连续带宽大于某个阈值(例如阈值b),说明如果将对这些序列对应的数据对象写入到连续存储区域将有效提高带宽,因此可以对这些序列对应的数据对象进行相应的处理,即该子序列si,...,si+m对应的数据对象写入到新的连续的存储空间。如果总体带宽小于阈值a且假设连续带宽小于阈值b,说明即使将对这些序列对应的数据对象写入到连续存储区域也不能提高带宽,因此不对该序列进行处理。其中,阈值a和阈值b的设置可参照上文所述的带宽阈值设置。For subsequences that do not satisfy the division conditions of (1) and (2), such as s i , ..., s i+m , calculate the overall bandwidth of the sequence, that is, the overall bandwidth generated by executing all access operations in the sequence, Rather than the bandwidth of an access operation. If the overall bandwidth of the sequence is greater than a certain threshold (for example, threshold a), it means that the data objects accessed by the sequence are not highly fragmented, and the sequence does not need to be processed. On the contrary, if the overall bandwidth is less than the threshold a, calculate the assumed continuous bandwidth of the sequence, and the assumed continuous bandwidth refers to the bandwidth after the data objects accessed in the sequence are stored continuously. If the overall bandwidth is less than the threshold a and it is assumed that the continuous bandwidth is greater than a certain threshold (such as threshold b), it means that if the data objects corresponding to these sequences are written to the continuous storage area, the bandwidth will be effectively improved, so the data objects corresponding to these sequences can be Corresponding processing is performed, that is, the data objects corresponding to the subsequences s i , . . . , s i+m are written into a new continuous storage space. If the overall bandwidth is less than the threshold a and the continuous bandwidth is assumed to be less than the threshold b, it means that the bandwidth cannot be improved even if the data objects corresponding to these sequences are written into the continuous storage area, so the sequence is not processed. Wherein, the setting of the threshold a and the threshold b may refer to the setting of the bandwidth threshold mentioned above.
其中总体带宽和假设连续带宽以如下方式进行计算:where the overall bandwidth and assumed continuous bandwidth are calculated as follows:
si,...,si+m的总体带宽数值
获取能够写入si,...,si+m对应数据对象的连续存储空间起始位置o并计算假设连续带宽f′=f(li+…+li+m,|o-o′i-1-li-1|),如果f<Tf且f′>T′f,将si,...,si+m对应的数据对象按序写入到新的连续的存储空间,并将这些数据对象的访问入口更改为新的位置。其中,o′i-1和li-1为预测序列si-1对应数据对象的最新起始位置(可能已经被写入到新的位置)和大小,Tf和T′f的设置可参照上文所述的带宽阈值设置,所写入数据对象可以从本地存储位置读取,也可以通过网络从其他设备获取。Obtain the starting position o of the continuous storage space that can be written into the corresponding data object of s i ,..., s i+m and calculate the assumed continuous bandwidth f'=f(l i +...+l i+m ,|oo' i -1-l i-1 |), if f<T f and f′>T′ f , write the data objects corresponding to s i ,..., s i+m to the new continuous storage space in sequence , and change the access entries of these data objects to the new location. Among them, o' i-1 and l i-1 are the latest starting position (may have been written to a new position) and size of the data object corresponding to the prediction sequence s i-1 , and the setting of T f and T' f can be Referring to the bandwidth threshold setting described above, the written data object can be read from the local storage location, or obtained from other devices through the network.
当队列S处理完毕,清空队列S后,继续接收另一个访问预测序列。When the processing of the queue S is completed and the queue S is emptied, another access prediction sequence is continued to be received.
为了更好地理解上述的去碎片方法,下面结合表2和图2对去碎片化过程进行更详细的举例说明。表2给出了去碎片化过程所要接收的一个具体的访问预测序列,其中包含该访问预测序列中访问操作的序号i及对应的数据对象长li度和该数据对象的起始位置oi。In order to better understand the above-mentioned defragmentation method, a more detailed example of the defragmentation process will be described below in conjunction with Table 2 and FIG. 2 . Table 2 shows a specific access prediction sequence to be received in the de-fragmentation process, which includes the sequence number i of the access operation in the access prediction sequence, the length of the corresponding data object l i degree and the starting position o i of the data object .
表2Table 2
其中,设定接收队列S的长度为12,初始状态时,假设上次存储访问位置为0,具体执行过程为:Among them, the length of the receiving queue S is set to 12. In the initial state, assuming that the last storage access location is 0, the specific execution process is as follows:
1.执行步骤201,依次接收访问预测序列中的访问操作1~14,每接收一个访问操作转至步骤202。1. Execute step 201, receive access operations 1 to 14 in the access prediction sequence in sequence, and go to step 202 each time an access operation is received.
2.执行步骤202,判定是否是重复的访问操作;如果是则转至步骤201;如果不是,则转至步骤203。2. Execute step 202 to determine whether it is a repeated access operation; if yes, go to step 201; if not, go to step 203.
具体地,如果当前接收的访问操作与队列中已接收的访问操作所访问数据对象相同,则忽略当前接收的访问操作,转至步骤201,以避免重复计算同一个数据对象的访问带宽,例如,接收访问操作6,13时,访问操作6,13与1,7所访问数据对象相同(起始位置与数据长度相同)。Specifically, if the currently received access operation is the same as the data object accessed by the received access operation in the queue, ignore the currently received access operation and go to step 201 to avoid repeated calculation of the access bandwidth of the same data object, for example, When access operations 6 and 13 are received, the data objects accessed by access operations 6 and 13 are the same as those of 1 and 7 (the starting position is the same as the data length).
3.执行步骤203,计算该访问操作的拟合带宽。3. Step 203 is executed to calculate the fitting bandwidth of the access operation.
具体地,获取当前接收的访问操作所访问数据对象相对队列S的尾部项的数据对象的跳动步长,将数据对象大小和获取的跳动步长输入如上文得到的拟合带宽函数,并将数据对象大小,数据对象起始位置及计算得到的拟合带宽等信息记录到队列尾部,例如,对于访问操作1中,数据对象大小为3,跳动步长为10(从上次访问位置0跳动到数据对象起始位置10),拟合带宽为f1=f(3,10),访问操作2中,数据对象大小为2,跳动步长为7(从访问操作1的数据对象结尾位置13跳动到数据对象起始位置20),拟合带宽f2=f(2,7)。Specifically, obtain the jitter step of the data object accessed by the currently received access operation relative to the data object at the end of the queue S, input the size of the data object and the obtained jitter step into the fitting bandwidth function obtained above, and input the data Information such as the object size, the starting position of the data object, and the calculated fitting bandwidth are recorded at the end of the queue. For example, for access operation 1, the size of the data object is 3, and the jump step is 10 (jumping from the last access position 0 to The starting position of the data object is 10), the fitting bandwidth is f 1 =f(3,10), in the access operation 2, the size of the data object is 2, and the jitter step is 7 (jumping from the end position 13 of the data object of the access operation 1 To the starting position of the data object 20), the fitting bandwidth f 2 =f(2,7).
4.执行步骤204,判断处理队列条件是否满足。例如当队列已满或者到达时延上限(避免去碎片化引入过多的延迟)时,从头至尾处理队列,否则继续接收访问预测序列。4. Execute step 204 to determine whether the processing queue condition is satisfied. For example, when the queue is full or reaches the upper limit of delay (avoiding excessive delay caused by de-fragmentation), process the queue from beginning to end, otherwise continue to receive the access prediction sequence.
步骤201~204反复执行,直到访问预测序列接收完毕后,或队列已满达到处理条件,队列S状态如表3所示(访问6,13为重复访问,忽略接收):Steps 201-204 are executed repeatedly until the access prediction sequence is received, or the queue is full to meet the processing conditions, the state of the queue S is shown in Table 3 (visits 6 and 13 are repeated accesses, and reception is ignored):
表3table 3
5.执行步骤205,扫描队列S并如上文所述按条件划分子序列。5. Execute step 205, scan the queue S and divide the subsequences according to the above conditions.
具体地,从头至尾扫描队列项s1~s12,按照三个条件划分子序列:条件1,si,...,si+m满足fi+1≥Tfi+1,...,fi+m≥Tfi+m,m≥Tm,fi+m+1<Tfi+m+1或m=12;条件2,si+1...,si+m满足fi<Tfi,...,fi+m<Tfi+m,m≥T′m,fi+m+1≥Tfi+m+1或m=12;条件3,除条件1和条件2的其余情况(不满足条件1或条件2,同时m=12或者sm+1,...,sm+k满足条件1或条件2),其中,Tfi=0.75×f(li,0),Tm,T′m取整数4。扫描完毕后,比较结果如表4所示,其中,s1~s5拟合带宽较小,满足条件2,s6~s8拟合带宽大小不一,满足条件3,s9~s12拟合带宽较大(除s9),满足条件1,同时将子序列划分结果在队列中做出相应的标记。Specifically, scan the queue items s 1 ~ s 12 from the beginning to the end, and divide the subsequences according to three conditions: Condition 1, s i ,..., s i+m satisfy f i+1 ≥ T fi+1 , .. ., f i+m ≥T fi+m , m≥T m , f i+m+1 <T fi+m+1 or m=12; condition 2, s i+1 ..., s i+m Satisfy f i <T fi ,..., f i+m <T fi+m , m≥T′m, f i+m+1 ≥T fi+m+1 or m=12; condition 3, except condition 1 and the rest of condition 2 (condition 1 or condition 2 is not satisfied, while m=12 or s m+1 , ..., s m+k satisfy condition 1 or condition 2), wherein, T fi =0.75×f (l i , 0), T m , T′ m take the integer 4. After scanning, the comparison results are shown in Table 4, in which, the fitting bandwidth of s 1 to s 5 is small, satisfying condition 2, and the fitting bandwidth of s 6 to s 8 is different in size, satisfying condition 3, s 9 to s 12 The fitting bandwidth is large (except s 9 ), and condition 1 is satisfied, and the subsequence division results are marked in the queue accordingly.
表4Table 4
6.执行步骤206,判断子序列满足条件;如果满足条1,则转至步骤209;如果满足条2,则装置步骤208;如果满足条3,则装置步骤207。6. Execute step 206, determine that the subsequence meets the condition; if condition 1 is met, go to step 209; if condition 2 is satisfied, perform step 208; if condition 3 is satisfied, perform step 207.
具体地,根据步骤205的标记结果,s1~s5满足条件2,转至步骤208。Specifically, according to the marking result of step 205 , s 1 to s 5 satisfy condition 2, and go to step 208 .
7.执行步骤208,将s1~s5的数据对象写入到新的存储空间7. Execute step 208 to write the data objects of s 1 to s 5 into the new storage space
具体地,找到能够写入s1~s5的数据对象的连续存储空间的起始位置并写入,假设在本示例中找到起始位置100,将s1~s5的数据对象分别写入到100~102,103~104,105~109,110~115,116~119的存储空间中,并将这些数据对象的访问入口更改为新的存储位置。Specifically, find and write the starting position of the continuous storage space where the data objects of s 1 to s 5 can be written, assuming that the starting position 100 is found in this example, write the data objects of s 1 to s 5 respectively Go to the storage spaces of 100-102, 103-104, 105-109, 110-115, 116-119, and change the access entries of these data objects to new storage locations.
8.执行步骤209,将s1~s5从队列中移除(将队列头指针指向s6)8. Execute step 209, remove s 1 ~ s 5 from the queue (point the queue head pointer to s6)
9.执行步骤210(此时队列非空,转至步骤206)9. Execute step 210 (the queue is not empty at this time, go to step 206)
10.执行步骤206,判断子序列满足条件。10. Step 206 is executed to determine that the subsequence satisfies the condition.
具体地,根据步骤205的标记结果,s6~s8满足条件3,转至步骤207。Specifically, according to the marking result of step 205 , s 6 -s 8 satisfy condition 3, and go to step 207 .
11.执行步骤207,判断子序列s6~s8是否符合写入条件。11. Execute step 207 to determine whether the subsequences s 6 -s 8 meet the writing conditions.
具体地,获取能够写入s6~s8的数据对象的存储空间起始位置o,计算总体带宽计算假设写入带宽f′=f(l6+l7+l8,|o-o′5-l5|),经计算,o=120(s5的结尾位置),o′5=116(s5的数据对象新写入位置),l5=4,则f′=f(12,0),阈值Tf=T′f=0.75×f(l6+l7+l8,0)=0.75×f(12,0)(si~si+m对应的阈值Tf=T′f=0.75×f(li+…+li+m,0))。此时,满足f<Tf且f′>T′f,转208。Specifically, obtain the storage space starting position o of the data objects that can be written into s 6 ~ s 8 , and calculate the overall bandwidth The calculation assumes that the write bandwidth f'=f(l 6 +l 7 +l 8 , |oo' 5 -l 5 |), after calculation, o=120 (the end position of s 5 ), o' 5 =116 (s5 new write position of the data object), l 5 =4, then f′=f(12,0), threshold T f =T′ f =0.75×f(l 6 +l 7 +l 8 ,0)=0.75 ×f(12,0) (threshold T f =T′ f =0.75×f(l i + . . . +l i+m ,0) corresponding to s i ˜s i + m . At this time, it is satisfied that f<T f and f′>T′ f , go to 208 .
12.执行步骤208,将s6~s8的数据对象写入到新的连续存储空间12. Execute step 208, write the data objects of s 6 to s 8 into the new continuous storage space
具体地,将s6~s8的数据对象按序分别写入到120~122,123~127,128~131的存储空间中,并将这些数据对象的访问入口更改为新的存储位置。Specifically, write the data objects of s 6 to s 8 into the storage spaces of 120 to 122, 123 to 127, and 128 to 131 respectively in sequence, and change the access entries of these data objects to new storage locations.
13.执行步骤209,将子序列s6~s8从队列中移除(将队列头指针指向s9)13. Execute step 209, remove subsequences s 6 ~ s 8 from the queue (point the queue head pointer to s 9 )
14.执行步骤210(此时队列非空,转206)14. Execute step 210 (the queue is not empty at this time, go to 206)
15.执行步骤206,判断子序列满足条件15. Execute step 206 to determine whether the subsequence satisfies the condition
具体地,根据步骤205的标记结果,s9~s12满足条件1,转209。Specifically, according to the marking result of step 205 , s 9 -s 12 satisfy condition 1, and go to 209 .
16.执行步骤209,将s9~s12从队列中移除(将队列头指针指向s1)16. Execute step 209, remove s 9 ~ s 12 from the queue (point the queue head pointer to s1)
17.执行步骤210(此时队列为空,转201)17. Execute step 210 (the queue is empty at this time, go to 201)
发明人还在内容寻找存储系统中,利用真实环境下的备份负载对上述的方法进行了测试。测试结果表明,随着数据量的增长,读取带宽提高了12%~60%,数据冗余控制在1%~2%,基本消除了读取带宽不断下降的趋势;在同样系统中,利用为期两周的数据同步负载的测试结果表明,读取带宽提高了5~8倍,避免了数据碎片化引起的读取带宽的严重下降。The inventor also tested the above-mentioned method by using a backup load in a real environment in a content-finding storage system. The test results show that with the increase of data volume, the read bandwidth increases by 12% to 60%, and the data redundancy is controlled at 1% to 2%, which basically eliminates the trend of continuous decline in read bandwidth; in the same system, using The test results of the two-week data synchronization load show that the read bandwidth is increased by 5 to 8 times, avoiding the severe drop in read bandwidth caused by data fragmentation.
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。Although the present invention has been described in terms of preferred embodiments, the present invention is not limited to the embodiments described herein, and various changes and changes are included without departing from the scope of the present invention.
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310298326.2A CN103389946B (en) | 2013-07-16 | 2013-07-16 | Go flaking method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310298326.2A CN103389946B (en) | 2013-07-16 | 2013-07-16 | Go flaking method and system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103389946A CN103389946A (en) | 2013-11-13 |
CN103389946B true CN103389946B (en) | 2016-08-10 |
Family
ID=49534224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310298326.2A Active CN103389946B (en) | 2013-07-16 | 2013-07-16 | Go flaking method and system |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103389946B (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108282378B (en) * | 2017-01-05 | 2021-11-09 | 阿里巴巴集团控股有限公司 | Method and device for monitoring network flow |
CN108021512A (en) * | 2017-11-22 | 2018-05-11 | 深圳忆联信息系统有限公司 | A kind of solid state hard disc mapping management process and solid state hard disc |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930828A (en) * | 1997-03-26 | 1999-07-27 | Executive Software International | Real-time apparatus and method for minimizing disk fragmentation in a computer system |
CN101460932A (en) * | 2006-06-08 | 2009-06-17 | Nxp股份有限公司 | Device for remote defragmentation of an embedded device |
CN102929884A (en) * | 2011-08-10 | 2013-02-13 | 阿里巴巴集团控股有限公司 | Method and device for compressing virtual hard disk image file |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3629216B2 (en) * | 2001-03-08 | 2005-03-16 | 株式会社東芝 | Disk storage system having defragmentation function, and defragmentation method in the same system |
GB0517305D0 (en) * | 2005-08-24 | 2005-10-05 | Ibm | Method and apparatus for the defragmentation of a file system |
-
2013
- 2013-07-16 CN CN201310298326.2A patent/CN103389946B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930828A (en) * | 1997-03-26 | 1999-07-27 | Executive Software International | Real-time apparatus and method for minimizing disk fragmentation in a computer system |
CN101460932A (en) * | 2006-06-08 | 2009-06-17 | Nxp股份有限公司 | Device for remote defragmentation of an embedded device |
CN102929884A (en) * | 2011-08-10 | 2013-02-13 | 阿里巴巴集团控股有限公司 | Method and device for compressing virtual hard disk image file |
Also Published As
Publication number | Publication date |
---|---|
CN103389946A (en) | 2013-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10635323B2 (en) | Managing storage system | |
JP5186982B2 (en) | Data management method and switch device | |
US9336152B1 (en) | Method and system for determining FIFO cache size | |
CN107870732B (en) | Method and apparatus for flushing pages from solid state storage devices | |
US20160188227A1 (en) | Method and apparatus for writing data into solid state disk | |
US9665587B2 (en) | Selective fragmentation repair | |
JP5842768B2 (en) | Deduplication apparatus, deduplication method, and deduplication program | |
EP3474129A1 (en) | Storage system expanded data migration method and storage system | |
US20110153972A1 (en) | Free space defragmention in extent based file system | |
WO2014163743A1 (en) | Neighbor based and dynamic hot threshold based hot data identification | |
US20170364300A1 (en) | Controller, flash memory apparatus, method for identifying data block stability, and method for storing data in flash memory apparatus | |
US20220374169A1 (en) | Machine Learning Assisted Quality of Service (QoS) for Solid State Drives | |
CN107729558A (en) | Method, system, device and the computer-readable storage medium that file system fragmentation arranges | |
US11199997B2 (en) | Storage device operations using a die translation table | |
CN105653201A (en) | Read averaging method and memory device using the same | |
CN102467458B (en) | Create an index method for data blocks | |
CN103389946B (en) | Go flaking method and system | |
WO2017045500A1 (en) | Storage array management method and apparatus | |
CN114706834A (en) | A high-efficiency dynamic collection management method and system | |
US11301395B2 (en) | Method and apparatus for characterizing workload sequentiality for cache policy optimization | |
CN117112455B (en) | Space address conversion method and device, computer equipment and storage medium | |
CN107783732A (en) | A kind of data read-write method, system, equipment and computer-readable storage medium | |
CN103176753A (en) | Storage device and data management method of storage device | |
WO2018225752A1 (en) | Control device, control method, and control program | |
CN105095106A (en) | Data block storage method and device |
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 |