Buffered cloned operators in a streaming application
AssigneeInternational Business Machines Corporation
InventorsLance Bragstad, Michael J. Branson, Bin Cao, James E. Carey, Mathew R. Odden
Life of this patent
Estimating the term…
Abstract
A streams manager clones a portion of a primary flow graph to a virtual machine with a buffer to assure no data is lost if the corresponding portion of the primary flow graph fails. The buffer can be on the input of the cloned portion or on the output of the cloned portion. Cloning a portion of a primary flow graph with a buffer assures no data is lost when the corresponding portion of the primary flow graph fails. When the primary flow graph recovers from the failure, the processing may be switched back to the primary flow graph, which causes the buffer to begin buffering once again.
Claims11
1-9. (canceled)
A computer-implemented method executed by at least one processor for managing a streaming application, the method comprising:
- executing a streaming application that comprises a primary flow graph that includes a plurality of operators that process a plurality of data tuples, wherein the primary flow graph comprises a first portion for which data loss needs to be prevented;
- cloning the first portion of the primary flow graph to a virtual machine, wherein the cloned first portion comprises a buffer that stores data tuples for the cloned first portion;
- detecting when the first portion of the primary flow graph has a failure;
- notifying the cloned first portion of the failure;
- and
- in response to the notification of the failure, the cloned first portion outputs data tuples to the primary flow graph to avoid data loss by the first portion of the primary flow graph that had the failure.
A computer-implemented method executed by at least one processor for managing a streaming application, the method comprising:
- executing a streaming application that comprises a primary flow graph that includes a plurality of operators that process a plurality of data tuples, wherein the primary flow graph comprises a first portion for which data loss needs to be prevented;
- cloning the first portion of the primary flow graph to a virtual machine, wherein the first cloned portion comprises a buffer that stores data tuples for the cloned first portion, wherein the buffer is on an output of the cloned first portion and does not output any data tuples from the cloned first portion to the primary flow graph until the buffer is notified of the failure in the first portion of the primary flow graph, wherein the cloned first portion processes data tuples in parallel with the first portion of the primary flow graph and stores the output of the cloned first portion in the buffer;
- creating a deduplication operator in the primary flow graph that receives data tuples from the primary flow graph and from the cloned first portion and assures no duplicate data tuples received from the primary flow graph and from the cloned first portion are sent to a subsequent operator in the primary flow graph;
- detecting when the first portion of the primary flow graph has a failure;
- notifying the cloned first portion of the failure;
- in response to the notification of the failure, the cloned first portion outputs data tuples to the primary flow graph to avoid data loss by the first portion of the primary flow graph that had the failure;
- detecting when the first portion of the primary flow graph recovers from the failure;
- notifying the cloned first portion of the recovery from the failure;
- and
- in response to the notification, at a predetermined time, the cloned first portion stops outputting data tuples to the primary flow graph and the first portion of the primary flow graph resumes processing.
Dependencies are inferred from the claim text.