×

Distributed object storage system

  • US 8,386,840 B2
  • Filed: 10/28/2011
  • Issued: 02/26/2013
  • Est. Priority Date: 12/27/2010
  • Status: Active Grant
First Claim
Patent Images

1. A distributed object storage system, comprising:

  • a plurality of redundant storage elements, operable to store and retrieve a data object comprising a data object identifier in the form of a predetermined number of redundant sub blocks comprising said data object identifier, said predetermined number corresponding to a predetermined multiple of a desired spreading width, wherein said desired spreading width consists of the sum of;

    a minimal spreading requirement, corresponding to the minimal number of storage elements that must store sub blocks of said data object and are not allowed to fail; and

    a maximal concurrent failures tolerance, corresponding to the number of storage elements that must store sub blocks of said data object and are allowed to fail concurrently;

    each one of said redundant sub blocks comprising;

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

    decoding data, such that said data object can be decoded from any combination of said redundant sub blocks of which the number corresponds to predetermined multiple of said minimal spreading requirement;

    a plurality of storage nodes each comprising a share of said plurality of redundant storage elements; and

    at least one controller node, operably connected to or comprised within said storage nodes when storing or retrieving said data object, comprising;

    an encoding module operable to disassemble said data object into said predetermined number of redundant sub blocks;

    a spreading module operable to store said predetermined number of said redundant sub blocks on a number of said storage elements larger or equal to said desired spreading width;

    a clustering module operable to retrieve at least said predetermined multiple of said minimal spreading requirement of said redundant sub blocks from a plurality of said storage elements; and

    a decoding module operable to assemble said data object from any combination of said redundant sub blocks of which the number corresponds to said predetermined multiple of said minimal spreading requirement,a monitoring agent, operably connected to said storage nodes when monitoring said data object, and operable to;

    provide a repair data object identifier of a repair data object, wherein said repair data object identifier corresponds to said data object identifier and said repair data object corresponds to said data object when said data object is not correctly stored in said distributed object storage system; and

    subsequently create a repair task comprising said repair object identifier,and wherein;

    the distributed object storage system further comprises a maintenance agent operably connected to said controller node when repairing said repair data object, and operable to perform the following steps when executing said repair task;

    said maintenance agent determining said repair data object identifier comprised within said repair task;

    said maintenance agent instructing said clustering module to retrieve said predetermined number of sub blocks comprising said repair data object identifier, said clustering module subsequently retrieving a number of collected sub blocks equal to or greater then said predetermined multiple of said minimal spreading requirement;

    said maintenance agent determining a number of missing sub blocks which corresponds to the number of sub blocks said clustering module is not able to collect;

    said maintenance agent instructing said decoding module to assemble said repair data object from said number of collected sub blocks;

    said maintenance agent instructing said encoding module to disassemble said repair data object into a specific number of repair sub blocks, said specific number being equal to or greater than said number of missing sub blocks and less then said predetermined number of sub blocks; and

    said maintenance agent instructing said spreading module to store said number of repair sub blocks, said spreading module subsequently storing said number of repair sub blocks, such that said repair sub blocks and said collected sub blocks are stored on a number of said storage elements that is larger or equal to said desired spreading width.

View all claims
  • 8 Assignments
Timeline View
Assignment View
    ×
    ×