Contention detection and resolution
First Claim
1. A method for resolving contention in replica memory updating in a single computer for use in cooperation with at least one other computer in a multiple computer system, wherein said multiple computer system comprises a multiplicity of computers, each interconnected via at least one communications network, said method comprising:
- sharing execution of an applications program written to execute on a single computer,providing each said computer with an independent local memory with at least one memory location being replicated in each said local memory,providing each said memory location with a specific location identifier,replicating each said memory location on at least two computers,contemporaneously updating said memory locations from a plurality of sources,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 data 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, and said updating count and said resolution value not being derived from said data content,storing for each replicated memory location the updating count and resolution value of the previously sent or received updating;
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, and(d) discarding said currently received data content without having previously stored said data to be discarded.
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
4 Claims
-
1. A method for resolving contention in replica memory updating in a single computer for use in cooperation with at least one other computer in a multiple computer system, wherein said multiple computer system comprises a multiplicity of computers, each interconnected via at least one communications network, said method comprising:
-
sharing execution of an applications program written to execute on a single computer, providing each said computer with an independent local memory with at least one memory location being replicated in each said local memory, providing each said memory location with a specific location identifier, replicating each said memory location on at least two computers, contemporaneously updating said memory locations from a plurality of sources, 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 data 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, and said updating count and said resolution value not being derived from said data content, storing for each replicated memory location the updating count and resolution value of the previously sent or received updating; 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, and (d) discarding said currently received data content without having previously stored said data to be discarded.
-
-
2. A computer program product comprising a physical, non-transitory computer readable media containing computer program instructions therein, the computer program instructions being 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, the modification comprising:
-
sharing execution of an application program written to execute on only a single computer amongst said multiplicity of computers, providing each said computer with 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 contemporaneously from a plurality of sources, utilizing an updating format for the signal or packet carrying out the updating, said format comprising a specific identifier of the memory location to be updated, the data 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, and said updating count and said resolution value not being derived from said data content; storing for each replicated memory location the updating count and resolution value of the previously sent or received updating; 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, and discarding said currently received data content without having previously stored said data to be discarded.
-
-
3. 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 including updating data, and said updating count and said resolution value not being derived from said data content, and if the currently received updating count is greater than the presently resident updating count, not actioning the incoming signal or packet and discarding said updating data without having previously stored said data to be discarded;
orif the currently received updating count is less than the currently resident updating count, actioning the incoming signal or packet by overwriting said data stored at said receiving memory location with said updating data;
orif the currently received updating count is equal to the presently resident updating count, instituting a contention resolution.
-
-
4. A method of resolving contention in a multiple computer system comprising a multiplicity of computers, each interconnected via at least one communications network, wherein each computer shares execution of an applications program written to execute on a single computer, each computer has an independent local memory with at least one memory location being replicated in each said local memory, each computer has an updatable replica memory in which a memory location having a specific location identifier and replicated on at least two of the multiplicity of computers can be updated contemporaneously from a plurality of sources, said method further comprising:
-
(i) utilizing an updating format for the signal or packet carrying out the updating, said updating 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 resident updating 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, and said updating count and said resolution value not being derived from said data content; (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 and discarding the currently received data content without having previously stored said data to be discarded.
-
Specification