Replication of object graphs
First Claim
1. In a multiple computer system comprising a plurality of computers, each including a local processor and a local memory coupled with the local processor, and including a first computer and a second computer interconnected via a communications link or network operating in a replicated shared memory arrangement, each of the local memories having a local memory location and/or a memory value, a method of classifying said local memories comprising:
- classifying said local memories into a first category of memory locations each of which contains or stores non-address values or content;
classifying said local memories into a second category of memory locations each of which contains or stores memory address values or memory address contents of other memory location(s),wherein said plural replica memory locations comprises a plurality of replicated memory locations and/or values, each on a different one of said multiple computers, and which are updated with new values or content, and where said updating includes identifying the corresponding said ones of said plural replicated memory locations on each one of said multiple computers which are to be updated,wherein said replicated memory locations are said second category memory locations, and where said new value(s) or content are said memory address value(s), and receiving said new value(s) transmitted by another one of said multiple computers, and where following utilizing said correspondence to determine or resolve the local memory address value(s) on each one of said multiple computers to which said new value(s) correspond,wherein, if it is determined that a corresponding memory location for said memory address value(s) is not replicated on one or more of said multiple computers, the method further comprising;
(a) replicating the said corresponding memory location(s) of said memory address value(s) to/in said one or more non-replicated computer(s); and
(b) storing said determined or resolved local memory address value(s) to said identified corresponding ones of plural replica memory locations, on each one of said multiple computers in which said corresponding memory location for said memory address value(s) is replicated; and
if it is determined that no corresponding memory location for said memory address value(s) is replicated on one or more of said multiple computers, then including the steps of;
(c) replicating said corresponding memory location(s) of said memory address value(s) to/in said one or more non-replicating computer(s) in which said replica memory location(s) is replicated, and(d) storing said determined or resolved local memory address value(s) to said identified corresponding ones of plural replica memory locations, on each one of said multiple computers in which said corresponding memory location for said memory address value(s) is replicated.
1 Assignment
0 Petitions
Accused Products
Abstract
The updating of only some memory locations in a multiple computer environment in which at least one applications program (50) executes simultaneously on a plurality of computers M1, M2 . . . Mn each of which has a local memory, is disclosed. Objects A and B in each local memory are disclosed which each include primitive fields (11). However, the simultaneous operation of the application program (50) can result in a “non-primitive” reference field (10) in one machine which must then be replicated in all other machines. However, the reference field (10) references another object (H) in the one machine'"'"'s local memory so corresponding objects (T, K) must be created in the local memory of each other machine and be referenced by the corresponding non-primitive field (10).
-
Citations
89 Claims
-
1. In a multiple computer system comprising a plurality of computers, each including a local processor and a local memory coupled with the local processor, and including a first computer and a second computer interconnected via a communications link or network operating in a replicated shared memory arrangement, each of the local memories having a local memory location and/or a memory value, a method of classifying said local memories comprising:
-
classifying said local memories into a first category of memory locations each of which contains or stores non-address values or content; classifying said local memories into a second category of memory locations each of which contains or stores memory address values or memory address contents of other memory location(s), wherein said plural replica memory locations comprises a plurality of replicated memory locations and/or values, each on a different one of said multiple computers, and which are updated with new values or content, and where said updating includes identifying the corresponding said ones of said plural replicated memory locations on each one of said multiple computers which are to be updated, wherein said replicated memory locations are said second category memory locations, and where said new value(s) or content are said memory address value(s), and receiving said new value(s) transmitted by another one of said multiple computers, and where following utilizing said correspondence to determine or resolve the local memory address value(s) on each one of said multiple computers to which said new value(s) correspond, wherein, if it is determined that a corresponding memory location for said memory address value(s) is not replicated on one or more of said multiple computers, the method further comprising; (a) replicating the said corresponding memory location(s) of said memory address value(s) to/in said one or more non-replicated computer(s); and (b) storing said determined or resolved local memory address value(s) to said identified corresponding ones of plural replica memory locations, on each one of said multiple computers in which said corresponding memory location for said memory address value(s) is replicated; and
if it is determined that no corresponding memory location for said memory address value(s) is replicated on one or more of said multiple computers, then including the steps of;(c) replicating said corresponding memory location(s) of said memory address value(s) to/in said one or more non-replicating computer(s) in which said replica memory location(s) is replicated, and (d) storing said determined or resolved local memory address value(s) to said identified corresponding ones of plural replica memory locations, on each one of said multiple computers in which said corresponding memory location for said memory address value(s) is replicated. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87)
-
-
88. A computer program product comprising computer readable instructions stored thereon which, when executed on a computer, carry out a method of classifying a local memory in at least one single computer capable of interoperating with at least one other computer coupled to said at least one single computer at least intermittently via a communications network to form a multiple computer system having a plurality of computers, wherein each computer has a local memory and the multiple computer system operates in a replicated shared memory arrangement, wherein each of the local has a local memory location and/or a memory value, the method of classifying said local memory comprising:
-
classifying said local memories into a first category of memory locations each of which contains or stores non-address values or content; and classifying said local memories into a second category of memory locations each of which contains or stores memory address values or memory address contents of other memory locations, wherein said memory locations comprise a plurality of replicated memory locations and/or values, each on a different one of said multiple computers, and which are updated with new values or content, and where said updating includes identifying the corresponding said ones of said plural replicated memory locations on each one of said multiple computers which are to be updated, wherein said replicated memory locations are said second category memory locations, and where said new value(s) or content are said memory address value(s), and receiving said new value(s) transmitted by another one of said multiple computers, and wherein, following utilizing said correspondence to determine or resolve the local memory address value(s) on each one of said multiple computers to which said new value(s) correspond, if it is determined that a corresponding memory location for said memory address value(s) is not replicated on one or more of said multiple computers, the method further comprises; (a) replicating said corresponding memory location(s) of said memory address value(s) to/in said one or more non-replicated computer(s); and (b) storing said determined or resolved local memory address value(s) to said identified corresponding ones of plural replica memory locations, on each one of said multiple computers in which said corresponding memory location for said memory address value(s) is replicated; and
if it is determined that no corresponding memory location for said memory address value(s) is replicated on one or more of said multiple computers, then including the steps of;(c) replicating the said corresponding memory location(s) of said memory address value(s) to/in said one or more non-replicating computer(s) in which said replica memory location(s) is replicated, and (d) storing said determined or resolved local memory address value(s) to said identified corresponding ones of plural replica memory locations, on each one of said multiple computers in which said corresponding memory location for said memory address value(s) is replicated.
-
-
89. A multiple computer system comprising:
-
a plurality of computers, each including a local processor and a local memory coupled with the local processor, and including a first computer and a second computer interconnected via a communications link or network operating in a replicated shared memory arrangement comprising a plurality of replicated memory locations, the local memory(ies) having a local memory location(s) and/or a memory value(s); wherein each said local processor is configured to classify said local memories into a first category of memory locations each of which contains or stores non-address values or content; and wherein each said local processor is configured to classify said local memories into a second category of memory locations each of which contains or stores memory address values or memory address contents of other memory location(s), wherein said plurality of replicated memory locations are each on a different one of said plurality of computers, and which are updated with new values or content, and where said updated values or content includes corresponding said ones of said plural replicated memory locations being identified on each one of said multiple computers which are to be updated, wherein said replicated memory locations are said second category memory locations, and where said new value(s) or content are said memory address value(s), wherein new value(s) transmitted by another one of said multiple computers are received by each said local processor, wherein, if it is determined that a corresponding memory location for said memory address value(s) is not replicated on one or more of said multiple computers, each said local processor is further configured to; (a) replicate said corresponding memory location(s) of said memory address value(s) to/in said one or more non-replicated computer(s); and (b) store said determined or resolved local memory address value(s) to said identified corresponding ones of plural replica memory locations, on each one of said multiple computers in which said corresponding memory location for said memory address value(s) is replicated; and
if it is determined that no corresponding memory location for said memory address value(s) is replicated on one or more of said multiple computers, each said local processor is configured to;(c) replicate the said corresponding memory location(s) of said memory address value(s) to/in said one or more non-replicating computer(s) in which said replica memory location(s) is replicated, and (d) store said determined or resolved local memory address value(s) to said identified corresponding ones of plural replica memory locations, on each one of said multiple computers in which said corresponding memory location for said memory address value(s) is replicated.
-
Specification