Patent ID: 8683294
Filing Date: 2014-03-25
Classification: H03M

Abstract:
1. A method performed by one or more computers, the method comprising: receiving a first block of data chunks and a second block of data chunks; determining that data from the first block is specified to be stored at a first group of storage nodes and available for access from the first group of storage nodes without access to a second group of storage nodes or a third group of storage nodes, and that data from the second block is specified to be stored at the second group of storage nodes and available for access from the second group of storage nodes without access to the first group of storage nodes or the third group of storage nodes; storing the first block of data chunks at the first group of storage nodes and the second block of data chunks at the second group of storage nodes; and storing a block of code chunks at the third group of storage nodes, wherein each code chunk is generated using an error-correcting code and corresponding data chunks from the first and second blocks, wherein each of the first, second and third groups of storage nodes is within a respective different data center in a different geographic location, and wherein determining that data from the first block is specified to be stored at a first group of storage nodes comprises determining that a geographic location is specified for the data and determining that the geographic location specified for the data is geographically closer to the first group of storage nodes than the second group of storage nodes.