Dynamic update of a distributed message processing system
First Claim
1. In a distributed message processing system, having a plurality of nodes implemented on one or more computers, each node independently processing input streams of data, according to a set of independent, asynchronous processing components connected in a manner represented by a directed graph, a process for dynamically updating, on each node, a runtime version of computer program defining the set of processing components during execution of the runtime version, comprising:
- receiving a new runtime version of the computer program into memory;
determining differences between the new runtime version of the computer program and a current runtime version of the computer program;
preparing a change listing defining an ordered set of commands for each node to perform to modify the current runtime version of the computer program into the new runtime version of the computer program, such commands being invertible such that when an inverse of such commands are performed in reverse order, the current runtime version of the computer program is restored;
pausing the input streams of data from being provided to the nodes;
instructing each node to update the runtime version of the computer program from the current version to the new version;
monitoring progress of updates to the nodes;
after failure of the update by one or more nodes, instructing the nodes to rollback the update to the current runtime version of the computer program; and
after rollback or successful update by the nodes, resuming the input streams of data to be provided to the nodes.
2 Assignments
0 Petitions
Accused Products
Abstract
A distributed system with multiple nodes, each of which processes input data streams according to a set of independent, asynchronous processing components connected in a manner represented by a directed graph, is dynamically updated. Such a dynamic update occurs while the system is processing input data by pausing the input data stream, making changes to the system configuration, and then restarting the input data stream. If the update fails for any reason, the system configuration is rolled back to its prior state.
74 Citations
20 Claims
-
1. In a distributed message processing system, having a plurality of nodes implemented on one or more computers, each node independently processing input streams of data, according to a set of independent, asynchronous processing components connected in a manner represented by a directed graph, a process for dynamically updating, on each node, a runtime version of computer program defining the set of processing components during execution of the runtime version, comprising:
-
receiving a new runtime version of the computer program into memory; determining differences between the new runtime version of the computer program and a current runtime version of the computer program; preparing a change listing defining an ordered set of commands for each node to perform to modify the current runtime version of the computer program into the new runtime version of the computer program, such commands being invertible such that when an inverse of such commands are performed in reverse order, the current runtime version of the computer program is restored; pausing the input streams of data from being provided to the nodes; instructing each node to update the runtime version of the computer program from the current version to the new version; monitoring progress of updates to the nodes; after failure of the update by one or more nodes, instructing the nodes to rollback the update to the current runtime version of the computer program; and after rollback or successful update by the nodes, resuming the input streams of data to be provided to the nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A distributed message processing system comprising:
-
a plurality of nodes implemented on one or more computers, each node independently processing input streams of data, according to a set of independent, asynchronous processing components connected in a manner represented by a directed graph; a computer operating an update manager configured to perform a process for dynamically updating, on each node, a runtime version of computer program defining the set of processing components during execution of the runtime version, the update manager configured to; receive a new runtime version of the computer program into memory; determine differences between the new runtime version of the computer program and a current runtime version of the computer program; generate a change listing defining an ordered set of commands for each node of the plurality of nodes to perform to modify the current runtime version of the computer program into the new runtime version of the computer program, such commands being invertible such that when an inverse of such commands are performed in reverse order, the current runtime version of the computer program is restored; pause the input streams of data from being provided to the plurality of nodes; instruct each node of the plurality of nodes to update the runtime version of the computer program from the current version to the new version; monitor progress of updates to the plurality of nodes; after failure of the update by one or more nodes of the plurality of nodes, instruct all of the nodes to rollback the update to the current runtime version of the computer program; and after rollback or successful update by the plurality of nodes, resume the input streams of data to be provided to the plurality of nodes. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. An article of manufacture comprising a non-transitory computer storage medium storing instructions that when executed by a computer configure the computer to provide an update manager for a distributed message processing system having a plurality of nodes implemented on one or more computers, each node independently processing input streams of data, according to a set of independent, asynchronous processing components connected in a manner represented by a directed graph, the update manager configured to perform a process for dynamically updating, on each node, a runtime version of a computer program defining the set of processing components during execution of the runtime version, the update manager configured to:
-
receive a new runtime version of the computer program into memory; determine differences between the new runtime version of the computer program and a current runtime version of the computer program; generate a change listing defining an ordered set of commands for each node of the plurality of nodes to perform to modify the current runtime version of the computer program into the new runtime version of the computer program, such commands being invertible such that when an inverse of such commands are performed in reverse order, the current runtime version of the computer program is restored; pause the input streams of data from being provided to the plurality of nodes; instruct each node of the plurality of nodes to update the runtime version of the computer program from the current version to the new version; monitor progress of updates to the plurality of nodes; after failure of the update by one or more nodes of the plurality of nodes, instruct the plurality of nodes to rollback the update to the current runtime version of the computer program; and after rollback or successful update by the plurality of nodes, resume the input streams of data to be provided to the plurality of nodes. - View Dependent Claims (18, 19, 20)
-
Specification