REFERENCE COUNT PROPAGATION
First Claim
1. A computer-readable medium containing executable program instructions for performing a method comprising:
- in a plurality of networked nodes for sharing of stored objects, the objects having globally unique names across the networked nodes and wherein the object names do not change based upon where the objects are stored on the nodes;
maintaining, at each node, a Local Reference Count LRC of references to object names, independent of any object instance stored on the local node, the LRC being maintained as a signed integer,wherein a de-referencing of an object name can generate a negative LRC value.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems are provided for tracking object instances stored on a plurality of network nodes, which tracking enables a global determination of when an object has no references across the networked nodes and can be safely de-allocated. According to one aspect of the invention, each node has a local object store for tracking and optionally storing objects on the node, and the local object stores collectively share the locally stored instances of the objects across the network. One or more applications, e.g., a file system and/or a storage system, use the local object stores for storing all persistent data of the application as objects.
9 Citations
20 Claims
-
1. A computer-readable medium containing executable program instructions for performing a method comprising:
-
in a plurality of networked nodes for sharing of stored objects, the objects having globally unique names across the networked nodes and wherein the object names do not change based upon where the objects are stored on the nodes; maintaining, at each node, a Local Reference Count LRC of references to object names, independent of any object instance stored on the local node, the LRC being maintained as a signed integer, wherein a de-referencing of an object name can generate a negative LRC value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer readable medium containing executable instructions for performing
a method of tracking references to data objects in a distributed peer-to-peer storage system operating on a plurality of networked nodes, the objects having globally unique names across the networked nodes, each node having a local object store for naming and storing objects on the local node, and the local object stores sharing the objects, the method comprising: -
determining, on each of a plurality of local nodes, one or more locations for storing an instance of a data object on the local node; mapping, on each of a plurality of local nodes, the one or more locations of the stored instance on the local node to the object name, wherein the location does not change the object name; and maintaining, on each of a plurality of local nodes, a local reference count LRC of references to object names, the value of the LRC comprising a sum of reference count adjustments for the object on the local node, wherein the LRC is independent of whether any instance of the referenced object is stored on the local node.
-
-
17. A computer readable medium containing executable program instructions for performing a method comprising:
-
for a plurality of networked nodes, each node having a local object store for storing objects on the respective node, the objects having globally unique names across the networked nodes; the local object stores sharing one or more of the objects; and an application using the local object stores for storing persistent data as objects, the application requiring a reference count for each object stored on the networked nodes comprising a number of references to the respective object; maintaining a local reference count LRC of references to object names on each node, the value of the LRC comprising a sum of reference count adjustments on the local node, wherein the LRC is independent of any instance of the referenced object being stored in the local object store so as to allow a negative value of the LRC; and determining a global reference count GRC comprising a sum of the LRCs. - View Dependent Claims (18)
-
-
19. An apparatus comprising:
-
a plurality of networked nodes, each node having a local object store for storing objects on the respective node and the objects having globally unique names across the networked nodes; the local object stores sharing one or more of the objects; and an application using the local object stores for storing persistent data as objects, the application requiring a reference count for each object stored on the networked nodes comprising a number of references to the respective object; means for maintaining a local reference count LRC of references to object names on each node, the value of the LRC comprising a sum of reference count adjustments on the local node, wherein the LRC is independent of any instance of the referenced object being stored in the local object store so as to allow a negative value of the LRC; and means for determining a global reference count GRC comprising a sum of the LRCs.
-
-
20. An apparatus comprising:
-
a plurality of networked nodes, each node having a local object store for storing objects on the respective node and the objects having globally unique names across the networked nodes; the local object stores sharing one or more of the objects; and an application using the local object stores for storing persistent data as objects, the application requiring a reference count for each object stored on the networked nodes comprising a number of references to the respective object; means for maintaining a local reference count LRC of references to object names on each node, the value of the LRC comprising a sum of reference count adjustments on the local node, wherein the LRC is independent of any instance of the referenced object being stored in the local object store so as to allow a negative value of the LRC; and means for selecting, based on network or system performance or reliability, one or more of the local object stores as locations for storing object instances independent of the object name.
-
Specification