WO2016173648A1 - Deduplication process - Google Patents

Deduplication process Download PDF

Info

Publication number
WO2016173648A1
WO2016173648A1 PCT/EP2015/059394 EP2015059394W WO2016173648A1 WO 2016173648 A1 WO2016173648 A1 WO 2016173648A1 EP 2015059394 W EP2015059394 W EP 2015059394W WO 2016173648 A1 WO2016173648 A1 WO 2016173648A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
input data
modifiable
deduplication process
result
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.)
Ceased
Application number
PCT/EP2015/059394
Other languages
French (fr)
Inventor
Dave DONAGHY
John Butt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Priority to PCT/EP2015/059394 priority Critical patent/WO2016173648A1/en
Publication of WO2016173648A1 publication Critical patent/WO2016173648A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Definitions

  • Computer systems may include computing devices configured to perform processes such as data processing.
  • the data processing may include data and parameters that may be used to track different processes of the system.
  • Figure 1 is a simplified illustration of a computing device according to an example
  • Figure 2 is a simplified illustration of a computing device according to a further example
  • Figure 3 is a simplified illustration of a part of a computing device according to a further example
  • Figure 4 is a simplified illustration of another part of a computing device according to a further example.
  • Figure 5 is a simplified illustration of a computing device according to a further example
  • Figure 6 is a block diagram outlining a method for processing input data according to an example
  • Figure 7 is a flow diagram outlining a method for processing input data according to an example.
  • Figure 8 is a simplified illustration of a non-transitory machine-readable storage medium encoded with instructions executable by a processing resource of a computing device to perform a method according to an example.
  • a deduplication process may be used, for instance, to identify redundant data, i.e. duplicates, and to eliminate the identified redundant data before this redundant data is written on a data storage medium.
  • a deduplication process may comprise a chunker process that is to split input data into chunks before storing this data on a data storage medium.
  • the chunks may comprise different sizes.
  • the chunker process is intended to produce many similar chunks that may comprise the same parts or segments of the input data. Accordingly, these chunks contain redundant data.
  • the input data When the input data is recalled, it may be reconstructed from its individual parts and from the referenced parts that it might have in common with other input data.
  • a chunker process may have two modifiable parameters, namely a maximum chunk size and a minimum chunk size. In between these two sizes, a chunk boundary may be selected in order to obtain a desired result.
  • a desired result may, for instance, be a desired chunk size.
  • a desired chunk size may be a size of a chunk that provides for a high deduplication ratio.
  • a deduplication ratio is the ratio of the size of the input data to the size actually used at the storage medium to store the input data.
  • Examples described herein provide a computing device comprising an input to receive input data and a processor to perform a deduplication process to process the input data.
  • the deduplication process may comprise a modifiable parameter and a processing result may depend on the value of the modifiable parameter.
  • the processor is to perform a simulation of the deduplication process, wherein the deduplication process is performed a plurality of times, each time with a different value of the modifiable parameter, and to obtain a result for each value.
  • the processor is to select the value associated with a result closest to a desired result as the value to be used in processing the input data.
  • the processor is further to store the selected value of the modifiable parameter associated with a content type identifier in memory, compare the content type of other input data to the stored content type identifier, and to select the stored parameter value for processing the other input data if the content type of the other input data corresponds to the stored content type identifier.
  • content-type specific processing of the input data in the deduplication process may be provided and performed. That is, the deduplication process may be performed in dependence of the content type of the respective input data. For example, if it is determined that the input data comprises a certain content, such as music, specific parameter values that may be well suited to process music data may be used in the deduplication process. These specific values may be stored, and thus be available, in the memory. They may be available in the memory, for instance, if a content-specific data type, such as e.g. music data, has been previously processed and the previously selected value for that data content type has been stored, or if a preset of values that may be well suited for processing that data content type, e.g. music data, may have been stored previously.
  • a content-specific data type such as e.g. music data
  • the deduplication process may comprise more than one modifiable parameter, which may in the following also be referred to as a plurality of modifiable parameters or as a set of modifiable parameters.
  • the modifiable parameter may have a number of possible values and the processor may be to perform the deduplication process with each one of the possible values.
  • the computing device may perform the deduplication process with a large number of different values, directly at the installation site or the implementation site of the deduplication process, however, in a short time. In other words, a large volumetric quantity of differing values and value combinations may be attempted before actually processing the input data in the deduplication process.
  • the deduplication process may comprise a plurality of modifiable parameters, wherein the processing result depends on the value of each of the modifiable parameters.
  • the processor may be to perform the process a plurality of times each time with a different value of each of the modifiable parameters and to obtain a result for each value of each modifiable parameter.
  • the processor may be to select a value of each of the modifiable parameters associated with a result closest to a desired result as the value of each of the modifiable parameters to be used in processing the input data. Accordingly, more than one modifiable parameter may be available, wherein each of the modifiable parameter may comprise one or more values.
  • a desired result may be achieved by using different combinations of values for each of the modifiable parameters. Even though the effort for performing the deduplication process may increase with the number of possible combinations, the computing device may provide for an accurate processing in a short time. The computing device may also perform the deduplication process directly at the installation site or the implementation site. A plurality of modifiable parameters may also be referred to as a set of modifiable parameters in the following.
  • Other examples described herein may provide a method, implemented by a computing device, the method comprising receiving input data by the computing device and performing, by the computing device, a deduplication process to process the input data, wherein the deduplication process may comprise a modifiable parameter and wherein a processing result may depend on the value of the modifiable parameter.
  • the method comprises performing, by the computing device, a simulation of the deduplication process by performing the deduplication process a plurality of times, each time with a different value of the modifiable parameter, and obtaining a result for each value.
  • the method comprises selecting, by the computing device, the value associated with a result closest to a desired result as the value to be used in processing the input data in a deduplication process to be performed subsequent to the simulation of the deduplication process.
  • the method further comprises storing the selected value of the modifiable parameter associated with a content type identifier in memory, comparing the content type of other input data to the stored content type identifier, and selecting the stored parameter value for processing the other input data if the content type of the other input data corresponds to the stored content type identifier.
  • Figure 1 shows an example of a computing device 10.
  • the computing device 10 comprises an input 11 to receive input data 12.
  • the input data 12 may be provided, for instance, as a contiguous data stream.
  • the computing device 10 comprises a processor 13 to perform a deduplication process to process the input data 12.
  • the deduplication process comprises a modifiable parameter 14.
  • the processing result Ri, R 2 , Rn of the deduplication process depends on the value Vi, V 2 V n of the modifiable parameter 14.
  • the processor 13 Prior to performing the actual deduplication process, the processor 13 is to perform a simulation of the deduplication process, wherein the deduplication process is performed a plurality of times, each time with a different value Vi, V 2 , V n of the modifiable parameter 14, and to obtain a result Ri, R 2 , R n for each value Vi, V 2 , V n .
  • the processor 13 is to select the value Ri, R 2 , R n associated with a result Ri, R 2> Rn closest to a desired result RD as the value to be used in processing the input data 12.
  • the computing device 10 receives input data 12 via the input
  • the input data 12 is processed by the processor 13, wherein the processor 13 performs a deduplication process.
  • the deduplication process comprises at least one modifiable parameter 14.
  • the modifiable parameter 14 may comprise several values Vi, V 2 , V n .
  • the processor 13 may repeatedly perform the deduplication process, each time with a different one of the available parameter values Vi, V 2 , V n .
  • a respective result Ri, R 2 , R n may be obtained.
  • the respective result that may be obtained is result Ri. If the value V2 is selected for performing the deduplication process, the respective result that may be obtained is result F3 ⁇ 4. Stated in more general terms, if the value V n is selected for performing the deduplication process, the respective result that may be obtained is result R n , wherein the letter 'n' is a natural number and represents the index of a plurality of values and results, respectively.
  • the processor 13 may perform the deduplication process several times with the input data 12. Each time, the processor 13 may use a different value Vi, V2, V n when performing the deduplication process. For each value ⁇ A, V2, V n , a respective result Ri, R2, Rn is obtained. Thus, the processor 13 is to perform a simulation of the deduplication process when processing a current input data 12.
  • the processor 13 may compare the obtained results Ri, R2, R n with each other.
  • the processor 13 may also compare the obtained results Ri, R2, R n with a desired result RD.
  • a desired result RD is the result that may be desired by the person or machine that initiates or performs the deduplication process.
  • the desired result RD may be the desired output of the deduplication process.
  • a deduplication process it may, for instance, be desired to achieve a high deduplication ratio as the desired result.
  • the processor 13 may determine that result Ri, R 2 , R n that is closest to the desired result R D .
  • the processor 13 may select the corresponding value ⁇ , V 2 , V n that yields this closest result. For example, if the second result R2 may be the result that is closest to the desired result RD, the corresponding second value V2 is selected by the processor 13.
  • the processor 13 may then use the selected value Vi , 2, V n , for example V2, to process the current input data 12 subsequent to the simulation and to generate a respective output.
  • the processor 13 may compare one or more of the simulation results Ri , R2, R n with the respective desired result RD.
  • the processor 13 may select the respective value that gained the closest result during the simulation.
  • the processor 13 may perform a simulation of the deduplication process by performing the deduplication process several times, each time with a different value Vi , V 2 , V n .
  • the processor 1 3 may select the respective value Vi , V 2 , V n with which the closest result can be achieved.
  • the input data 12 is then processed in the deduplication process with that value that has been selected from the simulation.
  • the computing device 1 0 may further comprise a memory or storage 1 5. If the processor 1 3 may select a certain parameter value VSEL, the processor 1 3 is to store this selected value VSEL together with a content type identifier 16 in the memory 15.
  • the content type identifier 16 may be used to identify the content of the input data 1 2. For example, if the input data 12 may be a music data stream, then the content type identifier 16 may be used to identify the input data 1 2 as a music data stream.
  • the content type identifier 16 may be carried as payload within the input data 12, or could be otherwise derived by the computing device 10.
  • the modifiable parameter 14 has a number of possible values i , V 2 , V n with which it may be possible to perform the deduplication process and the simulation of the deduplication process, respectively.
  • the processor 1 3 may perform the deduplication process with a selection of the possible values, for example, only for values V 2 , V 5 and V 7 .
  • the processor 1 3 may perform the deduplication process with each one of the possible values Vi , V 2 , V n .
  • the processor 1 3 may obtain a respective result Ri , R 2 , ... , R n for each one of the values Vi , V 2 , ... , V n .
  • the processor 13 may perform a full simulation of the deduplication process by using the full set of available values ⁇ , V 2 , V n .
  • the processor 13 may perform the deduplication process with different values Vi , V2, V n of the modifiable parameter 14 in a chronological order or in a random order.
  • a chronological order means that the values Vi , V2, V n are processed in an ascending or a descending order, or in a certain pattern, starting from any desired value.
  • the process may start in a medium range. If the values range from Vi to V10, then the process may start from V5.
  • the process may start from V 5 and may use, in a next step, a left-side value, e.g. V 4 and in the following step a right-side value, e.g. VB.
  • the processor 13 may compare the results R4 and i3 ⁇ 4 with each other and with the desired result R D . It may be possible that better results, i.e. results that are closer to the desired result RD, may be achieved when using left-side values rather than using right-side values. If the processor 13 may detect such a circumstance, the processor 13 may continue to perform the deduplication process using these left-side values. The same would be true, vice versa, for right-side values.
  • the processor 13 may perform the deduplication process with different values Vi , V2, V n in a random order.
  • the processor 13 may randomly choose any values from the available number of values Vi , V2, V n that may be provided by a parameter 14. This could be used, for instance, if the deduplication process comprises a large number of parameters comprising a large number of values, which would lead to a large number of data and, thus, to a large number of instantiations of the deduplication process.
  • the processing time could be reduced compared to the time needed for processing all of the available values Vi , V2, .. . . V n .
  • an example of a computing device 20 comprises a memory 22.
  • the computing device 20 is to store the selected value VSEL of the modifiable parameter 24 associated with a content type identifier CT X of the input data 25, 26, 27 in the memory 22.
  • the processor 13, 23 may compare the results Ri , R2, R n obtained by performing the deduplication process using respective values Vi , V 2 , V n with a desired result RD.
  • the processor 23 may select the value V S EL with which the result closest to the desired result RD was achieved. This selected value V S EL may be stored in the memory 22. Thus, the selected value V S EL can be used at a later time at the same site or at a different site.
  • the computing device 20 receives input data 25, 26, 27 at the input 21.
  • the input data may, in this example, be content specific.
  • input data 25 may comprise a different content than input data 26.
  • Input data 27 may comprise a content that is different to the content of input data 25 and 26.
  • the input data 25, 26, 27 may comprise a label 29A, 29B, 29C with which the content of the respective input data 25, 26, 27 can be identified.
  • input data 25 may comprise a first content CTi that may be associated with a first label 29A.
  • Input data 26 may comprise a second content CT2 that may be associated with a second label 29B.
  • Input data 27 may comprise a third content CT 3 that may be associated with a third label 29C.
  • Each input data 25, 26, 27 comprising a respective content CTi, CT2, CT 3 may be processed by the processor 23.
  • the values Vi, V2, V n of the parameter 24 may yield different results.
  • value Vi may yield the result closest to the desired result RD-
  • value V2 may yield the result that is closest to the desired result RD. Accordingly, the process is performed content-specifically.
  • a respective value VSEL is selected which value yields a result that is closest to the desired result R D .
  • This selected value V S EL may be stored in the memory 22.
  • the selected value VSEL is stored in the memory 22 together with a content type identifier 29x.
  • the content type identifier 29x is associated with the content of the respective input data that has been processed and for which the value VSEL has been selected. For example, if input data 26 is processed, then value VSEL may be selected as the value which yields a result that is closest to the desired result RD.
  • AS input data 26 comprises content CT2, which is represented by label 29B
  • a respective content type identifier 29x would be stored in the memory 22 together with the selected value VSEL- In this specific case, content type identifier 29x would be associated with content type CT 2 .
  • As the content type identifier 29x is stored together with the selected value
  • the content type identifier 29x allows to content-specifically identify the value VSEL that yields a result that is closest to the desired result R D , depending on the respective content CTx of the respective input data that has been processed.
  • the processor 23 is to determine a content type of other input data 28.
  • Other input data 28 may be input data that is received, for example, at a later point in time or at a different site compared to previously processed input data 26, such as input data 26 mentioned above.
  • other input data 28 comprises a content label 29B that is associated with content type CT 2 .
  • the processor 23 is to compare the content type CT 2 of the other input data 28 to the content type CT X stored in the content type identifier 29x.
  • the processor 23 is to select the stored parameter value V S EL for processing the other input data 28 if the content type CT 2 of the other input data 28 corresponds to the content type CT X stored in the content type identifier 29x that is associated with the value VSEL.
  • This other input data 28 may comprise the same content CT 2 as a previously processed input data, such as previously processed input data 26.
  • a content type identifier 29x associated with this content CT 2 may already be available in the memory 22 as it was stored in the memory when input data 26 was processed. Accordingly, the previously selected value VSEL that is stored together with this content type identifier 29x may now be used by the processor 23 to perform the deduplication process when processing other input data 28.
  • content type identifier 29x may be associated with CT 2 and may be stored together with the selected value VSEL in the memory 22.
  • other input data 28 is received at the input 21.
  • the other input data 28 comprises the same content CT 2 as previously processed input data 26.
  • the other input data 28 and previously processed input data 26 may therefore carry the same content type label 29B.
  • the processor 23 may now determine the content type CT 2 of the other input data 28, for instance, by reading the content type label 29B of the other input data 28.
  • the processor 23 may read the memory 22 so as to check whether any values are available in the memory which values may be associated with content type CT 2 .
  • Values that may be available at the memory 22 may be values that have been previously processed, such as, for example, value V S EL that has been selected previously when input data 26 was processed, as discussed above. Additionally or alternatively, values that may be available at the memory 22 may also be values that have been previously stored, for example as a preset of values, by a user.
  • the deduplication process comprises a chunker process 30 to split the input data 35 into chunks 36A, 36B, 36C of variable size, wherein the modifiable parameter 34 represents a minimum chunk size 34A or a maximum chunk size 34B of a chunk.
  • the input data 35 is processed in the deduplication process, wherein the deduplication process comprises the chunker process 30.
  • the chunker process 30 may be a part of the deduplication process.
  • the first option is to divide the input data 35 into chunks 35A of a minimum size. After a value VSEL for the minimum chunk size has been selected, as indicated by branch 32A, the input data is divided into chunks 36A, 36B, 36C comprising this minimum chunk size.
  • the second option is to divide the input data 35 into chunks 35B of a maximum size. After a value VSEL for the maximum chunk size has been selected, as indicated by branch 32B, the input data is divided into chunks 36A, 36B, 36C comprising this maximum chunk size.
  • the input data 35A is processed by the chunker process 30.
  • the modifiable parameter 34A represents a minimum chunk size, wherein the values Vi , V m represent a range of values within the minimum chunk size.
  • a chunk size may, for instance, be represented by a number of Bits, Nibbles or Bytes.
  • a minimum chunk size may vary between a value of 3 Bits and a value of 6 Bits.
  • the input data 35 may be divided into chunks 36A, 36B, 36C comprising a chunk size corresponding to the selected number of Bits VSEL-
  • the modifiable parameter 34B represents a maximum chunk size, wherein the values V m +i , ⁇ , V n represent a range of values within the maximum chunk size.
  • a chunk size may, for instance, be represented by a number of Bits, Nibbles or Bytes.
  • a maximum chunk size may vary between a value of 7 Bits and a value of 10 Bits.
  • a maximum chunk size is greater than a minimum chunk size, wherein the lowest value V m +i of the range of the maximum chunk size is greater, by at least one unit, than the greatest value V m of the range of the minimum chunk size.
  • the input data 35 may be divided into chunks 36A, 36B, 36C comprising a chunk size corresponding to the selected number of Bits VSEL-
  • the modifiable parameter is a first modifiable parameter 34A representing a minimum chunk size and the deduplication process comprises a second modifiable parameter 34B representing a maximum chunk size. While the functional principle of this example may be similar to the one described above, with reference to Figure 3, the difference to the above mentioned example is that the deduplication process comprises two modifiable parameters 34A, 34B. Thus, both the minimum chunk size Vi , ... , V m and the maximum chunk size V m+ i , ... , V n can be selected together.
  • the deduplication process comprises a plurality of modifiable parameters 41 , 42, 43, wherein the processing result Rin, R2n, ⁇ ⁇ , Rxn depends on the value ViRIC, V 2n , V xn of each of the modifiable parameters 41 , 42, 43, wherein the processor is to perform the process a plurality of times each time with a different value of each of the modifiable parameters 41 , 42, 43 and to obtain a result for each value of each modifiable parameter 41 , 42, 43, and wherein the processor is to select a value of each of the modifiable parameters 41 , 42, 43 associated with a result closest to a desired result as the value of each of the modifiable parameters 41 , 42, 43 to be used in processing the input data.
  • the deduplication process may comprise a first modifiable parameter 41 , a second modifiable parameter 42 and a X th modifiable parameter 43 with one or more modifiable parameters in between.
  • the first modifiable parameter 41 may comprise several values Vn, V12, ... ,
  • V-in Depending on the value Vn, Vi 2 , Vi n that has been selected for performing the deduplication process, a respective result Rn, R12, Rin may be obtained.
  • the respective result that may be obtained is result R 11 .
  • the respective result that may be obtained is result R12.
  • the respective result that may be obtained is result Ri n , wherein the letter 'n' is a natural number and represents the index of a plurality of values and results, respectively.
  • the deduplication process comprises a plurality of modifiable parameters 41 , 42, 43.
  • the deduplication process comprises at least two modifiable parameters 41 , 42, which represent a plurality of modifiable parameters. Accordingly, not all of the modifiable parameters described with reference to and shown in Figure 4 are required in all of the examples.
  • the processor is to perform the deduplication process a plurality of times, each time with a different value of each of the modifiable parameters 41 , 42, 43. Accordingly, the processor is to perform a simulation of the deduplication process.
  • the processor may obtain a result Rx n for each value Vx n of each modifiable parameter 41 , 42, 43.
  • the processor may compare the results with each other.
  • the processor may also compare the results with a desired result RD.
  • the processor may determine that a result closest to a desired result R D may be achieved when the first parameter 41 uses the value Vi n and when the second parameter uses the value V 2n .
  • the processor may select these values Vi n , 2n for processing the input data in order to obtain a result that is closest to the desired result RD.
  • the processor may, for instance, perform the deduplication process, or the simulation of the deduplication process, respectively, with different combinations of the values of the first modifiable parameter 41 and the second modifiable parameter 42.
  • the values may be combined such that all possible combinations and/or variations are covered.
  • each combination of different values of different parameters may yield different results RI D, R 2 D, RnD.
  • a combination of the value Vn with the value V 2 i may yield a result RID.
  • a combination of the value Vi 2 with the value V22 may yield a result R 2 D.
  • a combination of a first value Vi n with a second value V xn may yield a result R n D.
  • the processor may compare the results RID, R 2 D, RnD with the desired result RD.
  • the processor may select that combination of values that yields the result that is closest to the desired result RD.
  • the processor may perform the deduplication process with the selected combination of values.
  • the result R 2D may be the result that is closest to the desired result RD-
  • the result R 2 D is obtained by using the value V12 for the first parameter 41 and the value V22 for the second parameter 42. Accordingly, the processor may use the value Vi 2 for the first parameter 41 and the value V 22 for the second parameter 42 to process the input data.
  • the processor may perform a simulation of the deduplication process before the processor processes the input data. In this simulation, different combinations of values of the modifiable parameters may be used to obtain a respective result, as described above.
  • the processor may compare the respective result RI D, R 2 D, RnD with the desired result RD.
  • the processor may determine the result that is closest to the desired result RD.
  • the processor may select those values, i.e. that combination of values with which the result closest to the desired result R D was achieved.
  • the processor may use these selected values to process the input data, i.e. to perform the deduplication process as part of an actual deduplication performed subsequent to the performance of the simulation of the deduplication process.
  • the selected values may be stored in a memory for later use, for instance, at the same site or at a different site.
  • the selected values may be associated with a content type identifier in order to allow the processor to identify the content of other input data 28 that may, for instance, arrive later in time or at a different site.
  • Figure 2 is that the deduplication process may comprise a plurality of parameters, for example, a first parameter 41 and a second parameter 42.
  • the selected value V S ELI of the first parameter 41 and the selected value SEL2 of the second parameter 42 may be stored in the memory 22.
  • the values VSEU and VSEL2 may have been selected by the processor 23 as they provide a result that is closest to a desired result.
  • the selected value VSEU of the first parameter 41 may correspond to the value V12 and the selected value VSEL2 of the second parameter 42 may correspond to the value V22, wherein the result obtained by using these two parameter values V12 and V22 may be result FV?D.
  • Result R2D may be a result that is closest to a desired result RD.
  • the selected values V S ELI and VSEL2 may be stored in the memory 22 together with a content type identifier 29x.
  • the content type identifier 29x may be associated with the content type of the input data that has been processed. For example, if the input data 26, which comprises content CT 2 , was processed and the values VSEU and V S EL2 have been selected by the processor for processing input data 26, then the content type identifier 29x may be associated with content type CT 2 .
  • the processor 23 may check whether values, for example VSEU and VSEL2, may be available in the storage 22, which values may be associated with content type CT 2 , for example by content type identifier 29x. If so, the processor 23 may use these values VSEU and VSEL2 for processing the other input data 28.
  • the processor is to process input data of a certain content type by performing a deduplication process.
  • a simulation of the deduplication process is performed prior to the execution of the actual deduplication process.
  • a simulation may be omitted if the memory already contains a value that may lead to the best result.
  • Such a value may be available in the memory if input data containing similar or the same content may have already been processed earlier, and wherein the simulation yielded said value. In other words, it may be sufficient if a simulation is performed when input data containing a certain content type is processed for the first time.
  • Figure 6 shows a block diagram that depicts an example of a method for processing input data, which method is implemented by a computing device.
  • the order of the blocks shown in Figure 6 may not be identical to the order in which the method steps may be performed.
  • Block 62 indicates that a deduplication process is to be performed by the computing device to process the input data.
  • the deduplication process comprises a modifiable parameter and the processing result depends on the value of the modifiable parameter.
  • a simulation may be performed prior to performing the actual deduplication process of block 62.
  • the simulation may be performed in that the deduplication process is performed, by the computing device, a plurality of times, each time with a different value of the modifiable parameter. A respective result is obtained for each value.
  • the value associated with a result closest to a desired result is selected by the computing device as the value to be used in processing the input data in the deduplication process that is to be performed subsequent to the aforementioned simulation of the deduplication process.
  • the selected value of the modifiable parameter which value may have been selected during the simulation, is stored in a memory together with a content type identifier.
  • the content type of other input data is compared to the previously stored content type identifier.
  • Other input data may be, for instance, input data that may arrive later in time or at a different site compared to the input data previously processed during the simulation.
  • the stored parameter value is selected for processing the other input data, if the content type of the other input data corresponds to the stored content type identifier.
  • Figure 7 shows a flow chart of an example of such a method.
  • input data is received.
  • the content type of the respective input data is determined. This could, for example, be achieved in that a content type identifier or a content type label 29B, that may be carried with the received input data 26, is read.
  • the input data 26 may comprise a content
  • the value VSEL may be available in the memory 22.
  • the value VSEL may comprise a content type identifier 29x that is associated with content type CT 2 .
  • the value V S EL may have been stored during a previous performance of the deduplication process or of a simulation of the deduplication process, or it may have been stored previously as a preset, for example, by a human user.
  • a respective value is determined, as indicated by block 77.
  • the determination of the value may, for instance, be achieved by performing a simulation of the deduplication process and selecting the value associated with a result closest to a desired result.
  • this selected value VSEL may be stored in a memory
  • examples 80 relate to a non-transitory machine- readable storage medium 81 encoded with instructions executable by a processing resource 82 of a computing device 83 to perform methods described herein, in particular to cause the processing resource 82 to perform a method to perform a deduplication process to process input data, wherein the deduplication process comprises a modifiable parameter and wherein a processing result depends on the value of the modifiable parameter.
  • the method is further to perform a simulation of the deduplication process, wherein the deduplication process is performed a plurality of times, each time with a different value of the modifiable parameter, and to obtain a result for each value.
  • the method is further to select the value associated with a result closest to a desired result as the value to be used in processing the input data.
  • the method is further to store the selected value of the modifiable parameter associated with a content type identifier in memory 81.
  • the method is further to compare the content type of other input data to the stored content type identifier.
  • the method is further to select the stored parameter value for processing the other input data if the content type of the other input data corresponds to the stored content type identifier.
  • examples described herein can be realized in the form of hardware, machine readable instructions or a combination or hardware and machine readable instructions. Any such machine readable instructions may be stored in the form of volatile or non-volatile storage such as, for example, a storage device such as a ROM, whether erasable or rewritable or not, or in the form of memory such as, for example, RAM, memory chips device or integrated circuits or an optically or magnetically readable medium such as, for example, a CD, DVD, magnetic disc or magnetic tape. It would be appreciated that these storage devices and storage media are examples of machine readable storage that are suitable for storing a program or programs that, when executed, implement examples described herein.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A computing device comprises an input to receive input data and a processor to perform a simulation of a deduplication process to process the input data, wherein the deduplication process comprises a modifiable parameter and wherein a processing result depends on the value of the modifiable parameter. The processor is to perform the deduplication process a plurality of times each time with a different value of the modifiable parameter and to obtain a result for each value. The processor is to select the value associated with a result closest to a desired result as the value to be used in processing the input data. The processor is to store the selected value of the modifiable parameter associated with a content type identifier in memory, compare the content type of other input data to the stored content type identifier, and to select the stored parameter value for processing the other input data if the content type of the other input data corresponds to the stored content type identifier.

