×

Storage of data in a distributed storage system

  • US 9,747,322 B2
  • Filed: 10/03/2014
  • Issued: 08/29/2017
  • Est. Priority Date: 02/09/2010
  • Status: Active Grant
First Claim
Patent Images

1. A distributed storage system for storing blobs, comprising:

  • a plurality of local instances, wherein each respective local instance includes a plurality of server computers, having memory and one or more processors storing one or more programs for execution by the one or more processors, and wherein at least a subset of the local instances are at physically distinct geographic locations; and

    a plurality of global instances distinct from the local instances, wherein each respective global instance includes a plurality of server computers, having memory and one or more processors storing one or more programs for execution by the one or more processors;

    wherein each blob stored in the distributed storage system has corresponding metadata, and wherein the metadata includes information identifying a set of one or more local instances or global instances where the respective blob is stored;

    wherein each respective local instance;

    stores data for a respective set of blobs in a plurality of data stores having a plurality of distinct data store types, wherein the respective set of blobs is non-empty and is a subset of all blobs stored in the distributed storage system; and

    stores the metadata for the respective set of blobs in a metadata store distinct from the data stores;

    wherein each respective global instance stores the metadata for all blobs stored at all local instances; and

    wherein one global instance has a location assignment daemon, and wherein for each blob the location assignment daemon;

    determines locations of respective local instances currently storing replicas of the blob;

    determines a number of target replica locations for the blob according to a respective placement policy assigned to the blob; and

    upon determining the respective local instances currently storing replicas of the blob are fewer than the target number of replica locations, issuing a replication command to a first local instance to create a new replica of the blob at a second instance in accordance with the respective placement policy.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×