Recovery and fault-tolerance of a real time in-memory index
First Claim
1. A system, comprising:
- at least one memory that stores computer executable components; and
at least one processor that executes the following computer executable components stored in the at least one memory;
a queue component that distributes respective messages of a plurality of messages to respective partitions of a set of partitions of a repository, wherein the respective messages include respective data segments of a data stream communicated via a data communication network; and
a queue management component that manages distribution of the respective messages to the respective partitions of the repository based at least in part on respective segment numbers and respective stream identifiers associated with the respective messages, wherein, in response to a recovery-related request for re-delivery of a subset of the respective data segments of the data stream that had been sent to a partition of the set of partitions during a specified period of time, the queue component re-delivers the subset of the respective data segments to the partition to facilitate recovery of the subset of the respective data segments by the partition, wherein the specified period of time is determined as a function of a time of the recovery-related request, a stream expiry time associated with the data stream, and a maximum length of the data stream.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques for recovery and fault-tolerance of a real time in-memory index are presented. A queue management component controls a queue component to have it communicate respective data segments of a data stream to respective partitions of a repository, based on a randomizing function, a stream ID of the data stream, and respective segment numbers of the respective segments. The repository stores data streams for a defined period of time. A driver component distributes queries to the partitions of the repository to request data stream segments, and the repository can provide segments that have not yet expired. The driver component aggregates the results to reproduce the data stream, which can be provided to a requesting client. When a partition is recovering from being offline, the partition can request that the queueing system re-deliver data segments over a specified time period, and the queue component can re-deliver the desired data segments.
70 Citations
20 Claims
-
1. A system, comprising:
-
at least one memory that stores computer executable components; and at least one processor that executes the following computer executable components stored in the at least one memory; a queue component that distributes respective messages of a plurality of messages to respective partitions of a set of partitions of a repository, wherein the respective messages include respective data segments of a data stream communicated via a data communication network; and a queue management component that manages distribution of the respective messages to the respective partitions of the repository based at least in part on respective segment numbers and respective stream identifiers associated with the respective messages, wherein, in response to a recovery-related request for re-delivery of a subset of the respective data segments of the data stream that had been sent to a partition of the set of partitions during a specified period of time, the queue component re-delivers the subset of the respective data segments to the partition to facilitate recovery of the subset of the respective data segments by the partition, wherein the specified period of time is determined as a function of a time of the recovery-related request, a stream expiry time associated with the data stream, and a maximum length of the data stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method, comprising:
employing at least one processor to facilitate execution of code instructions retained in at least one memory device, the at least one processor, in response to execution of the code instructions, causing a device to perform operations comprising; distributing respective messages of a plurality of messages via a queue to respective partitions of a plurality of partitions of a repository, wherein the respective messages include respective data segments of a data stream that is communicated via a communication network; controlling distribution of the respective messages to the respective partitions of the repository as a function of respective segment numbers and respective stream identifiers of the respective messages; and in response to a request to re-send a subset of the respective data segments of the data stream that had been sent to a partition of the plurality of partitions during a specified period of time, transmitting the subset of the respective data segments to the partition to facilitate recovery by the partition, wherein the specified period of time is determined based at least in part on a time of the request, a stream expiration time associated with the data stream, and a value that is based on a defined data stream length associated with the data stream. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
20. A computer program product, comprising:
a non-transitory computer-readable storage medium storing computer-executable instructions that, in response to execution, cause a system including at least one processor to perform operations, comprising; providing respective messages of a plurality of messages via a queue to respective partitions of a plurality of partitions of a repository, wherein the respective messages include respective data segments of a data stream that is received over a data communication network; managing distribution of the respective messages to the respective partitions of the repository as a function of respective segment numbers and respective stream identifiers associated with the respective data segments; and in response to a request to re-send a subset of the respective data segments of the data stream that had been sent to a partition of the plurality of partitions during a defined period of time, sending the subset of the respective data segments to the partition to facilitate recovery by the partition, wherein the defined period of time is determined as a function of a time the request is made, a stream expiry time associated with the data stream, and a value that is based on a defined length associated with the data stream.
Specification