← Back to Patent Explorer
US6233623B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Replicated resource management system for managing resources in a distributed application and maintaining a relativistic view of state

Assignee: Google LLC
•
Filing: 1996-01-11
•
Granted: 2001-05-15
•
Expires: 2016-01-11
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for accessing resource objects contained in a distributed memory space in a communications network, including dividing the distributed memory space into a plurality of memory pools, each pool containing a collection of resource objects, providing a plurality of resource manager objects, each resource manager object having an associated set of memory pools and a registry of network unique identifiers for the resource objects in those pools, and accessing a given resource object via its network identifier. Another aspect of the invention is to provide a relativistic view of state of a plurality of objects, each object generating a state vector representing that object's view of its own state and the state of all other objects, each object sending its state vector to other objects, and each object maintaining a state matrix of the state vectors.

Inventors

  • 👤 Jason Jeffords
  • 👤 Roger Dev

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 11:11
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/50

Claims Analysis

Total Claims: 51
Claim 1
Independent Claim 122 words
A method of accessing resource objects contained in a distributed memory space in a communications network comprising: dividing the distributed memory space into one or more memory pools, each memory pool comprising a dedicated plurality of segments of the distributed memory space for storing a collection of resource objects, each resource object being a software object having a network unique identifier and containing methods and attributes; providing a plurality of resource manager objects, each resource manager object having an associated set of memory pools and a registry of the network unique indentifiers for the resource objects in the associated set of memory pools; and accessing a given resource object via its network unique identifier in the registry of the resource manager object.
Claim 2
Independent Claim 122 words
A method of accessing resource objects contained in a distributed memory space in a communications network comprising: dividing the distributed memory space into one or more memory pools, each memory pool comprising a dedicated plurality of segments of the distributed memory space for storing a collection of resource objects, each resource object being a software object having a network unique identifier and containing methods and attributes; providing a plurality of resource manager objects, each resource manager object having an associated set of memory pools and a registry of the network unique indentifiers for the resource objects in the associated set of memory pools; and accessing a given resource object via its network unique identifier in the registry of the resource manager object.
Claim 3
Dependent Claim 56 words
The method of claim 1 , further including providing a plurality of processes to perform a distributed processing function, each process having an associated resource manager object, and the plurality of processes sharing the methods and attributes of the resource objects in at least one associated memory pool in order to provide the distributed processing function.
Claim 4
Dependent Claim 40 words
The method of claim 1 , further comprising constructing a distributed application, utilizing a plurality of processes located on a plurality of host systems in the network, by providing each process with an application interface to the resource manager objects.
Claim 5
Dependent Claim 24 words
The method of claim 1 , further including transporting distributable representations of resource objects to the resource manager objects for an associated memory pool.
Claim 6
Dependent Claim 40 words
The method of claim 1 , wherein each resource object includes one or more methods for changing an attribute's value and one or more methods for sending the attribute's value to the resource manager objects of the associated memory pool.
Claim 7
Dependent Claim 18 words
The method of claim 1 , wherein the resource manager objects provide location-independent object-level messaging based on objectOIDs.
Claim 8
Independent Claim 95 words
The method of any one of claims 2 and 3 , wherein the processes perform one or more of the following steps: (a) examine the resource objects; (b) use the resource objects; (c) instantiate the resource objects; (d) delete resource objects from the associated memory pool; (e) change the attributes of the resource objects; (f) synchronize the change of attributes of the resource objects; (g) receive attribute change notifications for the resource objects; (h) use any one of object level messaging and object level remote procedure calls for any one of steps (a) through (g).
Claim 9
Independent Claim 45 words
The method of any one of claims 1 , 2 and 3 wherein the resource manager objects perform one or more of the following steps: (i) object transport; (j) object level message delivery; (k) automatic object replication; (l) resource manager object synchronization; (m) failure detection.
Claim 10
Dependent Claim 22 words
The method of claim 2 , wherein the plurality of processes communicate through object level messaging and object level remote procedure calls.
Claim 11
Dependent Claim 45 words
The method of claim 2 , further comprising: assigning ownership of each of the resource objects to any one of the processes, wherein work requested by calling a method of an owned resource object is performed by the process that owns the called resource object.
Claim 12
Dependent Claim 46 words
The method of claim 2 , wherein each resource manager object maintains state information which is used for one or more of the following: coordination of work among the processes; determining validity of data obtained from the processes; fault detection and isolation; voting and agreement paradigms.
Claim 13
Dependent Claim 16 words
The method of claim 2 , wherein the resource manager objects perform process level failure detection.
Claim 14
Dependent Claim 15 words
The method of claim 2 , wherein the processes are organized in a peer-to-peer configuration.
Claim 15
Dependent Claim 43 words
The method of claim 2 , wherein ownership of each resource object is assigned to one of the processes, and the work requested by calling a method of an owned resource object is performed by the process that owns the called resource object.
Claim 16
Dependent Claim 21 words
The method of claim 2 , wherein each memory pool is assigned a pool identifier which is unique across process boundaries.
Claim 17
Dependent Claim 24 words
The method of claim 2 , wherein each resource manager object is assigned a resource manager object identifier which is unique across process boundaries.
Claim 18
Dependent Claim 32 words
The method of claim 3 , wherein the distributed application is a network switch control application, and memory pools are provided relating to the following services: network topology; policy; directory; and calls.
Claim 19
Dependent Claim 21 words
The method of claim 3 , further comprising applying application specific logic for deriving application specific objects from the resource objects.
Claim 20
Dependent Claim 31 words
The method of claim 10 , wherein: if one of the processes fails, the ownership of resource objects of the failed process is automatically reassigned to another one of the processes.
Claim 21
Dependent Claim 100 words
The method of claim 10 , wherein when a first joining process of a first resource manager object seeks to join a first memory pool, the first memory pool is synchronized by: the first resource manager object sending a join pool request to the other resource manager objects; each resource manager object already joined in the first memory pool responding to the request by sending all the resource objects owned by its associated process to the joining process; and the first resource manager object sending all of the resource objects owned by the joining process to the already joined processes.
Claim 22
Dependent Claim 34 words
The method of claim 11 , wherein each resource manager object maintains state information for a contact status determination and for its associated memory pools and the resource manager objects synchronize the state information.
Claim 23
Dependent Claim 23 words
The method of claim 11 , wherein the state information forms a state matrix and synchronization requires the state matrix to be determinant.
Claim 24
Dependent Claim 27 words
The method of claim 11 , wherein each resource manager object maintains a relativistic view of state based upon state information received from other resource manager objects.
Claim 25
Dependent Claim 65 words
The method of claim 14 , wherein the network unique identifier is an object identifier (OID) that is unique across process boundaries, and the OID comprises: PoolOID.ServiceAddress.InstanceID where: PoolOID identifies the memory pool which contains the resource object; ServiceAddress identifies the process that created the resource object; and InstanceID is a unique ID identifying an instance of an object under the prefix given by PoolOID.
Claim 26
Dependent Claim 35 words
The method of claim 14 , wherein upon failure of one of the processes, each resource object owned by the failed process calls an ownership arbitration method in order to assign ownership to another process.
Claim 27
Dependent Claim 18 words
The method of claim 14 , wherein object ownership is reassigned in order to redistribute the processing load.
Claim 28
Dependent Claim 25 words
The method of claim 14 , wherein object ownership is reassigned in order to allow a resource manager object to leave an associated memory pool.
Claim 29
Dependent Claim 108 words
In a communications network having a distributed memory space in a plurality of hosts, apparatus for managing the distributed memory space comprising: the distributed memory space being divided into a plurality of memory pools, each memory pool comprising a dedicated plurality of segments of the distributed memory for storing a collection of resource objects, each resource object being a software object having a network unique identifier and containing methods and attributes; and a plurality of resource manager objects located on different hosts in the network, each resource manager object having an associated set of memory pools and a replicated set of resource objects for the associated memory pools.
Claim 30
Dependent Claim 108 words
In a communications network having a distributed memory space in a plurality of hosts, apparatus for managing the distributed memory space comprising: the distributed memory space being divided into a plurality of memory pools, each memory pool comprising a dedicated plurality of segments of the distributed memory for storing a collection of resource objects, each resource object being a software object having a network unique identifier and containing methods and attributes; and a plurality of resource manager objects located on different hosts in the network, each resource manager object having an associated set of memory pools and a replicated set of resource objects for the associated memory pools.
Claim 31
Dependent Claim 149 words
In a distributed computing method, wherein a number of cooperating processes require access to resource objects, the improvement comprising: a) providing a distributed memory space containing resource objects; b) providing a plurality of pool objects, each pool object identifying an associated set of resource objects for dividing the resource objects in the distributed memory space into pools, wherein each pool comprises a plurality of dedicated segments of the distributed memory; c) providing each cooperating process with a resource manager object object, each resource manager object object identifying an associated set of pools in which the cooperating process requires access to the contained resource objects; d) each resource manager object object replicating the resource objects in its associated set of pools and providing access by the cooperating process to the replicated resource objects; and e) each resource manager object object synchronizing its state with the other resource manager object objects.
Claim 32
Dependent Claim 149 words
In a distributed computing method, wherein a number of cooperating processes require access to resource objects, the improvement comprising: a) providing a distributed memory space containing resource objects; b) providing a plurality of pool objects, each pool object identifying an associated set of resource objects for dividing the resource objects in the distributed memory space into pools, wherein each pool comprises a plurality of dedicated segments of the distributed memory; c) providing each cooperating process with a resource manager object object, each resource manager object object identifying an associated set of pools in which the cooperating process requires access to the contained resource objects; d) each resource manager object object replicating the resource objects in its associated set of pools and providing access by the cooperating process to the replicated resource objects; and e) each resource manager object object synchronizing its state with the other resource manager object objects.
Claim 33
Dependent Claim 20 words
The method of claim 29 , further comprising the step of: storing the resource objects in a persistent storage medium.
Claim 34
Dependent Claim 23 words
The method of claim 29 , wherein the synchronizing step includes: determining whether the resource manager object object is in an active state.
Claim 35
Dependent Claim 18 words
The method of claim 31 , wherein the synchronizing step includes: determining the state of the pool objects.
Claim 36
Dependent Claim 35 words
The method of claim 29 , further comprising: assigning ownership of each resource object to any one of the processes, wherein the owning process is responsible for the work performed by the owned resource object.
Claim 37
Independent Claim 32 words
The method of any one of claims 29 and 32 , wherein the determining step includes: generating a state vector comprising the object's view of itself and relative view of other objects.
Claim 38
Dependent Claim 18 words
The method of claim 32 , wherein the synchronizing step includes: determining the state of the resource objects.
Claim 39
Dependent Claim 34 words
The method of claim 33 , further comprising the step of: a cooperating process leaving the computing function by sending a leave pool message to the resource manager objects already joined to the pool.
Claim 40
Dependent Claim 23 words
The method of claim 33 , further comprising the step of: the resource manager objects determining a distribution of workload among the processes.
Claim 41
Dependent Claim 30 words
The method of claim 33 , further comprising the step of: a new cooperating process joining the computing function by sending a join pool message to the resource manager objects.
Claim 42
Dependent Claim 18 words
The method of claim 34 , wherein the determining step comprises: determining whether the state vector is determinant.
Claim 43
Dependent Claim 18 words
The method of claim 34 , wherein the determining step comprises: generating a state matrix of state vectors.
Claim 44
Dependent Claim 24 words
The method of claim 34 , further comprising: applying application specific logic to the state vectors by derivation to provide application specific state vectors.
Claim 45
Dependent Claim 18 words
The method of claim 40 , wherein the determining step comprises: determining whether the state matrix is determinant.
Claim 46
Dependent Claim 24 words
The method of claim 40 , further comprising: applying application specific logic to the state matrices by derivation for providing application specific state matrices.
Claim 47
Dependent Claim 22 words
The method of claim 43 , further comprising: determining the contact status of the cooperating processes from the application specific state matrices.
Claim 48
Dependent Claim 149 words
Apparatus for performing a distributed computing function in a system having a plurality of hosts, each host having a local processer and memory apportioned into one or more pools, where each pool comprises a dedicated plurality of segments of the memory, the apparatus comprising: a first host including a first process and a first resource manager object which identifies one or more pools containing resource objects which the first process requires access to; a second host including a second process and a second resource manager object which identifies one or more pools containing resource objects which the second process requires access to; and each resource object being contained in the local memory of the host having the process which requires access to the resource object; wherein each of the first and second processes can access the resource object in local memory contained in the same host as the process.
Claim 49
Dependent Claim 149 words
Apparatus for performing a distributed computing function in a system having a plurality of hosts, each host having a local processer and memory apportioned into one or more pools, where each pool comprises a dedicated plurality of segments of the memory, the apparatus comprising: a first host including a first process and a first resource manager object which identifies one or more pools containing resource objects which the first process requires access to; a second host including a second process and a second resource manager object which identifies one or more pools containing resource objects which the second process requires access to; and each resource object being contained in the local memory of the host having the process which requires access to the resource object; wherein each of the first and second processes can access the resource object in local memory contained in the same host as the process.
Claim 50
Dependent Claim 151 words
In a system comprising a plurality of hosts and a connection device for enabling communication between the hosts, each host having a local processor and local memory apportioned into one or more pools, each pool comprising a dedicated plurality of segments of the local memory, and the combined local memories comprising a distributed memory space, a software system for enabling the hosts to perform a distributed computing function comprising: a plurality of cooperating processes contained on different hosts; each cooperating process having a resource manager object identifying an associated set of pools in which the cooperating process requires access; a plurality of pool objects for dividing the distributed memory space into pools, each pool object identifying an associated set of resource objects contained in the distributed memory space; and each host which contains a cooperating process having the pool objects and the resource objects to which the cooperating process requires access.
Claim 51
Dependent Claim 151 words
In a system comprising a plurality of hosts and a connection device for enabling communication between the hosts, each host having a local processor and local memory apportioned into one or more pools, each pool comprising a dedicated plurality of segments of the local memory, and the combined local memories comprising a distributed memory space, a software system for enabling the hosts to perform a distributed computing function comprising: a plurality of cooperating processes contained on different hosts; each cooperating process having a resource manager object identifying an associated set of pools in which the cooperating process requires access; a plurality of pool objects for dividing the distributed memory space into pools, each pool object identifying an associated set of resource objects contained in the distributed memory space; and each host which contains a cooperating process having the pool objects and the resource objects to which the cooperating process requires access.

References Cited (Backward Citations)

EP0408812A1 Cited
EP0447339A2 Cited
US5263165A Cited
WO1992005485A2 Cited
US5261044A Cited
EP0501610A2 Cited
US5179554A Cited
EP0511851A2 Cited
US5619682A Cited
US5485455A Cited
US5852719A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-05-14 2004-11-13 2005-05-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-05-14 2008-11-13 2009-05-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-05-14 2012-11-13 2013-05-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag