Patent US5819299A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5819299A Expired / Lapsed US ⏱️ 0.0 years remaining

Process for distributed garbage collection

Assignee: Electric Communities
•
Filing: 1996-06-06
•
Granted: 1998-10-06
•
Expires: 2016-06-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A process and system for distributed garbage collection in a distributed network includes transmission of a root request message tagged with a unique identifier from a suspect node to all nodes of the suspect node's inverse reference graph looking for a rooted (persistent) object. Objects respond to the root request message with an affirmative or disregard response (indicating a root or coupling to a root) tagged with the same identifier or that no relevant garbage collecting information is available from a particular branch. The suspect node, in the absence of any affirmative responses, is identified as obsolete (garbage) and may be collected. Other objects having the same identifier are identified and/or collected as garbage as well.

Inventors

  • 👤 Arturo Bejar

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 08:55
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/0223; G06F12/023; G06F12/0253; G06F12/0269; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99956; Y10S707/99957

Claims Analysis

Total Claims: 13
Claim 1
Independent Claim 285 words
In a distributed computer system having a plurality of concurrently active processes that have instantiated a plurality of objects in a memory associated with the distributed computer system, a method of operating the distributed computer system comprising the steps of: selecting a suspect object from the plurality of objects for testing to determine whether said suspect object is garbage; identifying an inverse reference graph for said suspect object wherein each object of a subset of objects of the plurality of objects referentially coupled to said suspect object are represented as nodes on said inverse reference graph and wherein each edge between a pair of nodes defines a referential relationship between a pair of objects of said subset of the plurality of objects; testing each branch of said inverse graph coupled from a suspect node associated with said suspect object to a referring node associated with a referring object to determine whether any branch of said inverse reference graph is relevant to establish whether said suspect object is garbage; wherein said testing step comprises the steps of: generating an identifier; transmitting a root request message, tagged with said identifier, to each object of a plurality of referring objects of said suspect object as identified by branches of said inverse reference graph originating from said suspect object wherein each branch receives a separate root request message tagged with said identifier; and receiving a reply message, tagged with said identifier, from each branch, each said reply message from any particular branch indicating whether said particular branch is to be disregarded for determining whether said suspect object is garbage; and identifying said suspect node as garbage when no branch is relevant to establish whether said suspect node is garbage.
Claim 2
Dependent Claim 285 words
In a distributed computer system having a plurality of concurrently active processes that have instantiated a plurality of objects in a memory associated with the distributed computer system, a method of operating the distributed computer system comprising the steps of: selecting a suspect object from the plurality of objects for testing to determine whether said suspect object is garbage; identifying an inverse reference graph for said suspect object wherein each object of a subset of objects of the plurality of objects referentially coupled to said suspect object are represented as nodes on said inverse reference graph and wherein each edge between a pair of nodes defines a referential relationship between a pair of objects of said subset of the plurality of objects; testing each branch of said inverse graph coupled from a suspect node associated with said suspect object to a referring node associated with a referring object to determine whether any branch of said inverse reference graph is relevant to establish whether said suspect object is garbage; wherein said testing step comprises the steps of: generating an identifier; transmitting a root request message, tagged with said identifier, to each object of a plurality of referring objects of said suspect object as identified by branches of said inverse reference graph originating from said suspect object wherein each branch receives a separate root request message tagged with said identifier; and receiving a reply message, tagged with said identifier, from each branch, each said reply message from any particular branch indicating whether said particular branch is to be disregarded for determining whether said suspect object is garbage; and identifying said suspect node as garbage when no branch is relevant to establish whether said suspect node is garbage.
Claim 3
Dependent Claim 30 words
The distributed computer operating method of claim 1 wherein said identifying step establishes said suspect node as garbage when all said reply messages indicate all branches are to be disregarded.
Claim 4
Dependent Claim 54 words
The distributed computer operating method of claim 2 further comprising the step of replying with a disregard message to every transmitting object that transmits to a particular referring object a root request message having said identifier while said referring object is resolving a previously received root request message that is tagged with said identifier.
Claim 5
Dependent Claim 23 words
The distributed computer operating method of claim 3 wherein a particular branch is relevant when any object in said particular branch is rooted.
Claim 6
Dependent Claim 36 words
The distributed computer operating method of claim 4 wherein said identifying step identifies said suspect object as garbage whenever each reply message from each branch in response to said root request message is a disregard message.
Claim 7
Dependent Claim 252 words
In a distributed computer system having a plurality of concurrently active processes that have instantiated a plurality of objects in a memory associated with the distributed computer system, a method of operating the distributed computer system comprising the steps of: establishing a suspect list of a subset of said plurality of objects wherein said subset of objects are candidates for garbage collection; selecting a first object from said suspect list; defining an inverse reference graph for said first object wherein each object of said plurality of objects referentially coupled to said first object is represented as a node on said inverse reference graph and wherein edges define a referential relationship between any particular two objects of said plurality of objects; generating an identifier; transmitting a root request message, tagged with said identifier, to each of a plurality of referring objects of said first object as identified by said inverse reference graph; receiving a reply message, tagged with said identifier, from each object in a subset of said plurality of referring objects that is directly coupled to said first object, said reply message indicating whether any object in said subset of said plurality of referring objects is relevant to determine whether said first object is garbage; and identifying said first object as garbage when none of said reply messages, tagged with said identifier and received from said subset of referring objects indicates any object in said subset of said plurality of referring objects is relevant to determine whether said first object is garbage.
Claim 8
Dependent Claim 252 words
In a distributed computer system having a plurality of concurrently active processes that have instantiated a plurality of objects in a memory associated with the distributed computer system, a method of operating the distributed computer system comprising the steps of: establishing a suspect list of a subset of said plurality of objects wherein said subset of objects are candidates for garbage collection; selecting a first object from said suspect list; defining an inverse reference graph for said first object wherein each object of said plurality of objects referentially coupled to said first object is represented as a node on said inverse reference graph and wherein edges define a referential relationship between any particular two objects of said plurality of objects; generating an identifier; transmitting a root request message, tagged with said identifier, to each of a plurality of referring objects of said first object as identified by said inverse reference graph; receiving a reply message, tagged with said identifier, from each object in a subset of said plurality of referring objects that is directly coupled to said first object, said reply message indicating whether any object in said subset of said plurality of referring objects is relevant to determine whether said first object is garbage; and identifying said first object as garbage when none of said reply messages, tagged with said identifier and received from said subset of referring objects indicates any object in said subset of said plurality of referring objects is relevant to determine whether said first object is garbage.
Claim 9
Dependent Claim 56 words
The distributed computer operating method of claim 6 further comprising the step of: replying with a disregard message from said first object, prior to said identifying step and in response to a particular root request message tagged with said identifier and received from a second one object of said plurality of objects, to said second object.
Claim 10
Dependent Claim 30 words
The distributed computer operating method of claim 6 further comprising the step of: collecting, after said identifying step, said first object from said memory when said first object is garbage.
Claim 11
Dependent Claim 100 words
The distributed computer operating method of claim 6 wherein a first referring object of said subset of said plurality of referring objects is instantiated in a first portion of said memory that is associated with a first process of the plurality of concurrently active processes that is active in a first machine and wherein a second referring object of said subset of said plurality of referring objects is instantiated in a second portion of said memory associated with a second process of the plurality of concurrently active processes that is active in a second machine different from said first machine.
Claim 12
Dependent Claim 238 words
A computer system, comprising: a multiplicity of concurrently active processes executing on a plurality of machines for instantiating a plurality of objects; a memory, coupled to said plurality of machines, for storing said plurality of objects; and garbage identification means, coupled to said memory, for: maintaining a suspect list of a subset of said plurality of objects that are candidates for garbage collection; selecting a first object from said suspect list; generating an identifier; transmitting a root request message, tagged with said identifier, to each of a plurality of referring objects of said first object as identified by an inverse reference graph, wherein each object of said plurality of objects is represented as a node on said inverse reference graph and wherein edges define a referential relationship between any particular two objects of said plurality of objects; receiving a reply message, tagged with said identifier, from each object in a subset of said plurality of referring objects that is directly coupled to said first object, said reply message indicating whether any object in said subset of said plurality of referring objects is relevant to determining whether said first object is garbage; and identifying said first object as garbage when none of said reply messages, tagged with said identifier and received from said subset of referring objects, indicates any object in said subset of said plurality of referring objects is relevant to determining whether said first object is garbage.
Claim 13
Dependent Claim 238 words
A computer system, comprising: a multiplicity of concurrently active processes executing on a plurality of machines for instantiating a plurality of objects; a memory, coupled to said plurality of machines, for storing said plurality of objects; and garbage identification means, coupled to said memory, for: maintaining a suspect list of a subset of said plurality of objects that are candidates for garbage collection; selecting a first object from said suspect list; generating an identifier; transmitting a root request message, tagged with said identifier, to each of a plurality of referring objects of said first object as identified by an inverse reference graph, wherein each object of said plurality of objects is represented as a node on said inverse reference graph and wherein edges define a referential relationship between any particular two objects of said plurality of objects; receiving a reply message, tagged with said identifier, from each object in a subset of said plurality of referring objects that is directly coupled to said first object, said reply message indicating whether any object in said subset of said plurality of referring objects is relevant to determining whether said first object is garbage; and identifying said first object as garbage when none of said reply messages, tagged with said identifier and received from said subset of referring objects, indicates any object in said subset of said plurality of referring objects is relevant to determining whether said first object is garbage.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-10-05 2002-04-06 2002-10-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-10-05 2006-04-06 2006-10-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-10-05 2010-04-06 2010-10-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag