IP Library Granted Patent US 12,067,269
Granted Patent B2
US 12,067,269 · App. 18/062,941 · Granted Aug 20, 2024

Method and system for system data storage and management

Inventors: Joshua Mendiola (San Jose, CA); Jonathan Adam (Austin, TX); Darren Furtado (Redondo Beach, CA)
Assignee: Thissl Holding, Inc.
G06F3/0631G06F3/0608G06F3/0659G06F3/067G06F12/0246G06F16/24568H04L1/189H04L45/24H04L67/1097H04N7/18H04N7/181H04W28/04H04W76/14H04W76/16H04L2001/0097H04W84/18H04W88/06
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 12,067,269
App. No.
18/062,941
Granted
Aug 20, 2024
Kind
B2
Abstract

An exemplary surveillance system is provided having a plurality of data generating devices, and nodes for data handling of the data streams generated form the data generating devices. The system may be configured to fragment the data streams and store the fragments among the plurality of nodes of the system. The system may be configured to redundantly transmit data through the nodes so the fragmented data stream arrive at the desired location for storage. The data transmission may permit redirection or retransmission based on node or data transmission failure.

Claims (31)

1. A system, comprising:

a plurality of data generating devices configured to generate different data streams;

a plurality of nodes,

wherein each of the nodes of the plurality of nodes is configured to receive one or more data streams from the generated different data streams, and

wherein each of the nodes of the plurality of nodes includes processor and memory, and the memory has stored thereon a memory controller that when executed by the processor is configured to:

determine how to fragment the received one or more data streams based on available memory space at one or more nodes of the plurality of nodes,

fragment the received one or more data streams from the generated different data streams at different data fragment sizes,

provide instructions and associated metadata for each fragment to direct individual fragments to different determined nodes through a combination of the plurality of nodes to store the individual fragments at the different determined nodes.

2. The system of claim 1 , wherein the memory controller is configured to fragment the received one or more data streams based on data integrity, data stream size, communication relay timing, communication relay bandwidth, maximum data fragment size to improve data integrity in event of a node failure, or a combination thereof, and store different fragments on different nodes of the plurality of nodes.

3. The system of claim 2 , wherein the system is configured to associate metadata to a fragment of the received one or more data streams providing information on how to recreate the received one or more data streams from the fragments of the received one or more data streams.

4. The system of claim 1 , wherein the plurality of nodes are configured to communicate to another of the plurality of nodes to transmit the individual fragments to different determined nodes for storage.

5. The system of claim 4 , wherein the plurality of nodes are configured to redundantly communicate to another of the plurality of nodes using different communication protocols.

6. The system of claim 1 , wherein the system does not include a centralized data storage location.

7. The system of claim 1 , wherein the plurality of nodes are configured to store portions of different data to define a decentralized storage network.

8. The system of claim 7 , wherein the plurality of nodes are configured to pass through portions of different data streams and to retain and store different portions of different data streams.

9. The system of claim 8 , wherein the portions of different data streams include information to indicate a location of storage for that portion of the different data streams.

10. The system of claim 9 , wherein the information to indicate the location of storage does not include a specific memory location and the system does not share specific memory allocation or information from one node to other nodes in the system.

11. The system of claim 10 , wherein a receiving node for storing a portion of the different data stream stores the portion of the different data stream locally at memory associated with the receiving node without providing specific memory location of the portion of the different data stream to other nodes in the system.

12. The system of claim 1 , further comprising a metadata generation system that stores a tag associated with an object with an associated data stream from a camera thereby associating an identification of the object to the camera and the associated data stream.

13. The system of claim 12 , wherein the system is configured to find and concatenate a portion of a plurality of data streams associated with the tag and display the portion of the plurality of data streams in sequential time order.

14. The system of claim 1 , further comprising a detector for detecting a tag associated with an object in proximity to a camera.

15. The system of claim 14 , further comprising at least one detector associated with each of the plurality of nodes for detecting a proximity of the tag to the respective camera of the plurality of cameras.

16. The system of claim 14 , wherein the system is configured to use the proximity of the tag to respective cameras of the plurality of cameras to determine a position of the tag relative to the respective cameras.

17. A method of managing data storage, comprising:

receiving a data stream from a digital device at a node, wherein the node includes processor and memory, and the memory has stored thereon a memory controller that when executed by the processor is configured to determine how to fragment the data stream based on available memory space at one or more nodes of a plurality of nodes and fragment the received data stream;

fragmenting the received data stream into a plurality of data fragments of different fragment sizes based on the determined fragmentation of the data stream;

associated metadata with each of the plurality of data fragments of the data stream to direct individual fragments to different determined nodes of the plurality of nodes; and

storing the plurality of data fragments of the data stream at across the different determined nodes of the plurality of nodes.

18. The method of claim 17 , further comprising:

provide a plurality of nodes of which the node is one of the plurality of nodes;

with the memory controller of the node, fragment the received data stream into the plurality of fragments based on data integrity, data stream size, communication relay timing between nodes of the plurality of nodes, communication relay bandwidth between nodes of the plurality of nodes, maximum data fragment size to improve data integrity in event of failure of one of the plurality of nodes, or a combination thereof.

Continuity (6)
Continuation 16777439 · Jan 30, 2020
Provisional Application 62798931 · Jan 30, 2019
Provisional Application 62798940 · Jan 30, 2019
Provisional Application 62798947 · Jan 30, 2019
Provisional Application 62798964 · Jan 30, 2019
Related Publication 20230280916A1 · Sep 7, 2023