Efficient high availability storage systems
First Claim
Patent Images
1. A server configured to form part of a data protection group, wherein the server comprises:
- a memory;
a transceiver configured to receive a request to store a data file from another device; and
a processor coupled to the memory and the transceiver and configured to;
acquire the request to store the data file,write the data file to a container in the memory; and
encode contents of the container when the container becomes full to generate a plurality of encoded blocks,wherein the transceiver is further configured to;
distribute the plurality of encoded blocks over peer servers in the data protection group.
1 Assignment
0 Petitions
Accused Products
Abstract
A server configured to form part of a data protection group, wherein the server comprises a memory, a transceiver configured to receive a request to store a data file from another device, and a processor coupled to the memory and the transceiver and configured to acquire the request to store a data file, write the data file to a container in the memory, and encode the container contents when the container becomes full to generate a plurality of encoded blocks, wherein the transceiver is further configured to distribute the plurality of encoded blocks over peer servers in the data protection group.
-
Citations
20 Claims
-
1. A server configured to form part of a data protection group, wherein the server comprises:
-
a memory; a transceiver configured to receive a request to store a data file from another device; and a processor coupled to the memory and the transceiver and configured to; acquire the request to store the data file, write the data file to a container in the memory; and encode contents of the container when the container becomes full to generate a plurality of encoded blocks, wherein the transceiver is further configured to; distribute the plurality of encoded blocks over peer servers in the data protection group. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An apparatus comprising:
-
a memory configured to store a data block and a coding matrix for encoding the data block; a cache; and a processor coupled to the cache and the memory, wherein the processor is configured to; determine a size of the coding matrix; determine a size of a submatrix of the data block such that the sum of the size of the coding matrix and the size of the submatrix is smaller than the size of the cache; request that the submatrix of the data block and the coding matrix be written to the cache from the memory, wherein the cache is configured to store the submatrix of the data block and the coding matrix; and compute a portion of an encoded block by selecting at least two rows of the submatrix of the data block and performing binary operations on the at least two rows, wherein the at least two rows are selected according to elements of a first submatrix of the coding matrix. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A server configured to form part of a data protection group, wherein the server comprises:
-
a transceiver configured to request a failed server'"'"'s list of containers from at least one location node; and a processor coupled to the transceiver and configured to; select a portion of the list of containers for recovery, wherein the transceiver is further configured to transmit a plurality of requests to a plurality of servers in the data protection group, and wherein the requests are collectively for all coded blocks corresponding to a container in the portion of the list. - View Dependent Claims (13, 14, 15)
-
-
16. A method comprising:
-
generating a graph comprising a starting node and a plurality of nodes, where each of the plurality of nodes corresponds to a different row of a coding matrix used to encode data in a container, wherein an edge from the starting node to each node in the plurality of nodes is a number of ones of the corresponding row of the coding matrix; adding edges between all pairs of nodes in the plurality of nodes to the graph, wherein an edge from a first node to a second node in each pair of nodes in the plurality of nodes is the number of differences between the corresponding two rows of the coding matrix; determining a minimum spanning tree from the graph; and adjusting the coding matrix based on the minimum spanning tree. - View Dependent Claims (17, 18, 19, 20)
-
Specification