EP3433765A1

Methods and apparatus to assign indices and relocate object fragments in distributed storage systems

Abstract

This record has no abstract on file.

Term

10.4 yearsto projected expiry

Projected expiry 15 February 2037, counted from filing; an application has no term until it is granted.

  1. Priority and filed
  2. Published
  3. Today
  4. Projected expiry

25 claims: 12 independent, 13 dependent

  1. 1
    Claims of equivalent WO 2017165020 A1 What Is Claimed Is:1. An apparatus to index fragments of objects, comprising: a fragmenter to encode an object with error correction coding to separate the obj ect into fragments;a node index assigner to create a first index indicative of storage nodes where the fragments of the obj ect are to be stored;and a fragment index assigner to encode a second index into identifiers of the fragments of the object, the second index based on the first index, the fragmenter to store the fragments of the object and the corresponding second index encoded identifiers in the storage nodes based on the first index.
  2. 3
    The apparatus as defined in one of claims 1 or 2, further including a fragment compiler to retrieve fragments of the obj ect from corresponding ones of the storage nodes based on the first index and the second index.
  3. 7
    The apparatus as defined in one of claims 1 or 2, wherein the storage nodes are first storage nodes, and further including a node manager to, when the fragments of the obj ect are redistributed into second storage nodes:identify a first one of the second storage nodes storing a first one of the fragments of the object;identify a second one of the first storage nodes corresponding to the second index encoded in an identifier of the first one of the fragments of the obj ect stored in the first one of the second storage nodes;and move the first one of the fragments of the obj ect from the first one of the second storage nodes to the second one of the first storage nodes.
  4. 9
    A method to index fragments of objects, comprising:encoding, with a processor, an obj ect with error correction coding to separate the object into fragments;creating, with the processor, a first index indicative of storage nodes where the fragments of the obj ect are to be stored;encoding, with the processor, a second index into identifiers of the fragments of the object, the second index based on the first index;and storing, with the processor, the fragments of the object and the corresponding second index encoded identifiers in the storage nodes based on the first index.
  5. 11
    The method as defined in one of claims 9 or 10, further including retrieving fragments of the obj ect from corresponding ones of the first nodes based on the first index and the second index.
  6. 13
    The method as defined in one of claims 9 or 10, further including reconstructing the object from the fragments based on the first index.
  7. 14
    The method as defined in one of claims 9 or 10, further including reconstructing the object from the fragments based on the second index.
  8. 15
    The method as defined in one of claims 9 or 10, wherein the storage nodes are first storage nodes, and further including, when the fragments of the obj ect are redistributed into second storage nodes:identifying a first one of the second storage nodes storing a first one of the fragments of the obj ect;identifying a second one of the first storage nodes corresponding to the second index encoded in an identifier of the first one of the fragments of the obj ect stored in the first one of the second storage nodes;and moving the first one of the fragments of the object from the first one of the second storage nodes to the second one of the first storage nodes.
  9. 18
    At least one tangible computer readable storage medium comprising instructions that, when executed, cause at least one machine to at least perform the method of any of claims 9 - 17.
  10. 19
    An apparatus to index fragments of objects, comprising:means for encoding an obj ect with error correction coding to separate the obj ect into fragments;means for creating a first index indicative of storage nodes where the fragments of the object are to be stored;means for encoding a second index into identifiers of the fragments of the object, the second index based on the first index;and means for storing the fragments of the object and the corresponding second index encoded identifiers in the storage nodes based on the first index.
  11. 21
    The apparatus as defined in one of claims 19 or 20, further including means for retrieving fragments of the obj ect from corresponding ones of the first nodes based on the first index and the second index.
  12. 23
    The apparatus as defined in one of claims 19 or 20, further including:means for reconstructing the object from the fragments based on the first index;and means for reconstructing the object from the fragments based on the second index.
  13. 24
    The apparatus as defined in one of claims 19 or 20, wherein the storage nodes are first storage nodes, and further including, when the fragments of the obj ect are redistributed into second storage nodes:means for identifying a first one of the second storage nodes storing a first one of the fragments of the obj ect;means for identifying a second one of the first storage nodes corresponding to the second index encoded in an identifier of the first one of the fragments of the object stored in the first one of the second storage nodes;and means for moving the first one of the fragments of the obj ect from the first one of the second storage nodes to the second one of the first storage nodes.