← Back to Patent Explorer
US6397252B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and system for load balancing in a distributed object system

Assignee: Hewlett Packard Development Co LP
•
Filing: 1997-12-19
•
Granted: 2002-05-28
•
Expires: 2017-12-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract One aspect of the invention is a method for load balancing in a distributed object system running on a network comprising a plurality of computers ( 42, 44 ) including a first computer ( 44 ) wherein the computers ( 42, 44 ) are operable to access a plurality of shared objects in a distributed object system. The method comprises instructing an object comprising a part of an application process ( 50 ) running on the first computer ( 44 ) to record at least one performance statistic in response to a message directed to the object. The application process ( 50 ) comprises a multi-threaded process and includes a statistics thread ( 54 ). Periodically, at least one performance statistic is obtained using the statistics thread ( 54 ) and that performance statistic is sent to a local agent process ( 48 ) running on the first computer ( 44 ). The performance statistics are relayed to a workload service ( 46 ) running on a second computer ( 42 ) connected to the network. A new distributed object is instantiated in the memory of one of the plurality of computers ( 42, 44 ) based upon performance statistics maintained by the workload service ( 46 ).

Inventors

  • 👤 Waqar Sadiq

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 16:36
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/50; G06F9/5083; G06F11/00; G06F11/30; G06F11/34; G06F11/3409; G06F11/3433; G06F11/3466; G06F11/3495; G06F2209/00; G06F2209/50; G06F2209/508

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.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-05-27 2005-11-26 2006-05-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-05-27 2009-11-26 2010-05-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-05-27 2013-11-26 2014-05-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag