Methods, apparatus, and product for distributed garbage collection
First Claim
Patent Images
1. A method for managing resources comprising the steps, performed by at least one processor, of:
- receiving a request for a resource;
permitting access to the resource for a time interval; and
releasing the resource when the time interval expires.
1 Assignment
0 Petitions
Accused Products
Abstract
In accordance with the present invention a process is provided for allocating and deallocating resources in a distributed processing system having a requester platform and a server platform. The process involves receiving a request from the requestor platform referring to a system resource and specifying a requested lease period, permitting shared access to the system resource for a lease period, sending a return call to the requestor platform advising of the lease period, and deallocating the system resource when the lease period expires.
130 Citations
76 Claims
-
1. A method for managing resources comprising the steps, performed by at least one processor, of:
-
receiving a request for a resource;
permitting access to the resource for a time interval; and
releasing the resource when the time interval expires. - View Dependent Claims (2, 3, 4, 5, 6)
determining the time interval based on at least one of a requested lease period, a measure of the resource, and granted lease periods for the resource. -
3. The method of claim 1, wherein the permitting operation includes
incrementing a reference count corresponding to the resource, the reference count indicating a number of processes currently having access to the resource. -
4. The method of claim 3, wherein the releasing operation includes
reclaiming the resource when the reference count indicates no processes currently access the identified resource. -
5. The method of claim 1, wherein the releasing operation includes
reclaiming the resource when access to the resource is no longer requested. -
6. The method of claim 1, wherein the permitting operation includes
guaranteeing integrity of the resource for the time interval.
-
-
7. A method for managing objects performed by at least one processor comprising:
-
sending a request to access an object, including a reference corresponding to the object and indicating a period of time for which access to the object is requested;
receiving a response to the request indicating a period of time for which access to the object on a nonexclusive basis is permitted;
determining whether the period for which access to the object has been permitted is about to expire; and
renewing the request to access the resource based upon a determination that access to the resource is required. - View Dependent Claims (8, 9, 10, 11)
incrementing a counter corresponding to the object reflecting the response.
-
-
9. The method of claim 7, further comprising:
sending a notification indicating that access to the object is no longer required.
-
10. The method of claim 9, wherein sending a notification indicating that access to the object is no longer required, includes:
decrementing a counter corresponding to the object reflecting the notification.
-
11. The method of claim 10, wherein decrementing a counter corresponding to the object reflecting the notification, includes:
invoking a process to collect resources corresponding to the object upon a determination that the counter corresponding to the object indicates that access to the object is no longer required.
-
12. A method for accessing objects performed by at least one processor comprising:
-
receiving a request from a remote process to access an object, including a reference corresponding to the object and indicating a period of time for which access to the object is requested;
sending a response to the request indicating a period of time for which access to the object on a nonexclusive basis is permitted;
determining whether the period for which access to the object has been permitted has expired; and
collecting resources corresponding to the object based on the determination.
-
-
13. A method for accessing objects performed by at least one processor comprising:
-
receiving a request from a remote process to access an object, including a reference corresponding to the object and indicating a period of time for which access to the object is requested;
sending a response to the request indicating a period of time for which access to the object is permitted;
determining whether a reference count corresponding to the object indicates that access to the object is no longer requested; and
collecting resources corresponding to the object based on the determination.
-
-
14. A method for managing objects performed by at least one processor comprising:
-
sending a request to access an object, the request including a reference corresponding to the object and indicating a period of time for which access to the object is requested;
allocating the object when it is determined that the object was not previously allocated;
sending a response indicating a period of time for which access to the object is permitted;
incrementing a count corresponding to the object; and
collecting resources corresponding to the object when it is determined that the access period for the object has expired or the count corresponding to the object indicates that access is to the object is no longer requested. - View Dependent Claims (15)
receiving a notification indicating that access to the object is no longer needed; and
decrementing the count corresponding to the object.
-
-
16. A method for managing resources in a distributed processing system, performed by at least one processor comprising:
-
(a) sending, in response to a request from an application, a dirty call, including a reference to a remote resource and a requested lease period;
(b) receiving a return call including a granted lease period during which it is guaranteed that the remote resource corresponding to the reference of the dirty call will be accessible; and
(c) repeating steps (a) and (b) when it is determined that the granted lease period for the reference is about to expire and the application'"'"'s use of the reference is still required. - View Dependent Claims (17)
(d) sending a clean call when it is determined that the application'"'"'s use of the reference is no longer required and deleting the reference from a list of references being used by the application.
-
-
18. A method for managing resources in a distributed processing system, performed by at least one processor, comprising:
-
receiving a dirty call from a remote process, the dirty call including a reference to a resource and a requested lease period;
setting an acceptable grant period for reference-to-resource binding in response to the requested lease period;
incrementing a reference count corresponding to the reference of a dirty call; and
sending a return call to the remote process with the grant period. - View Dependent Claims (19)
allocating the resource corresponding to the reference of the dirty call based on a determination that the resource corresponding to the reference of the dirty call has not yet been allocated.
-
-
20. A method for managing resources in a distributed processing system, performed by at least one processor, comprising:
-
receiving a clean call from a remote process, the clean call including a reference to a resource;
decrementing a reference count corresponding to the resource in response to the clean call; and
sending a return call to the remote process acknowledging receipt of the clean call.
-
-
21. A method for managing resources, performed by at least one processor, comprising:
-
monitoring at least one reference count and at least one granted lease period corresponding to a resource;
guaranteeing a reference-to-resource binding during the granted lease period; and
initiating a process to reclaim the resource when it is determined that the reference count is zero or the granted lease period has expired.
-
-
22. A method for managing resources in a distributed processing system, performed by at least one processor comprising:
-
(a) sending, in response to a request from an application, a request including a reference to a remote resource; and
(b) receiving a response including a time interval during which it is guaranteed that the remote resource corresponding to the reference will be accessible. - View Dependent Claims (23)
(c) repeating steps (a) and (b) when it is determined that the time interval for is about to expire and the application'"'"'s use of the reference is still required.
-
-
24. A method for managing resources in a distributed processing system, performed by at least one processor, comprising:
-
receiving a request from a remote process including a reference to a resource;
setting a time interval for reference-to-resource binding in response to the request; and
incrementing a reference count corresponding to the reference. - View Dependent Claims (25)
sending a response to the remote process with the time interval.
-
-
26. A system for managing resources, comprising:
-
a memory having program instructions; and
a processor responsive to the program instructions and configured to receive a request for a resource, permit access to the resource for a time interval, and release the resource when the time interval expires. - View Dependent Claims (27, 28, 29, 30, 31)
determine the time interval based on at least one of a requested lease period, a measure of the resource, and granted lease periods for the resource. -
28. The system of claim 26, wherein the processor is further configured to
increment a reference count corresponding to the resource, the reference count indicating a number of processes currently having access to the resource. -
29. The system of claim 28, wherein the processor is further configured to
reclaim the resource when the reference count indicates no processes currently access the identified resource. -
30. The system of claim 26, wherein the processor is further configured to
reclaim the resource when access to the resource is no longer requested. -
31. The system of claim 26, wherein the processor is further configured to
guarantee integrity of the resource for the time interval.
-
-
32. A system for managing objects, comprising:
-
a memory having program instructions; and
a processor responsive to the program instructions and configured to send a request to access an object, including a reference corresponding to the object and indicating a period of time for which access to the object is requested, receive a response to the request indicating a period of time for which access to the object on a nonexclusive basis is permitted, determine whether the period for which access to the object has been permitted is about to expire, and renew the request to access the resource based upon a determination that access to the resource is required. - View Dependent Claims (33, 34, 35, 36)
increment a counter corresponding to the object reflecting the response. -
34. The system of claim 32, wherein the processor is further configured to
send a notification indicating that access to the object is no longer required. -
35. The system of claim 34, wherein the processor is further configured to
decrement a counter corresponding to the object reflecting the notification. -
36. The system of claim 32, wherein the processor is further configured to
invoke a process to collect resources corresponding to the object upon a determination that the counter corresponding to the object indicates that access to the object is no longer required.
-
-
37. A system for accessing objects, comprising:
-
a memory having program instructions; and
a processor responsive to the program instructions and configured to receive a request from a remote process to access an object, including a reference corresponding to the object and indicating a period of time for which access to the object is requested, send a response to the request indicating a period of time for which access to the object on a nonexclusive basis is permitted, determine whether the period for which access to the object has been permitted has expired, and collect resources corresponding to the object based on the determination.
-
-
38. A system for accessing objects, comprising:
-
a memory having program instruction; and
a processor responsive to the program instructions and configured to receive a request from a remote process to access an object, including a reference corresponding to the object and indicating a period of time for which access to the object is requested, send a response to the request indicating a period of time for which access to the object is permitted, determine whether a reference count corresponding to the object indicates that access to the object is no longer requested, and collect resources corresponding to the object based on the determination.
-
-
39. A system for managing objects, comprising:
-
a memory having program instructions; and
a processor responsive to the program instructions and configured to send a request to access an object, the request including a reference corresponding to the object and indicating a period of time for which access to the object is requested, allocate the object when it is determined that the object was not previously allocated, send a response indicating a period of time for which access to the object is permitted, increment a count corresponding to the object, and collect resources corresponding to the object when it is determined that the access period for the object has expired or the count corresponding to the object indicates that access is to the object is no longer requested. - View Dependent Claims (40)
receive a notification indicating that access to the object is no longer needed, and decrement the count corresponding to the object.
-
-
41. A system for managing resources, comprising:
-
a memory having program instructions; and
a processor responsive to the program instructions and configured to send, in response to a request from an application, a dirty call, including a reference to a remote resource and a requested lease period, receive a return call including a granted lease period during which it is guaranteed that the remote resource corresponding to the reference of the dirty call will be accessible, and repeating the send and receive operations when it is determined that the granted lease period for the reference is about to expire and the application'"'"'s use of the reference is still required. - View Dependent Claims (42)
send a clean call when it is determined that the application'"'"'s use of the reference is no longer required and deleting the reference from a list of references being used by the application.
-
-
43. A system for managing resources, comprising:
-
a memory having program instructions; and
a processor responsive to the program instructions and configured to receive a dirty call from a remote process, the dirty call including a reference to a resource and a requested lease period, set an acceptable grant period for reference-to-resource binding in response to the requested lease period, increment a reference count corresponding to the reference of a dirty call, and send a return call to the remote process with the grant period. - View Dependent Claims (44)
allocate the resource corresponding to the reference of the dirty call based on a determination that the resource corresponding to the reference of the dirty call has not yet been allocated.
-
-
45. A system for managing resources, comprising:
-
a memory having program instructions; and
a processor responsive to the program instructions and configured to receive a clean call from a remote process, the clean call including a reference to a resource, decrement a reference count corresponding to the resource in response to the clean call, and send a return call to the remote process acknowledging receipt of the clean call.
-
-
46. A system for managing resources, comprising:
-
a memory having program instructions; and
a processor responsive to the program instructions and configured to monitor at least one reference count and at least one granted lease period corresponding to a resource, guarantee a reference-to-resource binding during the granted lease period, and initiate a process to reclaim the resource when it is determined that the reference count is zero or the granted lease period has expired.
-
-
47. A system for managing resources, comprising:
-
a memory having program instructions; and
a processor responsive to the program instructions and configured to send, in response to a request from an application, a request including a reference to a remote resource, and receive a response including a time interval during which it is guaranteed that the remote resource corresponding to the reference will be accessible. - View Dependent Claims (48)
repeat the send and receive operations when it is determined that the time interval for is about to expire and the application'"'"'s use of the reference is still required.
-
-
49. A system for managing resources, comprising:
-
a memory having program instructions; and
a processor responsive to the program instructions and configured to receive a request from a remote process including a reference to a resource, set a time interval for reference-to-resource binding in response to the request, and increment a reference count corresponding to the reference. - View Dependent Claims (50)
send a response to the remote process with the time interval.
-
-
51. A computer readable medium containing instructions for controlling a computer system to perform a method, wherein the computer system includes at least one resource, the method comprising:
-
receiving a request for a resource;
permitting access to the resource for a time interval; and
releasing the resource when the time interval expires. - View Dependent Claims (52, 53, 54, 55, 56)
determining the time interval based on at least one of a requested lease period, a measure of the resource, and granted lease periods for the resource. -
53. The computer readable medium of claim 51, wherein the permitting operation includes
incrementing a reference count corresponding to the resource, the reference count indicating a number of processes currently having access to the resource. -
54. The computer readable medium of claim 53, wherein the releasing operation includes
reclaiming the resource when the reference count indicates no processes currently access the identified resource. -
55. The computer readable medium of claim 51, wherein the releasing operation includes
reclaiming the resource when access to the resource is no longer requested. -
56. The computer readable medium of claim 51, wherein the permitting operation includes
guaranteeing integrity of the resource for the time interval.
-
-
57. A computer readable medium containing instructions for controlling a computer system to perform a method, wherein the computer system includes at least one object, the method comprising:
-
sending a request to access an object, including a reference corresponding to the object and indicating a period of time for which access to the object is requested;
receiving a response to the request indicating a period of time for which access to the object on a nonexclusive basis is permitted;
determining whether the period for which access to the object has been permitted is about to expire; and
renewing the request to access the resource based upon a determination that access to the resource is required. - View Dependent Claims (58, 59, 60, 61)
incrementing a counter corresponding to the object reflecting the response.
-
-
59. The computer readable medium of claim 57, wherein the method further includes:
sending a notification indicating that access to the object is no longer required.
-
60. The computer readable medium of claim 59, wherein sending a notification indicating that access to the object is no longer required, includes:
decrementing a counter corresponding to the object reflecting the notification.
-
61. The computer readable medium of claim 60, wherein decrementing a counter corresponding to the object reflecting the notification, includes:
invoking a process to collect resources corresponding to the object upon a determination that the counter corresponding to the object indicates that access to the object is no longer required.
-
62. A computer readable medium containing instructions for controlling a computer system to perform a method, wherein the computer system includes at least one object, the method comprising:
-
receiving a request from a remote process to access an object, including a reference corresponding to the object and indicating a period of time for which access to the object is requested;
sending a response to the request indicating a period of time for which access to the object on a nonexclusive basis is permitted;
determining whether the period for which access to the object has been permitted has expired; and
collecting resources corresponding to the object based on the determination.
-
-
63. A computer-readable medium containing instructions for controlling a computer system to perform a method, wherein the computer system includes at least one object, the method comprising:
-
receiving a request from a remote process to access an object, including a reference corresponding to the object and indicating a period of time for which access to the object is requested;
sending a response to the request indicating a period of time for which access to the object is permitted;
determining whether a reference count corresponding to the object indicates that access to the object is no longer requested; and
collecting resources corresponding to the object based on the determination.
-
-
64. A computer-readable medium containing instructions for controlling a computer system to perform a method, wherein the computer system includes at least one object, the method comprising:
-
sending a request to access an object, the request including a reference corresponding to the object and indicating a period of time for which access to the object is requested;
allocating the object when it is determined that the object was not previously allocated;
sending a response indicating a period of time for which access to the object is permitted;
incrementing a count corresponding to the object; and
collecting resources corresponding to the object when it is determined that the access period for the object has expired or the count corresponding to the object indicates that access is to the object is no longer requested. - View Dependent Claims (65)
receiving a notification indicating that access to the object is no longer needed; and
decrementing the count corresponding to the object.
-
-
66. A computer-readable medium containing instructions for controlling a computer system to perform a method, wherein the computer system includes at least one resource, the method comprising:
-
(a) sending, in response to a request from an application, a dirty call, including a reference to a remote resource and a requested lease period;
(b) receiving a return call including a granted lease period during which it is guaranteed that the remote resource corresponding to the reference of the dirty call will be accessible; and
(c) repeating steps (a) and (b) when it is determined that the granted lease period for the reference is about to expire and the application'"'"'s use of the reference is still required. - View Dependent Claims (67)
(d) sending a clean call when it is determined that the application'"'"'s use of the reference is no longer required and deleting the reference from a list of references being used by the application.
-
-
68. A computer readable medium containing instructions for controlling a computer system to perform a method, wherein the computer system includes at least one resource, the method comprising:
-
receiving a dirty call from a remote process, the dirty call including a reference to a resource and a requested lease period;
setting an acceptable grant period for reference-to-resource binding in response to the requested lease period;
incrementing a reference count corresponding to the reference of a dirty call; and
sending a return call to the remote process with the grant period. - View Dependent Claims (69)
allocating the resource corresponding to the reference of the dirty call based on a determination that the resource corresponding to the reference of the dirty call has not yet been allocated.
-
-
70. A computer readable medium containing instructions for controlling a computer system to perform a method, wherein the computer system includes at least one resource, the method comprising:
-
receiving a clean call from a remote process, the clean call including a reference to a resource;
decrementing a reference count corresponding to the resource in response to the clean call; and
sending a return call to the remote process acknowledging receipt of the clean call.
-
-
71. A computer-readable medium containing instructions for controlling a computer system to perform a method, wherein the computer system includes at least one resource, the method comprising:
-
monitoring at least one reference count and at least one granted lease period corresponding to a resource;
guaranteeing a reference-to-resource binding during the granted lease period; and
initiating a process to reclaim the resource when it is determined that the reference count is zero or the granted lease period has expired.
-
-
72. A computer-readable medium containing instructions for controlling a computer system to perform a method, wherein the computer system includes at least one resource, the method comprising:
-
(a) sending, in response to a request from an application, a request including a reference to a remote resource; and
(b) receiving a response including a time interval during which it is guaranteed that the remote resource corresponding to the reference will be accessible. - View Dependent Claims (73)
(c) repeating steps (a) and (b) when it is determined that the time interval for is about to expire and the application'"'"'s use of the reference is still required.
-
-
74. A computer-readable medium containing instructions for controlling a computer system to perform a method, wherein the computer system includes at least one resource, the method comprising:
-
receiving a request from a remote process including a reference to a resource;
setting a time interval for reference-to-resource binding in response to the request; and
incrementing a reference count corresponding to the reference. - View Dependent Claims (75)
sending a response to the remote process with the time interval.
-
-
76. A memory for storing data for access by a process being executed by a processor, the memory comprising:
a structure for maintaining (i) a reference count corresponding to a resource and reflecting a number of processes having references to the resource, and (ii) a time interval during which it is guaranteed that the resource will be accessible for at least one process, wherein a reclamation process may reclaim the resource after the time interval.
Specification