Patent ID: 8959075
Filing Date: 2015-02-17
Classification: G06F

Abstract:
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.