Description

DEDUPLICATION PROCESS
BACKGROUND
[0001] Computer systems may include computing devices configured to perform processes such as data processing. The data processing may include data and parameters that may be used to track different processes of the system.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Examples will now be described by way of non-limiting example only with reference to the accompanying drawings, in which:
[0003] Figure 1 is a simplified illustration of a computing device according to an example,
[0004] Figure 2 is a simplified illustration of a computing device according to a further example,
[0005] Figure 3 is a simplified illustration of a part of a computing device according to a further example,
[0006] Figure 4 is a simplified illustration of another part of a computing device according to a further example,
[0007] Figure 5 is a simplified illustration of a computing device according to a further example,
[0008] Figure 6 is a block diagram outlining a method for processing input data according to an example,
[0009] Figure 7 is a flow diagram outlining a method for processing input data according to an example, and
[0010] Figure 8 is a simplified illustration of a non-transitory machine-readable storage medium encoded with instructions executable by a processing resource of a computing device to perform a method according to an example. DETAILED DESCRIPTION
[001 1] The examples that will be described in the following may be used to perform a deduplication process. A deduplication process may be used, for instance, to identify redundant data, i.e. duplicates, and to eliminate the identified redundant data before this redundant data is written on a data storage medium.
[0012] For example, a deduplication process may comprise a chunker process that is to split input data into chunks before storing this data on a data storage medium. The chunks may comprise different sizes. With the assumption that input data may contain inherent duplication, the chunker process is intended to produce many similar chunks that may comprise the same parts or segments of the input data. Accordingly, these chunks contain redundant data.
[0013] For example, it could be analyzed on byte-level, which chunks may provide for a large repetition rate. A high amount of data reduction can be provided in that similar chunks containing redundant data may be eliminated. The content of the eliminated chunks may be referenced with pointers which use less space on the data storage medium than the referenced and eliminated bit sequence would do.
[0014] When the input data is recalled, it may be reconstructed from its individual parts and from the referenced parts that it might have in common with other input data.
[0015] A chunker process may have two modifiable parameters, namely a maximum chunk size and a minimum chunk size. In between these two sizes, a chunk boundary may be selected in order to obtain a desired result.
[0016] Regarding a deduplication process, a desired result may, for instance, be a desired chunk size. A desired chunk size may be a size of a chunk that provides for a high deduplication ratio. A deduplication ratio is the ratio of the size of the input data to the size actually used at the storage medium to store the input data.
[0017] Examples described herein provide a computing device comprising an input to receive input data and a processor to perform a deduplication process to process the input data. The deduplication process may comprise a modifiable parameter and a processing result may depend on the value of the modifiable parameter. The processor is to perform a simulation of the deduplication process, wherein the deduplication process is performed a plurality of times, each time with a different value of the modifiable parameter, and to obtain a result for each value. The processor is to select the value associated with a result closest to a desired result as the value to be used in processing the input data. The processor is further to store the selected value of the modifiable parameter associated with a content type identifier in memory, compare the content type of other input data to the stored content type identifier, and to select the stored parameter value for processing the other input data if the content type of the other input data corresponds to the stored content type identifier. Thus, it is possible to simulate the effects that a choice of a respective one of the different values may have on the deduplication process. It may be possible to simulate these effects before the input data is actually processed in the deduplication process. Accordingly, the result of the deduplication process, depending on the selected value, can be predicted before the input data is actually processed in the deduplication process.
[0018] Furthermore, content-type specific processing of the input data in the deduplication process may be provided and performed. That is, the deduplication process may be performed in dependence of the content type of the respective input data. For example, if it is determined that the input data comprises a certain content, such as music, specific parameter values that may be well suited to process music data may be used in the deduplication process. These specific values may be stored, and thus be available, in the memory. They may be available in the memory, for instance, if a content-specific data type, such as e.g. music data, has been previously processed and the previously selected value for that data content type has been stored, or if a preset of values that may be well suited for processing that data content type, e.g. music data, may have been stored previously.
[0019] In an example, the deduplication process may comprise more than one modifiable parameter, which may in the following also be referred to as a plurality of modifiable parameters or as a set of modifiable parameters.
[0020] According to an example, the modifiable parameter may have a number of possible values and the processor may be to perform the deduplication process with each one of the possible values. Thus, the computing device according to this example may perform the deduplication process with a large number of different values, directly at the installation site or the implementation site of the deduplication process, however, in a short time. In other words, a large volumetric quantity of differing values and value combinations may be attempted before actually processing the input data in the deduplication process.
[0021] According to a further example, the deduplication process may comprise a plurality of modifiable parameters, wherein the processing result depends on the value of each of the modifiable parameters. The processor may be to perform the process a plurality of times each time with a different value of each of the modifiable parameters and to obtain a result for each value of each modifiable parameter. The processor may be to select a value of each of the modifiable parameters associated with a result closest to a desired result as the value of each of the modifiable parameters to be used in processing the input data. Accordingly, more than one modifiable parameter may be available, wherein each of the modifiable parameter may comprise one or more values. A desired result may be achieved by using different combinations of values for each of the modifiable parameters. Even though the effort for performing the deduplication process may increase with the number of possible combinations, the computing device may provide for an accurate processing in a short time. The computing device may also perform the deduplication process directly at the installation site or the implementation site. A plurality of modifiable parameters may also be referred to as a set of modifiable parameters in the following.
[0022] Other examples described herein may provide a method, implemented by a computing device, the method comprising receiving input data by the computing device and performing, by the computing device, a deduplication process to process the input data, wherein the deduplication process may comprise a modifiable parameter and wherein a processing result may depend on the value of the modifiable parameter. The method comprises performing, by the computing device, a simulation of the deduplication process by performing the deduplication process a plurality of times, each time with a different value of the modifiable parameter, and obtaining a result for each value. The method comprises selecting, by the computing device, the value associated with a result closest to a desired result as the value to be used in processing the input data in a deduplication process to be performed subsequent to the simulation of the deduplication process. The method further comprises storing the selected value of the modifiable parameter associated with a content type identifier in memory, comparing the content type of other input data to the stored content type identifier, and selecting the stored parameter value for processing the other input data if the content type of the other input data corresponds to the stored content type identifier. Thus, it is possible to simulate the effects that a choice of a respective one of the different values may have on the deduplication process. It may be possible to simulate these effects before the input data is actually processed in the deduplication process. Accordingly, the result of the deduplication process, depending on the selected value, can be predicted before the input data is actually processed in the deduplication process.
[0023] Figure 1 shows an example of a computing device 10. The computing device 10 comprises an input 11 to receive input data 12. The input data 12 may be provided, for instance, as a contiguous data stream.
[0024] The computing device 10 comprises a processor 13 to perform a deduplication process to process the input data 12. The deduplication process comprises a modifiable parameter 14. The processing result Ri, R2, Rn of the deduplication process depends on the value Vi, V2 Vn of the modifiable parameter 14.
[0025] Prior to performing the actual deduplication process, the processor 13 is to perform a simulation of the deduplication process, wherein the deduplication process is performed a plurality of times, each time with a different value Vi, V2, Vn of the modifiable parameter 14, and to obtain a result Ri, R2, Rn for each value Vi, V2, Vn.
[0026] The processor 13 is to select the value Ri, R2, Rn associated with a result Ri, R2> Rn closest to a desired result RD as the value to be used in processing the input data 12.
[0027] In other words, the computing device 10 receives input data 12 via the input
11 . The input data 12 is processed by the processor 13, wherein the processor 13 performs a deduplication process.
[0028] The deduplication process comprises at least one modifiable parameter 14.
The modifiable parameter 14 may comprise several values Vi, V2, Vn. The processor 13 may repeatedly perform the deduplication process, each time with a different one of the available parameter values Vi, V2, Vn. Depending on the value Vi, V2, Vn that has been selected for performing the deduplication process, a respective result Ri, R2, Rn may be obtained. By processing the input data 12 several times, each time with a different value V V2, Vn, a simulation of the deduplication process may be performed.
[0029] For example, as shown in Figure 1 , if the value Vi is selected for performing the deduplication process, the respective result that may be obtained is result Ri. If the value V2 is selected for performing the deduplication process, the respective result that may be obtained is result F¾. Stated in more general terms, if the value Vn is selected for performing the deduplication process, the respective result that may be obtained is result Rn, wherein the letter 'n' is a natural number and represents the index of a plurality of values and results, respectively.
[0030] As mentioned before, the processor 13 may perform the deduplication process several times with the input data 12. Each time, the processor 13 may use a different value Vi, V2, Vn when performing the deduplication process. For each value \A, V2, Vn, a respective result Ri, R2, Rn is obtained. Thus, the processor 13 is to perform a simulation of the deduplication process when processing a current input data 12.
[0031] The processor 13 may compare the obtained results Ri, R2, Rn with each other. The processor 13 may also compare the obtained results Ri, R2, Rn with a desired result RD.
[0032] A desired result RD is the result that may be desired by the person or machine that initiates or performs the deduplication process. In other words, the desired result RD may be the desired output of the deduplication process. In a deduplication process it may, for instance, be desired to achieve a high deduplication ratio as the desired result.
[0033] The processor 13 may determine that result Ri, R2, Rn that is closest to the desired result RD. The processor 13 may select the corresponding value ΝΛ, V2, Vn that yields this closest result. For example, if the second result R2 may be the result that is closest to the desired result RD, the corresponding second value V2 is selected by the processor 13.
[0034] The processor 13 may then use the selected value Vi , 2, Vn, for example V2, to process the current input data 12 subsequent to the simulation and to generate a respective output. In other words, the processor 13 may compare one or more of the simulation results Ri , R2, Rn with the respective desired result RD. For the actual deduplication process, i.e. for the deduplication process that is performed subsequent to the previously performed simulation, the processor 13 may select the respective value that gained the closest result during the simulation. [0035] Stated yet differently, the processor 13 may perform a simulation of the deduplication process by performing the deduplication process several times, each time with a different value Vi , V2, Vn. If the processor 1 3 determines, during or after the simulation, the result Ri , R2, Rn that is closest to the desired result RD, the processor 1 3 may select the respective value Vi , V2, Vn with which the closest result can be achieved. The input data 12 is then processed in the deduplication process with that value that has been selected from the simulation.
[0036] The computing device 1 0 may further comprise a memory or storage 1 5. If the processor 1 3 may select a certain parameter value VSEL, the processor 1 3 is to store this selected value VSEL together with a content type identifier 16 in the memory 15. The content type identifier 16 may be used to identify the content of the input data 1 2. For example, if the input data 12 may be a music data stream, then the content type identifier 16 may be used to identify the input data 1 2 as a music data stream. The content type identifier 16 may be carried as payload within the input data 12, or could be otherwise derived by the computing device 10.
[0037] If input data other than the previously simulated and processed input data
12, for example, input data 1 7 that may arrive later in time or at a different site, may arrive at the computing device 1 0, then the processor 13 may use the previously stored and thus already available selected value VSEL for processing the other input data 1 7, if the content type of the other input data 1 7 corresponds to the content type 16 associated with the selected value VSEL- Accordingly, a simulation of the deduplication process may be omitted when other input data 1 7 is processed, which other input data 1 7 may comprise a similar or the same content as the previously processed input data 12 for which a simulation has been previously performed. In this case, the simulation may be omitted due to the fact that the previously selected value VSEL is already available in the memory 1 5 and may therefore be used for processing the other input data 1 7. An example will be described in more detail below, with respect to Figure 2.
[0038] The modifiable parameter 14 has a number of possible values i , V2, Vn with which it may be possible to perform the deduplication process and the simulation of the deduplication process, respectively. The processor 1 3 may perform the deduplication process with a selection of the possible values, for example, only for values V2, V5 and V7. In an example, the processor 1 3 may perform the deduplication process with each one of the possible values Vi , V2, Vn. The processor 1 3 may obtain a respective result Ri , R2, ... , Rn for each one of the values Vi , V2, ... , Vn. [0039] Accordingly, the processor 13 may perform a full simulation of the deduplication process by using the full set of available values \Λ, V2, Vn.
[0040] In an example, the processor 13 may perform the deduplication process with different values Vi , V2, Vn of the modifiable parameter 14 in a chronological order or in a random order. A chronological order means that the values Vi , V2, Vn are processed in an ascending or a descending order, or in a certain pattern, starting from any desired value. For example, the process may start in a medium range. If the values range from Vi to V10, then the process may start from V5.
[0041] In one example, using a number line, the process may start from V5 and may use, in a next step, a left-side value, e.g. V4 and in the following step a right-side value, e.g. VB. The processor 13 may compare the results R4 and i¾ with each other and with the desired result RD. It may be possible that better results, i.e. results that are closer to the desired result RD, may be achieved when using left-side values rather than using right-side values. If the processor 13 may detect such a circumstance, the processor 13 may continue to perform the deduplication process using these left-side values. The same would be true, vice versa, for right-side values.
[0042] In an example, the processor 13 may perform the deduplication process with different values Vi , V2, Vn in a random order. In this case, the processor 13 may randomly choose any values from the available number of values Vi , V2, Vn that may be provided by a parameter 14. This could be used, for instance, if the deduplication process comprises a large number of parameters comprising a large number of values, which would lead to a large number of data and, thus, to a large number of instantiations of the deduplication process. By randomly selecting only some values from the available number of values Vi , V2 Vn the processing time could be reduced compared to the time needed for processing all of the available values Vi , V2, .. . . Vn.
[0043] As shown in Figure 2, an example of a computing device 20 comprises a memory 22. The computing device 20 is to store the selected value VSEL of the modifiable parameter 24 associated with a content type identifier CTX of the input data 25, 26, 27 in the memory 22.
[0044] As described above with reference to Figure 1 , the processor 13, 23 may compare the results Ri , R2, Rn obtained by performing the deduplication process using respective values Vi , V2, Vn with a desired result RD. The processor 23 may select the value VSEL with which the result closest to the desired result RD was achieved. This selected value VSEL may be stored in the memory 22. Thus, the selected value VSEL can be used at a later time at the same site or at a different site.
[0045] In the example shown in Figure 2, the computing device 20 receives input data 25, 26, 27 at the input 21. The input data may, in this example, be content specific. For example, input data 25 may comprise a different content than input data 26. Input data 27 may comprise a content that is different to the content of input data 25 and 26.
[0046] The input data 25, 26, 27 may comprise a label 29A, 29B, 29C with which the content of the respective input data 25, 26, 27 can be identified. For example, input data 25 may comprise a first content CTi that may be associated with a first label 29A. Input data 26 may comprise a second content CT2 that may be associated with a second label 29B. Input data 27 may comprise a third content CT3 that may be associated with a third label 29C.
[0047] Each input data 25, 26, 27 comprising a respective content CTi, CT2, CT3 may be processed by the processor 23. However, depending on the content, the values Vi, V2, Vn of the parameter 24 may yield different results. For example, when input data 25 comprising content CTi is processed, then value Vi may yield the result closest to the desired result RD- However, when input data 26 comprising a different content, namely content CT2 is processed, then value V2 may yield the result that is closest to the desired result RD. Accordingly, the process is performed content-specifically.
[0048] As shown in Figure 2, based on the content of the input data 25, 26, 27, a respective value VSEL is selected which value yields a result that is closest to the desired result RD. This selected value VSEL may be stored in the memory 22.
[0049] In an example, the selected value VSEL is stored in the memory 22 together with a content type identifier 29x. The content type identifier 29x is associated with the content of the respective input data that has been processed and for which the value VSEL has been selected. For example, if input data 26 is processed, then value VSEL may be selected as the value which yields a result that is closest to the desired result RD. AS input data 26 comprises content CT2, which is represented by label 29B, a respective content type identifier 29x would be stored in the memory 22 together with the selected value VSEL- In this specific case, content type identifier 29x would be associated with content type CT2. [0050] As the content type identifier 29x is stored together with the selected value
VSEL, the content type identifier 29x allows to content-specifically identify the value VSEL that yields a result that is closest to the desired result RD, depending on the respective content CTx of the respective input data that has been processed.
[0051] In an example, the processor 23 is to determine a content type of other input data 28. Other input data 28 may be input data that is received, for example, at a later point in time or at a different site compared to previously processed input data 26, such as input data 26 mentioned above.
[0052] In the example shown in Figure 2, other input data 28 comprises a content label 29B that is associated with content type CT2. The processor 23 is to compare the content type CT2 of the other input data 28 to the content type CTX stored in the content type identifier 29x. The processor 23 is to select the stored parameter value VSEL for processing the other input data 28 if the content type CT2 of the other input data 28 corresponds to the content type CTX stored in the content type identifier 29x that is associated with the value VSEL. In other words, value VSEL is selected in this example if CTx = CT2.
[0053] Stated differently, it may be possible that, at a later point in time or at a different site, other input data 28 may be received at the input 21. This other input data 28 may comprise the same content CT2 as a previously processed input data, such as previously processed input data 26. Thus, a content type identifier 29x associated with this content CT2 may already be available in the memory 22 as it was stored in the memory when input data 26 was processed. Accordingly, the previously selected value VSEL that is stored together with this content type identifier 29x may now be used by the processor 23 to perform the deduplication process when processing other input data 28.
[0054] Stated yet differently, if input data 26 comprising content type CT2 is processed, then content type identifier 29x may be associated with CT2 and may be stored together with the selected value VSEL in the memory 22. At a later point in time, other input data 28 is received at the input 21. In this example, the other input data 28 comprises the same content CT2 as previously processed input data 26. The other input data 28 and previously processed input data 26 may therefore carry the same content type label 29B.
[0055] The processor 23 may now determine the content type CT2 of the other input data 28, for instance, by reading the content type label 29B of the other input data 28. The processor 23 may read the memory 22 so as to check whether any values are available in the memory which values may be associated with content type CT2. Values that may be available at the memory 22 may be values that have been previously processed, such as, for example, value VSEL that has been selected previously when input data 26 was processed, as discussed above. Additionally or alternatively, values that may be available at the memory 22 may also be values that have been previously stored, for example as a preset of values, by a user.
[0056] Still with reference to the aforementioned example shown in Figure 2, if the processor 23 determines that a value VSEL is available in the memory 22 which value VSEL is associated with content type CT2, then this value VSEL is selected for processing the other input data 28. Accordingly, a simulation of the deduplication process using one or more of the entire range of available values Vi , V2, Vn may be omitted because the value VSEL that yields a result closest to the desired result RD is already available in the memory 22.
[0057] In an example shown in Figure 3, the deduplication process comprises a chunker process 30 to split the input data 35 into chunks 36A, 36B, 36C of variable size, wherein the modifiable parameter 34 represents a minimum chunk size 34A or a maximum chunk size 34B of a chunk.
[0058] The input data 35 is processed in the deduplication process, wherein the deduplication process comprises the chunker process 30. The chunker process 30 may be a part of the deduplication process.
[0059] In Figure 3, there are two options available for processing the input data 35.
The first option, as indicated by the branch 31 A, is to divide the input data 35 into chunks 35A of a minimum size. After a value VSEL for the minimum chunk size has been selected, as indicated by branch 32A, the input data is divided into chunks 36A, 36B, 36C comprising this minimum chunk size.
[0060] The second option, as indicated by the branch 31 B, is to divide the input data 35 into chunks 35B of a maximum size. After a value VSEL for the maximum chunk size has been selected, as indicated by branch 32B, the input data is divided into chunks 36A, 36B, 36C comprising this maximum chunk size.
[0061 ] Regarding the first option, the input data 35A is processed by the chunker process 30. The modifiable parameter 34A represents a minimum chunk size, wherein the values Vi , Vm represent a range of values within the minimum chunk size. A chunk size may, for instance, be represented by a number of Bits, Nibbles or Bytes. For example, a minimum chunk size may vary between a value of 3 Bits and a value of 6 Bits. Depending on the selected value VSEL of the minimum chunk size, the input data 35 may be divided into chunks 36A, 36B, 36C comprising a chunk size corresponding to the selected number of Bits VSEL-
[0062] Regarding the second option, the input data 35B is processed by the chunker process 30. The modifiable parameter 34B represents a maximum chunk size, wherein the values Vm+i , ■■· , Vn represent a range of values within the maximum chunk size. A chunk size may, for instance, be represented by a number of Bits, Nibbles or Bytes. For example, a maximum chunk size may vary between a value of 7 Bits and a value of 10 Bits. A maximum chunk size is greater than a minimum chunk size, wherein the lowest value Vm+i of the range of the maximum chunk size is greater, by at least one unit, than the greatest value Vm of the range of the minimum chunk size.
[0063] Depending on the selected value VSEL of the maximum chunk size, the input data 35 may be divided into chunks 36A, 36B, 36C comprising a chunk size corresponding to the selected number of Bits VSEL-
[0064] In another example, the modifiable parameter is a first modifiable parameter 34A representing a minimum chunk size and the deduplication process comprises a second modifiable parameter 34B representing a maximum chunk size. While the functional principle of this example may be similar to the one described above, with reference to Figure 3, the difference to the above mentioned example is that the deduplication process comprises two modifiable parameters 34A, 34B. Thus, both the minimum chunk size Vi , ... , Vm and the maximum chunk size Vm+i , ... , Vn can be selected together.
[0065] In another example, as shown in Figure 4, the deduplication process comprises a plurality of modifiable parameters 41 , 42, 43, wherein the processing result Rin, R2n, ■· · , Rxn depends on the value Vi„, V2n, Vxn of each of the modifiable parameters 41 , 42, 43, wherein the processor is to perform the process a plurality of times each time with a different value of each of the modifiable parameters 41 , 42, 43 and to obtain a result for each value of each modifiable parameter 41 , 42, 43, and wherein the processor is to select a value of each of the modifiable parameters 41 , 42, 43 associated with a result closest to a desired result as the value of each of the modifiable parameters 41 , 42, 43 to be used in processing the input data.
[0066] For example, the deduplication process may comprise a first modifiable parameter 41 , a second modifiable parameter 42 and a Xth modifiable parameter 43 with one or more modifiable parameters in between.
[0067] The first modifiable parameter 41 may comprise several values Vn, V12, ... ,
V-in. Depending on the value Vn, Vi2, Vin that has been selected for performing the deduplication process, a respective result Rn, R12, Rin may be obtained.
[0068] For example, as shown in Figure 4, if the value Vn is selected for performing the deduplication process, the respective result that may be obtained is result R11. If the value V12 is selected for performing the deduplication process, the respective result that may be obtained is result R12. Stated in more general terms, if the value Vin is selected for performing the deduplication process, the respective result that may be obtained is result Rin, wherein the letter 'n' is a natural number and represents the index of a plurality of values and results, respectively.
[0069] The same applies correspondingly to the second modifiable parameter 42 and to the xth modifiable parameter, as well as to any modifiable parameters in between.
[0070] In an example, the deduplication process comprises a plurality of modifiable parameters 41 , 42, 43. According to the example shown in Figure 4, the deduplication process comprises at least two modifiable parameters 41 , 42, which represent a plurality of modifiable parameters. Accordingly, not all of the modifiable parameters described with reference to and shown in Figure 4 are required in all of the examples.
[0071 ] The processor is to perform the deduplication process a plurality of times, each time with a different value of each of the modifiable parameters 41 , 42, 43. Accordingly, the processor is to perform a simulation of the deduplication process. The processor may obtain a result Rxn for each value Vxn of each modifiable parameter 41 , 42, 43. The processor may compare the results with each other. The processor may also compare the results with a desired result RD.
[0072] For example, the processor may determine that a result closest to a desired result RD may be achieved when the first parameter 41 uses the value Vin and when the second parameter uses the value V2n. Thus, the processor may select these values Vin, 2n for processing the input data in order to obtain a result that is closest to the desired result RD.
[0073] In order to determine the respective values, the processor may, for instance, perform the deduplication process, or the simulation of the deduplication process, respectively, with different combinations of the values of the first modifiable parameter 41 and the second modifiable parameter 42. The values may be combined such that all possible combinations and/or variations are covered.
[0074] Still with respect to Figure 4, it may be possible that each combination of different values of different parameters may yield different results RI D, R2D, RnD. For example, a combination of the value Vn with the value V2i may yield a result RID. A combination of the value Vi2 with the value V22 may yield a result R2D. Stated more generally, a combination of a first value Vin with a second value Vxn may yield a result RnD.
[0075] The processor may compare the results RID, R2D, RnD with the desired result RD. The processor may select that combination of values that yields the result that is closest to the desired result RD. The processor may perform the deduplication process with the selected combination of values.
[0076] As an example, the result R2D may be the result that is closest to the desired result RD- The result R2D is obtained by using the value V12 for the first parameter 41 and the value V22 for the second parameter 42. Accordingly, the processor may use the value Vi2 for the first parameter 41 and the value V22 for the second parameter 42 to process the input data.
[0077] The processor may perform a simulation of the deduplication process before the processor processes the input data. In this simulation, different combinations of values of the modifiable parameters may be used to obtain a respective result, as described above. The processor may compare the respective result RI D, R2D, RnD with the desired result RD. The processor may determine the result that is closest to the desired result RD. The processor may select those values, i.e. that combination of values with which the result closest to the desired result RD was achieved. The processor may use these selected values to process the input data, i.e. to perform the deduplication process as part of an actual deduplication performed subsequent to the performance of the simulation of the deduplication process. [0078] The selected values may be stored in a memory for later use, for instance, at the same site or at a different site.
[0079] As described above with reference to Figure 2, the selected values may be associated with a content type identifier in order to allow the processor to identify the content of other input data 28 that may, for instance, arrive later in time or at a different site.
[0080] Such an example is shown in Figure 5. The difference to the example of
Figure 2 is that the deduplication process may comprise a plurality of parameters, for example, a first parameter 41 and a second parameter 42.
[0081 ] The selected value VSELI of the first parameter 41 and the selected value SEL2 of the second parameter 42 may be stored in the memory 22. As described above, the values VSEU and VSEL2 may have been selected by the processor 23 as they provide a result that is closest to a desired result. For example, the selected value VSEU of the first parameter 41 may correspond to the value V12 and the selected value VSEL2 of the second parameter 42 may correspond to the value V22, wherein the result obtained by using these two parameter values V12 and V22 may be result FV?D. Result R2D may be a result that is closest to a desired result RD.
[0082] The selected values VSELI and VSEL2 may be stored in the memory 22 together with a content type identifier 29x. As described above with reference to Figure 2, the content type identifier 29x may be associated with the content type of the input data that has been processed. For example, if the input data 26, which comprises content CT2, was processed and the values VSEU and VSEL2 have been selected by the processor for processing input data 26, then the content type identifier 29x may be associated with content type CT2.
[0083] If other input data 28 is processed, which other input data 28 may comprise the same content type CT2 that could be indicated by label 29B, then the processor 23 may check whether values, for example VSEU and VSEL2, may be available in the storage 22, which values may be associated with content type CT2, for example by content type identifier 29x. If so, the processor 23 may use these values VSEU and VSEL2 for processing the other input data 28.
[0084] Briefly summarizing, the processor is to process input data of a certain content type by performing a deduplication process. In order to achieve the best deduplication result for this input data, a simulation of the deduplication process is performed prior to the execution of the actual deduplication process. However, such a simulation may be omitted if the memory already contains a value that may lead to the best result. Such a value may be available in the memory if input data containing similar or the same content may have already been processed earlier, and wherein the simulation yielded said value. In other words, it may be sufficient if a simulation is performed when input data containing a certain content type is processed for the first time.
[0085] Figure 6 shows a block diagram that depicts an example of a method for processing input data, which method is implemented by a computing device. The order of the blocks shown in Figure 6 may not be identical to the order in which the method steps may be performed.
[0086] At block 61 input data is received by the computing device.
[0087] Block 62 indicates that a deduplication process is to be performed by the computing device to process the input data. The deduplication process comprises a modifiable parameter and the processing result depends on the value of the modifiable parameter.
[0088] As indicated by block 63, a simulation may be performed prior to performing the actual deduplication process of block 62. The simulation may be performed in that the deduplication process is performed, by the computing device, a plurality of times, each time with a different value of the modifiable parameter. A respective result is obtained for each value.
[0089] At block 64 the value associated with a result closest to a desired result is selected by the computing device as the value to be used in processing the input data in the deduplication process that is to be performed subsequent to the aforementioned simulation of the deduplication process.
[0090] At block 65 the selected value of the modifiable parameter, which value may have been selected during the simulation, is stored in a memory together with a content type identifier.
[0091 ] At block 66 the content type of other input data is compared to the previously stored content type identifier. Other input data may be, for instance, input data that may arrive later in time or at a different site compared to the input data previously processed during the simulation.
[0092] At block 67 the stored parameter value is selected for processing the other input data, if the content type of the other input data corresponds to the stored content type identifier.
[0093] Figure 7 shows a flow chart of an example of such a method.
[0094] At block 71 input data is received. At block 72 the content type of the respective input data is determined. This could, for example, be achieved in that a content type identifier or a content type label 29B, that may be carried with the received input data 26, is read. For example, it is determined that the input data 26 may comprise a content
[0095] At block 73 it is checked whether there might be any value VSEL available that is associated with that content type CT2. For example, the value VSEL may be available in the memory 22. The value VSEL may comprise a content type identifier 29x that is associated with content type CT2. The value VSEL may have been stored during a previous performance of the deduplication process or of a simulation of the deduplication process, or it may have been stored previously as a preset, for example, by a human user.
[0096] If a value VSEL associated with this content type CT2 should be available, as indicated by branch 74, the stored value VSEL is used for processing the input data 26, as indicated by block 75.
[0097] If a value VSEL associated with this content type CT2 should not be available, as indicated by branch 76, a respective value is determined, as indicated by block 77. The determination of the value may, for instance, be achieved by performing a simulation of the deduplication process and selecting the value associated with a result closest to a desired result.
[0098] If a value is selected, this selected value VSEL may be stored in a memory
22 together with a content type identifier 29x that represents the content type CT2 of the input data 26, as indicated by block 78.
[0099] As shown in Figure 8, examples 80 relate to a non-transitory machine- readable storage medium 81 encoded with instructions executable by a processing resource 82 of a computing device 83 to perform methods described herein, in particular to cause the processing resource 82 to perform a method to perform a deduplication process to process input data, wherein the deduplication process comprises a modifiable parameter and wherein a processing result depends on the value of the modifiable parameter.
[00 00] The method is further to perform a simulation of the deduplication process, wherein the deduplication process is performed a plurality of times, each time with a different value of the modifiable parameter, and to obtain a result for each value.
[00101 ] The method is further to select the value associated with a result closest to a desired result as the value to be used in processing the input data.
[00102] The method is further to store the selected value of the modifiable parameter associated with a content type identifier in memory 81.
[00103] The method is further to compare the content type of other input data to the stored content type identifier.
[00 04] The method is further to select the stored parameter value for processing the other input data if the content type of the other input data corresponds to the stored content type identifier.
[00105] It would be appreciated that examples described herein can be realized in the form of hardware, machine readable instructions or a combination or hardware and machine readable instructions. Any such machine readable instructions may be stored in the form of volatile or non-volatile storage such as, for example, a storage device such as a ROM, whether erasable or rewritable or not, or in the form of memory such as, for example, RAM, memory chips device or integrated circuits or an optically or magnetically readable medium such as, for example, a CD, DVD, magnetic disc or magnetic tape. It would be appreciated that these storage devices and storage media are examples of machine readable storage that are suitable for storing a program or programs that, when executed, implement examples described herein.
[00106] All of the features disclosed in the specification (including any accompanying claims, abstract and drawings) and/or all of the features of any method or progress disclosed may be combined in any combination, except combinations where at least some of such features are mutually exclusive. [00107] Each feature disclosed in the specification (including any accompanying claims, abstract and drawings) may be replaced by alternative features serving the same, equivalent or similarly proposed, unless expressly stated otherwise. Thus, unless expressly stated otherwise, each feature disclosed is one example only of a generic series of equivalent or similar features.

