×

Transmission time refinement in a storage system

  • US 9,672,110 B1
  • Filed: 09/22/2015
  • Issued: 06/06/2017
  • Est. Priority Date: 09/22/2015
  • Status: Active Grant
First Claim
Patent Images

1. A system, comprising:

  • a storage system comprising a plurality of storage devices, wherein the storage system is configured to store a plurality of data objects according to an erasure encoding technique, wherein each respective data object of the plurality of data objects is stored as a shard group, wherein shards of a respective shard group include respective pluralities of blocks such that blocks of the respective data object can be reconstructed from a particular number of corresponding blocks of the data object from a particular number of storage devices, and wherein each shard of the shard group is stored on a different one of the plurality of storage devices than any other shard of the shard group; and

    a storage manager implemented by one or more hardware processors and configured to;

    receive a request from a client for one of the plurality of data objects;

    maintain connections to a connection group of the storage devices that store respective shards of the data object, wherein the connection group includes a greater number of storage devices than the particular number of storage devices needed to reconstruct blocks of the requested data object;

    request corresponding blocks of the data object from a request group of the storage devices of the connection group, wherein the request group is a subset of the connection group having fewer than all the storage devices of the connection group and having at least the particular number of the storage devices;

    evaluate, based at least in part on performance criteria, performance of the storage devices of the request group in sending the corresponding blocks of the data object;

    modify, based at least in part on evaluating the performance of the request group, membership of the request group to form a new request group using at least one different storage device of the connection group;

    request subsequent corresponding blocks of the data object from the new request group;

    in response to receiving at least the particular number of corresponding blocks from the storage devices of the request group, decode the particular number of corresponding blocks into a reconstructed block of the data object; and

    return the reconstructed block of the data object to the client.

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