×

Hierarchical, distributed object storage system

  • US 8,433,849 B2
  • Filed: 12/23/2011
  • Issued: 04/30/2013
  • Est. Priority Date: 12/27/2010
  • Status: Expired due to Fees
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, which is 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;

    supplemented witha 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, enabling said data object to 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, and 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 that is 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;

    each of said plurality of redundant storage elements comprising a unique storage element identifier, said storage element identifier comprising;

    a first hierarchy level identifier, which provides an identifier for the storage node comprising said storage element identified by said storage element identifier; and

    a second hierarchy level identifier, which provides an identifier for a predetermined selection of a plurality of storage nodes comprising said storage element identified by said storage element identifier; and

    said spreading module causing a selection of said number of said storage elements to be larger or equal to said desired spreading width by a spreading policy that comprises rules for selecting storage elements as a function of at least one of said first hierarchy level identifier and said second hierarchy level identifier.

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