Claims

Claims We claim:
1. A computing device comprising: an input to receive input data; a processor to perform a deduplication process to process the input data, wherein the deduplication process comprises a modifiable parameter and wherein a processing result depends on the value of the modifiable parameter; wherein the processor is to perform a simulation of the deduplication process, wherein the deduplication process is performed a plurality of times, each time with a different value of the modifiable parameter, and to obtain a result for each value; wherein the processor is to select the value associated with a result closest to a desired result as the value to be used in processing the input data; and wherein the processor is to store the selected value of the modifiable parameter associated with a content type identifier in memory, compare the content type of other input data to the stored content type identifier, and to select the stored parameter value for processing the other input data if the content type of the other input data corresponds to the stored content type identifier.
2. The computing device of claim 1 , wherein the modifiable parameter has a number of possible values and wherein the processor is to perform the deduplication process with each one of the possible values.
3. The computing device of claim 2, wherein the processor is to perform the deduplication process with different values of the modifiable parameter in a chronological order or in a random order.
4. The computing device of claim 1 , wherein the deduplication process comprises a chunker process to split the input data into chunks of variable size, wherein the modifiable parameter represents a minimum chunk size or a maximum chunk size of a chunk.
5. The computing device of claim 4, wherein the modifiable parameter is a first modifiable parameter representing a minimum chunk size and wherein the deduplication process comprises a second modifiable parameter representing a maximum chunk size.
6. The computing device of claim 1 , wherein the deduplication process comprises a plurality of modifiable parameters, wherein the processing result depends on the value of each of the modifiable parameters, wherein the processor is to perform the process a plurality of times each time with a different value of each of the modifiable parameters and to obtain a result for each value of each modifiable parameter, and wherein the processor is to select a value of each of the modifiable parameters associated with a result closest to a desired result as the value of each of the modifiable parameters to be used in processing the input data.
7. A method implemented by a computing device, the method comprising: receiving input data by the computing device; performing, by the computing device, a deduplication process to process the input data, wherein the deduplication process comprises a modifiable parameter and wherein a processing result depends on the value of the modifiable parameter; performing, by the computing device, a simulation of the deduplication process by performing the deduplication process a plurality of times each time with a different value of the modifiable parameter and obtaining a result for each value; selecting, by the computing device, the value associated with a result closest to a desired result as the value to be used in processing the input data in the deduplication process to be performed subsequent to the simulation of the deduplication process; storing the selected value of the modifiable parameter associated with a content type identifier in memory; comparing the content type of other input data to the stored content type identifier; and selecting the stored parameter value for processing the other input data if the content type of the other input data corresponds to the stored content type identifier.
8. The method of claim 7, wherein the modifiable parameter has a number of possible values and wherein the method comprises performing the deduplication process with each one of the possible values.
9. The method of claim 8, wherein the method comprises performing the deduplication process with different values of the modifiable parameter in a chronological order or in a random order.
10. The method of claim 7, wherein the process comprises a plurality of modifiable parameters, wherein the processing result depends on the value of each of the modifiable parameters, wherein the method comprises performing the process a plurality of times each time with a different value of each of the modifiable parameters and obtaining a result for each value of each modifiable parameter, and selecting a value of each of the modifiable parameters associated with a result closest to a desired result as the value of each of the modifiable parameters to be used in processing the input data.
11. A non-transitory machine-readable storage medium encoded with instructions executable by a processing resource of a computing device to cause the processing resource to perform a method to: perform a deduplication process to process input data, wherein the deduplication process comprises a modifiable parameter and wherein a processing result depends on the value of the modifiable parameter; perform a simulation of the deduplication process, wherein the deduplication process is performed a plurality of times, each time with a different value of the modifiable parameter, and to obtain a result for each value; select the value associated with a result closest to a desired result as the value to be used in processing the input data; store the selected value of the modifiable parameter associated with a content type identifier in memory; compare the content type of other input data to the stored content type identifier; and select the stored parameter value for processing the other input data if the content type of the other input data corresponds to the stored content type identifier.
12. The non-transitory machine-readable storage medium of claim 1 1 , wherein the modifiable parameter has a number of possible values and wherein the processing resource is to perform the deduplication process with each one of the possible values.
13. The non-transitory machine-readable storage medium of claim 11 , wherein the processing resource is to perform the deduplication process with different values of the modifiable parameter in a chronological order or in a random order.
14. The non-transitory machine-readable storage medium of claim 11 , wherein the deduplication process comprises a chunker process to split the input data into chunks of variable size, wherein the modifiable parameter represents a minimum chunk size or a maximum chunk size of a chunk.
15. The non-transitory machine-readable storage medium of claim 11 , wherein the deduplication process comprises a plurality of modifiable parameters, wherein the processing result depends on the value of each of the modifiable parameters, wherein the processor is to perform the process a plurality of times each time with a different value of each of the modifiable parameters and to obtain a result for each value of each modifiable parameter, and wherein the processor is to select a value of each of the modifiable parameters associated with a result closest to a desired result as the value of each of the modifiable parameters to be used in processing the input data.
PCT/EP2015/059394 2015-04-29 2015-04-29 Deduplication process Ceased WO2016173648A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2015/059394 WO2016173648A1 (en) 2015-04-29 2015-04-29 Deduplication process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2015/059394 WO2016173648A1 (en) 2015-04-29 2015-04-29 Deduplication process

