IP Library Granted Patent US 7,926,071
Granted Patent B2
US 7,926,071 · App. 11/255,119 · Granted Apr 12, 2011

Load balancing interfaces

Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,926,071
App. No.
11/255,119
Granted
Apr 12, 2011
Kind
B2
Abstract

Interfaces are provided to notify of conditions pertaining to memory management. Thus, efforts to avoid time-outs during execution of code in a managed execution environment may be implemented.

Claims (25)

1. At least one interface, embodied on one or more non-transitory computer-readable storage media, to be called during execution of managed code, the at least one interface comprising:

one or more application program interfaces (APIs) to assess an amount of computer processing resources that would be used to process an anticipated computing operation relative to a predetermined computing resource threshold, wherein the assessment evaluates the anticipated computing operation to determine the amount of processing time that would be used to process the anticipated computing operation and wherein the on or more APIs to send a notification that memory allocation has exceeded a threshold value are instantiated by a garbage collector in a managed execution environment; and

one or more APIs to determine, based on the assessed amount of computer processing time that would be used to process the anticipated computing operation, that one or more process threads of the executing managed code will time-out if the anticipated computing operation is executed in conjunction with the executing managed code and send both a notification that a scan of memory heap has been completed and a call to redirect execution of at least a portion of the managed code across an isolation boundary, wherein the one or more APIs to send the notification are instantiated by a garbage collector in the managed execution environment.

2. At least one interface according to claim 1 , wherein the one or more APIs to send a notification that memory allocation has exceeded the threshold value includes a call to redirect a request for execution of at least a portion of the managed code across an isolation boundary.

3. At least one interface according to claim 1 , wherein the one or more APIs to send a notification that memory allocation has exceeded the threshold value includes a call to redirect a request for execution of at least a portion of the managed code across one of a machine boundary, a process boundary, a thread boundary, a class boundary, or an assembly boundary.

4. At least one interface according to claim 1 , wherein the one or more APIs to send a notification that memory allocation has exceeded the threshold value interface with a load balancer.

5. At least one interface according to claim 1 , wherein the one or more APIs to send a notification that a scan of memory heap has been completed includes a call to instruct that a request for execution of at least a portion of the managed code not be redirected.

6. A transaction method, comprising:

monitoring execution of managed code;

assessing an amount of computer processing resources that would be used to process an anticipated computing operation relative to a predetermined computing resource threshold, wherein the assessment evaluates the anticipated computing operation to determine the amount of processing time that would be used to process the anticipated computing operation;

sending a notification that memory allocation has exceeded a threshold value, wherein one or more APIs that send the notification are instantiated by a garbage collector in a managed execution environment;

based on the assessed amount of computer processing time that would be used to process the anticipated computing operation, determining that one or more process threads of the executing managed code will time-out if the anticipated computing operation is executed in conjunction with the executing managed code; and

based on the determination that the one or more process threads of the executing managed code will time-out, transmitting at least one call to redirect execution of at least a portion of the managed code across an isolation boundary and a notification that a scan of memory heap has been completed, wherein one or more APIs to transmit the notification are instantiated by a garbage collector in a managed execution environment.

7. A transaction method according to claim 6 , wherein the isolation boundary is from server-to-server.

8. A transaction method according to claim 6 , wherein the transmitting of at least the one call to redirect execution of at least a portion of the managed code interfaces with a load balancer.

9. A transaction method according to claim 6 , wherein the transmitting of at least the one call to redirect execution of at least a portion of the managed code interfaces is made from one process to another process.

10. A transaction method according to claim 6 , wherein the memory management condition includes anticipating a time-out during the execution of managed code during a sweep of memory heap.

11. A computer program product for implementing a method for load balancing among computing processes, the computer program product comprising one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by one or more processors of the computing system, cause the computing system to perform the method, the method comprising:

monitoring execution of managed code;

assessing an amount of computer processing resources that are being used to process a currently processing computing operation relative to a predetermined computing resource threshold, wherein the assessment evaluates the currently processing computing operation to determine the amount of processing time that is being used to process the currently processing computing operation;

sending a notification that memory allocation has exceeded a threshold value, wherein one or more application program interfaces (APIs) that send the notification are instantiated by a garbage collector in a managed execution environment;

based on the assessed amount of computer processing time that is being used to process the currently processing computing operation, determining that no process threads of the either the currently processing computing operation or the executing managed code will time-out if the currently processing computing operation continues to be executed simultaneously with the executing managed code; and

based on the determination, transmitting at least one call to cease redirecting execution of at least a portion of the managed code and a notification that a scan of memory heap has been completed, wherein one or more APIs to send the notification are instantiated by a garbage collector in a managed execution environment.

12. The computer program product of claim 11 , wherein the assessment occurs at the completion of a memory heap sweep.

13. The computer program product of claim 11 , wherein the transmitting of at least the one call to cease redirecting execution is made from one process to another process.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2006
From: STEPHENS, MAONI Z.; DUSSUD, PATRICK H.
To: MICROSOFT CORPORATION
Reel/Frame 017021/0530 →
Continuity (1)
Related Publication 20070094671A1 · Apr 26, 2007