MULTICAST COLLABORATIVE ERASURE ENCODING AND DISTRIBUTED PARITY PROTECTION
First Claim
1. A method of multicast collaborative erasure encoding of a chunk stored in a distributed object storage cluster, the method comprising:
- multicasting a roll-call request to every storage server in a negotiating group for the chunk;
generating and multicasting roll-call inventory responses by every storage server in the negotiating group; and
collecting the roll-call inventory responses 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.
5 Assignments
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.
48 Citations
31 Claims
-
1. A method of multicast collaborative erasure encoding of a chunk stored in a distributed object storage cluster, the method comprising:
-
multicasting a roll-call request to every storage server in a negotiating group for the chunk; generating and multicasting roll-call inventory responses by every storage server in the negotiating group; and collecting the roll-call inventory responses 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A distributed object storage system that stores objects in chunks, the system comprising:
-
a plurality of storage servers communicatively interconnected by a network; and negotiating groups for the chunks, wherein a negotiating group for a chunk comprises a group of the storage servers that are assigned to store and provide access to the chunk, and wherein a storage server in the negotiating group for the chunk includes executable code that performs steps including; multicasting a roll-call request to other storage servers in the negotiating group for the chunk; collecting roll-call inventory responses received from the other storage servers in the negotiating group for the chunk to form a set of roll-call inventory responses; and performing a logical evaluation of the set of roll-call inventory responses. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A storage server in a distributed object storage system that stores objects in chunks, the storage server comprising:
-
a processor for executing executable code; memory for storing and accessing executable code and data; and a network connection to communicatively interconnect the storage server with other storage servers in the distributed object storage system, wherein the executable code performs steps including; multicasting a roll-call request to a group of storage servers that are responsible for storing and providing access to a chunk; collecting roll-call inventory responses received from the storage servers in the group to form a set of roll-call inventory responses; and performing a logical evaluation of the set of roll-call inventory responses. - View Dependent Claims (22)
-
-
23. A storage server in a distributed object storage system that stores objects in chunks, the storage server comprising:
-
a processor for executing executable code; memory for storing and accessing executable code and data; and a network connection to communicatively interconnect the storage server with other storage servers in the distributed object storage system, wherein the storage server is a member of a negotiating group for a chunk, and the executable code performs steps including; receiving a roll-call request for the chunk; multicasting a roll-call inventory response to the negotiating group in response to the roll-call request; collecting roll-call inventory responses received from other storage servers in the negotiating group to form a set of roll-call inventory responses; and performing a logical evaluation of the set of roll-call inventory responses.
-
-
24. A method of distributed parity protection of a chunk stored in an object storage cluster, the method comprising:
-
storing 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; 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 (25, 26, 27)
-
-
28. 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 include executable code that performs steps including; storing 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; 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 (29, 30, 31)
-
Specification