IP Library Granted Patent US 6,961,740
Granted Patent B2
US 6,961,740 · App. 10/209,762 · Granted Nov 1, 2005

Method and system for multimode garbage collection

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 6,961,740
App. No.
10/209,762
Granted
Nov 1, 2005
Kind
B2
Abstract

This invention is a method and system for improved garbage collection in a distributed computing system. Garbage collection is the process of releasing resources that are no longer being utilized by the objects to which those resources are allocated. Specifically, a garbage collection system and method are described that allow for different types of garbage collection to be used at different times and/or on different objects or resources in the system. In the preferred embodiment, the garbage collection routines are contained in separate mobile code module that can be changed dynamically interchanged to provide different garbage collection algorithms.

Claims (62)

1. A method of garbage collection in a computer system comprising the steps of:

using a first algorithm for garbage collection of at least one resource;

detecting an event indicating that a different algorithm should be used; and

switching to a second algorithm for garbage collection of the at least one resource;

wherein the first and second algorithms for garbage collection are selected from the group consisting of reference counting, pinging, time since last use, expired time-to-live, last reference time stamp and leasing.

2. The method of claim 1 wherein the switching is accomplished while the at least one resource is operating.

3. The method of claim 1 wherein the garbage collection algorithms are executed by a resource host.

4. The method of claim 1 wherein the garbage collection algorithms are executed as part of garbage collection service.

5. The method of claim 1 wherein the computer system is a distributed computing system.

6. The method of claim 1 wherein the resource is memory, computational power, a central processing unit, a lookup service, a hardware device, a software module, a service, a container, a client or a communication channel.

7. The method of claim 1 wherein the event is the availability of a resource, errors in the system, time of day, length of time, a signal from a human operator, a request by an object in the system, or the addition or removal of another resource.

8. The method of claim 1 wherein the step of switching to a second algorithm is accomplished by changing the parameters in the first algorithm.

9. A computer readable medium containing instructions for controlling a computer system to perform a method of garbage collection in a computer system, the method comprising the steps of:

using a first algorithm for garbage collection of at least one resource;

detecting an event indicating that a different algorithm should be used;

and switching to a second algorithm for garbage collection of the at least one resource;

wherein the first and second algorithms for garbage collection are selected from the group consisting of reference counting, pinging, time since last use, expired time-to-live, last reference time stamp and leasing.

10. The computer readable medium of claim 9 wherein the switching is accomplished while the at least one resource is operating.

11. The computer readable medium of claim 9 wherein the garbage collection algorithms are executed by a resource host.

12. The computer readable medium of claim 9 wherein the garbage collection algorithms are executed as part of garbage collection service.

13. The computer readable medium of claim 9 wherein the computer system is a distributed computing system.

14. The computer readable medium of claim 9 wherein the resource is memory, computational power, a central processing unit, a lookup service, a hardware device, a software module, a service, a container, a client or a communication channel.

15. The computer readable medium of claim 9 wherein the event is the availability of a resource, errors in the system, time of day, length of time, a signal from a human operator, a request by an object in the system, or the addition or removal of another resource.

16. The computer readable medium of claim 9 wherein the step of switching to a second algorithm is accomplished by changing the parameters in the first algorithms.

17. A method of garbage collection in a distributed computing application comprising the steps of:

providing at a first garbage collection agent; and

replacing the first garbage collection agent with a second garbage collection agent;

wherein the first garbage collection agent and the second garbage collection agent implement different algorithms for garbage collection for a resource and said algorithms are selected from the group consisting of reference counting, pinging, time since last use, expired time-to-live, last reference time stamp and leasing.

18. The method of claim 17 wherein the garbage collection agents are executed by a resource host for the resource.

19. The method of claim 17 wherein the garbage collection agents are executed by a garbage collection service.

20. The method of claim 17 wherein the resource is memory, computational power, a central processing unit, a lookup service, a hardware device, a software module, a service, a container, a client or a communication channel.

21. The method of claim 17 wherein the first garbage collection agent and second garbage collection agent are swapped upon the occurrence of an event.

22. The method of claim 21 wherein the event is the availability of a resource, errors in the system, time of day, length of time; a signal from a human operator, a request by an object in the system, or the addition or removal of another resource.

