Method and system for reliable remote object reference management
First Claim
1. A method for tracking references to an object in a computer system including at least one server node and at least one client node, said method comprising the steps of:
- providing in each said server node a plurality of objects and object references, each object associated with a server-side foreign reference count indicating a number of client nodes having a reference to the object, each object reference associated with a select one of said objects resident in a particular server node;
incrementing a first server-side foreign reference count associated with a first object reference;
exporting from a first server node said first object reference to a first client node;
exporting from said first client node said first object reference to a second client node;
upon receiving said exported object reference, said second client node sending said first server node a first message indicating receipt of said first object reference; and
upon receipt of said first message, incrementing said first server-side foreign reference count.
3 Assignments
0 Petitions
Accused Products
Abstract
The present invention pertains to a system and method for tracking object references in an object-oriented computing system including a number of independent computing nodes interconnected by a communications link. The reference counting mechanism tracks references to an object through the use of a messaging protocol. A server node keeps a foreign reference count for each of its objects. The foreign reference count indicates the number of remote nodes having a reference to one of the servers objects. A server node increments the foreign reference count for each object reference that it exports prior to sending it to an intended client node. A client node will send a message to the server node when it has already received the exported object reference and in response to this message, the server node decrements the appropriate foreign reference count. When a client node receives an object reference from another client node, the receiving client node will message the appropriate server node that the receiving client node has a reference to the object. In response, the server node increments the appropriate foreign reference count. The reference counting mechanism utilizes a node failure protocol in order to accurately track the foreign reference counts in light of node failures.
70 Citations
34 Claims
-
1. A method for tracking references to an object in a computer system including at least one server node and at least one client node, said method comprising the steps of:
-
providing in each said server node a plurality of objects and object references, each object associated with a server-side foreign reference count indicating a number of client nodes having a reference to the object, each object reference associated with a select one of said objects resident in a particular server node; incrementing a first server-side foreign reference count associated with a first object reference; exporting from a first server node said first object reference to a first client node; exporting from said first client node said first object reference to a second client node; upon receiving said exported object reference, said second client node sending said first server node a first message indicating receipt of said first object reference; and upon receipt of said first message, incrementing said first server-side foreign reference count. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for tracking references to an object in a computer system including at least one server node and at least one client node, said method comprising the steps of:
-
a) providing in each said server node a plurality of objects and a plurality of object references, each said object reference associated with a select one of the objects resident in a particular server node; b) exporting from one or more server nodes, object references to one or more client nodes; c) maintaining in each server node a server-side foreign reference count for each object, each server-side foreign reference count indicating a number of client nodes having a reference to an associated object; d) detecting a node failure in at least one client node; and
after the detecting of a node failure performing the steps of;e) disabling temporarily each server node from exporting object references; f) reinitializing each server-side foreign reference count to a fixed, predefined starting value; g) waiting for all in transit object references to arrive at an intended client node; h) sending a first message from each client node having an object reference to a server node having an object associated with the object reference; i) upon receiving said first message, incrementing a server-side foreign reference count associated with the object reference in said first message; and j) when each server node receives all intended first messages, enabling each server node to export object references to one or more client nodes. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer system including one or more client nodes and at least one server node connected via a communications link, said system comprising:
-
each said server node comprising; a plurality of objects, each object having a server-side foreign reference count indicating a number of client nodes having a reference to a particular object; a plurality of object references, each object reference associated with an object resident in a select one of said server nodes; a server-side object reference export mechanism having a capability to export a reference to one of said objects to one or more client nodes; a server-side reference counting mechanism having a capability to maintain each object'"'"'s server-side foreign reference count; wherein said server-side reference counting mechanism increments a server-side foreign reference count associated with an object prior to the server-side object reference export mechanism exporting a reference to the object to a client node; each said client node comprising; a plurality of object references, each object reference associated with an object resident in a select one of said server nodes; a client-side object reference export mechanism having a capability to export an object reference to one or more other client nodes; a client-side message sending mechanism having a capability to send a first message to a server node associated with an exported object reference, wherein the exported object reference is received by a first client node and exported by a second client node, said first message indicating that said first client node has obtained the exported object reference; wherein said server-side reference counting mechanism receives said first message and increments a server-side foreign reference count associated with the object in said first message. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer system having a plurality of computing nodes, said system comprising:
-
a plurality of objects, each said object stored in a select one of said computing nodes; a plurality of object references, each object reference associated with an object stored in a first computing node and stored in a second computing node; a plurality of foreign reference counts, each foreign reference count associated with an object and indicating a number of remote computing nodes referencing an object; a reference counting mechanism having a capability to maintain each foreign reference count; an object exportation mechanism having a capability to export object references to one or more remote computing nodes, wherein said object exportation mechanism increments a foreign reference count associated with an object corresponding to an exported object reference prior to exporting the exported object reference; a node failure detection mechanism having a capability to detect when one or more of said computing nodes has failed; an enablement mechanism having a capability to temporarily disable the object reference export mechanism upon notification of a node failure and having a capability to enable the object reference export mechanism when each node completes a node failure processing protocol; and a message sending mechanism having a capability mechanism, after detection of a node failure by the node failure detection mechanism, to send a first message for each object reference resident in a node, said first message sent to a node storing an object associated with the object reference; wherein said reference counting mechanism, upon notification of a node failure, reinitializes each foreign reference count to a fixed, predefined starting value and upon receiving each said first message increments a corresponding foreign reference count. - View Dependent Claims (26, 27, 28, 29)
-
-
30. A computer program product for storing data for access by programs being executed on a data processing system including a plurality of nodes, the computer program product comprising a computer storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
-
a plurality of objects, each said object stored in a select one of said computing nodes; a plurality of object references, each object reference associated with an object stored in a first computing node and stored in a second computing node; a plurality of foreign reference counts, each foreign reference count associated with an object and indicating a number of remote computing nodes referencing an object; a reference counting mechanism having a capability to maintain each foreign reference count; an object exportation mechanism having a capability to export object references to one or more remote computing nodes, wherein said object exportation mechanism increments a foreign reference count associated with an object corresponding to an exported object reference prior to exporting the exported object reference; a node failure detection mechanism having a capability to detect when one or more of said computing nodes has failed; an enablement mechanism having a capability to temporarily disable the object reference export mechanism upon notification of a node failure and having a capability to enable the object reference export mechanism when each node completes a node failure processing protocol; and a message sending mechanism having a capability after detection of a node failure by the node failure detection mechanism, to send a first message for each object reference resident in a node, said first message sent to a node storing an object associated with the object reference; wherein said reference counting mechanism, upon notification of a node failure, reinitializes each foreign reference count to a fixed, predefined starting value and upon receiving each said first message increments a corresponding foreign reference count. - View Dependent Claims (31, 32, 33, 34)
-
Specification