Claims Analysis
Total Claims: 27
Claim 1
Independent Claim
211 words
A distributed object load balancing system for use with a network comprising a plurality of computers including a first computer, wherein the computers are operable to access a plurality of shared objects in a distributed object system, the load balancing system comprising: a workload service running on the first computer; at least one application process running on at least one of the plurality of computers different from the first computer, wherein the at least one application process is a multi-threaded process comprising a statistics thread; wherein the application process is operable to instruct an object comprising a part of the application process to record at least one performance statistic; wherein the statistics thread is operable to wake up periodically and obtain the at least one performance statistic, the statistics thread further operable to cause the at least one performance statistic to be sent to the workload service; wherein a new shared object comprising part of the distributed object system is created in the memory of one of the plurality of computers based upon performance statistics maintained by the workload service; and wherein the one of the plurality of computers for the new shared object is selected based upon a prediction of resources that will be consumed by the new shared object.
Claim 2
Dependent Claim
211 words
A distributed object load balancing system for use with a network comprising a plurality of computers including a first computer, wherein the computers are operable to access a plurality of shared objects in a distributed object system, the load balancing system comprising: a workload service running on the first computer; at least one application process running on at least one of the plurality of computers different from the first computer, wherein the at least one application process is a multi-threaded process comprising a statistics thread; wherein the application process is operable to instruct an object comprising a part of the application process to record at least one performance statistic; wherein the statistics thread is operable to wake up periodically and obtain the at least one performance statistic, the statistics thread further operable to cause the at least one performance statistic to be sent to the workload service; wherein a new shared object comprising part of the distributed object system is created in the memory of one of the plurality of computers based upon performance statistics maintained by the workload service; and wherein the one of the plurality of computers for the new shared object is selected based upon a prediction of resources that will be consumed by the new shared object.
Claim 3
Dependent Claim
55 words
The distributed object load balancing system of claim 1 , wherein the application process instructs an object comprising a part of the application process to record at least one performance statistic using an interceptor thread that generates the instruction to the object at the conclusion of the processing of a message sent to that object.
Claim 4
Dependent Claim
33 words
The distributed object load balancing system of claim 1 , wherein performance statistics are only maintained for messages to objects comprising part of the application process that originated outside of the application process.
Claim 5
Dependent Claim
25 words
The distributed object load balancing system of claim 1 , wherein each object in an application process stores its statistics in a statistics data structure.
Claim 6
Dependent Claim
35 words
The distributed object load balancing system of claim 4 , wherein the statistics thread traverses the statistics data structure to obtain statistics data and causes the statistics data to be sent to the workload service.
Claim 7
Dependent Claim
82 words
The distributed object load balancing system of claim 1 , further comprising: a local agent running on one of the plurality of computers; wherein that statistics thread is operable to cause the at least one performance statistic to be sent to the workload service by sending the at least one performance statistic to the local agent; and wherein the local agent is operable to receive performance statistics from one or more statistics threads and relay those performance statistics to the workload service.
Claim 8
Dependent Claim
38 words
The distributed object load balancing system of claim 6 , wherein the local agent receives performance statistics from multiple statistics threads, each statistics thread associated with an application process running on the same computer with the local agent.
Claim 9
Dependent Claim
39 words
The distributed object load balancing system of claim 1 , wherein the prediction is based on an average workload based on the at least one performance statistic and associated with an object class associated with the new shared object.
Claim 10
Dependent Claim
291 words
A distributed object load balancing system for use with a network comprising a plurality of computers including a first computer, wherein the computers are operable to access a plurality of shared objects in a distributed object system, the load balancing system comprising: a workload service running on the first computer; at least one application process running on at least one of the plurality of computers different from the first computer, wherein the at least one application process is a multi-threaded process comprising a statistics thread; wherein the application process is operable to instruct an object comprising a part of the application process to record at least one performance statistic; wherein the statistics thread is operable to wake up periodically and obtain the at least one performance statistic, the statistics thread further operable to cause the at least one performance statistic to be sent to the workload service; wherein a new shared object comprising part of the distributed object system is created in the memory of one of the plurality of computers based upon performance statistics maintained by the workload service; and wherein the at least one performance statistic comprises a statistic selected from the group consisting of the number of objects active for a given object class, the time spent in processing a message to an object, the computer on which each object resides, what methods have been invoked on each object, a cumulative measure of the time spent in processing a type of message to all instances of a given object class, a cumulative measure of the number of times a particular method has been invoked for all instances of a given object class, and the number of times a method has been invoked for a given period of time.
Claim 11
Dependent Claim
291 words
A distributed object load balancing system for use with a network comprising a plurality of computers including a first computer, wherein the computers are operable to access a plurality of shared objects in a distributed object system, the load balancing system comprising: a workload service running on the first computer; at least one application process running on at least one of the plurality of computers different from the first computer, wherein the at least one application process is a multi-threaded process comprising a statistics thread; wherein the application process is operable to instruct an object comprising a part of the application process to record at least one performance statistic; wherein the statistics thread is operable to wake up periodically and obtain the at least one performance statistic, the statistics thread further operable to cause the at least one performance statistic to be sent to the workload service; wherein a new shared object comprising part of the distributed object system is created in the memory of one of the plurality of computers based upon performance statistics maintained by the workload service; and wherein the at least one performance statistic comprises a statistic selected from the group consisting of the number of objects active for a given object class, the time spent in processing a message to an object, the computer on which each object resides, what methods have been invoked on each object, a cumulative measure of the time spent in processing a type of message to all instances of a given object class, a cumulative measure of the number of times a particular method has been invoked for all instances of a given object class, and the number of times a method has been invoked for a given period of time.
Claim 12
Independent Claim
178 words
A method for load balancing in a distributed object system running on a network comprising a plurality of computers including a first computer, wherein the computers are operable to access a plurality of shared objects in a distributed object system, the method comprising: instructing an object comprising a part of an application process running on the first computer to record at least one performance statistic in response to a message directed to the object, the application process comprising a multi-threaded process and including a statistics thread; periodically obtaining the at least one performance statistic using the statistics thread; relaying the at least one performance statistic to a workload service running on a second computer connected to the network; instantiating a new distributed object comprising part of the distributed object system in the memory of one of the plurality of computers based upon performance statistics maintained by the workload service; and selecting the one of the plurality of computers for the new shared object based upon a prediction of resources that will be consumed by the new shared object.
Claim 13
Independent Claim
178 words
A method for load balancing in a distributed object system running on a network comprising a plurality of computers including a first computer, wherein the computers are operable to access a plurality of shared objects in a distributed object system, the method comprising: instructing an object comprising a part of an application process running on the first computer to record at least one performance statistic in response to a message directed to the object, the application process comprising a multi-threaded process and including a statistics thread; periodically obtaining the at least one performance statistic using the statistics thread; relaying the at least one performance statistic to a workload service running on a second computer connected to the network; instantiating a new distributed object comprising part of the distributed object system in the memory of one of the plurality of computers based upon performance statistics maintained by the workload service; and selecting the one of the plurality of computers for the new shared object based upon a prediction of resources that will be consumed by the new shared object.
Claim 14
Dependent Claim
50 words
The method of claim 10 , further comprising: instructing an object comprising a part of the application process to record the at least one performance statistic using an interceptor thread that generates the instruction to the object at the conclusion of the processing of a message sent to that object.
Claim 15
Dependent Claim
29 words
The method of claim 9 , wherein performance statistics are only maintained for messages to objects comprising part of the application process that originated outside of the application process.
Claim 16
Dependent Claim
21 words
The method of claim 9 , wherein each object in an application process stores its statistics in a statistics data structure.
Claim 17
Dependent Claim
33 words
The method of claim 12 , further comprising: traversing the statistics data structure to obtain statistics data and causing the statistics data to be sent to the workload service using the statistics thread.
Claim 18
Dependent Claim
23 words
The method of claim 10 , wherein the periodicity of obtaining the at least one performance statistic is configurable for each application process.
Claim 19
Dependent Claim
52 words
The method of claim 10 , wherein the statistics thread relays the at least one performance statistic to the workload service by sending the statistic to a local agent process running on the first computer, the local agent process operable to relay that at least one performance statistic to the workload service.
Claim 20
Dependent Claim
34 words
The method of claim 16 , wherein the local agent receives performance statistics from multiple statistics threads, each statistics thread associated with an application process running on the same computer with the local agent.
Claim 21
Dependent Claim
21 words
The method of claim 17 , wherein each object in an application process stores its statistics in a statistics data structure.
Claim 22
Dependent Claim
30 words
The method of claim 18 , further comprising: traversing the statistics data structure to obtain statistics data and sending the statistics data to the local agent using the statistics thread.
Claim 23
Dependent Claim
23 words
The method of claim 17 , wherein the periodicity of obtaining the at least one performance statistic is configurable for each application process.
Claim 24
Dependent Claim
25 words
The method of claim 10 and further comprising determining an average workload associated an object class and based on the at least one performance statistic.
Claim 25
Dependent Claim
48 words
The method of claim 21 , wherein instantiating the new shared object comprises: predicting the resources that will be consumed by the new shared object based on the average workload; and selecting the one of the plurality of computers for the new shared object based on the prediction.
Claim 26
Independent Claim
261 words
A method for load balancing in a distributed object system running on a network comprising a plurality of computers including a first computer, wherein the computers are operable to access a plurality of shared objects in a distributed object system, the method comprising: instructing an object comprising a part of an application process running on the first computer to record at least one performance statistic in response to a message directed to the object, the application process comprising a multi-threaded process and including a statistics thread; periodically obtaining the at least one performance statistic using the statistics thread; relaying the at least one performance statistic to a workload service running on a second computer connected to the network; and instantiating a new distributed object comprising part of the distributed object system in the memory of one of the plurality of computers based upon performance statistics maintained by the workload service; and wherein the at least one performance statistic comprises a statistic selected from the group consisting of the number of objects active for a given object class, the time spent in processing a message to an object, the computer on which each object resides, what methods have been invoked on each object, a cumulative measure of the time spent in processing a type of message to all instances of a given object class, a cumulative measure of the number of times a particular method has been invoked for all instances of a given object class, and the number of times a method has been invoked for a given period of time.
Claim 27
Independent Claim
261 words
A method for load balancing in a distributed object system running on a network comprising a plurality of computers including a first computer, wherein the computers are operable to access a plurality of shared objects in a distributed object system, the method comprising: instructing an object comprising a part of an application process running on the first computer to record at least one performance statistic in response to a message directed to the object, the application process comprising a multi-threaded process and including a statistics thread; periodically obtaining the at least one performance statistic using the statistics thread; relaying the at least one performance statistic to a workload service running on a second computer connected to the network; and instantiating a new distributed object comprising part of the distributed object system in the memory of one of the plurality of computers based upon performance statistics maintained by the workload service; and wherein the at least one performance statistic comprises a statistic selected from the group consisting of the number of objects active for a given object class, the time spent in processing a message to an object, the computer on which each object resides, what methods have been invoked on each object, a cumulative measure of the time spent in processing a type of message to all instances of a given object class, a cumulative measure of the number of times a particular method has been invoked for all instances of a given object class, and the number of times a method has been invoked for a given period of time.