Systems and methods for distributed storage

  • US 9,542,466 B2
  • Filed: 03/15/2013
  • Issued: 01/10/2017
  • Est. Priority Date: 05/10/2012
  • Status: Active Grant
  • ×
    • Pin Icon | RPX Insight
    • Pin
First Claim
Patent Images

1. A method for distributed storage using a plurality of computing devices communicatively coupled via a network, comprising:

  • storing an electronic file in a local storage layer of one of the plurality of computing devices;

    asynchronously transmitting the electronic file stored in the local storage layer of one of the plurality of computing devices, in portions, over the network to others of the plurality of computing devices such that the electronic file is stored across the other computing devices in a distributed storage layer;

    asynchronously transmitting the electronic file stored in the distributed storage layer over the network to a cloud storage layer such that the electronic file is mirrored in the cloud storage layer;

    storing in the local storage layer of each of the plurality of computing devices, for each electronic file stored in the distributed storage layer, metadata having pointers to locations of the portions the electronic files stored in the local storage layer and distributed storage layer,wherein asynchronously transmitting the electronic file stored in the local storage layer of one of the plurality of computing devices includes;

    partitioning the electronic file into fixed or variable sized portions;

    hashing the portions onto the storage devices of the other computing devices, via the network;

    updating the metadata to include pointers to the hashed portions'"'"' locations; and

    transmitting, via the network, the metadata to the other computing devices using a gossip protocol; and

    storing and retrieving an edited version of the electronic file, wherein storing includes, at one of the plurality of computing devices;

    comparing the edited version with the electronic file to generate a diff file, the diff file containing differences between the edited version and the electronic file;

    partitioning the diff file into fixed or variable sized portions;

    hashing the portions of the diff file onto the storage devices of the other computing devices, via the network;

    updating the metadata to include pointers to the locations of the hashed portions of the diff file;

    transmitting, via the network, the metadata to the other computing devices using a gossip protocol, andwherein retrieving the edited version at one of the plurality of computing devices, comprises;

    determining locations of portions of the electronic file and portions of the diff file from the metadata;

    retrieving the portions of the electronic file and the diff file from said locations, via the network; and

    assembling the edited version based on the retrieved portions of the electronic file and the diff file on the local storage layer.

View all claims
    ×
    ×

    Thank you for your feedback

    ×
    ×