System and method for multi-version remote function execution control in a distributed computing environment
First Claim
1. A method for supporting multi-version remote function execution control in a distributed computing environment, the method comprising:
- receiving, at an executor from a first submitter, a first submitter classfile, the first submitter classfile including a version identifier, the version identifier being associated with a class definition for a remote function;
comparing by the executor the version identifier received from the first submitter against an original plurality of version identifiers;
responsive to the comparing finding no matches between the version identifier received from the first submitter and the original plurality of version identifiers, requesting by the executor, from the first submitter, the class definition of the remote function associated with the version identifier received from the first submitter;
receiving, at the executor from the first submitter responsive to the requesting, the class definition of the remote function associated with the version identifier received from the first submitter;
responsive to receiving the class definition of the remote function associated with the version identifier received from the first submitter, performing the remote function by the executor using the class definition for the remote function, and updating by the executor the original plurality of version identifiers as an updated plurality of version identifiers by adding to the original plurality of version identifiers the version identifier associated with the class definition for the remote function received from the first submitter;
receiving, at the executor from a second submitter after the updating of the original plurality of version identifiers to the updated plurality of version identifiers, a second submitter classfile, the second submitter classfile including the version identifier;
comparing by the executor the version identifier received from the second submitter against the updated plurality of version identifiers; and
responsive to the comparing finding a match between the version identifier received from the second submitter and the updated plurality of version identifiers, performing the remote function by the executor using the class definition previously received from the first submitter.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for supporting multi-version remote function execution control in a distributed computing environment is provided. Remote functions are provided with a version identifier which uniquely identifies the version of the remote function. The version identifier can be a digest of the class definition of the remote function. The version identifier is used by an executor and/or class loader to ensure execution of correct class versions when on a node in a distributed computing environment. The definitive identification of class versions also provides for conditional transmission of class definition thereby reducing communication overhead for distribution of remote functions.
-
Citations
20 Claims
-
1. A method for supporting multi-version remote function execution control in a distributed computing environment, the method comprising:
-
receiving, at an executor from a first submitter, a first submitter classfile, the first submitter classfile including a version identifier, the version identifier being associated with a class definition for a remote function; comparing by the executor the version identifier received from the first submitter against an original plurality of version identifiers; responsive to the comparing finding no matches between the version identifier received from the first submitter and the original plurality of version identifiers, requesting by the executor, from the first submitter, the class definition of the remote function associated with the version identifier received from the first submitter; receiving, at the executor from the first submitter responsive to the requesting, the class definition of the remote function associated with the version identifier received from the first submitter; responsive to receiving the class definition of the remote function associated with the version identifier received from the first submitter, performing the remote function by the executor using the class definition for the remote function, and updating by the executor the original plurality of version identifiers as an updated plurality of version identifiers by adding to the original plurality of version identifiers the version identifier associated with the class definition for the remote function received from the first submitter; receiving, at the executor from a second submitter after the updating of the original plurality of version identifiers to the updated plurality of version identifiers, a second submitter classfile, the second submitter classfile including the version identifier; comparing by the executor the version identifier received from the second submitter against the updated plurality of version identifiers; and responsive to the comparing finding a match between the version identifier received from the second submitter and the updated plurality of version identifiers, performing the remote function by the executor using the class definition previously received from the first submitter. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system supporting multi-version remote function execution control in a distributed computing environment comprising:
-
a computer server comprising a microprocessor and memory; a node operating on the computer server; and an executor operating on the node, the executor configured to; receive from a first submitter a first submitter classfile, the first submitter classfile including a version identifier, the version identifier being associated with a class definition for a remote function; compare the version identifier received from the first submitter against an original plurality of version identifiers; responsive to the comparing finding no matches between the version identifier received from the first submitter and the original plurality of version identifiers, request, from the first submitter, the class definition of the remote function associated with the version identifier received from the first submitter; receive from the first submitter responsive to the request the class definition of the remote function associated with the version identifier received from the first submitter; responsive to receiving the class definition of the remote function associated with the version identifier received from the first submitter, perform the remote function using the class definition for the remote function, and update the original plurality of version identifiers as an updated plurality of version identifiers by adding to the original plurality of version identifiers the version identifier associated with the class definition for the remote function received from the first submitter; receive from a second submitter after the updating of the original plurality of version identifiers to the updated plurality of version identifiers, a second submitter classfile, the second submitter classfile including the version identifier; compare the version identifier received from the second submitter against the updated plurality of version identifiers; and responsive to the comparing finding a match between the version identifier received from the second submitter and the updated plurality of version identifiers, perform the remote function using the class definition previously received from the first submitter; wherein the executor, the first submitter and the second submitter are processes. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer-readable medium having instruction stored thereon for supporting multi-version remote function execution control in a distributed computing environment, which instructions, when executed cause a computer system in the distributed computing environment to perform steps comprising:
-
receiving, at an executor from a first submitter, a first submitter classfile, the first submitter classfile including a version identifier, the version identifier being associated with a class definition for a remote function; comparing by the executor the version identifier received from the fist submitter against an original plurality of version identifiers; responsive to the comparing finding no matches between the version identifier received from the first submitter and the original plurality of version identifiers, requesting by the executor, from the first submitter, the class definition of the remote function associated with the version identifier received from the first submitter; receiving, at the executor from the first submitter responsive to the requesting, the class definition of the remote function associated with the version identifier received from the first submitter; responsive to receiving the class definition of the remote function associated with the version identifier received from the first submitter, performing the remote function by the executor using the class definition for the remote function, and updating by the executor the original plurality of version identifiers as an updated plurality of version identifiers by adding to the original plurality of version identifiers the version identifier associated with the class definition for the remote function received from the first submitter; receiving, at the executor from a second submitter after the updating of the original plurality of version identifiers to the updated plurality of version identifiers, a second submitter classfile, the second submitter classfile including the version identifier; comparing by the executor the version identifier received from the second submitter against the updated plurality of version identifiers; and responsive to the comparing finding a match between the version identifier received from the second submitter and the updated plurality of version identifiers, performing the remote function by the executor using the class definition previously received from the first submitter; wherein the executor, the first submitter and the second submitter are processes.
-
Specification