Composing array codes for power of two and variable block sizes
AssigneeInternational Business Machines Corporation
InventorHenry E. Butterworth
Life of this patent
Estimating the term…
Loading patent…
AssigneeInternational Business Machines Corporation
InventorHenry E. Butterworth
Estimating the term…
A computer-implemented method according to one embodiment includes identifying a block size used by an application, where the block size is a power of two, constructing, utilizing a plurality of instances of a first array code, a single instance of a second array code having a symbol size that matches the block size used by the application, where the symbol size of the second array code is always a power of two, and implementing the second array code within the application.
A computer-implemented method, comprising:
A computer program product for composing array codes for power of two and variable block sizes, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the program instructions executable by a processor to cause the processor to perform a method comprising:
A system, comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes: using…
Using block codes: product codes
Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's: parity data used in redundant arrays of…
Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise: shortening and…
About 12 years 6 months of term left · ends 12 Apr 2039 (estimated)
The present invention relates to data recovery, and more specifically, this invention relates to implementing array codes for target applications.
Array codes are commonly used to provide data recovery services during data transmission and/or storage. However, current array code implementations have various constraints. For example, the shape of current array codes is not convenient for use, as current array codes are based on prime numbers, and commonly used data storage and transmission formats utilize sizes conforming to powers of two. This results in wide array codes that do not allow many erasure recoveries, as well as codes with very large symbol sizes.
A computer-implemented method according to one embodiment includes identifying a block size used by an application, where the block size is a power of two, constructing, utilizing a plurality of instances of a first array code, a single instance of a second array code having a symbol size that matches the block size used by the application, where the symbol size of the second array code is always a power of two, and implementing the second array code within the application.
FIG. 1 illustrates a network architecture, in accordance with one embodiment.
FIG. 2 shows a representative hardware environment that may be associated with the servers and/or clients of FIG. 1, in accordance with one embodiment.
FIG. 3 illustrates a method for composing array codes for power of two and variable block sizes, in accordance with one embodiment.
The following description discloses several preferred embodiments of systems, methods and computer program products for composing array codes for power of two and variable block sizes. Various embodiments provide a method to create a single instance of a second array code having a symbol size that matches a block size used by an application utilizing a plurality of instances of a different array code, where the symbol size of the created array code is always a power of two.
The following description is made for the purpose of illustrating the general principles of the present invention and is not meant to limit the inventive concepts claimed herein. Further, particular features described herein can be used in combination with other described features in each of the various possible combinations and permutations.
Unless otherwise specifically defined herein, all terms are to be given their broadest possible interpretation including meanings implied from the specification as well as meanings understood by those skilled in the art and/or as defined in dictionaries, treatises, etc.