IP Library Granted Patent US 9,135,136
Granted Patent B2
US 9,135,136 · App. 14/154,442 · Granted Sep 15, 2015

Object storage system for an unreliable storage medium

Inventors: Frederik De Schrijver (Wenduine, BE); Romain Raymond Agnes Slootmaekers (Heverlee, BE); Bastiaan Stougie (Melle, BE); Joost Yervante Damad (Hulshout, BE); Wim De Wispelaere (Ghent, BE); Wouter Van Eetvelde (Sint-Amandsberg, BE); Bart De Vylder (Sinaai, BE)
Assignee: Amplidata NV
G06F11/3409G06F3/0614G06F11/1076G06F17/30283G06F11/2094G06F2211/1028
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,135,136
App. No.
14/154,442
Granted
Sep 15, 2015
Kind
B2
Abstract

A method and computer device for storage and retrieval of a data object on a storage medium. The method includes steps of disassembling the data object into a predetermined number of redundant sub blocks, storing the redundant sub blocks on the storage medium, retrieving at least a predetermined multiple of a minimal spreading requirement of the redundant sub blocks from the storage medium, and assembling the data object from any combination of a particular number of the redundant sub blocks, the particular number corresponding to a predetermined multiple of a minimal spreading requirement. The computer device includes modules for performing the steps.

Claims (43)

1. A computer device for storage and retrieval of a data object on a storage medium, the computer device having a processor and memory and comprising:

an encoding module configured to disassemble a data object into a predetermined number of redundant sub blocks, the data object comprising a data object identifier in form of the predetermined number of redundant sub blocks comprising the data object identifier, the predetermined number of redundant sub blocks corresponding to a predetermined multiple of a desired spreading width, the desired spreading width consisting of the sum of:

(a) a minimal spreading requirement that when multiplied with the predetermined multiple corresponds to a minimal number of sub blocks of the data object which are not allowed to fail; and

(b) a maximal concurrent failures tolerance that when multiplied with the predetermined multiple corresponds to a number of sub blocks of the data object which are allowed to fail concurrently;

each one of the redundant sub blocks comprising:

(a) encoded data of equal size of the data object divided by a factor equal to the predetermined multiple of the minimal spreading requirement; and

(b) decoding data, enabling the data object to be decoded from any combination of a particular number of the redundant sub blocks, the particular number corresponding to the predetermined multiple of the minimal spreading requirement;

a spreading module configured to store the predetermined number of the redundant sub blocks on the storage medium;

a clustering module configured to retrieve at least the predetermined multiple of the minimal spreading requirement of the redundant sub blocks from the storage medium; and

a decoding module configured to assemble the data object from any combination of the particular number of the redundant sub blocks, the particular number corresponding to the predetermined multiple of the minimal spreading requirement.

2. The computer device according to claim 1 , wherein the storage medium is segmented into at least the desired spreading width of different sections, the spreading module further being configured to store the predetermined number of the redundant sub blocks on a number of the sections of the storage medium that is larger or equal to the desired spreading width, the clustering module further being configured to retrieve at least the predetermined multiple of the minimal spreading requirement of the redundant sub blocks from the sections of the storage medium.

3. The computer device according to claim 2 , wherein the storage medium is a storage medium selected from the group consisting of:

a magnetic storage medium; a flash drive; an optical storage medium; a holographic storage medium; and a quantum information storage medium.

4. The computer device according to claim 3 , wherein the magnetic storage medium is a magnetic tape or disk drive.

5. The computer device according to claim 1 , wherein the storage medium is a storage medium selected from the group consisting of:

a magnetic storage medium; a flash drive; an optical storage medium; a holographic storage medium; and a quantum information storage medium.

6. The computer device according to claim 5 , wherein the magnetic storage medium is a magnetic tape or disk drive.

7. A method for storage and retrieval of a data object on a storage medium, the data object having a size, the method comprising:

