Systems for storing data streams in a distributed environment
First Claim
1. A system for storing and retrieving data, comprising:
- a plurality of distributed devices adapted to communicate via a network, wherein each one of the plurality of distributed devices comprises a processor;
a plurality of data-streams received from the plurality of distributed devices, each one of the plurality of data-streams comprises data-elements;
a plurality of block-stores that are stored on the plurality of distributed devices, the plurality of block-stores store via the processors the data-elements of the received plurality of data-streams;
one or more data-blocks of the block-stores, the stored data-elements allocated to the one or more data-blocks, each one of the block-stores comprising one or more data-blocks, each data-block comprising the stored data-elements of only one of the received plurality of data-streams, the data-blocks of a single data-stream are logically grouped, and each one of the data-blocks are read and written as a single unit;
a block-identifier assigned to each one of the data-blocks, the block-identifier being globally unique;
events of the one or more data-blocks, the block-allocated data-elements further allocated to the events of the data-blocks, each one of the data-blocks comprise one or more events, each one of the events comprising the block-allocated data-elements of the corresponding data-block;
token-names assigned to each one of the event-allocated data-elements, each one of the event-allocated data-elements has a token-name, the token-names being human-readable names;
stream-schema of the received plurality of data-streams, each one of the received plurality of data-streams having a stream-schema, each stream-schema further comprising a list of token-names for the event-allocated data-elements of the corresponding data-stream, the event-allocated data-elements of the corresponding data-stream being capable of being identified based on the list of token-names, wherein each stream-schema further comprises an index-definition for each corresponding data-stream; and
,indices generated for the event-allocated data-elements based on the corresponding index-definition and the corresponding list of token-names, whereby at least one query for the event-allocated data-elements may be executed in order to retrieve data-elements of the received plurality of data-streams, the at least one query is based on at least one of the indices.
9 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for storing and retrieving data elements transmitted via data streams received from distributed devices connected via a network. The received data elements may be stored in block stores on the distributed devices. The stored data-elements may be allocated to data-blocks of a block-store that have assigned block-identifiers and further allocated to events of the data-blocks that have assigned token-names. Stream-schema of the received data-streams may comprise a list of token-names and an index-definition for each corresponding data-stream. Indices may be generated for the event-allocated data-elements. A query may be executed in order to retrieve data-elements of the received data-streams based on the indices.
-
Citations
39 Claims
-
1. A system for storing and retrieving data, comprising:
-
a plurality of distributed devices adapted to communicate via a network, wherein each one of the plurality of distributed devices comprises a processor; a plurality of data-streams received from the plurality of distributed devices, each one of the plurality of data-streams comprises data-elements; a plurality of block-stores that are stored on the plurality of distributed devices, the plurality of block-stores store via the processors the data-elements of the received plurality of data-streams; one or more data-blocks of the block-stores, the stored data-elements allocated to the one or more data-blocks, each one of the block-stores comprising one or more data-blocks, each data-block comprising the stored data-elements of only one of the received plurality of data-streams, the data-blocks of a single data-stream are logically grouped, and each one of the data-blocks are read and written as a single unit; a block-identifier assigned to each one of the data-blocks, the block-identifier being globally unique; events of the one or more data-blocks, the block-allocated data-elements further allocated to the events of the data-blocks, each one of the data-blocks comprise one or more events, each one of the events comprising the block-allocated data-elements of the corresponding data-block; token-names assigned to each one of the event-allocated data-elements, each one of the event-allocated data-elements has a token-name, the token-names being human-readable names; stream-schema of the received plurality of data-streams, each one of the received plurality of data-streams having a stream-schema, each stream-schema further comprising a list of token-names for the event-allocated data-elements of the corresponding data-stream, the event-allocated data-elements of the corresponding data-stream being capable of being identified based on the list of token-names, wherein each stream-schema further comprises an index-definition for each corresponding data-stream; and
,indices generated for the event-allocated data-elements based on the corresponding index-definition and the corresponding list of token-names, whereby at least one query for the event-allocated data-elements may be executed in order to retrieve data-elements of the received plurality of data-streams, the at least one query is based on at least one of the indices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
Specification