System and method for transferring code to a data producer
First Claim
1. A method for selectively transferring code to a data producer in a networked system, wherein the data producer generates data and sends the data to a local computing device, comprising:
- receiving, by the local computing device, the data from the data producer;
performing a processing operation on the data to produce processed data;
analyzing characteristics of the processed data to determine whether the processing operation reduces resource utilization including reducing the size of the data, wherein analyzing the characteristics of the processed data involves using a distributed framework that manages location and routing information, wherein the distributed framework monitors the needs and characteristics of a set of distributed applications executing simultaneously, and wherein the distributed framework determines whether performing the move would improve system performance and/or resource utilization; and
responsive to determining that the processing operation reduces resource utilization, transferring the processing operation to the data producer so that the data producer resumes the processing operation, wherein transferring the processing operation involves;
retrieving a binary executable version of code associated with the processing operation;
collecting current processing states of the processing operation;
destroying an instance of the processing operation on the local computing device;
packaging the collected processing states and the retrieved binary executable version of the code; and
transferring the package from the local computing device to the data producer to facilitate the data producer to resume execution of the code, wherein the package includes the collected processing states and the retrieved binary executable version of the code.
3 Assignments
0 Petitions
Accused Products
Abstract
One embodiment of the present invention provides a system that selectively transfers code to a data producer in a networked system. In this system, the data producer generates data and then sends the data to a device. The device receives the data from the data producer, and then uses code on the device to perform a processing operation on the data. Next, the system analyzes characteristics of the data to determine whether performing the processing operation on the data producer can reduce resource usage. If so, the system transfers the code from the device to the data producer, and subsequently executes the code on the data producer. By executing the code on the data producer, the system can optimize resource usage in the networked system.
-
Citations
19 Claims
-
1. A method for selectively transferring code to a data producer in a networked system, wherein the data producer generates data and sends the data to a local computing device, comprising:
-
receiving, by the local computing device, the data from the data producer; performing a processing operation on the data to produce processed data; analyzing characteristics of the processed data to determine whether the processing operation reduces resource utilization including reducing the size of the data, wherein analyzing the characteristics of the processed data involves using a distributed framework that manages location and routing information, wherein the distributed framework monitors the needs and characteristics of a set of distributed applications executing simultaneously, and wherein the distributed framework determines whether performing the move would improve system performance and/or resource utilization; and responsive to determining that the processing operation reduces resource utilization, transferring the processing operation to the data producer so that the data producer resumes the processing operation, wherein transferring the processing operation involves; retrieving a binary executable version of code associated with the processing operation; collecting current processing states of the processing operation; destroying an instance of the processing operation on the local computing device; packaging the collected processing states and the retrieved binary executable version of the code; and transferring the package from the local computing device to the data producer to facilitate the data producer to resume execution of the code, wherein the package includes the collected processing states and the retrieved binary executable version of the code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for selectively transferring code to a data producer in a networked system, wherein the data producer generates data and sends the data to a local computing device, the method comprising:
-
receiving, at the local computing device, the data from the data producer; performing a processing operation on the data to produce processed data; analyzing characteristics of the processed data to determine whether the processing operation reduces resource utilization including reducing the size of the data, wherein analyzing the characteristics of the processed data involves using a distributed framework that manages location and routing information, wherein the distributed framework monitors the needs and characteristics of a set of distributed applications executing simultaneously, and wherein the distributed framework determines whether performing the move would improve system performance and/or resource utilization; and responsive to determining that the processing operation reduces resource utilization, transferring the processing operation to the data producer so that the data producer resumes the processing operation, wherein transferring the processing operation involves; retrieving a binary executable version of code associated with the processing operation; collecting current processing states of the processing operation; destroying an instance of the processing operation on the local computing device; packaging the collected processing states and the retrieved binary executable version of the code; and transferring the package from the local computing device to the data producer to facilitate the data producer to resume execution of the code, wherein the package includes the collected processing states and the retrieved binary executable version of the code. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. An apparatus that selectively transfers code to a data producer in a networked system, wherein the data producer generates data and sends the data to a local computing device, comprising:
-
a receiving mechanism that is coupled to a processor and receives the data from the data producer, the processor configured to perform a processing operation on the data, at the device; a determination mechanism configured to analyze characteristics of the processed data to determine whether the processing operation reduces resource utilization including reducing the size of the data, wherein analyzing the characteristics of the processed data involves using a distributed framework that manages location and routing information, wherein the distributed framework monitors the needs and characteristics of a set of distributed applications executing simultaneously, and wherein the distributed framework determines whether performing the move would improve system performance and/or resource utilization; and a moving mechanism configured to transfer the processing operation to the data producer so that the data producer resumes the processing operation, in response to the determination mechanism determining that the processing operation reduces resource utilization, wherein transferring the processing operation involves; retrieving a binary executable version of code associated with the processing operation; collecting current processing states of the processing operation; destroying an instance of the processing operation on the local computing device; packaging the collected processing states and the retrieved binary executable version of the code; and transferring the package from the local computing device to the data producer to facilitate the data producer to resume execution of the code, wherein the package includes the collected processing states and the retrieved binary executable version of the code.
-
Specification