Multi-site data redundancy
First Claim
1. A method of storing data, comprising:
- receiving or generating first data at a first site of a plurality of data sites, wherein the first site includes a plurality of storage devices;
encoding, at the first site, in a first encoding process, the first data using erasure encoding to provide first encoded data;
separating the first encoded data into a plurality of first components;
distributing, from the first site, the first components among at least two separate data sites of the plurality of data sites, the at least two separate data sites being different from the first site;
encoding, at the first site, in a second encoding process, the first data using erasure encoding to provide second encoded data;
separating the second encoded data into a plurality of second components; and
storing, locally at the first site, the second components of the second encoded data among the plurality of storage devices of the first site, wherein the first encoding process and the plurality of first components depend on a number of available data sites of the plurality of data sites that are available to receive first component transmissions from the first site, and wherein the second encoding process and the plurality of second components depend on a number of available storage devices of the first site that are available to store second components.
11 Assignments
0 Petitions
Accused Products
Abstract
Storing data includes encoding the data using an erasure encoding to provide encoded data, separating the encoded data into a number of components, and providing each of the components to separate data sites. The data may be encoded using a Reed/Solomon encoding. The data may be encoded using a 3-1 Reed/Solomon encoding and the encoded data may be separated into four components that are provided to four separate sites. The data may be encoded by a site that receives the data prior to encoding. The data may be encoded by a client that provides the data to a plurality of sites coupled thereto. Storing data may also include each of the separate data sites providing an additional encoding for the components. The data and the components may be encoded using a Reed/Solomon encoding.
20 Citations
21 Claims
-
1. A method of storing data, comprising:
-
receiving or generating first data at a first site of a plurality of data sites, wherein the first site includes a plurality of storage devices; encoding, at the first site, in a first encoding process, the first data using erasure encoding to provide first encoded data; separating the first encoded data into a plurality of first components; distributing, from the first site, the first components among at least two separate data sites of the plurality of data sites, the at least two separate data sites being different from the first site; encoding, at the first site, in a second encoding process, the first data using erasure encoding to provide second encoded data; separating the second encoded data into a plurality of second components; and storing, locally at the first site, the second components of the second encoded data among the plurality of storage devices of the first site, wherein the first encoding process and the plurality of first components depend on a number of available data sites of the plurality of data sites that are available to receive first component transmissions from the first site, and wherein the second encoding process and the plurality of second components depend on a number of available storage devices of the first site that are available to store second components. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A non-transitory computer-readable medium having software, the software comprising:
-
executable code that receives or generates first data at a first site of a plurality of data sites, wherein the first site includes a plurality of storage devices; executable code that encodes, at the first site, in a first encoding process, the first data using erasure encoding to provide first encoded data; executable code that separates the first encoded data into a plurality of first components; executable code that distributes, from the first site, the first components among at least two separate data sites of the plurality of data sites, the at least two separate data sites including a second site and a third site, the second site and the third site being different from the first site; executable code that encodes, at the first site, in a second encoding process, the first data using erasure encoding to provide second encoded data; executable code that separates the second encoded data into a plurality of second components; and executable code that stores, locally at the first site, the second components of the second encoded data among the plurality of storage devices of the first site, wherein the first encoding process and the plurality of first components depend on a number of available data sites of the plurality of data sites that are available to receive first component transmissions from the first site, and wherein the second encoding process and the plurality of second components depend on a number of available storage devices of the first site that are available to store second components. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
Specification