Contention detection and resolution
First Claim
1. In a single computer for use in cooperation with at least one other computer in a multiple computer system, wherein said multiple computer system comprising a multiplicity of computers, each interconnected via at least one communications network, and each executing a different portion of an applications program written to execute on a single computer, each having an independent local memory with at least one memory location being replicated in each said local memory, a method of resolving contention in replica memory updating in which a memory location having a specific location identifier and replicated on at least two computers, can be updated substantially simultaneously from a plurality of sources, said method for resolving contention in replica memory updating comprising the steps of:
- (i) utilizing an updating format for the signal or packet carrying out the updating, said format comprising the specific identifier of the memory location to be updated, the content with which said memory location is to be updated, a resident updating count of the updating source, said count comprising a number indicative of the sequence of occasions on which the updating source has been updated inclusive of the current updating, and a resolution value of the updating source, said resolution value comprising a unique value to or of the updating source,(ii) storing for each replicated memory location the updating count and resolution value of the previously sent or received updating;
(iii) comparing the presently resident updating count associated with the replicated memory location to be updated with the updating count of the currently received updating signal or packet; and
(a) if the currently received updating count is equal to the presently resident updating count, comparing the presently resident resolution value associated with the replicated memory location to be updated with the updating resolution value of the currently received updating signal or packet; and
(b) if the currently received resolution value is greater than the presently resident resolution value, overwriting the associated replicated memory location with the currently received data content, and overwriting the presently resident updating count with the currently received updating count, and overwriting the presently resident resolution value with the currently received resolution value;
or(c) if the currently received resolution value is less than the presently resident resolution value, not overwriting the associated replicated memory location with the currently received data content, and not overwriting the presently resident updating count with the currently received updating count, and not overwriting the presently resident resolution value with the currently received resolution value.
1 Assignment
0 Petitions
Accused Products
Abstract
A multiple computer system is disclosed in which n computers (M1, M2 . . . Mn) each run a different portion of a single application program written to execute only on a single computer. The local memory of each computer is maintained substantially the same by updating all computers with every change made to addressed memory locations. Contention can arise when the same memory location is substantially simultaneously updated by two or more machines because of transmission delays and latency of the communications network interconnecting all the computers. In particular a method of detecting and resolving contention is disclosed which utilizes a count value indicative of the number of the sequence of occasions on which each memory location has been updated. Contention is indicated if the currently stored count value and the incoming updating count value are the same. The contention can be resolved by providing a further rule. One such further rule is that in the presence of contention the updating message from the higher numbered computer is to be accepted and the updating message from the lower numbered computer is to be rejected. Other further rules are also disclosed.
-
Citations
6 Claims
-
1. In a single computer for use in cooperation with at least one other computer in a multiple computer system, wherein said multiple computer system comprising a multiplicity of computers, each interconnected via at least one communications network, and each executing a different portion of an applications program written to execute on a single computer, each having an independent local memory with at least one memory location being replicated in each said local memory, a method of resolving contention in replica memory updating in which a memory location having a specific location identifier and replicated on at least two computers, can be updated substantially simultaneously from a plurality of sources, said method for resolving contention in replica memory updating comprising the steps of:
-
(i) utilizing an updating format for the signal or packet carrying out the updating, said format comprising the specific identifier of the memory location to be updated, the content with which said memory location is to be updated, a resident updating count of the updating source, said count comprising a number indicative of the sequence of occasions on which the updating source has been updated inclusive of the current updating, and a resolution value of the updating source, said resolution value comprising a unique value to or of the updating source, (ii) storing for each replicated memory location the updating count and resolution value of the previously sent or received updating; (iii) comparing the presently resident updating count associated with the replicated memory location to be updated with the updating count of the currently received updating signal or packet; and (a) if the currently received updating count is equal to the presently resident updating count, comparing the presently resident resolution value associated with the replicated memory location to be updated with the updating resolution value of the currently received updating signal or packet; and (b) if the currently received resolution value is greater than the presently resident resolution value, overwriting the associated replicated memory location with the currently received data content, and overwriting the presently resident updating count with the currently received updating count, and overwriting the presently resident resolution value with the currently received resolution value;
or(c) if the currently received resolution value is less than the presently resident resolution value, not overwriting the associated replicated memory location with the currently received data content, and not overwriting the presently resident updating count with the currently received updating count, and not overwriting the presently resident resolution value with the currently received resolution value.
-
-
2. A computer program stored in a computer readable media, the computer program adapted for execution in a processor within a computer or information appliance and a memory coupled with the processor to modify the operation of the computer or information appliance, for modifying the operation of the computer or information appliance in a multiple computer system including a multiplicity of computers, each interconnected via at least one communications network, and each executing a different portion of an application program written to execute on only a single computer, each having an independent local memory with at least one memory location being replicated in each said local memory, and in which a memory location having a specific location identifier can be updated substantially simultaneously from a plurality of sources, the modification including performing a method of resolving contention in replica memory updating in which a memory location having a specific location identifier and replicated on at least two computers, can be updated substantially simultaneously from a plurality of sources, said method for resolving contention in replica memory updating comprising the steps of:
-
(i) utilizing an updating format for the signal or packet carrying out the updating, said format comprising the specific identifier of the memory location to be updated, the content with which said memory location is to be updated, a resident updating count of the updating source, said count comprising a number indicative of the sequence of occasions on which the updating source has been updated inclusive of the current updating, and a resolution value of the updating source, said resolution value comprising a unique value to or of the updating source; (ii) storing for each replicated memory location the updating count and resolution value of the previously sent or received updating; (iii) comparing the presently resident updating count associated with the replicated memory location to be updated with the updating count of the currently received updating signal or packet; and (a) if the currently received updating count is equal to the presently resident updating count, comparing the presently resident resolution value associated with the replicated memory location to be updated with the updating resolution value of the currently received updating signal or packet; and (b) if the currently received resolution value is greater than the presently resident resolution value, overwriting the associated replicated memory location with the currently received data content, and overwriting the presently resident updating count with the currently received updating count, and overwriting the presently resident resolution value with the currently received resolution value;
or(c) if the currently received resolution value is less than the presently resident resolution value, not overwriting the associated replicated memory location with the currently received data content, and not overwriting the presently resident updating count with the currently received updating count, and not overwriting the presently resident resolution value with the currently received resolution value.
-
-
3. A single computer for use in cooperation with at least one other computer in a multiple computer system, wherein said multiple computer system comprising a multiplicity of computers, each interconnected via at least one communications network, and each executing a different portion of an applications program written to execute on a single computer, each having an independent local memory with at least one memory location being replicated in each said local memory, said single computer adapted for resolving contention in replica memory updating in which a memory location having a specific location identifier and replicated on at least two computers, can be updated substantially simultaneously from a plurality of sources, said system for resolving contention in replica memory updating further comprising:
-
(i) means for utilizing an updating format for the signal or packet carrying out the updating, said format comprising the specific identifier of the memory location to be updated, the content with which said memory location is to be updated, a resident updating count of the updating source, said count comprising a number indicative of the sequence of occasions on which the updating source has been updated inclusive of the current updating, and a resolution value of the updating source, said resolution value comprising a unique value to or of the updating source, (ii) means for storing for each replicated memory location the updating count and resolution value of the previously sent or received updating; and (iii) means for comparing the presently resident updating count associated with the replicated memory location to be updated with the updating count of the currently received updating signal or packet, and for determining an action based on predetermined policies. - View Dependent Claims (4)
-
-
5. A method for contention detection in addressed memory, said method comprising:
-
comparing an updating count presently resident at a receiving memory location with an updating count of any currently received updating signal or packet, and if the currently received updating count is greater than the presently resident updating count, not actioning the incoming signal or packet;
orif the currently received updating count is less than the currently resident updating count, actioning the incoming signal or packet;
orif the currently received updating count is equal to the presently resident updating count, instituting a contention resolution.
-
-
6. A contention detection engine comprising:
-
a storage for storing for each receiving memory location an updating count of a previously received updating; means for comparing an updating count presently resident at a receiving memory location with an updating count of any currently received updating signal or packet, and if the currently received updating count is greater than the presently resident updating count, not actioning an incoming signal or packet;
orif the currently received updating count is less than the currently resident updating count, actioning the incoming signal or packet;
orif the currently received updating count is equal to the presently resident updating count, instituting a contention resolution.
-
Specification