Demultiplexing decoded data streams in a distributed storage network
Abstract
A user device in a distributed storage network (DSN) includes an interface, one or more memory devices; and a processing module operable to receive a plurality of encoded data slices of a set of encoded data slices and generate a populated received slice matrix. Once a decode threshold number of encoded data slices have been received, the dispersed error encoded data slices are decoded to produce a first decoded data selection and based on the first decoded data selection and a second decoded data selection, an intermediate matrix is generated. A first data stream and a second data stream are then generated from the intermediate matrix.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:
receiving a plurality of encoded data slices of a set of encoded data slices, wherein a data object is segmented to create a plurality of data segments and wherein each data segment of the plurality of data segments is encoded to produce a set of encoded data slices; generating a populated received slice matrix based on the plurality of encoded data slices; determining whether a decode threshold number of encoded data slices have been received; in response to a determination that a decode threshold number of encoded data slices has been received, decoding the decode threshold number of encoded data slices to produce a first decoded data selection; based on the first decoded data selection and at least a second decoded data selection, generating an intermediate matrix, wherein each of the first decoded data selection and the second decoded data selection is decoded from a column of the populated received slice matrix; and generating at least a first data stream and a second data stream from the intermediate matrix.
2 . The method of claim 1 , wherein each of the first decoded data selection and the second decoded data selection correspond to a column of the intermediate matrix.
3 . The method of claim 1 , further comprising:
in response to a determination that a decode threshold number of dispersed error encoded data slices has been received, further determining whether the first decoded data selection passes an integrity test, and in response to a determination that the first decoded data selection does not pass an integrity test, transmitting a notification that at least one more dispersed error encoded data slice is needed.
4 . The method of claim 3 , further comprising:
in response to a determination that the first decoded data selection passes an integrity test, transmitting a notification that no more dispersed error encoded data slices are needed.
5 . The method of claim 1 , further comprising:
in response to a determination that a decode threshold number of dispersed error encoded data slices has been received, further determining whether another decoded data selection is to be produced, wherein the determining is based on verifying that each column of the populated received slice matrix is associated with a corresponding data selection.
6 . The method of claim 1 , wherein each of the first data stream and the second data stream are associated with at least one row of the intermediate matrix.
7 . The method of claim 6 , wherein each of the first data stream is associated with a first row of the intermediate matric and the second data stream are associated with at least a second row and a third row of the intermediate matrix.
8 . The method of claim 1 , further comprising:
in response to a determination that the plurality of encoded data slices should not have included a decode threshold number of dispersed error encoded data slices, determining to receive at least one more dispersed error encoded data slice.
9 . The method of claim 1 , further comprising:
after generating a populated received slice matrix based on the plurality of encoded data slices, determining whether the plurality of encoded data slices should have included a decode threshold number of encoded data slices, wherein the determining whether the plurality of encoded data slices should have included a decode threshold number of encoded data slices is based on at least one of comparing a count of a number of bytes per column of the populated received slice matrix to the decode threshold number of encoded data slices, comparing a count of a number of byte positions per column received of the populated received slice matrix to the decode threshold number of encoded data slices, received slice names and a decode threshold number indicator.
10 . A user device in a distributed storage network (DSN) comprises:
an interface for interfacing with a network; one or more memory devices; and a processing module operably coupled to the interface and to the one or more memory devices, wherein the processing module is operable to:
receive a plurality of encoded data slices of a set of encoded data slices, wherein a data object is segmented to create a plurality of data segments and wherein each data segment of the plurality of data segments is encoded to produce a set of encoded data slices;
generate a populated received slice matrix based on the plurality of encoded data slices;
determine whether a decode threshold number of encoded data slices have been received;
in response to a determination that a decode threshold number of encoded data slices has been received, decode the decode threshold number of encoded data slices to produce a first decoded data selection;
based on the first decoded data selection and at least a second decoded data selection, generate an intermediate matrix, wherein each of the first decoded data selection and the second decoded data selection is decoded from a column of the populated received slice matrix; and
generate at least a first data stream and a second data stream from the intermediate matrix.
11 . The user device of claim 10 , wherein each of the first decoded data selection and the second decoded data selection correspond to a column of the intermediate matrix.
12 . The user device of claim 10 , wherein the processing module is further operable to:
in response to a determination that a decode threshold number of dispersed error encoded data slices has been received, determine whether the first decoded data selection passes an integrity test, and in response to a determination that the first decoded data selection does not pass an integrity test, transmit a notification that at least one more dispersed error encoded data slice is needed.
13 . The user device of claim 12 , wherein the processing module is further operable to:
in response to a determination that the first decoded data selection passes an integrity test, transmit a notification that no more dispersed error encoded data slices are needed.
14 . The user device of claim 10 , wherein the processing module is further operable to:
in response to a determination that a decode threshold number of dispersed error encoded data slices has been received, further determine whether another decoded data selection is to be produced, wherein the determining is based on verifying that each column of the populated received slice matrix is associated with a corresponding data selection.
15 . The user device of claim 10 , wherein each of the first data stream and the second data stream are associated with at least one row of the intermediate matrix.
16 . The user device of claim 10 , wherein each of the first data stream is associated with a first row of the intermediate matric and the second data stream are associated with at least a second row and a third row of the intermediate matrix.
17 . The user device of claim 10 , wherein the processing module is further operable to:
in response to a determination that the plurality of encoded data slices should not have included a decode threshold number of dispersed error encoded data slices, determine to receive at least one more dispersed error encoded data slice.
18 . The user device of claim 10 , wherein the processing module is further operable to:
after a populated received slice matrix based on the plurality of encoded data slices is generated, determine whether the plurality of encoded data slices should have included a decode threshold number of encoded data slices, wherein the determination whether the plurality of encoded data slices should have included a decode threshold number of encoded data slices is based on at least one of comparing a count of a number of bytes per column of the populated received slice matrix to the decode threshold number of encoded data slices, comparing a count of a number of byte positions per column received of the populated received slice matrix to the decode threshold number of encoded data slices, received slice names and a decode threshold number indicator.
19 . A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:
receiving a plurality of dispersed error encoded data slices of a set of encoded data slices, wherein a data object is segmented to create a plurality of data segments and wherein each data segment of the plurality of data segments is dispersed error encoded to produce a set of encoded data slices; populating a received slice matrix with the one or more encoded data slices to produce a populated received slice matrix; determining whether the plurality of dispersed error encoded data slices should have included a decode threshold number of dispersed error encoded data slices, wherein a decode threshold number of dispersed error encoded data slices is required to rebuild a data segment; in response to a determination that the plurality of dispersed error encoded data slices should have included a decode threshold number of dispersed error encoded data slices, determining whether a decode threshold number of dispersed error encoded data slices have been received; in response to a determination that a decode threshold number of dispersed error encoded data slices has been received, decoding the decode threshold number of dispersed error encoded data slices to produce a first decoded data selection; based on the first decoded data selection and at least a second decoded data selection, generating an intermediate matrix, wherein each of the first decoded data selection and the second decoded data selection is decoded from a column of the received slice matrix; and generating at least a first data stream and a second data stream from the intermediate matrix.
20 . The method of claim 19 , wherein each of the first data stream and the second data stream are associated with at least one row of the intermediate matrix.Join the waitlist — get patent alerts
Track US2019179696A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.