Methods and apparatuses for fault recovery of video data
AssigneeVerkada Inc.
InventorsVikas Kumar Sinha, Sandeep Gautham Mattur Mahabala, Alan Anderson, Patrick Matthew Grady
Life of this patent
Estimating the term…
Abstract
First video data captured by a first camera from a set of cameras is received and caused to be stored in a first data stripe from a set of data stripes. Second video data captured by the first camera is received and caused to be stored in a second data stripe from the set of data stripes. An indication is received that the first video data has become inaccessible. Data associated with the first data stripe is received from a subset of cameras from the set of cameras that excludes the first camera. The first video data is generated based on the data received from the subset of cameras.
Claims20
A non-transitory, processor-readable medium storing instructions that, when executed by a processor, cause the processor to:
- receive, from a first camera from a plurality of cameras and at a second camera from the plurality of cameras, a first parity data generated by the first camera based on first video data captured by the first camera, the first video data stored (1) as part of a first data stripe from a plurality of data stripes that is associated with the plurality of cameras and (2) in a first data storage medium operatively coupled to the first camera;
- modify, at the second camera, the first parity data to generate a second parity data based on the first parity data and second video data captured by the second camera, the second video data stored (1) as part of the first data stripe and (2) in a second data storage medium operatively coupled to the second camera;
- send, from the second camera and to a third camera from the plurality of cameras, the second parity data to cause the third camera to generate a third parity data based on the second parity data and third video data captured by the third camera, the third parity data stored (1) as part of the first data stripe and (2) in a third data storage medium operatively coupled to the third camera, the third video data stored as part of a second data stripe from the plurality of data stripes and in the third data storage medium;
- receive an indication that the second video data has become inaccessible;
- and
- receive the second video data in response to a request, based on the first data stripe, and not based on the second data stripe.
A non-transitory, processor-readable medium storing instructions that, when executed by a processor, cause the processor to:
- receive, from a first camera from a plurality of cameras and at a second camera from the plurality of cameras, a first parity data generated by the first camera based on first video data captured by the first camera, the first video data stored (1) as part of a first data stripe from a plurality of data stripes that is associated with the plurality of cameras and (2) in a first data storage medium operatively coupled to the first camera, each data stripe from the plurality of data stripes is associated with at least one of:
- a unique data stripe identifier (ID) from a plurality of data stripe identifiers, or a bitmask indicating at least one camera from the plurality of cameras associated with that data stripe;
- modify, at the second camera, the first parity data to generate a second parity data based on the first parity data and second video data captured by the second camera, the second video data stored (1) as part of the first data stripe and (2) in a second data storage medium operatively coupled to the second camera;
- send, from the second camera and to a third camera from the plurality of cameras, the second parity data to cause the third camera to generate a third parity data based on the second parity data and third video data captured by the third camera, the third parity data stored (1) as part of the first data stripe and (2) in a third data storage medium operatively coupled to the third camera, the third video data stored as part of a second data stripe from the plurality of data stripes and in the third data storage medium;
- receive an indication that the second video data has become inaccessible;
- and
- receive the second video data in response to a request, based on the first data stripe, and not based on the second data stripe.
A method, comprising:
- receiving, from a first camera from a plurality of cameras and at a second camera from the plurality of cameras, a first parity data generated by the first camera based on first video data captured by the first camera, the first video data stored (1) as part of a first data stripe from a plurality of data stripes that is associated with the plurality of cameras and (2) in a first data storage medium operatively coupled to the first camera;
- modifying, at the second camera, the first parity data to generate a second parity data based on the first parity data and second video data captured by the second camera, the second video data stored (1) as part of the first data stripe and (2) in a second data storage medium operatively coupled to the second camera and not directly accessible by the first camera;
- and
- sending, from the second camera and to a third camera from the plurality of cameras, the second parity data to cause the third camera to generate a third parity data based on the second parity data and third video data captured by the third camera, the third parity data stored (1) as part of the first data stripe and (2) in a third data storage medium operatively coupled to the third camera and not directly accessible by the first camera and the second camera, the third video data stored in the third data storage medium as part of a second data stripe from the plurality of data stripes and not as part of the first data stripe.
A method, comprising:
- receiving, from a first camera from a plurality of cameras and at a second camera from the plurality of cameras, a first parity data generated by the first camera based on first video data captured by the first camera, the first video data stored (1) as part of a first data stripe from a plurality of data stripes that is associated with the plurality of cameras and (2) in a first data storage medium operatively coupled to the first camera, at least one data stripe from the plurality of data stripes being associated with a unique data stripe identifier (ID) from a plurality of data stripe identifiers and a bitmask;
- modifying, at the second camera, the first parity data to generate a second parity data based on the first parity data and second video data captured by the second camera, the second video data stored (1) as part of the first data stripe and (2) in a second data storage medium operatively coupled to the second camera and not directly accessible by the first camera;
- and
- sending, from the second camera and to a third camera from the plurality of cameras, the second parity data to cause the third camera to generate a third parity data based on the second parity data and third video data captured by the third camera, the third parity data stored (1) as part of the first data stripe and (2) in a third data storage medium operatively coupled to the third camera and not directly accessible by the first camera and the second camera, the third video data stored in the third data storage medium as part of a second data stripe from the plurality of data stripes and not as part of the first data stripe.
An apparatus, comprising:
- a memory;
- and
- a processor operatively coupled to the memory, the processor configured to:
- receive, from a first sensor from a plurality of sensors and at a second sensor from the plurality of sensors, a first parity data generated by the first sensor based on first sensor data captured by the first sensor, the first sensor data stored (1) as part of a first data stripe from a plurality of data stripes that is associated with the plurality of sensors and (2) in a first data storage medium operatively coupled to the first sensor;
- modify, at the second sensor, the first parity data to generate a second parity data based on the first parity data and second sensor data captured by the second sensor, the second sensor data stored (1) as part of the first data stripe and (2) in a second data storage medium operatively coupled to the second sensor;
- send, by the second sensor and to a third sensor from the plurality of sensors, the second parity data to cause the third sensor to generate a third parity data based on the second parity data and third sensor data captured by the third sensor, the third parity data stored (1) as part of the first data stripe and (2) in a third data storage medium operatively coupled to the third sensor, the third sensor data stored in the third data storage medium as part of a second data stripe from the plurality of data stripes and not as part of the first data stripe;
- receive an indication that the second sensor data has become inaccessible;
- request the third parity data in response to detecting that the second sensor data has become inaccessible;
- and
- receive the second sensor data in response to a request and based on the third parity data.
An apparatus, comprising:
- a memory;
- and
- a processor operatively coupled to the memory, the processor configured to:
- receive, from a first sensor from a plurality of sensors and at a second sensor from the plurality of sensors, a first parity data generated by the first sensor based on first sensor data captured by the first sensor, the first sensor data stored (1) as part of a first data stripe from a plurality of data stripes that is associated with the plurality of sensors and (2) in a first data storage medium operatively coupled to the first sensor, each data stripe from the plurality of data stripes being associated with a bitmask from a plurality of bitmasks indicating at least one sensor from the plurality of sensors associated with that data stripe;
- modify, at the second sensor, the first parity data to generate a second parity data based on the first parity data and second sensor data captured by the second sensor, the second sensor data stored (1) as part of the first data stripe and (2) in a second data storage medium operatively coupled to the second sensor;
- send, by the second sensor and to a third sensor from the plurality of sensors, the second parity data to cause the third sensor to generate a third parity data based on the second parity data and third sensor data captured by the third sensor, the third parity data stored (1) as part of the first data stripe and (2) in a third data storage medium operatively coupled to the third sensor, the third sensor data stored in the third data storage medium as part of a second data stripe from the plurality of data stripes and not as part of the first data stripe;
- receive an indication that the second sensor data has become inaccessible;
- request the third parity data in response to detecting that the second sensor data has become inaccessible;
- and
- receive the second sensor data in response to a request and based on the third parity data.
An apparatus, comprising:
- a memory;
- and
- a processor operatively coupled to the memory, the processor configured to:
- receive, from a first sensor from a plurality of sensors and at a second sensor from the plurality of sensors, a first parity data generated by the first sensor based on first sensor data captured by the first sensor, the first sensor data stored (1) as part of a first data stripe from a plurality of data stripes that is associated with the plurality of sensors and (2) in a first data storage medium operatively coupled to the first sensor, at least one data stripe from the plurality of data stripes being associated with at least one of a data length, a filename, or a bitmask;
- modify, at the second sensor, the first parity data to generate a second parity data based on the first parity data and second sensor data captured by the second sensor, the second sensor data stored (1) as part of the first data stripe and (2) in a second data storage medium operatively coupled to the second sensor;
- send, by the second sensor and to a third sensor from the plurality of sensors, the second parity data to cause the third sensor to generate a third parity data based on the second parity data and third sensor data captured by the third sensor, the third parity data stored (1) as part of the first data stripe and (2) in a third data storage medium operatively coupled to the third sensor, the third sensor data stored in the third data storage medium as part of a second data stripe from the plurality of data stripes and not as part of the first data stripe;
- receive an indication that the second sensor data has become inaccessible;
- request the third parity data in response to detecting that the second sensor data has become inaccessible;
- and
- receive the second sensor data in response to a request and based on the third parity data.
Dependencies are inferred from the claim text.