US9158472B2

Hierarchical chunking of objects in a distributed storage system

Summary by NHIP

Journal-based replica placement

The method splits objects into chunks and blocks, storing them in journals matching specific placement policies. Global metadata updates upon journal replication to a second instance, while local metadata remains unchanged.

Claim Score by NHIP

Read claim 1, the broadest

Abstract

Placement of object replicas in a distributed storage system includes, at a first instance, opening a journal for storage of object chunks. Each journal is associated with a single placement policy. An object is received, which comprises a chunk. The object has a placement policy, and the chunk comprises a plurality of storage blocks. The blocks are stored in a journal that matches the placement policy. Global metadata for the object is stored, which includes a list of chunks for the object. Local metadata for the chunk is stored, which includes a block list identifying each block of the plurality of blocks. The local metadata is associated with the journal. The journal is later closed. The journal is subsequently replicated to a second instance according to the placement policy. The global metadata is updated to reflect the replication, whereas the local metadata is unchanged by the replication.

US9158472B2, drawing sheet 1
Sheet 1 of 20

Term

7.5 yearsleft in the term

Expires 9 April 2034, including 103 days of term adjustment.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

20 claims: 3 independent, 17 dependent

  1. 1
    Broadest claimClaim Score 36, narrow(NHIP)A method for managing placement of object replicas in a distributed storage system, comprising:at a first instance of the distributed storage system, having one or more processors and memory, wherein the memory stores one or more programs for execution by the one or more processors: receiving a first object that is associated with a first placement policy, wherein the first placement policy specifies criteria for where replicas of the first object are stored in the distributed storage system;splitting the object into a plurality of object chunks and splitting a first object chunk of the plurality of object chunks into a plurality of blocks;storing the plurality of blocks in a first journal whose associated placement policy matches the first placement policy;storing global metadata for the first object, wherein the global metadata includes a list of the plurality of object chunks, and wherein the list includes a respective identifier for each of the object chunks;storing local metadata for the first object chunk, wherein the local metadata includes a block list identifying each block of the plurality of blocks, and wherein the local metadata is associated with the first journal;replicating the first journal to a second instance of the distributed storage system in accordance with the first placement policy, wherein the global metadata is updated to reflect the replication, whereas the local metadata is unchanged by the replication.
  2. 7
    A method for managing placement of object replicas in a distributed storage system, comprising:at a first instance of the distributed storage system, having one or more processors and memory, wherein the memory stores one or more programs for execution by the one or more processors: opening one or more journals for storage of object chunks, wherein each respective journal is associated with a single respective placement policy;receiving a first object comprising at least a first object chunk, wherein the first object is associated with a first placement policy, and wherein the first object chunk comprises a first plurality of blocks;storing the first plurality of blocks in a first journal whose associated placement policy matches the first placement policy, wherein the first journal stores only blocks for objects whose placement policies match the first placement policy;storing global metadata for the first object, wherein the global metadata includes a first list of object chunks corresponding to the first object, and wherein the first list includes an identifier of the first object chunk;storing local metadata for the first object chunk, wherein the local metadata includes a block list identifying each block of the first plurality of blocks, and wherein the local metadata is associated with the first journal;for the first journal, repeating the receiving and storing operations for a first plurality of objects whose associated placement policies match the first placement policy, until a first termination condition occurs;after the first termination condition occurs, closing the first journal, thereby preventing any additional blocks from being stored in the first journal;and replicating the first journal to a second instance of the distributed storage system in accordance with the first placement policy, wherein the global metadata is updated to reflect the replication, whereas the local metadata is unchanged by the replication.
  3. 18
    A computer system for managing placement of object replicas in a distributed storage system having a plurality of instances, each respective instance comprising:one or more processors;memory;and one or more programs stored in the memory, the one or more programs comprising instructions executable by the one or more processors for: opening one or more journals for storage of object chunks, wherein each respective journal is associated with a single respective placement policy;receiving a first object comprising at least a first object chunk, wherein the first object is associated with a first placement policy, and wherein the first object chunk comprises a first plurality of blocks;storing the first plurality of blocks in a first journal whose associated placement policy matches the first placement policy, wherein the first journal stores only blocks for objects whose placement policies match the first placement policy;storing global metadata for the first object, wherein the global metadata includes a first list of object chunks corresponding to the first object, and wherein the first list includes an identifier of the first object chunk;storing local metadata for the first object chunk, wherein the local metadata includes a block list identifying each block of the first plurality of blocks, and wherein the local metadata is associated with the first journal;for the first journal, repeating the receiving and storing operations for a first plurality of objects whose associated placement policies match the first placement policy, until a first termination condition occurs;after the first termination condition occurs, closing the first journal, thereby preventing any additional blocks from being stored in the first journal;and replicating the first journal to a second instance of the distributed storage system in accordance with the first placement policy, wherein the global metadata is updated to reflect the replication, whereas the local metadata is unchanged by the replication.