Publications (1)

Publication Number Publication Date
WO2016173648A1 true WO2016173648A1 (en) 2016-11-03

Family

ID=53039901

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2015/059394 Ceased WO2016173648A1 (en) 2015-04-29 2015-04-29 Deduplication process

Country Status (1)

Country Link
WO (1) WO2016173648A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114241815A (en) * 2021-11-08 2022-03-25 深圳市瑞达飞行科技有限公司 Computing method and device, electronic equipment and computer readable storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100198797A1 (en) * 2009-02-05 2010-08-05 Wideman Roderick B Classifying data for deduplication and storage
US20110125719A1 (en) * 2009-11-23 2011-05-26 Ocarina Networks Efficient segment detection for deduplication
US20140095439A1 (en) * 2012-10-01 2014-04-03 Western Digital Technologies, Inc. Optimizing data block size for deduplication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100198797A1 (en) * 2009-02-05 2010-08-05 Wideman Roderick B Classifying data for deduplication and storage
US20110125719A1 (en) * 2009-11-23 2011-05-26 Ocarina Networks Efficient segment detection for deduplication
US20140095439A1 (en) * 2012-10-01 2014-04-03 Western Digital Technologies, Inc. Optimizing data block size for deduplication

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114241815A (en) * 2021-11-08 2022-03-25 深圳市瑞达飞行科技有限公司 Computing method and device, electronic equipment and computer readable storage medium

