Data management for connected devices
First Claim
Patent Images
1. A method comprising:
- receiving, from a device associated with a first physical location, a stream of time-series data of one or more of surveillance cameras, the stream comprising a plurality of records ordered in time, each record having a timestamp and one or more tags, wherein the plurality of records including a first record having a first timestamp and a first tag, a second record having a second timestamp and a second tag, and a third record having a third timestamp and the first tag, wherein the first tag and second tag are different tags, and wherein the first record and the second record are temporally contiguous and the third record is temporally after the first record and the second record;
chunking the stream into a first chunk and a second chunk, the first chunk comprising the first record and the second record and the second chunk comprising the third record;
generating an index that associates the first tag with the first timestamp and the third timestamp and that associates the second tag with the second timestamp, wherein the index maps the one or more tags to a list of data item identifiers, each data item identifier including a timestamp for a corresponding tag, and wherein the list of data item identifiers is sorted by time to enable efficient binary searches;
generating a compact index, the compact index including the one or more tags, wherein each tag of the one or more tags including a timestamp for a first identifier and a last identifier in the corresponding list of data item identifiers and a location of the corresponding list of data item identifiers in the index;
storing the compact index in local storage;
transmitting the first chunk and the second chunk to at least one first, remote storage location;
storing the index in a second storage location;
receiving a query of the index from a second user device associated with a second physical location, the query including a request to return records associated with the first tag;
accessing the compact index to determine the location of the corresponding list of data item identifiers in the index based on the query;
determining from the index that the first chunk and the second chunk are associated with the first tag; and
retrieving from the first, remote storage location the first and second chunks.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques and constructs to facilitate data management can provide improved response time and space efficiency for time-series data such as from connected devices. The constructs may enable receiving a stream of time-series data comprising a plurality of objects and a time identification associated with each of the objects. One or more tags are associated with the objects. The constructs may also chunk the stream into a plurality of contiguous chunks, each including a plurality of objects, create an index associating the time identification and the one or more tags, transmit the chunks to a first, remote storage, and then store the index.
-
Citations
17 Claims
-
1. A method comprising:
-
receiving, from a device associated with a first physical location, a stream of time-series data of one or more of surveillance cameras, the stream comprising a plurality of records ordered in time, each record having a timestamp and one or more tags, wherein the plurality of records including a first record having a first timestamp and a first tag, a second record having a second timestamp and a second tag, and a third record having a third timestamp and the first tag, wherein the first tag and second tag are different tags, and wherein the first record and the second record are temporally contiguous and the third record is temporally after the first record and the second record; chunking the stream into a first chunk and a second chunk, the first chunk comprising the first record and the second record and the second chunk comprising the third record; generating an index that associates the first tag with the first timestamp and the third timestamp and that associates the second tag with the second timestamp, wherein the index maps the one or more tags to a list of data item identifiers, each data item identifier including a timestamp for a corresponding tag, and wherein the list of data item identifiers is sorted by time to enable efficient binary searches; generating a compact index, the compact index including the one or more tags, wherein each tag of the one or more tags including a timestamp for a first identifier and a last identifier in the corresponding list of data item identifiers and a location of the corresponding list of data item identifiers in the index; storing the compact index in local storage; transmitting the first chunk and the second chunk to at least one first, remote storage location; storing the index in a second storage location; receiving a query of the index from a second user device associated with a second physical location, the query including a request to return records associated with the first tag; accessing the compact index to determine the location of the corresponding list of data item identifiers in the index based on the query; determining from the index that the first chunk and the second chunk are associated with the first tag; and retrieving from the first, remote storage location the first and second chunks. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
-
one or more computing devices communicatively coupled to one or more monitoring devices, each of the monitoring devices having one or more sensors, the one or more computing devices including one or more non-transitory computer storage media having thereon the computer-executable instructions, upon execution by the computing devices perform operations including; receiving, from a first computing device of the one or more computing devices associated with a first physical location, streams of data records from the sensors of one or more of a surveillance camera, the stream comprising a plurality of data records ordered in time, each data record having a timestamp and one or more tags, wherein the plurality of data records includes a first record having a first timestamp and a first tag, a second record having a second timestamp and a second tag, and a third record having a third timestamp and the first tag, wherein the first record and the second record are temporally contiguous and the third record is temporally after the first record and the second record; creating a searchable index, the index associating the first tag with the first timestamp and the third timestamp and associating the second tag with the second timestamp, wherein the searchable index maps the one or more tags to a list of data item identifiers, each data item identifier including a timestamp for a corresponding tag, and wherein the list of data item identifiers is sorted by time to enable efficient binary searches; separating the stream into a plurality of contiguous chunks including a first chunk comprising the first record and the second record and a second chunk comprising the third record; creating a compact index, the compact index including the one or more tags, wherein each tag of the one or more tags including a timestamp for a first identifier and a last identifier in the corresponding list of data item identifiers and a location of the corresponding list of data item identifiers in the index; and storing the compact index in local storage; transmitting the first chunk and the second chunk to at least one first, remote storage location; storing the index in a second storage location; receiving a query of the index from a second computing device of the one or more computing devices associated with a second physical location, the query including a request to return records associated with the first tag; accessing the compact index to determine the location of the corresponding list of data item identifiers in the index based on the query; determining from the index that the first chunk and the second chunk are associated with the first tag; and retrieving from the first, remote storage location the first and second chunks. - View Dependent Claims (8)
-
-
9. One or more non-transitory computer storage media having thereon computer-executable instructions, the computer-executable instructions, upon execution, configuring a computer to perform operations comprising:
-
receiving a stream of time-series data of one or more surveillance devices surveying a first location associated with a first user, the stream of time-series data including a plurality of records sensed by the one or more of surveillance devices ordered in time, each record having a timestamp and one or more tags, wherein the plurality of records including a first record having an associated first timestamp and a first tag, a second record having an associated second timestamp and a second tag, and a third record having an associated third timestamp and the first tag, wherein the first tag identifying a first feature of the first location being associated with the first record and the third record and the second tag identifying a second feature of the first location being associated with the second record, wherein the second feature being different from the first feature, and wherein the first record and the second record are temporally contiguous and the third record is temporally after the first record and the second record; storing, on a storage device local to the first location, an index that associates the first tag with the first timestamp and the third timestamp and that associates the second tag with the second timestamp, wherein the index maps the one or more tags to a list of data item identifiers, each data item identifier including a timestamp for a corresponding tag, and wherein the list of data item identifiers is sorted by time to enable efficient binary searches; generating a compact index, the compact index including the one or more tags, wherein each tag of the one or more tags including a timestamp for a first identifier and a last identifier in the corresponding list of data item identifiers and a location of the corresponding list of data item identifiers in the index; storing the compact index in local storage; causing at least a portion of the stream of time-series data to be stored at a remote storage device as a first chunk comprising the first record and the second record and a second chunk comprising the third record; receiving a query of the index from a second user associated with a second location different from the first location, the query requesting records associated with at least one of the first tag or the second tag; accessing the compact index to determine the location of the corresponding list of data item identifiers in the index based on the query; identifying, in response to the query requesting records associating the first tag, the first chunk and the second chunk; and retrieving the first chunk and the second chunk from the remote storage device. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
Specification