IP Library Granted Patent US 11,334,425
Granted Patent B1
US 11,334,425 · App. 16/921,451 · Granted May 17, 2022

Transmitting synchronized data streams in a distributed storage network

Inventors: Gary W. Grube (Barrington Hills, IL); Timothy W. Markison (Mesa, AZ)
Assignee: PURE STORAGE, INC.
G06F11/10G06F11/1076G06F16/24568H03M13/1148H03M13/1515H03M13/373H03M13/616H04L65/605H04L65/607
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,334,425
App. No.
16/921,451
Granted
May 17, 2022
Kind
B1
Abstract

A method begins by a processing module of a storage network receiving a first plurality of pairs of coded values corresponding to first data segments of a first data stream and a second data stream. The method continues with the processing module generating a received coded matrix to include a plurality of groups of selected coded values and when the received coded matrix includes a decode threshold number of pairs of coded values, generating a data matrix from the received coded matrix and an encoding matrix. The method continues with the processing module reproducing the first data segment of the first and second data streams, while maintaining the time alignment of the first and second data streams.

Claims (69)

1. A method for execution by one or more processing modules of one or more computing devices of a storage network (SN), the method comprises:

receiving a first plurality of pairs of coded values corresponding to a first plurality of data segments of a first data stream and a second data stream, wherein a pair of coded values of the first plurality of pairs of coded values includes a first coded value corresponding to the first data segment of the first data stream and a second coded value corresponding to the first data segment of the second data stream, wherein the first data segments of the first, second data streams are time aligned;

creating a received coded matrix from the plurality of groups of selected coded values, wherein one of the plurality of groups of selected coded values includes at least the first and second coded values; and

when the received coded matrix includes a decode threshold number of pairs of coded values:

generating a data matrix from the received coded matrix and an encoding matrix;

reproducing the first data segment of the first data stream from a first plurality of data blocks of the data matrix; and

reproducing the first data segment of the second data stream from a second plurality of data blocks of the data matrix, wherein the first data segment of the first data stream and the first data segment of the second data stream maintain the time alignment of the first and second data streams.

2. The method of claim 1 further comprises:

generating the received coded matrix based on a request from a requesting entity.

3. The method of claim 1 further comprises:

generating the received coded matrix based on capabilities of a requesting entity.

4. The method of claim 1 further comprises:

the first data stream corresponding to a first recording of an environment from a first recording device; and

the second data stream corresponding to a second recording of the environment from the first recording device.

5. The method of claim 1 further comprises:

determining the time alignment of the first data segments of the first and second data streams by at least one of:

interpreting time-stamp information; and

interpreting identification information of the first data segment of the first and second data streams.

6. The method of claim 1 further comprises:

receiving a request from a requesting entity for one or more additional groups of selected coded values;

generating the one or more additional groups of selected coded values utilizing the received coded matrix; and

outputting the one or more additional groups of selected coded values to the requesting entity.

7. The method of claim 1 , wherein the first data segment of the first data stream is divided into a first plurality of data blocks and the first data segment of the second data stream is divided into a second plurality of data blocks, wherein the first and second plurality of data blocks create the data matrix.

8. A storage module of a storage network comprises:

a first module, when operable within a computing device, causes the computing device to:

receive a first plurality of pairs of coded values corresponding to first data segments of a first data stream and a second data stream, wherein a pair of coded values of the first plurality of pairs of coded values includes a first coded value corresponding to the first data segment of the first data stream and a second coded value corresponding to the first data segment of the second data stream;

a second module, when operable within the computing device, causes the computing device to:

generate a received coded matrix to include a plurality of groups of selected coded values, wherein one of the plurality of groups of selected coded values includes at least the first and second coded values;

a third module, when operable within the computing device, when the received coded matrix includes a decode threshold number of pairs of coded values, causes the computing device to:

generate a data matrix from the received coded matrix and an encoding matrix;

a fourth module, when operable within the computing device, causes the computing device to:

reproduce the first data segment of the first data stream from a first plurality of data blocks of the data matrix and reproduce the first data segment of the second data stream from a second plurality of data blocks of the data matrix, wherein the first data segment of the first data stream and the first data segment of the second data stream maintain a time alignment of the first and second data streams.

9. The storage module of claim 8 further comprises:

the third module functions to generate the coded matrix based on a request from a requesting entity.

10. The storage module of claim 8 further comprises:

the third module functions to generate coded matrix based on capabilities of a requesting entity.

11. The storage module of claim 8 further comprises:

the first data stream corresponding to a first recording of an environment from a first recording device; and

the second data stream corresponding to a second recording of the environment from the first recording device.

12. The storage module of claim 8 further comprises:

the fourth module is further operable to determine the time alignment of the first data segments of the first and second data streams by at least one of:

interpreting time-stamp information; and

interpreting naming information of the first data segment of the first and second, data streams.

13. The storage module of claim 8 further comprises:

the third module is further operable to:

receive a request from a requesting entity for one or more additional groups of selected coded values;

generate the one or more additional groups of selected coded values utilizing the received coded matrix; and

the fourth module is further operable to output the one or more additional groups of selected coded values to the requesting entity.

14. The storage module of claim 8 , wherein the first data segment of the first data stream is divided into a first plurality of data blocks and the first data segment of the second data stream is divided into a second plurality of data blocks, wherein the first and second plurality of data blocks create the data matrix.

15. A method for execution by one or more processing modules of one or more computing devices of a storage network (SN), the method comprises:

receiving a first plurality of pairs of coded values corresponding to first data segments of a first data stream and a second data stream, wherein a pair of coded values of the first plurality of pairs of coded values includes a first coded value corresponding to the first data segment of the first data stream and a second coded value corresponding to the first data segment of the second data stream;

receiving a second plurality of pairs of coded values corresponding to first data segments of a third data stream, wherein a pair of coded values of the second plurality of pairs of coded values includes a third coded value corresponding to the first data segment of the third data stream, wherein the first data segments of the first, second and third data streams are time aligned;

generating a received coded matrix to include a plurality of groups of selected coded values, wherein one of the plurality of groups of selected coded values includes at least two of the first, second and third coded values; and when the received coded matrix includes a decode threshold number of pairs of coded values:

generating a data matrix from the received coded matrix and an encoding matrix;

reproducing the first data segment of the first data stream from a first plurality of data blocks of the data matrix;

reproducing the first data segment of the second data stream from a second plurality of data blocks of the data matrix;

reproducing the first data segment of the third data stream from a third plurality of data blocks of the data matrix, wherein the first data segment of the first data stream, the first data segment of the second data stream and the first data segment of the third data stream maintain the time alignment of the first, second and third data streams.

16. The method of claim 15 further comprises:

generating the received coded matrix based on a request from a requesting entity.

17. The method of claim 15 further comprises:

generating the received coded matrix based on capabilities of a requesting entity.

18. The method of claim 15 further comprises:

the first data stream corresponding to a first recording of an environment from a first recording device;

the second data stream corresponding to a second recording of the environment from the first recording device; and

the third data stream corresponding to a second recording of the environment from the first recording device.

19. The method of claim 15 further comprises:

determining the time alignment of the first data segments of the first, second and third data streams by at least one of:

interpreting time-stamp information; and

interpreting identification information of the first data segment of the first and second data streams.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2020
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 053135/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 053135/0732 →
Continuity (5)
Continuation 16279172 · Feb 19, 2019
Continuation In Part 15629134 · Jun 21, 2017
Continuation In Part 14954836 · Nov 30, 2015
Continuation 13565636 · Aug 2, 2012
Provisional Application 61531317 · Sep 6, 2011
Cited By (1)
US 12,436,837