Back to results
US 9,467,294 B2Granted
Methods and systems for storing and retrieving data
AssigneeSymbolic Io Corporation
InventorBrian Ignomirello
Life of this patent
Estimating the term…
Abstract
Through use of the technologies of the present invention, one is able to store and to retrieve data efficiently. One may realize these efficiencies by coding the data and storing coded data that is of a smaller size than original data.
Claims17
A method for storing data on a non-cache recording medium comprising:
- i. receiving an I/O stream of N Bytes;
- ii. fragmenting the N Bytes into fragmented units of X Bytes;
- iii. applying a cryptographic hash function to each fragmented unit of X Bytes to form a generated hash function value for each fragmented unit of X Bytes;
- iv. encoding each hash function value for storage through use of a bit marker table to generate a bit marker for each hash function value for storage and storing each bit marker in the non-cache recording medium;
- v. accessing a correlation file, wherein the correlation file associates a stored hash function value of Y bits with each of a plurality of stored sequences of X Bytes and
- (a) if the generated hash function value for a fragmented unit of X Bytes is in the correlation file, using the stored hash function value of Y bits for storage on a non-cache recording medium;
- and
- (b) if the generated hash function value for the fragmented unit of X Bytes is not in the correlation file, then storing the generated hash function value of Y bits with the fragmented unit of X Bytes in the correlation file and using the generated hash function value for storage on the non-cache recording medium;
- vi. applying a conflict resolution module, wherein if the conflict resolution module determines that for a fragmented unit of X Bytes, a hash function value is generated that is same as a stored hash function value in the correlation file, but the fragmented unit of X Bytes is different from the X Bytes associated with the stored hash function value, then
- (a) associating different Z bits with the stored hash function value and the generated hash function value.
7 more elements
A method for storing data on a non-cache recording medium comprising:
- i. receiving an I/O stream of N Bytes;
- ii. fragmenting the N Bytes into fragmented units of X Bytes;
- iii. associating a cryptographic hash function value with each fragmented unit of X Bytes, wherein said associating comprises accessing a correlation file, wherein the correlation file associates a stored hash function value of Y bits with each of a plurality of stored sequences of X Bytes;
- iv. encoding each hash function value for storage through use of a bit marker table to generate a bit marker for each hash function value for storage and storing each bit marker in a non-cache recording medium;
- and
- (a) if the sequence of fragmented unit of X Bytes is in the correlation file using the stored hash function value of Y bits for storage on the non-cache recording medium;
- and
- (b) if the sequence of fragmented unit of X Bytes is not in the correlation file, then storing a new hash function value of Y bits with the fragmented unit of X Bytes in the correlation file and using the new hash function value of Y bits for storage on the non-cache recording medium;
- v. applying a conflict resolution module, wherein if the conflict resolution module determines that for a fragmented unit of X Bytes, a hash function value is generated that is same as a stored hash function value in the correlation file, but the fragmented unit of X Bytes is different from the X Bytes associated with the stored hash function value, then
- (a) associating different Z bits with the stored hash function value and the generated hash function value.
7 more elements
A method for storing data on a non-cache recording medium comprising:
- i. receiving an I/O stream of N Bytes;
- ii. applying a cryptographic hash function value algorithm to each unit of N Bytes to form a generated hash function value for each unit of N Bytes;
- iii. encoding each hash function value for storage through use of a bit marker table to generate a bit marker for each hash function value for storage and storing each bit marker in a non-cache recording medium;
- iv. accessing a correlation file, wherein the correlation file associates a stored hash function value of Y bits with each of a plurality of stored sequences of N Bytes and
- (a) if the generated hash function value for the unit of N Bytes is in the correlation file, using the stored hash function value of Y bits for storage on a non-cache recording medium;
- and
- (b) if the generated hash function value for the unit of N Bytes is not in the correlation file, then storing the generated hash function value of Y bits with the unit of N Bytes in the correlation file and using the generated hash function value for storage on the non-cache recording medium;
- v. applying a conflict resolution module, wherein if the conflict resolution module determines that for a fragmented unit of X Bytes, a hash function value is generated that is same as a stored hash function value in the correlation file, but the fragmented unit of X Bytes is different from the X Bytes associated with the stored hash function value, then
- (a) associating different Z bits with the stored hash function value and the generated hash function value.
6 more elements
Dependencies are inferred from the claim text.