Multicast collaborative erasure encoding and distributed parity protection
First Claim
1. A method of distributed parity protection of a chunk stored in an object storage cluster, the method comprising:
- performing a process including sending a roll call request to store the chunk in a plurality of erasure-encoded slices at different storage servers in the object storage cluster, wherein the plurality of erasure-encoded slices include a plurality of data stripes and at least one parity stripe, wherein the roll call request is multicast to a sub-group of the plurality of storage servers, and wherein the roll call request identifies the chunk and requests identification of the erasure-encoded slices which are stored at the storage server receiving the request;
each storage server in the sub-group multicasting a roll-call inventory response to the sub-group, wherein the roll-call inventory response identifies which, if any, of the erasure-encoded slices are stored at the storage server which is responding;
collecting the roll-call inventory responses to the roll call request;
determining that a data stripe of the plurality of data stripes is lost;
determining surviving erasure-encoded slices of the plurality of erasure-encoded slices;
grouping the surviving erasure-encoded slices into a first set of pairs, wherein a first storage server holding a first slice of each pair sends the first slice to a second storage server holding a second slice of the pair; and
operating on first and second slices of each pair in the first set of pairs to generate a set of resultant slices, wherein the second storage server applies an operation on the first and second slices to generate a resultant slice.
1 Assignment
0 Petitions
Accused Products
Abstract
The present disclosure provides methods and systems for multicast collaborative erasure encoding and methods and systems for distributed parity protection. One embodiment relates to a method of multicast collaborative erasure encoding of a chunk stored in a distributed object storage cluster. A roll-call request is multicast to every storage server in a negotiating group for the chunk. Roll-call inventory responses are generated and multicast by every storage server in the negotiating group. The roll-call inventory responses are collected by every storage server in the negotiating group from other storage servers in the negotiating group to form a set of roll-call inventory responses. A logical evaluation of the set of roll-call inventory responses may then be performed by every storage server in the negotiating group. Other embodiments, aspects and features are also disclosed.
-
Citations
10 Claims
-
1. A method of distributed parity protection of a chunk stored in an object storage cluster, the method comprising:
-
performing a process including sending a roll call request to store the chunk in a plurality of erasure-encoded slices at different storage servers in the object storage cluster, wherein the plurality of erasure-encoded slices include a plurality of data stripes and at least one parity stripe, wherein the roll call request is multicast to a sub-group of the plurality of storage servers, and wherein the roll call request identifies the chunk and requests identification of the erasure-encoded slices which are stored at the storage server receiving the request; each storage server in the sub-group multicasting a roll-call inventory response to the sub-group, wherein the roll-call inventory response identifies which, if any, of the erasure-encoded slices are stored at the storage server which is responding; collecting the roll-call inventory responses to the roll call request; determining that a data stripe of the plurality of data stripes is lost; determining surviving erasure-encoded slices of the plurality of erasure-encoded slices; grouping the surviving erasure-encoded slices into a first set of pairs, wherein a first storage server holding a first slice of each pair sends the first slice to a second storage server holding a second slice of the pair; and operating on first and second slices of each pair in the first set of pairs to generate a set of resultant slices, wherein the second storage server applies an operation on the first and second slices to generate a resultant slice. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A distributed object storage system with distributed parity protection, the system comprising:
-
a network; and a plurality of storage servers communicatively interconnected by the network, wherein the plurality of storage servers includes executable code that performs steps including; performing a process including sending a roll call request to store a chunk in a plurality of erasure-encoded slices at different storage servers, wherein the plurality of erasure-encoded slices include a plurality of data stripes and at least one parity stripe, wherein the roll call request is multicast to a sub-group of the plurality of storage servers, and wherein the roll call request identifies the chunk and requests identification of the erasure-encoded slices which are stored at the storage server receiving the request; each storage server in the sub-group multicasting a roll-call inventory response to the sub-group, wherein the roll-call inventory response identifies which, if any, of the erasure-encoded slices are stored at the storage server which is responding; collecting the roll-call inventory responses to the roll call request; determining that a data stripe of the plurality of data stripes is lost; determining surviving erasure-encoded slices of the plurality of erasure-encoded slices; grouping the surviving erasure-encoded slices into a first set of pairs by sending a first erasure-encoded slice of each pair from a first storage server to a second storage server that holds a second erasure-encoded slice of each pair; and operating on first and second slices of each pair in the first set of pairs to generate a set of resultant slices at the second storage server. - View Dependent Claims (7, 8, 9, 10)
-
Specification