Similar Documents

Publication Publication Date Title
US11669526B2 (en) Parallel processing of data having data dependencies for accelerating the launch and performance of operating systems and other computing applications
US9069659B1 (en) Read threshold determination using reference read threshold
US10305512B2 (en) Encoding method and apparatus
US9136015B2 (en) Threshold adjustment using data value balancing in analog memory device
US8554736B2 (en) Backup method
JP2020513120A5 (en)
CN105513638B (en) Data storage device and data access method thereof
CN106775470B (en) Data storage method and system
US20170002643A1 (en) Stratigraphic Correlation Method And Apparatus Based on Uncertainty
JP2015166724A5 (en)
US10684942B2 (en) Selective application testing
US12597491B2 (en) Method and apparatus for compressing fastq data through character frequency-based sequence reordering
WO2016173648A1 (en) Deduplication process
US9672921B2 (en) Device and method for storing data in a plurality of multi-level cell memory chips
US10924265B2 (en) Blockchain technology
CN111064471A (en) Data processing method and device and electronic equipment
CN110311689A (en) A kind of interpretation method, device and the computer readable storage medium of Polar code
US9928136B2 (en) Message storage in memory blocks using codewords
CN106503010A (en) A kind of method and device of database change write subregion
CN104199929B (en) Method for mutual relation description between metadata
US9543001B1 (en) Programming memory cells
CN109962857B (en) Flow control method, flow control device and computer readable storage medium
CN117290332A (en) A data migration verification method, device, equipment and storage medium
CN103559266A (en) Multi-mode matching method and device
JP2013183737A (en) System and method for processing base sequence in consideration of seed length

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15720067

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15720067

Country of ref document: EP

Kind code of ref document: A1