23. The method of claim 17 wherein at least one of the garbage collection agents are provided by a service that uses the resource.

24. The method of claim 17 wherein there are a plurality of services using the resource and each service provides its own garbage collection agent.

25. A computer readable medium containing instructions for controlling a computer system to perform a method of garbage collection in a distributed computing application, the method comprising the steps of:

providing at a first garbage collection agent; and

replacing the first garbage collection agent with a second garbage collection agent;

wherein the first garbage collection agent and the second garbage collection agent implement different algorithms for garbage collection for a resource and said algorithms are selected from the group consisting of reference counting, pinging, time since last use, expired time-to-live, last reference time stamp and leasing.

26. The computer readable medium of claim 25 wherein the garbage collection agents are executed by a resource host for the resource.

27. The computer readable medium of claim 25 wherein the garbage collection agents are executed by a garbage collection service.

28. The computer readable medium of claim 25 wherein the resource is memory, computational power, a central processing unit, a lookup service, a hardware device, a software module, a service, a container, a client or a communication channel.

29. The computer readable medium of claim 25 wherein the first garbage collection n agent and second garbage collection agent are swapped upon the occurrence of an event.

30. The computer readable medium of claim 29 wherein the event is the availability of a resource, errors in the system, time of day, length of time, a signal from a human operator, a request by an object in the system, or the addition or removal of another resource.

31. The computer readable medium of claim 25 wherein at least one of the garbage collection agents are provided by a service that uses the resource.

32. The computer readable medium of claim 25 wherein there are a plurality of services using the resource and each service provides its own garbage collection agent.

33. A distributed computing system comprising:

a plurality of computing devices;

a resource;

a service utilizing a portion of the resource; and

a garbage collection agent that monitors the resource and releases the portion of the resource used by the service;

wherein the garbage collection agent is comprised of an algorithm for garbage collection selected from the group consisting of reference counting, pinging, time since last use, expired time-to-live, last reference time stamp and leasing.

34. The system described in claim 33 further comprising a garbage collection service that operates the garbage collection agent.

35. The system described in claim 34 further comprising a plurality of services each with a separate garbage collection agent.

36. The system described in claim 35 further comprising a plurality of resources each with a separate garbage collection agent.

37. The system described in claim 36 further comprising a plurality of garbage collection agents wherein at least two of the agents are switched to accomplish different garbage collection algorithms.

38. The method of claim 37 wherein switching happens upon the occurrence of an event.

39. The method of claim 38 wherein the event is the availability of a resource, errors in the system, time of day, length of time, a signal from a human operator, a request by an object in the system, or the addition or removal of another resource.

40. The system described in claim 33 wherein the garbage collection agent is comprised of a garbage collection algorithm and a parameter wherein the parameters can be modified.

41. The system described in claim 33 further comprising a resource host for controlling allocation of portions of the resource to the service and for receiving instructions from the garbage collection agent to release portions of the resource.

42. The system described in claim 33 wherein the garbage collection agent is executed by the resource host.

43. The method of claim 33 wherein the resource is memory, computational power, a central processing unit, a lookup service, a hardware device, a software module, a service, a container, a client or a communication channel.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2012
From: VALARAN CORPORATION
To: GLOBAL INFOTEK, INC.
Reel/Frame 027961/0554 →
SECURITY INTEREST Recorded May 23, 2005
From: VALARAN CORPORATION
To: ENERTECH CAPITAL PARTNERS II L.P.; ECP II INTERFUND L.P.; TL VENTURES IV INTERFUND L.P.; TL VENTURES IV L.P.
Reel/Frame 016267/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2005
From: RICCIARDI, ALETA; O'CONNOR, ELISA
To: VALARAN CORPORATION
Reel/Frame 015826/0715 →
SECURITY INTEREST Recorded Jan 28, 2004
From: VALARAN CORPORATION
To: ENERTECH CAPITAL PARTNERSHIP II L.P.; ECP II INTERFUND L.P.; TL VENTURES IV L.P.; TL VENTURES IV INTERFUND L.P.
Reel/Frame 014928/0164 →