disassembling the data object into a predetermined number of redundant sub blocks, the predetermined number of redundant sub blocks corresponding to a predetermined multiple of a desired spreading width, the desired spreading width consisting of the sum of: (a) a minimal spreading requirement that when multiplied with the predetermined multiple corresponds to a minimal number of sub blocks of the data object which are not allowed to fail, and (b) a maximal concurrent failures tolerance that when multiplied with the predetermined multiple corresponds to a number of sub blocks of the data object which are allowed to fail concurrently; each one of the redundant sub blocks comprising: (a) encoded data of equal size of the data object divided by a factor equal to the predetermined multiple of the minimal spreading requirement; and (b) decoding data, enabling the data object to be decoded from any combination of a particular number of the redundant sub blocks, the particular number corresponding to the predetermined multiple of the minimal spreading requirement;

storing the predetermined number of redundant sub blocks on the storage medium;

retrieving at least the predetermined multiple of the minimal spreading requirement of the redundant sub blocks from the storage medium; and

assembling the data object from any combination of the particular number of the redundant sub blocks, the particular number corresponding to the predetermined multiple of the minimal spreading requirement.

8. The method recited in claim 7 , wherein

disassembling the data object into the predetermined number of redundant sub blocks comprises:

calculating each redundant sub block by means of a predetermined combination of XOR operations on intermediate data blocks;

generating a Cyclic Redundancy Check (CRC) for each of the intermediate data blocks;

calculating a predetermined number of CRCs of the redundant sub blocks by applying the predetermined combination of XOR operations to the respective CRCs of the intermediate data blocks; and

storing the predetermined number of redundant sub blocks on the storage medium comprises storing the predetermined number of CRCs together with their corresponding redundant sub blocks on the storage medium.

9. The method recited in claim 8 , wherein

retrieving at least the predetermined multiple of the minimal spreading requirement of the redundant sub blocks comprises retrieving the respective CRCs of the redundant sub blocks; and

assembling the data object from any combination of the particular number of the redundant sub blocks comprises:

assembling the data object from intermediate data blocks which are generated from the redundant sub blocks by means of the predetermined combination of XOR operations; and

calculating the CRCs of the intermediate data blocks by applying the predetermined combination of XOR operations to the respective CRCs of the redundant sub blocks.

10. The method recited in claim 8 , wherein assembling the data object from any combination of the particular number of the redundant sub blocks comprises:

forming the data object from a concatenation of a plurality of the intermediate data blocks; and

calculating a CRC of the data object from the CRCs of the respective intermediate data blocks.

11. A computer device configured to be used for storage and retrieval of a data object, the computer device comprising:

a processor; and

memory having stored thereon instructions that when processed by the processor cause a method for storage and retrieval of a data object on an unreliable electronic storage medium to be performed, the method comprising:

disassembling the data object into a predetermined number of redundant sub blocks, the predetermined number of redundant sub blocks corresponding to a predetermined multiple of a desired spreading width, the desired spreading width consisting of the sum of: (a) a minimal spreading requirement that when multiplied with the predetermined multiple corresponds to a minimal number of sub blocks of the data object which are not allowed to fail, and (b) a maximal concurrent failures tolerance that when multiplied with the predetermined multiple corresponds to a number of sub blocks of the data object which are allowed to fail concurrently; each one of the redundant sub blocks comprising: (a) encoded data of equal size of the data object divided by a factor equal to the predetermined multiple of the minimal spreading requirement; and (b) decoding data, enabling the data object to be decoded from any combination of a particular number of the redundant sub blocks, the particular number corresponding to the predetermined multiple of the minimal spreading requirement;

storing the predetermined number of redundant sub blocks on the storage medium;

retrieving at least the predetermined multiple of the minimal spreading requirement of the redundant sub blocks from the storage medium; and

assembling the data object from any combination of the particular number of the redundant sub blocks, the particular number corresponding to the predetermined multiple of the minimal spreading requirement.

Assignments (6)
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2018
From: AMPLIDATA NV
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046739/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2014
From: DE SCHRIJVER, FREDERIK; SLOOTMAEKERS, ROMAIN RAYMOND AGNES; STOUGIE, BASTIAAN; DAMAD, JOOST YERVANTE; DE WISPELAERE, WIM; VAN EETVELDE, WOUTER; DE VYLDER, BART
To: AMPLIDATA NV
Reel/Frame 032442/0441 →
Continuity (4)
Continuation 13976061
Provisional Application 61427330 · Dec 27, 2010
Provisional Application 61427377 · Dec 27, 2010
Related Publication 20140129881A1 · May 8, 2014